Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

SPI flash, време за триене.
http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=11469
Страница 1 от 2

Автор:  Цецо [ Вто Юни 18, 2013 6:01 pm ]
Заглавие:  SPI flash, време за триене.

Трябва ми 4 Мбайта сериен флеш за една апликация. Установих, че има маса фирми, които предлагат аналогични неща - Winbond, Spansion, Micron, ISSI и т.н. Това което ме озадачи е голямото време за ERASE - 25 секунди за целия чип.

Единствените, които са различни са тези на Микрочип. Там Erase времето е 35ms, което е озадачаваща разлика.

Някой да има идея що микрочипските са толкоз уникални?

Автор:  tgi [ Вто Юни 18, 2013 6:05 pm ]
Заглавие:  Re: SPI flash, време за триене.

Бе и аз моите (не-SPI) флашове ги чакам по 25 секунди, че много рядко се налага.
Но май имаше някакъв статусен изход който можеше да се гледа дали е станала
по-рано работата, 25 секунди е възможният максимум (всичко това по спомен от отдавна).
Та може майрочипските да ползват това вътре в чипа оттатък spi-я а другите - не.
Това гарантирано време ли е? Ако е гарантиран максимум нещата сигурно са по-дълбоки,
инак навярно е просто изхвърляне без реална спецификация зад него.

Автор:  Цецо [ Вто Юни 18, 2013 6:16 pm ]
Заглавие:  Re: SPI flash, време за триене.

Ми типикъл тайм е. Ама и при гарантираното е така Микрочепските се трията за 50ms, а останалите над минута, което си е 1000 пъти разлика. Т.е. явно има нещо различно в технологията, ама ми е чудно, що само микрочипските са така. Те са и около 2 пъти по - скъпи де. Оставяме настрани факта, че всъщност са си SST, Микрочип ги купиха :)

Автор:  tgi [ Вто Юни 18, 2013 6:18 pm ]
Заглавие:  Re: SPI flash, време за триене.

Е, щом имат максимум време 50мс значи са изотдолу различни някак, нещо са направили
специално за да могат да ги трият бързо.

Автор:  miro_atc [ Сря Юни 19, 2013 1:29 pm ]
Заглавие:  Re: SPI flash, време за триене.

Абе разни флашове, разни времена ;-)

Фактори много, аз не съм задълбавал но си мисля че не винаги един параметър е толкова важен, особено ако е за сметка на други. Примерно една от причините за бавенето е ако пуска вътре някаква помпа да вдига напрежение за триенето. Очевидно ако е постоянно включена ще е бързо, ама консумацията няма да е същата.
Друг пример е с износването... щото някои искат ако направиш еди колко си триения да презаписваш сектори. Други нямат такива изисквания и ако го правят автоматично нормално е да се бавят. Иначе ще ти дава малки времена, ама дефакто ще имаш черна работа освен триенето.
Това са предположения, но си струват да ги провериш ако толкова ти е важно. Иначе ние имаме опити с много флашове от 25-та и 45-а серия. Вторите бяха на Атмел сега май не са вече, ама май те бяха с такива врема по чаршафите. Във всеки случай обаче никога не съм виждал секундни забавявания. Верно че винаги трием на сектори, а не цял чип... но просто от към забавяния не сме имали грижи.
Две са нещата дето важни. Едното е дали може да се пише само 1 бит и дали се може да се пише надеждно. Първото е важно ако искаш лесно да направиш power safe мазане. А второто е още по-важно щото в зашумена среда е нормално SPI-а да се смути. Достатъчно е да вкара един клок повече или да обърка адреса на който се пише/трие и ето ти мазало...

Автор:  Цецо [ Сря Юни 19, 2013 6:13 pm ]
Заглавие:  Re: SPI flash, време за триене.

miro_atc написа:
Две са нещата дето важни. Едното е дали може да се пише само 1 бит и дали се може да се пише надеждно. Първото е важно ако искаш лесно да направиш power safe мазане. А второто е още по-важно щото в зашумена среда е нормално SPI-а да се смути. Достатъчно е да вкара един клок повече или да обърка адреса на който се пише/трие и ето ти мазало...


Я открехни малко врата за тия две неща, че май не ми е ясно съвсем...

Автор:  miro_atc [ Сря Юни 19, 2013 11:36 pm ]
Заглавие:  Re: SPI flash, време за триене.

Възможността лесно да запрограмираш само един бит може да се използва като критична секция. Обикновено флаша се ползва за нещо като файлова система или база данни. Писането на нов файл или запис в бозата няма как да стане с една операция. Особено ако имаш индексирания става поредица от писания. И ако ти спре тока или софтуера се отвее по средата се получава омазана файлова система или омазани файлове или счупена боза. Те тоя проблем лесно се решава с писане на един бит щото единия бит няма как да е в средно положение :-)
На практика аз ползвам 3 специални битчета. Първия свалям при начало на операция, което значи че в следващия участък съм почнал да мажа. Като свърша с мазането свалям втория бит. Ако по някаква причина не стигна до втория бит, смятай че участъкът е омазан.
И третият бит е когато трия съответния файл/запис, защото не искам да трия цял сектор на флаша заради един запис. Общо взето се пише наред и като се натрупат достатъчно дупки и има повод валидните данни се копират в нов сектор и така...
А пък за надеждната комуникация проблемът е, че по принцип не е добре измислено. Един глитч на SPI-а и може да сбърка адрес или данни... При SD картите е много по-добре, имаш CRC и на командите и на данните и ако не излязат нищо не се пише. Но там пък нямаш вариант за един бит, минимум 512 байта.
Въпросът е, че в зависимост от хардуера трябва да мислиш софтуерната организация. При SD картите е едно, при 45-а серия дето имаш RAM буфери е друго, при 25-ците е трето...

