_Алекс
Aug 30 2007, 06:11
AT45DB выбор размера страницы 256 и 264.
Мне удобней работать когда размер страницы равен 256 байт, слышал что перейти с размера страницы 264 на 256 можно только один раз, это действительно так? Какие преимущества у 264 понять не могу, команды сложней из за выравнивания (лишний бит появляется).
Цитата(_Алекс @ Aug 30 2007, 10:11)

AT45DB выбор размера страницы 256 и 264.
Мне удобней работать когда размер страницы равен 256 байт, слышал что перейти с размера страницы 264 на 256 можно только один раз, это действительно так? Какие преимущества у 264 понять не могу, команды сложней из за выравнивания (лишний бит появляется).
Ничо не понял. Какой ещо выбор? Мож я от жизни таво?..
Не хочешь 264 писать, пиши по 256. Какая разница. Можешь и по 128 на страницу. Никто ругать не будет.
Где ты такое вычитал? Просто учитывай, что МАКСИМАЛЬНЫЙ размер страницы - 264 байта, а сколько ты туда запишешь - 264, 256, или всего один байт - дело абсолютно хозяйское. Пишешь в буфер страницы столько, сколько тебе нужно, и даешь команду записи буфера во флэш. Точно так же и читаешь - сколько нужно, а не сколько есть.
В тетрадке есть лист и поля - тебя же никто не заставляет на полях писать в принудительном порядке, верно? Так и а AT45DB, эти "лишние" 8 байт и есть "поля", хочешь - пишешь на них, не хочешь - не пишешь. А про возможность выбора размера страницы, да еще и необратимую - первый раз слышу, правда, давно с ними не работал и могло что-нибудь добавиться - но вряд ли
Есть такая фича в новых кристаллах с буквой "D" на конце,
Цитата из даташита на AT45DB181D
“Power of 2” binary page size Configuration Register is a user-programmable nonvolatile register
that allows the page size of the main memory to be configured for binary page size
(512 bytes) or standard DataFlash page size (528 bytes). The “power of 2” page size is a
One-time Programmable (OTP) register and once the device is configured for “power of
2” page size, it cannot be reconfigured again.
И дейтвительно это однократно программируется, а сделано это для совместимости с картами SD( или ММС, короче с теми у которых есть режим SPI), у которых размер страниц кратен степени "2"
_Алекс
Aug 30 2007, 07:19
Спасибо понятно микросхема у меня AT45DB081D, нужно ли перезаписывать страницы для реанимации ячеек или можно не перезаписывать.
sensor_ua
Aug 30 2007, 07:41
У кристаллов с буквой "D" при смене размера страницы заодно меняется и способ адресации. Что касается уже записанных данных, то, ИМХО, даже если где-то пишут, что с данными и их порядком ничего не случается, игры со сменой адресации на ходу делать не стоит
Цитата
Спасибо понятно микросхема у меня AT45DB081D, нужно ли перезаписывать страницы для реанимации ячеек или можно не перезаписывать.
У них у всех надо каждые 10000 операций записи на каждую страницу делать перезапись, а конкретно это надо смотреть по тому как используются страницы, т.е. как часто в отдельную страницу производится запись и решать, хватит ли ресурса 10000 на все время жизни устройства или делать перезапись каждый раз, чуть-чуть теряя по времени.
Цитата
У кристаллов с буквой "D" при смене размера страницы заодно меняется и способ адресации. Что касается уже записанных данных, то, ИМХО, даже если где-то пишут, что с данными и их порядком ничего не случается, игры со сменой адресации на ходу делать не стоит
Это можно сделать всего один раз и вернуть обратно будет нельзя, и уж конечно не находу надо это делать.
Действительно, отстал от жизни...Давно не брал в руки шашек. ;О) Но сказанное остаётся в силе.
Цитата(GDI @ Aug 30 2007, 11:48)

У них у всех надо каждые 10000 операций записи на каждую страницу делать перезапись, а конкретно это надо смотреть по тому как используются страницы, т.е. как часто в отдельную страницу производится запись и решать, хватит ли ресурса 10000 на все время жизни устройства или делать перезапись каждый раз, чуть-чуть теряя по времени.
Это можно сделать всего один раз и вернуть обратно будет нельзя, и уж конечно не находу надо это делать.
Не совсем о том речь. У Датафлэшей есть фича - могут портиться датые при записи в соседние страниццы. Поэтому, рекомендуется перезаписывать ВСЁ нужное через каждые 10 000 записей вообще. Реально это мало кто делает, потому как 90% применений ДФ - даталоггеры, где инфа перезаписывается поверху гораздо раньше.
digital
Nov 5 2007, 19:17
Цитата
И дейтвительно это однократно программируется, а сделано это для совместимости с картами SD( или ММС, короче с теми у которых есть режим SPI), у которых размер страниц кратен степени "2"
у SD карт как раз и используется размер 264, в лишних байтах храниться
элементы FAT
Цитата(=AVR= @ Aug 30 2007, 12:28)

