AT45DB081B - это питаемая от 2.5 или 2.7 В флэш-память с
последовательным интерфейсом, идеально подходящая для широкого
разнообразия приложений хранения оцифрованных голоса, изображений,
программного кода и данных. Её 8 650 752 битов памяти организованы в
виде 4096 страниц по 264 байта каждая. В дополнение к основной памяти
AT45DB081B также имеет два буфера данных SRAM (СОЗУ) по 264 байта
каждый. Буферы позволяют принимать данные, в то время как страница в
основной памяти перезаписывается, что подобно записи непрерывного потока
данных.
Эмуляция EEPROM (возможность изменения бита или байта) легко
обрабатывается самодостаточной трёхшаговой операцией
Чтения-Модификации-Записи. В отличие от обычной флэш-памяти, доступ к
которой осуществляется случайным образом с помощью многочисленных
адресных линий и параллельного интерфейса, DataFlash использует
последовательный интерфейс SPI для последовательного доступа к данным.
DataFlash поддерживает режимы SPI 0 и 3. Простой последовательный
интерфейс облегчает размещение аппаратных средств на печатной плате,
увеличивает надёжность системы, минимизирует помехи переключения и
уменьшает размер корпуса и количество активных выводов. Устройство
оптимизировано для использования во многих коммерческих и промышленных
приложениях, в которых существенны высокая плотность монтажа, небольшое
число выводов, низкое напряжение и низкое энергопотребление. Устройство
работает на тактовых частотах до 20 МГц при типичном потреблении тока
при активном чтении 4 мА.
Для упрощения внутрисхемной перезаписи, AT45DB081B не требуется
высоких входных напряжений для записи. Устройство работает от одного
источника питания с напряжением 2.5 - 3.6 В или 2.7 - 3.6 В и для
операций записи, и для операций чтения. AT45DB081В включается с помощью
вывода выбора микросхемы (), а доступ к ней осуществляется через трёхпроводной интерфейс, состоящий из линий последовательного входа (Serial Input - SI), последовательного выхода (Serial Output - SO) и последовательной синхронизации (Serial Clock - SCK).
Все циклы записи самотактирующиеся, и перед записью не требуется отдельный цикл стирания.
Кода устройство отправляется из Atmel, самая старшая страница
массива памяти может быть не стёртой. Другими словами, содержимое
последней страницы может быть не заполнено FFh.
Название | Назначение |
| Выбор микросхемы |
SCK | Последовательная синхронизация |
SI | Последовательный вход |
SO | Последовательный выход |
| Вывод аппаратной защиты от записи |
| Сброс микросхемы |
| Готов/Занят |
Чтобы обеспечить наилучшую гибкость, массив памяти AT45DB081В делится
на три уровня детализации, состоящие из секторов, блоков и страниц.
"Схема организации памяти" показывает схему организации каждого уровня и
детализирует количество страниц на сектор и блок. Все операции записи в
DataFlash выполняются постранично, однако дополнительная операция
стирания может выполняться на блочном или на постраничном уровне.
Работа устройства управляется командами, поступающими от главного
процессора. Список команд и их соответствующие коды операций приведены в
Таблицах 1 - 4. Правильная команда начинается по заднему фронту сигнала ,
за которым следует соответствующий 8-битный код операции и адресная
ячейка требуемого буфера или основной памяти. Пока на выводе
низкий уровень, переключение вывода SCK управляет загрузкой кода
операции и адресной ячейки нужного буфера или основной памяти через
вывод SI (последовательный вход). Все команды, адреса и данные
передаются, начиная со старшего бита.
В данном техническом описании адресация буфера приводится с использованием терминологии BFA8 - BFA0
для обозначения, что требуется девять адресных битов для указания
адреса байта внутри буфера. Адресация основной памяти приводится с
использованием терминологии PA11 - РА0 и BA8 - BA0, где
PA11 - РА0 обозначает 12 адресных битов, требующихся для указания адреса
страницы, а BA8 - BA0 обозначает девять адресных битов, требующихся для
указания адреса байта внутри страницы.
Задав соответствующий код операции, можно считать данные из основной
памяти или из одного из двух буферов данных. DataFlash поддерживает две
категории режимов чтения по отношению к сигналу SCK. Различия между
режимами заключаются в отношении к неактивному состоянию сигнала SCK , а
также в том, по какому тактовому циклу начинают выдаваться данные. Две
категории, состоящие в целом из четырёх режимов, определяются как низкий уровень полярности неактивного состояния тактового импульса (Inactive Clock Polarity Low) или высокий уровень полярности неактивного состояния тактового импульса (Inactive Clock Polarity High) и режим SPI 0 или режим SPI 3.
Отдельный код операции (полный список команд чтения см. в Таблице 1)
используется для выбора категории, которая будет использована для
чтения. Для более подробной информация о последовательностях тактовых
циклов для каждого режима см. временные диаграммы в разделе "Детальная побитовая синхронизация чтения" в этом техническом описании.
(Continuous Array Read)
Задав начальный стартовый адрес массива основной памяти, можно использовать команду непрерывного чтения массива,
чтобы последовательно считать непрерывный поток данных из устройства,
просто подавая тактовый сигнал; никакой дополнительной адресной
информации или управляющих сигналов не требуется. DataFlash имеет
внутренний счётчик адреса, который будет автоматически
инкрементироваться в каждом тактовом цикле, позволяя использовать одну
непрерывную операцию чтения без необходимости передачи дополнительных
адресных последовательностей. Чтобы выполнить непрерывное чтение,
необходимо передать в устройство код операции 68h или E8h,
сопровождаемый 24 адресными битами и 32 незначащими битами. Первые три
бита 24-битной адресной последовательности зарезервированы для
совместимости снизу вверх и сверху вниз с устройствами с большей или
меньшей плотностью (см. примечания под схемой "Командная последовательность для операций чтения/записи").
Следующие 12 адресных битов (PA11 - РА0) определяют, которую страницу
массива основной памяти нужно прочитать, а последние девять битов (BA8 -
BA0) 24-битной адресной последовательности задают стартовый адрес байта
внутри страницы. 32 незначащих бита, следующие за 24 адресными битами,
необходимы для инициирования операции чтения. Следующие за 32
незначащими битами дополнительные тактовые импульсы на выводе SCK
повлекут выдачу последовательных данных на вывод SO (последовательный
выход).
В течение загрузки кода операции, адресных битов и незначащих битов, а также чтения данных, на выводе
должен сохраняться низкий уровень. Если во время непрерывного чтения
массива достигается конец страницы основной памяти, устройство продолжит
чтение с начала следующей страницы без возникновения задержек
при пересечении границы страницы (переход с конца одной страницы на
начало следующей). Когда считан последний бит массива основной памяти,
устройство продолжит чтение с начала первой страницы памяти. Как и
в случае пересечения границ страницы, при переходе с конца массива
памяти на его начало задержек не возникает.
Переход с низкого уровня на высокий на выводе
прервёт операцию чтения и переведёт вывод SO в высокоимпедансное
состояние. Максимальная частота SCK, допустимая для непрерывного чтения
массива, определяется характеристикой . Непрерывное чтение массива не затрагивает буферы данных, оставляя их содержимое без изменений.
(Main Memory Page Read)
Чтение страницы основной памяти позволяет пользователю считывать
данные напрямую из одной из 4096 страниц основной памяти в обход обоих
буферов данных, оставляя их содержимое без изменений. Чтобы начать
чтение страницы, нужно передать в устройство код операции 52h или D2h,
сопровождаемый 24 адресными битами и 32 незначащими битами. Первые три
бита 24-битной адресной последовательности являются зарезервированными,
следующие 12 адресных битов (PA11 - РА0) задают адрес страницы, а
следующие за ними девять адресных битов (BA8 - BA0) задают начальный
адрес байта внутри страницы. Следующие за 24-битной адресной
последовательностью 32 незначащих бита передаются для инициации операции
чтения. Следующие за 32 незначащими битами дополнительные тактовые
импульсы на SCK повлекут выдачу последовательных данных на вывод SO. В
течение загрузки кода операции, адресных битов и незначащих битов, а
также чтения данных, на выводе
должен сохраняться низкий уровень. Если во время чтения страницы
основной памяти достигается конец страницы, устройство продолжит чтение с
начала этой же страницы. Переход с низкого уровня на высокий на выводе прервёт операцию чтения и переведёт вывод SO в высокоимпедансное состояние.
(Buffer Read)
Данные можно считать из одного из двух буферов, используя разные
коды операций для указания, из которого буфера будет выполняться чтение.
Код операции 54h или D4h используется для чтения данных из буфера 1, а код операции 56h или D6h
- для чтения из буфера 2. Чтобы выполнить чтение буфера, нужно передать
в устройство 8 битов кода операции, за которыми следуют 15 незначащих
битов, девять адресных битов и восемь незначащих битов. Поскольку размер
буфера составляет 264 байта, то для указания адреса первого байта
считываемых из буфера данных требуются девять адресных битов (BFA8 -
BFA0). В течение загрузки кода операции, адресных битов и незначащих
битов, а также чтения данных, на выводе
должен сохраняться низкий уровень. Когда достигается конец буфера,
устройство продолжает чтение с начала буфера. Переход с низкого уровня
на высокий на выводе прервёт операцию чтения и переведёт вывод SO в высокоимпедансное состояние.
(Status Register Read)
Регистр состояния можно использовать для определения состояния устройства "Готов/Занят" (Ready/Busy), результата операции сравнения страницы основной памяти с буфером или плотности устройства. Чтобы считать регистр состояния, нужно загрузить в устройство код операции 57h или D7h. После того как код операции загружен, восемь битов регистра состояния, начиная со старшего бита
(бит 7) будут выданы на вывод SO со следующими восемью тактовыми
циклами. Шесть старших битов регистра состояния будут содержать
информацию об устройстве, в то время как оставшиеся два младших бита
зарезервированы для будущего использования и будут иметь неопределённые
значения. После выдачи бита 0 регистра состояния, последовательность
будет повторяться, снова начинаясь с бита 7, до тех пор, пока на выводе
сохраняется низкий уровень, а на SCK подаются синхроимпульсы. Данные в
регистре состояния постоянно обновляются, так что каждая повторенная
последовательность будет выдавать новые данные.
Бит 7 | Бит 6 | Бит 5 | Бит 4 | Бит 3 | Бит 2 | Бит 1 | Бит 0 |
| COMP | 1 | 0 | 0 | 1 | X | X |
Состояние "Готов/Занят" индицируется битом 7 регистра состояния. Если
бит 7 равен "1", значит, устройство не занято и готово принять
следующую команду. Если бит 7 равен "0", значит, устройство находится в
занятом состоянии. Пользователь может непрерывно опрашивать бит 7
регистра состояния, остановив сигнал SCK на низком уровне сразу после
выдачи бита 7. Состояние бита 7 будет продолжать выдаваться на вывод SO,
и как только устройство освободится, состояние SO поменяется с 0 на 1.
Восемь операций могут заставить устройство пребывать в занятом
состоянии: передача страницы основной памяти в буфер, сравнение страницы
основной памяти с буфером, запись буфера в страницу основной памяти со
встроенным стиранием, запись буфера в страницу основной памяти без
встроенного стирания, стирание страницы, стирание блока, запись страницы
основной памяти и автоматическая перезапись страницы.
Результат новой операции сравнения страницы основной памяти с буфером
индицируется с помощью бита 6 регистра состояния. Если бит 6 равен "0",
значит, данные страницы основной памяти совпадают с данными в буфере.
Если бит 6 равен "1", значит, хотя бы один бит данных страницы основной
памяти отличается от данных в буфере.
Плотность устройства указывается битами 5, 4, 3 и 2 регистра
состояния. Для AT45DB081B эти четыре бита имеют значения 1, 0, 0 и 1
соответственно. Десятичное значение этих четырёх двоичных битов не
равняется плотности устройства; они представляют собой логический код,
относящийся к отличающимся плотностям устройств Serial DataFlash,
позволяя в целом 16 различных конфигураций плотности.
(Buffer Write)
Данные могут быть переданы с вывода SI в буфер 1 или буфер 2.
Чтобы загрузить данные в любой буфер, необходимо передать 8-битный код
операции, 84h для буфера 1 или 87h для буфера 2,
сопровождаемый 15 незначащими битами и девятью адресными битами (BFA8 -
BFA0). Девять адресных битов задают первый записываемый байт в буфере.
Данные поступают следом за адресными битами. Если достигается конец
буфера данных, устройство переходит на начало буфера. Данные продолжаю
загружаться в буфер пока на выводе не будет обнаружен переход с низкого уровня на высокий.
(Buffer to Main Memory Page Program with Built-in Erase)
Данные, записанные в буфер 1 или буфер 2, можно записать в
основную память. Чтобы начать операцию, необходимо передать 8-битный код
операции, 83h для буфера 1 или 86h для буфера 2, за
которым следуют три зарезервированных бита, 12 адресных битов (PA11 -
РА0), которые задают записываемую страницу в основной памяти, и девять
дополнительных незначащих битов. Когда на выводе
произойдёт переход с низкого уровня на высокий, микросхема сначала
полностью сотрёт указанную страницу основной памяти, а затем запишет в
неё данные, хранящиеся в буфере. И стирание, и запись страницы внутренне
самотактиуются и должны происходить не дольше максимального времени . В течение этого времени регистр состояния будет показывать, что микросхема занята.
(Buffer to Main Memory Page Program without Built-in Erase)
В ранее стёртую страницу внутри основной памяти можно записать
содержимое буфера 1 или буфера 2. Чтобы начать операцию, необходимо
передать 8-битный код операции, 88h для буфера 1 или 89h
для буфера 2, за которым следуют три зарезервированных бита, 12 адресных
битов (PA11 - РА0), которые задают записываемую страницу в основной
памяти, и девять дополнительных незначащих битов. Когда на выводе
произойдёт переход с низкого уровня на высокий, микросхема запишет
данные, хранящиеся в буфере, в указанную страницу. Необходимо, чтобы
записываемая страница была предварительно стёрта. Запись страницы
внутренне самотактируется и должна выполняться не дольше максимального
времени . В течение этого времени регистр состояния будет показывать, что микросхема занята.
Последовательные операции записи страницы без предварительного
стирания не рекомендуются. Другими словами, не рекомендуется изменение
байтов внутри страницы с "1" на "0" во время многократных операций
записи без стирания этой страницы.
(Page Erase)
Дополнительную команду стирания страницы можно
использовать для отдельного стирания любой страницы в массиве основной
памяти, позволяя последующее использование команды записи буфера в страницу основной памяти без встроенного стирания. Чтобы выполнить стирание страницы, в устройство необходимо загрузить код операции 81h,
за которым следуют три зарезервированных бита, 12 адресных битов (PA11 -
РА0) и девять незначащих битов. 12 адресных битов используются для
задания стираемой страницы массива памяти. Когда на выводе
произойдёт переход с низкого уровня на высокий, микросхема полностью
сотрёт выбранную страницу. Операция стирания внутренне самотактируется и
должна занимать не более максимума времени . В течение этого времени регистр состояния будет показывать, что микросхема занята.
(Block Erase)
За один раз можно стереть блок из восьми страниц, позволяя использовать команду записи буфера в страницу основной памяти без встроенного стирания, чтобы уменьшить время записи при записи в устройство больших объёмов данных. Чтобы выполнить стирание блока, в устройство нужно передать код операции 50h,
за которым следуют три зарезервированных бита, девять адресных битов
(PA11 - РА3) и 12 незначащих битов. Девять адресных битов используются
для задания стираемого блока из восьми страниц. Когда на выводе
произойдёт переход с низкого уровня на высокий, микросхема полностью
сотрёт выбранный блок из восьми страниц. Операция стирания внутренне
самотактируется и должна происходить не дольше максимального времени . В течение этого времени регистр состояния будет показывать, что микросхема занята.
PA11 | РА10 | PA9 | PA8 | PA7 | PA6 | PA5 | PA4 | РА3 | PA2 | PA1 | РА0 | Блок |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X | X | X | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | X | X | X | 1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | X | X | X | 2 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | X | X | X | 3 |
· | · | · | · | · | · | · | · | · | · | · | · | · |
· | · | · | · | · | · | · | · | · | · | · | · | · |
· | · | · | · | · | · | · | · | · | · | · | · | · |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | X | X | X | 508 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | X | X | X | 509 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | X | X | X | 510 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | X | X | X | 511 |
(Main Memory Page Program Through Buffer)
Эта операция является комбинацией операций записи буфера и записи буфера в страницу основной памяти со встроенным стиранием.
Сначала данные с вывода SI передаются в буфер 1 или буфер 2, а затем
записываются в указанную страницу в основной памяти. Чтобы инициировать
операцию, нужно передать 8-битный код операции, 82h для буфера 1 или 85h
для буфера 2, за которым следуют три зарезервированных бита и 21
адресный бит. 12 старших адресных битов (PA11 - РА0) задают страницу в
основной памяти, в которую будут записываться данные, а следующие девять
адресных битов (BFA8 - BFA0) выбирают первый записываемый байт в
буфере. После того, как все адресные биты получены, микросхема примет
данные с вывода SI и сохранит в указанный буфер данных. Если достигается
конец буфера, устройство переходит на начало буфера. Когда на выводе
произойдёт переход с низкого уровня на высокий, микросхема сначала
полностью сотрёт выбранную страницу основной памяти, а затем запишет в
неё данные, хранящиеся в буфере. И стирание, и запись страницы внутренне
самотактируются в должны происходить не дольше максимального времени . В течение этого времени регистр состояния будет показывать, что микросхема занята.
(Main Memory Page То Buffer Transfer)
Можно передать страницу данных из основной памяти в буфер 1 или
буфер 2. Чтобы начать операцию, нужно передать 8-битный код операции, 53h для буфера 1 или 55h
для буфера 2, за которым следуют три зарезервированных бита, 12
адресных битов (PA11 - PA0), которые задают передаваемую страницу в
основной памяти, и девять незначащих битов. На выводе
должен сохраняться низкий уровень во время переключения вывода SCK для
загрузки кода операции, адресных битов и незначащих битов с вывода SI.
Передача страницы данных из основной памяти в буфер начнется, как только
вывод перейдёт с низкого уровня на высокий. Во время передачи страницы данных ( ), можно считывать регистр состояния, чтобы определить, завершилась передача или нет.
(Main Memory Page To Buffer Compare)
Страницу данных в основной памяти можно сравнить с данными в
буфере 1 или буфере 2. Чтобы инициировать эту операцию, нужно передать
8-битный код операции, 60h для буфера 1 или 61h для буфера
2, сопровождаемый 24 адресными битами, состоящими из трёх
зарезервированных битов, 12 адресных битов (PA11 - PA0), задающих
страницу основной памяти, которая будет сравниваться с буфером, и девяти
незначащих битов. На выводе
должен сохраняться низкий уровень во время переключения вывода SCK для
загрузки кода операции, адресных битов и незначащих битов с вывода SI.
По переходу с низкого уровня на высокий на выводе ,
264 байта в выбранной странице основной памяти будут сравнены с 264
байтами в буфере 1 или буфере 2. В течение этого времени (
) регистр состояния будет показывать, что микросхема занята. По
завершении операции в бит 6 регистра состояния будет загружен результат
сравнения.
(Auto Page Rewrite)
Этот режим нужен, только если множество байтов внутри страницы
или множество страниц данных изменяются случайным способом. Этот режим
представляет собой комбинацию двух операций: передача страницы основной памяти в буфер и запись буфера в страницу основной памяти со встроенным стиранием.
Страница данных сначала передаётся из основной памяти в буфер 1 или
буфер 2, а затем те же самые данные (из буфера 1 или буфера 2)
записываются обратно в эту же (исходную) страницу. Чтобы начать операцию
перезаписи, нужно передать 8-битный код операции, 58h для буфера 1 или 59h
для буфера 2, в сопровождении трёх зарезервированных битов, 12 адресных
битов (PA11 - PA0), которые задают перезаписываемую страницу основной
памяти, и девяти дополнительных незначащих битов. Когда на выводе
произойдёт переход с низкого уровня на высокий, микросхема сначала
передаст данные из страницы основной памяти в буфер, а затем запишет
данные из буфера обратно в ту же самую страницу. Операция внутренне
самотактируется и должна происходит не дольше максимума времени . В течение этого времени регистр состояния будет показывать, что микросхема занята.
Если сектор записывается или перезаписывается последовательно постранично, тогда рекомендуется алгоритм записи, показанный на Рис. 1.
В ином случае, если множество байтов в странице или несколько страниц в
секторе записываются случайным образом, рекомендуется алгоритм записи,
показанный на Рис. 2. Каждая страница внутри сектора должна
обновляться/перезаписываться по крайней мере 1 раз за каждые 10 000
накопленных операций стирания/программирования страниц в секторе.
Описанные режимы можно разделить на две группы - режимы, которые
используют массив флэш-памяти (Группа А), и режимы, которые не
используют массив флэш-памяти (Группа Б).
Группа А включает следующие режимы:
1) Чтение страницы основной памяти
2) Передача страницы основной памяти в буфер 1 (или 2)
3) Сравнение страницы основной памяти с буфером 1 (или 2)
4) Запись буфера 1 (или 2) в страницу основной памяти со встроенным стиранием
5) Запись буфера 1 (или 2) в страницу основной памяти без встроенного стирания
6) Стирание страницы
7) Стирание блока
8) Запись страницы основной памяти через буфер
9) Автоматическая перезапись страницы
Группа Б включает следующие режимы:
1) Чтение буфера 1 (или 2)
2) Запись буфера 1 (или 2)
3) Чтение регистра состояния
Если режим из группы А выполняется (не завершён полностью), то другой
режимы из группы А запустить нельзя. Однако в течение времени, когда
выполняется режим из группы А, можно запускать режимы из группы Б. Это
даёт последовательной DataFlash возможность обеспечить фактически
непрерывный поток данных. Пока данные записываются в основную память из
буфера 1, можно загрузить данные в буфер 2 (или наоборот). См. более
подробную информацию в примере применения AN-4 - "Using Atmel's Serial DataFlash" ("Использование последовательной DataFlash от Atmel").
(Serial Input - SI)
Вывод SI - это исключительно входной вывод, используется для
перемещения данных в устройство. Вывод SI используется для всех входящих
данных, включая коды операций и адресные последовательности.
(Serial Output - SO)
Вывод SO является только выходным и используется для перемещения данных из устройства.
(Serial Clock - SCK)
Вывод SCK является только входным и используется для управления
потоком данных в устройство и из него. Данные всегда передаются в
устройство по переднему фронту SCK и выдаются из устройства по заднему
фронту SCK.
(Chip Select - )
DataFlash выбрана, когда на выводе
низкий уровень. Когда устройство не выбрано, данные не будут
приниматься по выводу SI, а вывод SO будет оставаться в
высокоимпедансном состоянии. Переход с высокого уровня на низкий на
выводе необходим, чтобы начать работу, а переход с низкого на высокий на выводе требуется, чтобы закончить работу.
(Write Protect - )
Если на выводе
сохраняется низкий уровень, первые 256 страниц основной памяти
перезаписать нельзя. Единственный способ перезаписать первые 256 страниц
- сначала подать на вывод защиты от записи высокий уровень, а затем
использовать команды записи, приведённые выше. Если этот вывод и
свойство не используются, рекомендуется внешне притянуть вывод к высокому уровню.
(Reset - )
Низкий уровень на выводе сброса ()
прервёт выполняемую операцию и сбросит внутренний конечный автомат в
состояние простоя. Устройство будет оставаться в состоянии сброса
столько же, сколько на выводе присутствует низкий уровень. Нормальная работа сможет возобновиться, как только на вывод будет возвращён высокий уровень.
Устройство имеет внутреннюю схему сброса по включению питания, поэтому не имеется никаких ограничений на вывод во время последовательностей включения питания. Если этот вывод и свойство не используются, рекомендуется вывод внешне притянуть к высокому уровню.
(Ready/Busy - )
Этот выходной вывод с открытым стоком будет устанавливаться в
низкий уровень, когда устройство занято выполнением внутренне
самотактируемой операции. Этот вывод, обычно находящийся в состоянии
высокого уровня (через внешний подтягивающий резистор номиналом 1 КОм),
будет притягиваться к низкому уровню во время операций записи, сравнения
и передачи станицы в буфер.
Состояние занятости указывает, что массив флэш-памяти и один из
буферов недоступны, но, тем не менее, можно выполнять операции чтения и
записи над другим буфером.
Когда питание впервые подаётся на устройство или когда оно
возвращается из состояния сброса, устройство по умолчанию
устанавливается в режим SPI 3. Кроме того, вывод SO будет в
высокоимпедансном состоянии, и потребуется переход с высокого уровня на
низкий на выводе , чтобы запустить допустимую команду. Режим SPI будет автоматически выбираться по каждому заднему фронту сигнала выборкой неактивного состояния синхроимпульса. После того как питание подано, и на VСС
достигнуто минимальное указанное в техническом описании значение,
система должна подождать 20 мс, перед тем как начнётся рабочий режим.
Таблица 1. Команды чтения
Команда | Режим SCK | Код операции |
Непрерывное чтение массива | Высокий или низкий уровень полярности неактивного состояния синхроимпульса | 68h |
Режим SPI 0 или 3 | E8h |
Чтение страницы основной памяти | Высокий или низкий уровень полярности неактивного состояния синхроимпульса | 52h |
Режим SPI 0 или 3 | D2h |
Чтение буфера 1 | Высокий или низкий уровень полярности неактивного состояния синхроимпульса | 54h |
Режим SPI 0 или 3 | D4h |
Чтение буфера 2 | Высокий или низкий уровень полярности неактивного состояния синхроимпульса | 56h |
Режим SPI 0 или 3 | D6h |
Чтение регистра состояния | Высокий или низкий уровень полярности неактивного состояния синхроимпульса | 57h |
Режим SPI 0 или 3 | D7h |
Таблица 2. Команды записи и стирания
Команда | Режим SCK | Код операции |
Запись буфера 1 | Любой | 84h |
Запись буфера 2 | Любой | 87h |
Запись буфера 1 в страницу основной памяти со встроенным стиранием | Любой | 83h |
Запись буфера 2 в страницу основной памяти со встроенным стиранием | Любой | 86h |
Запись буфера 1 в страницу основной памяти без встроенного стирания | Любой | 88h |
Запись буфера 2 в страницу основной памяти без встроенного стирания | Любой | 89h |
Стирание страницы | Любой | 81h |
Стирание блока | Любой | 50h |
Запись страницы основной памяти через буфер 1 | Любой | 82h |
Запись страницы основной памяти через буфер 2 | Любой | 85h |
Таблица 3. Дополнительные команды
Команда | Режим SCK | Код операции |
Передача страницы основной памяти в буфер 1 | Любой | 53h |
Передача страницы основной памяти в буфер 2 | Любой | 55h |
Сравнение страницы основной памяти с буфером 1 | Любой | 60h |
Сравнение страницы основной памяти с буфером 2 | Любой | 61h |
Автоматическая перезапись страницы через буфер 1 | Любой | 58h |
Автоматическая перезапись страницы через буфер 2 | Любой | 59h |
Примечание: в Таблицах 2 и 3 обозначение режима
SCK "Любой" означает любой из четырёх режимов работы (низкий уровень
полярности неактивного состояния синхроимпульса, высокий уровень
полярности неактивного состояния синхроимпульса, режим SPI 0 или режим
SPI 3).
Таблица 4. Побитовая детализация адресной последовательности
Примечание:
r = зарезервированный бит
P = бит адреса страницы
B = бит адреса байта страницы/буфера
x = незначащий бит
Рабочая температура | от -55 °C до +125 °C |
Температура хранения | от -65 °C до +150 °C |
Все входные напряжения (включая неиспользуемые выводы) по отношению к общему минусу | от -0.6 В до +6.25 В |
Все выходные напряжения по отношению к общему минусу | от -0.6 В до VСС + 0.6 В |
*Примечание: нагрузки, превышающие указанные в "Абсолютных
максимальных значениях" могут привести к неустранимому повреждению
устройства. Это исключительно стрессовые значения, и функциональная
работа устройства в этих или любых других условиях, за пределами
указанных в рабочих разделах этой спецификации, не подразумевается.
Эксплуатация устройства в условиях абсолютных максимальных значений в
течение длительного периода может повлиять на надёжность устройства.
| AT45DB081В (Версия с питанием от 2.5 В) | AT45DB081В |
Рабочая температура (корпус) | Коммерческий | от 0 °C до 70 °C | от 0 °C до 70 °C |
Промышленный | - | от -40 °C до 85 °C |
Питающее напряжение VСС (1) | от 2.5 В до 3.6 В | от 2.7 В до 3.6 В |
Примечание:
1. После того как подано питание, и VСС достигло минимального
указанного в техническом описании значения, система должна подождать 20
мс перед тем как запустится рабочий режим.
Примечание:
1. ICC1 во время чтения буфера имеет максимальное значение 20 мА.
Ниже показаны две различные временные диаграммы. Временная диаграмма 1 показывает сигнал SCK, установленный в низкий уровень, когда на происходит переход с высокого уровня на низкий, а временная диаграмма 2 показывает сигнал SCK, установленный в высокий уровень, когда на
происходит переход с высокого уровня на низкий. Обе временные диаграммы
показывают действительные временные диаграммы. Времена установки и
удержания для сигнала SI указаны по отношению к переходу с низкого
уровня на высокий сигнала SCK.
Временная диаграмма 1 показывает синхронизацию, также совместимую
с режимом SPI 0, а временная диаграмма 2 показывает синхронизацию,
также совместимую и с режимом SPI 3.
Временная диаграмма 1. Низкий уровень полярности неактивного состояния синхроимпульса и режим SPI 3.
Временная диаграмма 2. Высокий уровень полярности неактивного состояния синхроимпульса и режим SPI 3.
Замечание: Сигнал должен быть в состоянии высокого уровня, прежде чем сбрасывать сигнал .
Примечания:
1) биты, обозначенные как "r", зарезервированы для больших плотностей.
2) рекомендуется в качестве "r" использовать логический "0" для плотностей 8М и меньше.
3) для плотностей, больших 8 мегабит, биты "r" становятся старшими битами адреса страницы для соответствующей плотности.
Следующая блок-схема и временные диаграммы показывают различные доступные последовательности записи.
Запись страницы основной памяти через буфер:
Запись буфера:
Запись буфера в страницу основной памяти (данные из буфера записываются в страницу флэш-памяти):
Каждый переход представляет 8 битов и 8 тактовых циклов | | | n = первый читаемый байт n+1 = второй читаемый байт |
Следующая блок-схема и временные диаграммы показывают различные доступные последовательности чтения.
Чтение страницы основной памяти:
Передача страницы основной памяти в буфер (данные из страницы флэш-памяти считываются в буфер):
Чтение буфера:
Каждый переход представляет 8 битов и 8 тактовых циклов | | | n = первый читаемый байт n+1 = второй читаемый байт |
Последовательное чтение массива (код операции: 68h):
Чтение страницы основной памяти (код операции: 52h):
Чтение буфера (код операции: 54h или 56h):
Чтение регистра состояния (код операции: 57h):
Последовательное чтение массива (код операции: 68h):
Чтение страницы основной памяти (код операции: 52h):
Чтение буфера (код операции: 54h или 56h):
Чтение регистра состояния (код операции: 57h):
Последовательное чтение массива (код операции: E8h):
Чтение страницы основной памяти (код операции: D2h):
Чтение буфера (код операции: D4h или D6h):
Чтение регистра состояния (код операции: D7h):
Последовательное чтение массива (код операции: E8h):
Чтение страницы основной памяти (код операции: D2h):
Чтение буфера (код операции: D4h или D6h):
Чтение регистра состояния (код операции: D7h):
Рис. 1. Алгоритм для последовательной записи или перезаписи всего массива
Замечания:
1) Этот тип алгоритма используется для приложений, в которых весь
массив записывается последовательно, то есть массив заполняется
страница за страницей.
2) Страницу можно записать, используя либо операцию записи
страницы основной памяти, либо операцию записи буфера, за которой
следует операция записи буфера в страницу основной памяти.
3) Алгоритм, приведённый выше, показывает запись одной страницы.
Алгоритм нужно повторить последовательно для каждой страницы внутри
всего массива.
Рис. 2 Алгоритм изменения данных случайным образом
Замечания:
1) Чтобы сохранить целостность данных, каждую страницу сектора
DataFlash нужно обновлять/перезаписывать по крайней мере один раз за
каждые 10 000 накопленных операция стирания/записи страницы.
2) Необходимо поддерживать указатель адреса страницы, чтобы
указывать, какая страница должна быть перезаписана. Команда
автоматической перезаписи страницы должна использовать адрес, заданный
указателем адреса страницы.
3) Для перезаписи частей флэш-памяти можно использовать другие
алгоритмы. Приложения с низким потреблением могут выбрать ожидание, пока
накопятся 10 000 операций стирания/записи, перед перезаписью всех
страниц сектора. См. более подробную информацию в примере применения
AN-4 ("Использование DataFlash с последовательным интерфейсом от
Atmel").
PA11 | PA10 | PA9 | PA8 | PA7 | PA6 | PA5 | PA4 | PA3 | PA2 - PA0 | Сектор |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X | 0 |
0 | 0 | 0 | 0 | X | X | X | X | X | X | 1 |
0 | 0 | 0 | 1 | X | X | X | X | X | X | 2 |
0 | 0 | 1 | X | X | X | X | X | X | X | 3 |
0 | 1 | 0 | X | X | X | X | X | X | X | 4 |
0 | 1 | 1 | X | X | X | X | X | X | X | 5 |
1 | 0 | 0 | X | X | X | X | X | X | X | 6 |
1 | 0 | 1 | X | X | X | X | X | X | X | 7 |
1 | 1 | 0 | X | X | X | X | X | X | X | 8 |
1 | 1 | 1 | X | X | X | X | X | X | X | 9 |
© PIClist-RUS (piclist.ru), 2007 г.
|