Автор:  Dimitar [ Чет Юни 20, 2013 12:33 am ]
Заглавие:  Re: SPI flash, време за триене.

Миро, това с битовете е хитро, ама индекса на записа не върши ли подобна работа. Инкреминтираш го на края на операцията и ако не е успешна или спре тока индекса остава същия.
Иначе аз за пръв път чувам флаш да се трие толкова бавно - цели 20-30 сек. 8O .

Автор:  tgi [ Чет Юни 20, 2013 1:00 am ]
Заглавие:  Re: SPI flash, време за триене.

Dimitar написа:
...
Иначе аз за пръв път чувам флаш да се трие толкова бавно - цели 20-30 сек. 8O .


Ми на тия дето аз слагам - 2 мегабайта, х16 или х8 могат да се връзват - дават такъв
максимум, 25 секунди май беше. И понеже производството ми не е набъбнало дотам
да ги броя тия секунди :) просто ги чакам, май имаше варианти за проверка
гоово ли е ама не съм им се зорил. То това в система с DDRAM и диск де, та флаша се пише
веднъж само след запояване на практика.

Автор:  Dimitar [ Чет Юни 20, 2013 2:43 am ]
Заглавие:  Re: SPI flash, време за триене.

Сега погледнах дейташита на AT45xxx и баси наистина са такива времената, явно не съм му обръщал внимание като съм ги ползвал :D .
Даже на 2 мегабайтовия му дават до 60 сек :) .

Автор:  [ Чет Юни 20, 2013 5:46 am ]
Заглавие:  Re: SPI flash, време за триене.

Цецо написа:
Единствените, които са различни са тези на Микрочип. Там Erase времето е 35ms, което е озадачаваща разлика.

Някой да има идея що микрочипските са толкоз уникални?


Ей тук описват какво представлява CMOS SuperFlash технологията.

Автор:  ike [ Чет Юни 20, 2013 9:13 am ]
Заглавие:  Re: SPI flash, време за триене.

Ако е необходим 2 или 4МБ/Мб SPI FLASH не е ли по-добре да се сложи малко по-голям контролер и направо 1GB SD Card с файлова система?

Автор:  t_i_t_o [ Чет Юни 20, 2013 9:42 am ]
Заглавие:  Re: SPI flash, време за триене.

Нормални са всичките тия времена - НОР флашовете се трият бавно, колкото по голям - толкова по бавно, имал съм случаи за по над 2 мин. НАНД се трия бързо ама там са други проблемите.

Автор:  miro_atc [ Чет Юни 20, 2013 9:54 am ]
Заглавие:  Re: SPI flash, време за триене.

Dimitar написа:
индекса на записа не върши ли подобна работа.


Има различни фатки ;-)
Но повечето идват от блокови устройства, където щеш не щеш винаги четеш или пишеш цял блок. Флашът все пак е серийно устройство и не е от най-бързите... тъй че с колкото по-малко на брой и малки на размер операции минаваш толкоз по-добре. Нали Цецо в крайна сметка се плаши от времената, ама то за приложението не е важно само времето на една операция, важен е крайният резултат. Наистина 45-а серия трият бавно, ама пак казвам че никога не съм виждал секундни забавания. Верно аз никога не трия повече от сектор де. Но пък при писане на големи парчета данни са определено по-бързи. Особено ако ползваш буферчетата, пускаш едното да се пише, през това време тъпчеш другото и обикновено докато го натъпчеш първото е записано. Така че няма чакания, няма блокирания.
Докато 25-ците хубаво трият се бързо ама може да пишеш по един или по два байта само. И чакаш докато се запишат преди да отидеш на следващите. Бавна история е...
Иначе за индексите, зависи колко байта ти е индексът. При мен са 6 байта и ето при 25-ците няма как да ги запиша накуп гарантирано. Какво става ако са се записали 2 от 6? Ако измислиш начин гарантирано да познаваш счупен индекс от правилен индекс, всичко е ОК. Но най-лесно си е с битчета в индекса. Просто не го пишеш с една операция, а 2-3 и по битчетата се ориентираш дали е счупен или здрав.

Автор:  Цецо [ Чет Юни 20, 2013 10:08 am ]
Заглавие:  Re: SPI flash, време за триене.

Ами при мен концепцията е малко по-особенна. Флеша още отначало се оформя като един празен фаил (0xFF) в който в процеса на работа последователно се записва. Това може да трае дни, седмици или години, никой не знае. Накрая като се напълни, вдига джабала и отива някой да го прочете. Или на определено време се чете (да кажем на 3 години).

Въпроса е, че не съм сигурен тези 30 секунди за създаване на файла (демек за триене на флеша) дали няма да са проблем, защото трябва да се случат в стартъп тайма на устройството, незабележимо за юзера.... уж.

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/