Где ты такое вычитал? Просто учитывай, что МАКСИМАЛЬНЫЙ размер страницы - 264 байта, а сколько ты туда запишешь - 264, 256, или всего один байт - дело абсолютно хозяйское. Пишешь в буфер страницы столько, сколько тебе нужно, и даешь команду записи буфера во флэш. Точно так же и читаешь - сколько нужно, а не сколько есть.
В весьма удобном режиме непрерывного чтения, когда не приходится думать о страницах, нужно будет запускать команду каждые 256 байт, иначе прочитаешь не то что надо.
rezident
Nov 6 2007, 19:24
Цитата(Itch @ Nov 6 2007, 11:59)

В весьма удобном режиме непрерывного чтения, когда не приходится думать о страницах, нужно будет запускать команду каждые 256 байт, иначе прочитаешь не то что надо.
Какую-то ерунду вы написали. При записи конечно же нужно выравнивать данные на (известный) размер страницы. Но используя команду
Continuous Array Read, можно прочитать
всю DataFlash за один "присест". При выполнении этой команды DataFlash как "гладкая" память представляется, без разбиения на страницы.
Цитата(rezident @ Nov 7 2007, 01:24)

Какую-то ерунду вы написали. При записи конечно же нужно выравнивать данные на (известный) размер страницы. Но используя команду Continuous Array Read, можно прочитать всю DataFlash за один "присест". При выполнении этой команды DataFlash как "гладкая" память представляется, без разбиения на страницы.
Речь идет о том, что человек ( =AVR= ) предлагает писать в AT45DBxxxB не полные страницы по 264 байта, а только 256. Т.о. если потом применить
Continuous Array Read и попробовать прочитать
всю флеш, то получим фигню, а не данные, т.к. после каждых 256 байт данных будет 8 байт мусора.
IgorKossak
Nov 7 2007, 08:28
Цитата(Itch @ Nov 6 2007, 08:59)

В весьма удобном режиме непрерывного чтения, когда не приходится думать о страницах, нужно будет запускать команду каждые 256 байт, иначе прочитаешь не то что надо.
Или знать, что после полезных 256 байт идут 8 мусорных байт, которые следует проигнорировать.
OLEG_BOS
Dec 8 2007, 10:03
Интересный факт ! Смена размера страницы фактически происходит только после того, как после завершения команды смены размера страницы - "Power of Two Page Size", происходит выключение и обратное включение питания микросхемы. Тоесть нужен аппаратный метод для перехода к новому размеру страницы, названый в документации как "power cycle" :
"The device must be power cycled after the completion of the program cycle to set the ”power of 2” page size."Программый метод командами: "Deep Power-down" и "Resume from Deep Power-down" - не приводит к смене размера страницы. "Экcперимент" был проведен на трех микросхемах AT45DBxxD - все они меняли размер страницы только после "power cycle".
Интересно, это у меня только так, или может у кого-то получается только програмным путем сменить размер страницы ?

Поделитесь, пожалуйста, опытом !
А что, так сложно передернуть питание устройства один единственный раз? Ведь все равно перед тем, как изделие поедет к заказчику, его надо будет хотябы прошить...
OLEG_BOS
Dec 8 2007, 10:37
Цитата(Itch @ Dec 8 2007, 14:19)

А что, так сложно передернуть питание устройства один единственный раз? Ведь все равно перед тем, как изделие поедет к заказчику, его надо будет хотябы прошить...
Именно так и придется делать !

... Просто было трудно поверить в то что без "power cycle" не обойтись... Тут дело в другом : если по каким -то причинам необходима замена AT45DB, например при ремонте изделия, то получается нужно предусмотреть в программе проверку на размер страницы в AT45DB и соответвенно выполнять процедуру ее смены - что не представляет сложности... Но нужно также писать в инструкции по ремонту для человека, который будет производить замену AT45DB, что ему нужно будет выполнять несложное действие с "передергиванием питания "

...
Цитата(OLEG_BOS @ Dec 8 2007, 12:37)

Именно так и придется делать !

... Просто было трудно поверить в то что без "power cycle" не обойтись... Тут дело в другом : если по каким -то причинам необходима замена AT45DB, например при ремонте изделия, то получается нужно предусмотреть в программе проверку на размер страницы в AT45DB и соответвенно выполнять процедуру ее смены - что не представляет сложности... Но нужно также писать в инструкции по ремонту для человека, который будет производить замену AT45DB, что ему нужно будет выполнять несложное действие с "передергиванием питания "

...
Олег,
Я использую AT45DB041D в изделии совместно с ATMEGA128 и для моих целей удобнее использовать 256-байтный блок.
Функция включения 256-байтного режима вызывается из функции начальных установок. Последняя, в свою очередь, запускается во время первого включения изделия (как только MEGA оказывается запрограммированной) или из меню "Сбросить все настройки".
Коллегу, который занимается ремонтом, я прошу после его окончания делать сброс настроек, поскольку отремонтированная плата может достаться другому клиенту (которому знать предыдущие настройки - противопоказано).
В итоге мне не нужно заморачиваться дополнительными функциями проверки, а коллеге - не нужно знать об особенностях микросхемы памяти. :-)
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.