AT45DB161B: 16 мегабит DataFlash Печать
Добавил(а) microsin   

Микросхема AT45DB161B это FLASH-память с последовательным интерфейсом SPI, работающая от одного источника напряжения 3.3V, предназначенная для хранения прошивок firmware процессоров DSP, микросхем логики FPGA, записи цифрового звука [4] и для других целей как энергонезависимое устройство хранения данных среднего размера.

17301504 бит памяти AT45DB161B организованы в 4096 страниц по 528 байт каждая. В дополнение к основной энергонезависимой памяти, в AT45DB161B также есть два SRAM-буфера по 528 байт каждый. Эти буферы позволяют организовать непрерывный поток данных (двойная буферизация) для записи и чтения основной памяти (например, пока идет запись страницы в основную память из первого буфера, другой буфер наполняется данными через последовательный интерфейс). Бит эмуляции EEPROM (бит или байт) легко обрабатывается трехступенчатой операцией Read-Modify-Write. В отличие от обычных устройств памяти FLASH, доступ к которым осуществляется к произвольным ячейкам через параллельный интерфейс, микросхемы DataFlash использует последовательный интерфейс SPI для организации последовательного доступа к своим данным. DataFlash поддерживает SPI mode 0 и SPI mode 3. Этот простой последовательный интерфейс упрощает аппаратуру, повышает надежность системы, снижает помехи переходных процессов переключений логических уровней, уменьшает размеры корпусов и количество их выводов. Устройство AT45DB161B оптимизировано для коммерческих и индустриальных применений, где важны требования к низкому потреблению энергии и компактности.

Основные возможности и функции AT45DB161B:

• Может получать питание от одного напряжения в диапазоне 2.5V .. 3.6V или 2.7V .. 3.6V.
• Последовательный интерфейс подключения совместим со стандартным SPI [3].
• Тактовая частота последовательного интерфейса до 20 МГц.
• Работает на основе программирования страниц:
   – Один цикл перепрограммирования (Erase и Program).
   – 4096 страниц (по 528 байт на страницу) основной памяти.
• Поддерживаются блочные операции очистки и операции очистки страниц.
• Два буфера SRAM, каждый по 528-байт, что позволяет получать данные во время перепрограммирования основной энергонезависимой памяти.
• Поддержка непрерывного чтения всего массива памяти (Continuous Read Capability), что идеально подходит для приложений с затенением памяти кода.
• Низкое энергопотребление:
   – 4 мА в режиме активного чтения.
   – 2 мкА типичный ток потребления в ждущем режиме (CMOS Standby Current).
• Аппаратная функция защиты данных.
• 100% совместимость с AT45DB161.
• Входы, допускающие входные уровни 5V (5V-tolerant Inputs): выводы SI, SCK, ~CS, ~RESET и ~WP.
• Доступны варианты исполнения для коммерческих и индустриальных диапазонов температур.
• Есть экологичные варианты корпусов (Green Pb/Halide-free).

Чтобы упростить перепрограммирование в системе (принцип ISP), AT45DB161B спроектирована так, что не требует для этого отдельных высоких напряжений. Устройство работает от одного источника напряжения 2.5V .. 3.6V или 2.7V .. 3.6V, как для чтения, так и для записи. Работа AT45DB161B разрешается входом chip select (~CS), и к её данным осуществляется доступ по 3-проводному интерфейсу, состоящему из входа последовательных данных (Serial Input, SI), выхода последовательных данных (Serial Output, SO) и сигнала тактирования (Serial Clock, SCK).

Все внутренние циклы программирования тактируются автономно, перед программированием не требуется отдельный цикл очистки.

Когда устройство поставляется с завода (ранее Atmel, теперь Microchip), самая старшая страница массива памяти может быть не очищена. Другими словами, на последней странице не все байты могут содержать значения FFH.

[Выводы и цоколевка]

Вывод Функция
~CS Выборка микросхемы (Chip Select)
SCK Тактирование бит (Serial Clock)
SI Вход последовательных данных (Serial Input)
SO Выход последовательных данных (Serial Output)
~WP Вывод для аппаратного запрета записи (Hardware Page Write Protect)
~RESET Сброс
RDY/~BUSY Сигнал готовности/занятости микросхемы (Ready/Busy)

Варианты цоколевки корпусов:

AT45DB161B TSOP28
AT45DB161B SOIC28 AT45DB161B CBGA
AT45DB161B DataFlash card AT45DB161B CASON8

Блок-схема AT45DB161B:

AT45DB161B block diagram

Организация массива памяти. Для обеспечения оптимальной гибкости массив памяти AT45DB161B поделен на 3 уровня гранулярности, представляя секторы, блоки и страницы. Диаграмма памяти, показанная ниже для каждого уровня, содержит информацию по количестве станиц на сектор и блок. Все операции программирования DataFlash происходят на основе страниц (страница за страницей); однако оптимальные операции очистки могут выполняться на уровне блока или страницы.

AT45DB161B Memory Architecture Diagram

Прим. переводчика: не понял, что значит "Архитектура секторов", и как происходят операции записи сектора. Дело в том, что далее в описании нет никаких специальных команд, которые выполняют запись именно сектора, есть только запись страницы фиксированного размера 528 байт. Стирать также можно либо по одной странице, либо блоком по 8 страниц. Откуда взялись секторы?..

[Работа AT45DB161B]

Работа устройства управляется инструкциями от внешнего процессора (хост, главное устройство на шине SPI). Список инструкций и связанные с ними коды операций (opcode) содержатся в таблицах 1 .. 4. Допустимая инструкция начинается со спада лог. уровня сигнала ~CS, за которым идет соответствующий 8-битный opcode, и далее идет информация, адресующая желаемый буфер или ячейку основной памяти. Когда на выводе ~CS присутствует лог. 1, переключение уровня на выводе SCK управляет загрузкой бит opcode и последующей адресной информации через вывод SI (последовательный вход). Все инструкции, адреса и данные передаются старшим битом (most significant bit, MSB) вперед.

Адресация буфера, как она используется в этом даташите, использует терминологию BFA9 - BFA0, чтобы обозначить 10 бит адреса, показывающего адрес байта в буфере. Адресация основной памяти использует терминологию PA11 - PA0 и BA9 - BA0, где PA11 - PA0 обозначают 12 бит адреса для адреса страницы, и BA9 - BA0 обозначают 10 бит адреса, требуемые для указания на байт внутри страницы.

[Команды чтения]

Путем указания соответствующего opcode, данные могут быть прочитаны из основной памяти, или из одного из двух буферов данных. DataFlash поддерживает два режима чтения по отношению к сигналу SCK. Отличия между этими режимами относятся к неактивному состоянию SCK, а также по какому циклу тактов данные начнут поступать на выход. Эти две категории, состоящие из четырех режимов работы, определяются как Inactive Clock Polarity Low (неактивная полярность тактов в лог. 0) или Inactive Clock Polarity High (неактивная полярность тактов в лог. 1) и режимов 0 и 3 интерфейса SPI. Отдельный opcode (см. таблицу 1 для получения полного списка) используется для выбора категории чтения. См. диаграммы "Подробные диаграммы на уровне бит" во врезке "Диаграммы сигналов" далее для подробного описания последовательностей циклов тактов для каждого режима.

CONTINUOUS ARRAY READ: путем предоставления начального адреса в основном массиве памяти может использоваться команда Continuous Array Read для последовательного чтения непрерывного потока данных из устройства, с простым предоставлением сигнала тактов; при этом не требуется дополнительная информация или дополнительные управляющие сигналы. В DataFlash для этой цели есть внутренний счетчик адреса, который будет автоматически инкрементироваться на каждом цикле тактов, позволяя выполнять непрерывное чтение без необходимости дополнительной передачи последовательностей адресации. Для выполнения непрерывного чтения opcode 68H или E8H должен быть передан в устройство, за этим opcode должен идти 24-битный адрес и 32 ничего не значащих бита (don’t care bits). Первые два бита 24-битной последовательности адреса зарезервированы для расширения в будущем и поддержки обратной совместимости с устройствами DataFlash большей или меньшей емкости (см. примечания к диаграмме "Command Sequence for Read/Write Operations"). Следующие 12 бит адреса (PA11 - PA0) задают страницу памяти, которая должна быть прочитана, и последние 10 бит (BA9 - BA0) задают начальный адрес байта на этой странице. 32 don’t care бита, которые идут за 24 битами адреса, нужны для инициализации операции чтения. После этих 32 don’t care бит дополнительные тактовые импульсы на выводе SCK приведут к выводу последовательных данных через вывод SO (serial output).

Уровень на ~CS должен оставаться в лог. 0 во время загрузки opcode, бит адреса, бит don’t care и во время чтения бит данных. Когда достигнут конец страницы в основной памяти при выполнении операции Continuous Array Read, устройство продолжит чтение данных с начала следующей страницы памяти без задержек при пересечении границы страницы памяти (в момент завершения страницы и начале следующей). Когда последний бит в главной памяти прочитан, устройство продолжит чтение с начала первой страницы памяти. При этом также не будет никакой задержки при переходе от последнего бита последней страницы к первому биту первой страницы.

Переход от лог. 0 к лог. 1 на выводе ~CS прекратит операцию чтения и переведет вывод SO в третье (отключенное) состояние. Максимальная частота SCK, допустимая для операции Continuous Array Read, определяется параметром fCAR. Операция Continuous Array Read пропускает оба буфера данных, оставляя неизменным их содержимое.

MAIN MEMORY PAGE READ: команда Main Memory Page Read позволяет читать данные непосредственно из одной из 4096 страниц основной памяти, пропуская оба буфера данных и оставляя их содержимое без изменения. Чтобы начать чтение страницы, opcode 52H или D2H должен быть передан в устройство, за котором должен идти 24 бита адреса и 32 бита don’t care. Как и для операции Continuous Array Read, первые 2 бита 24-битного адреса зарезервированы, следующие 12 бит адреса (PA11 - PA0) задают адрес страницы, и следующие 10 бит адреса (BA9 - BA0) задают начальный байт в пределах этой страницы. 32 бита don’t care, которые идут за 24 битами адреса, посылаются для инициализации операции чтения. После 32 бит don’t care дополнительные импульсы SCK приведут к выводу последовательных данных через SO. Уровень ~CS должен оставаться в лог. 0 во время загрузки opcode, бит адреса, бит don’t care и во время чтения бит данных. Когда будет достигнут конец страницы в основной памяти при выполнении команды Main Memory Page Read, устройство продолжит чтение данных той же самой страницы от её начала. Переход уровня лог. 0 -> лог. 1 на выводе выборки ~CS прервет операцию чтения и переведет вывод SO в состояние высокого сопротивления (tri-state, третье, или отключенное состояние).

BUFFER READ: данные могут быть прочитаны из одного из двух буферов, для чего используются разные opcode, указывающие из какого буфера читать. Opcode 54H или D4H используются для чтения из буфера 1, и opcode 56H или D6H используются для чтения из буфера 2. Чтобы выполнить операцию Buffer Read, за 8 битами opcode должны идти 14 бит don’t care, 10 бит адреса и 8 бит don’t care. Поскольку размер буфера 528 байт, то нужны 10 бит адреса (BFA9 - BFA0) для указания первого байта данных в буфере. Уровень ~CS должен оставаться в лог. 0 во время загрузки opcode, бит адреса, бит don’t care и во время чтения бит данных. Когда достигнут конец буфера, устройство продолжит выдавать данные от его начала. при выполнении команды Main Memory Page Read, устройство продолжит чтение данных той же самой страницы от её начала. Переход уровня лог. 0 -> лог. 1 на выводе выборки ~CS прервет операцию чтения и переведет вывод SO в состояние высокого сопротивления (tri-state, третье, или отключенное состояние).

STATUS REGISTER READ: регистр состояния (status register) может использоваться для определения, занято ли устройство (Ready/Busy status), результат операции сравнения страницы основной памяти и буфера (Main Memory Page to Buffer Compare), или чтобы узнать плотность устройства. Для чтения регистра состояния должен быть послан код операции 57H или D7H. После того, как был вдвинут последний бит opcode, на следующих 8 циклах тактов SCK через выход SO будут выдвинуты 8 бит регистра состояния, начиная со старшего бита (MSB, бит 7). 5 самых старших бит регистра состояния содержат информацию об устройстве, в то время как остальные 2 младших бита зарезервированы для будущего использования, и их значения не определены. После того, как последний бит 0 регистра статуса был выдвинут, последовательность выдачи бит регистра состояния начнет циклически повторяться, начиная с бита 7 (пока ~CS остается в лог. 0 и пока поступают импульсы тактов SCK). Данные в регистре состояния постоянно обновляются, поэтому каждая повторяющаяся последовательность выдачи бит может содержать новые данные.

Формат регистра состояния:

   Бит 7       Бит 6       Бит 5       Бит 4       Бит 3       Бит 2       Бит 1       Бит 0   
RDY/~BUSY COMP 1 0 1 1 x x

Прим. переводчика: скорее всего здесь в формате регистра состояния допущена ошибка. Апноут "Using Atmel’s Serial DataFlash" (AN-4, Atmel_2001_doc0842.pdf) дает другую информацию, см. таблицы 4 и 5 этого апноута:

Таблица 4. Определение бит регистра состояния.

Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
RDY/~BUSY COMP Код плотности (емкости) устройства Зарезервировано для будущего использования

Таблица 5. Коды плотности устройства DataFlash.

Бит 5 Бит 4 Бит 3 Плотность устройства
0 0 0 512 килобит (64 килобайта)
0 0 1 1 мегабит (128 килобайт)
0 1 0 2 мегабита (256 килобайт)
0 1 1 4 мегабита (512 килобайт)
1 0 0 8 мегабит (1 мегабайт)
1 0 1 16 мегабит (2 мегабайта)
1 1 0 32 мегабита (4 мегабайта)
1 1 1 64 мегабита (8 мегабайт)

RDY/~BUSY. Состояние готовности/занятости (Ready/Busy, RDY/~BUSY) показывается битом 7 регистра состояния. Если бит 7 равен 1, то устройство не занято какой-либо внутренней операцией, и готово к приему новой команды. Если бит 7 равен 0, то устройство чем-то занято. Пользователь может постоянно опрашивать бит 7 регистра состояния, останавливая выдачу тактов SCK на низком уровне, как только выведен бит 7. Бит состояния 7 будет продолжать выводиться на SO, и как только устройство освободится, состояние SO поменяется с 0 на 1. Всего 8 операций могут перевести устройство в занятое состояние: Main Memory Page to Buffer Transfer, Main Memory Page to Buffer Compare, Buffer to Main Memory Page Program with Built-in Erase, Buffer to Main Memory Page Program without Built-in Erase, Page Erase, Block Erase, Main Memory Page Program и Auto Page Rewrite.

COMP. Результат самой последней операции Main Memory Page to Buffer Compare показывается состоянием бита 6 регистра состояния. Если этот бит равен 0, то данные в странице основной памяти совпадают с данными буфера. Если этот бит 6 равен 1, то как минимум один бит данных на странице основной памяти не совпадает с данными в буфере.

Плотность устройства закодирована битами 5, 4, 3 и 2 регистра состояния. Для AT45DB161B эти биты имеют значение 1, 0, 1 и 1 соответственно. Десятичное значение этих четырех бит не равно плотности устройства, они просто кодируют различные варианты плотности микросхем Serial DataFlash (четыре бита могут закодировать 16 разных вариантов конфигураций плотности).

[Команды программирования и очистки]

BUFFER WRITE: данные могут быть вдвинуты в вывод SI, чтобы затем попасть либо в буфер 1, либо в буфер 2. Чтобы загрузить данные в любой из этих буферов, должен быть послан 8-битный opcode 84H для буфера 1 или 87H для буфера 2, за которым должны идти 14 бит don’t care, и затем 10 бит адреса (BFA9 - BFA0). 10 бит адреса задают, какой из байт буфера будет записываться. За битами адреса передаются биты данных. Если достигнут конец буфера, то устройство будет продолжать циклически записывать данные от начала буфера. Данные будут продолжать загружаться в байты буфера, пока не произойдет переход 0 -> 1 на выводе ~CS.

BUFFER TO MAIN MEMORY PAGE PROGRAM WITH BUILT-IN ERASE: данные, записанные в буфер 1 или буфер 2, могут быть запрограммированы в основную память устройства. Чтобы запустить эту операцию, должен быть послан 8-битный opcode 83H для буфера 1 или 86H для буфера 2, за которым должны идти 2 зарезервированных бита, 12 бит адреса (PA11 - PA0), указывающие страницу, которая будет записана, и 10 дополнительных бит don’t care. Когда произойдет переход 0 -> 1 на выводе ~CS, устройство сначала очистит выбранную страницу основной памяти, и затем запрограммирует её данными из выбранного буфера. Обе операции очистки и программирования выполняются внутри устройства автоматически, и должны занимать по времени не более tEP. В течение этого времени регистр состояния в бите 7 будет показывать занятость устройства.

BUFFER TO MAIN MEMORY PAGE PROGRAM WITHOUT BUILT-IN ERASE: ранее очищенная страница основной памяти может быть запрограммирована содержимым либо буфера 1, либо буфера 2. Чтобы запустить эту операцию, должен быть послан 8-битный opcode, 88H для буфера 1 или 89H для буфера 2, за которым должны идти 2 зарезервированных бита, 12 бит адреса (PA11 - PA0), которые задают страницу основной памяти, которая должна быть записана, и затем 10 дополнительных бит don’t care. Когда произойдет переход 0 -> 1 на выводе ~CS, устройство запрограммирует выбранную страницу основной памяти содержимым выбранного буфера. Для этого необходимо, чтобы предварительно эта страница была предварительно стерта. Программирование страницы происходит внутри микросхемы автоматически, и займет по времени не более tP. В течение этого времени регистр состояния в бите 7 будет показывать занятость устройства.

Следующие друг за другом операции программирования без выполнения очистки страницы не рекомендуются. Другими словами, изменения бит в байтах на странице с "1" в "0" в течение нескольких операций программирования без очистки этой страницы не рекомендуется. Вероятно, это чревато снижением ресурса циклов записи DataFlash (прим. переводчика).

PAGE ERASE: опционально может использоваться команда очистки страницы (Page Erase) для индивидуальной очистки любой из страниц основного массива памяти. Это позволяет позднее запустить команду Buffer to Main Memory Page Program without Built-in Erase (это ускоряет процесс записи страницы). Чтобы выполнить Page Erase в устройство должен быть передан opcode 81H, за которым идут 2 зарезервированных бита, 12 бит адреса (PA11 - PA0) и 10 бит don’t care. 12 бит адреса используются для указания, какая страница массива памяти должна быть очищена. Когда произойдет переход 0 -> 1 на выводе ~CS, устройство сотрет выбранную страницу так, что во всех её битах будут единицы (все байты равны FFh). Операция очистки выполняется внутри микросхемы без внешнего участия, и по длительности может занимать время не более tPE. В течение этого времени регистр состояния будет показывать, что микросхема занята.

BLOCK ERASE: блок из 8 страниц может быть стерт одной операцией Block Erase, чтобы с помощью команды Buffer to Main Memory Page Program without Built-in Erase можно было уменьшить время программирования данных в устройство. Чтобы выполнить Block Erase, в устройство нужно передать opcode 50H, за которым должны идти 2 зарезервированных бита, 9 бит адреса (PA11 - PA3) и 13 бит don’t care. 9 бит адреса используются для указания, какой блок из 8 страниц должен быть стерт. Когда происходит переход 0 -> 1 на выводе ~CS, устройство сотрет выбранный блок, заполнив его единицами. Интервалы времени операции очистки генерируются внутри устройства, и вся операция занимает по времени не больше tBE. В течение этого времени регистр состояния будет показывать, что микросхема занята.

Адресация команды Block Erase:

PA11 PA10 PA9 PA8 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 Блок
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: эта операция является комбинацией операций Buffer Write и Buffer to Main Memory Page Program with Built-in Erase. Данные сначала вдвигаются в буфер 1 или буфер 2 через вывод SI, и затем программируются в указанную страницу основной памяти. Для инициирования операции передается 8-битный код операции 82H для буфера 1 или 85H для буфера 2, за которым идут 2 зарезервированных бита и 22 бита адреса. Из бит адреса 12 старших бит (PA11 - PA0) выбирают страницу основной памяти, куда будут записываться данные, и остальные 10 младших бит (BFA9 - BFA0) выбирают первый байт в буфере, куда будут записаны данные. После того, как все биты адреса будут вдвинуты, устройство будет вдвигать данные через SI, и сохранять их в один из выбранных буферов данных. Если достигнут конец буфера, то запись будет перескакивать в начало буфера. Когда произойдет переход 0 -> 1 на выводе ~CS, устройство сначала сотрет выбранную страницу (при очистке все байты страницы заполняются единичками), а потом запишет в неё данные из выбранного буфера, куда только что были помещены данные. Обе операции стирания и программирования страницы осуществляются микросхемой независимо, и эти операции займут время не более tEP. В течение этого времени регистр состояния будет показывать, что микросхема занята.

[Дополнительные команды]

MAIN MEMORY PAGE TO BUFFER TRANSFER: данные страницы основной памяти могут быть помещены в один из буферов 1 или 2. Для запуска этой операции передается 8-битный opcode 53H для буфера 1 и 55H для буфера 2, за которым должны идти два зарезервированных бита, 12 бит адреса (PA11 - PA0), которые задают страницу основной памяти, откуда будут копироваться данные в буфер, и далее идут 10 бит don’t care. Уровень на выводе ~CS должен быть в лог. 0, когда переключается вывод тактов SCK для загрузки opcode, бит адреса и бит don’t care из вывода SI. Передача данных страницы из основной памяти в буфер начнется, когда уровень на выводе ~CS перейдет из 0 на уровень 1. Во время перемещения данных (tXFR) можно читать регистр состояния, чтобы определить, завершено ли перемещение или еще нет.

MAIN MEMORY PAGE TO BUFFER COMPARE: данные страницы основной памяти может быть сравнены с данными одного из буферов, 1 или 2. Для инициации этой операции нужно передать 8-битный opcode 60H для буфера 1 и 61H для буфера 2, за которым должны идти 24 бита адреса, старшие из них два зарезервированных бита, далее 12 бит адреса (PA11 - PA0), которые задают страницу основной памяти. Данные этой страницы будут сравниваться с буфером. За битами адреса должны идти 10 бит don’t care. Уровень на выводе ~CS должен быть в лог. 0, когда такты на выводе SCK вдвигают opcode, биты адреса, биты don’t care из вывода SI. Переход 0 - 1 на выводе ~CS запускают операцию сравнения 528 байт выбранной страницы памяти с 528 байтами выбранного буфера. Во время сравнения (tXFR), регистр состояния покажет, что микросхема занята. По завершению операции бит 6 регистра состояния обновится, показывая результат сравнения.

AUTO PAGE REWRITE: этот режим требуется только если несколько байт на странице, или несколько страниц данных были модифицированы случайным образом. Этот режим дает комбинацию двух операций: Main Memory Page to Buffer Transfer и Buffer to Main Memory Page Program with Built-in Erase. Страница данных сначала передается из основной памяти в буфер 1 или буфер 2, и затем те же самые данные (из буфера 1 или буфера 2) программируются обратно в свою оригинальную страницу основной памяти. Для запуска операции перезаписи должен быть послан 8-битный opcode 58H для буфера 1 или 59H для буфера 2, затем должны идти 2 зарезервированных бита, далее 12 бит адреса (PA11 - PA0), которые задают перезаписываемую страницу памяти, и 10 дополнительных бит don’t care. Когда произойдет переход 0 -> 1 на выводе ~CS, устройство сначала передаст данные из страницы основной памяти в буфер, и затем обратно перезапишет содержимое этого буфера обратно в ту же самую страницу основной памяти. Эта операция управляется независимо внутри микросхемы, и занимает время не более tEP. В течение этого времени регистр состояния будет показывать, что микросхема занята.

Если сектор программируется или перепрограммируется последовательно, страница за страницей, то рекомендуется применять алгоритм, показанный на рис. 1. Иначе, если несколько байт на странице или несколько страниц случайно программируется в секторе, то рекомендуется применять алгоритм на рис. 2. Каждая страница в секторе должна быть обновлена / перезаписана как минимум один раз за каждую из 10000 кумулятивных операций стирания/программирования в этом секторе.

AT45DB161B sequ programming fig01

Рис. 1. Алгоритм для последовательного программирования и перепрограммирования всего массива памяти.

Примечания:

1. Этот тип алгоритма используется для приложений, в которых весь массив программируется последовательно, с заполнением массива памяти страница за страницей.
2. Страница может быть записана либо операцией Main Memory Page Program или Buffer Write, за которой идет операция Buffer to Main Memory Page Program.
3. Алгоритм, показанный выше, демонстрирует программирование одной страницы. Этот алгоритм будет повторен последовательно для каждой страницы во всем массиве памяти.

AT45DB161B rand modif data fig02

Рис. 2. Алгоритм для произвольно-случайной модификации данных.

Примечания:

1. Чтобы сберечь целостность данных, каждая страница в секторе DataFlash должна быть обновлена / перезаписана как минимум один раз для каждой из 10000 кумулятивных операций стирания / программирования.
2. Должен сохраняться указатель адреса страницы (Page Address Pointer), чтобы показать, какая страница перезаписывается. Команда Auto Page Rewrite должна использовать адрес, заданный Page Address Pointer.
3. Другие алгоритмы могут использоваться для перезаписи порций массива Flash. Приложения с низким потреблением могут выбрать алгоритм ожидания, пока накопятся 10000 кумулятивных операций стирания / программирования перед перезаписью всех страниц в секторе. Подробности см. в апноуте AN-4 [2].

Адресация секторов:

PA11 PA10 PA9 PA8 PA7 PA6 PA5 PA4 PA3 Блок
0 0 0 0 0 0 0 0 0 0
0 0 0 0 x x x x x 1
0 0 0 1 x x x x x 2
0 0 1 0 x x x x x 3
1 1 0 0 x x x x x 13
1 1 0 1 x x x x x 14
1 1 1 0 x x x x x 15
1 1 1 1 x x x x x 16

[Обзор рабочих режимов]

Режимы можно разделить на две группы – режимы, которые используют массив памяти Flash (Группа A) и режимы, которые не используют массив памяти Flash (Группа B).

Группа A состоит из операций:

1. Main Memory Page Read (чтение страницы).
2. Main Memory Page to Buffer 1 (или 2) Transfer (копирование страницы памяти в один из буферов).
3. Main Memory Page to Buffer 1 (or 2) Compare (сравнение страницы памяти и одного из буферов).
4. Buffer 1 (или 2) to Main Memory Page Program with Built-in Erase (запись одного из буферов в страницу с предварительным стиранием этой страницы).
5. Buffer 1 (или 2) to Main Memory Page Program without Built-in Erase (запись одного из буферов в страницу без предварительного стирания этой страницы).
6. Page Erase (стирание страницы).
7. Block Erase (стирание блока).
8. Main Memory Page Program through Buffer (программирование через буфер страницы памяти).
9. Auto Page Rewrite (автоматическая перезапись страницы).

Группа B состоит из операций:

1. Buffer 1 (или 2) Read (чтение одного из буферов).
2. Buffer 1 (или 2) Write (запись одного из буферов).
3. Status Register Read (чтение регистра состояния).

Если выполняется операция из группы A (операция еще не полностью завершена), то другая операция группы A не должна запускаться. Однако во время выполнения операции из группы A может быть запущена операция из группы B.

Это дает возможность Serial DataFlash виртуально принять непрерывный поток данных. Пока данные программируются в основную память из буфера 1, данные могут загружаться в буфер 2 (или наоборот). Подробнее см. апноут AN-4 [2].

[Описание выводов]

SERIAL INPUT (SI): вывод SI работает только как вход, и на него поступают данные в устройство (opcode, адреса, данные для основного массива данных или буфера).

SERIAL OUTPUT (SO): вывод SO работает только как выход, и он используется для вывода данных из устройства.

SERIAL CLOCK (SCK): вывод SCK работает только как вход, и он используется для управления потоком данных, поступающих в микросхему DataFlash и из неё. Данные всегда вдвигаются в устройство по фронту нарастания уровня SCK, и выдвигаются по спаду уровня SCK.

CHIP SELECT (~CS): вход выборки. Микросхема DataFlash выбирается (т. е. разрешается работа её интерфейса), когда на выводе ~CS лог. 0. Когда микросхема не выбрана, данные не принимаются через вход SI, и вывод SO остается в состоянии высокого сопротивления (третье, отключенное состояние). Переход 1 -> 0 на выводе ~CS требуется для запуска операции, и переход 0 -> 1 требуется для завершения операции.

WRITE PROTECT: вход защиты от записи. Если на входе ~WP удерживается в лог. 0, то первые 256 страниц основной памяти не могут быть перезаписаны. Нет другого способа перепрограммировать эти первые 256 страниц, кроме как перевести ~WP в лог. 1 и затем использовать ранее описанные команды программирования. Если этот вывод и его функция не используется, то рекомендуется подтянуть снаружи ~WP к уровню напряжения питания (подать лог. 1).

RESET: вход сброса. Низкий уровень на входе сброса (~RESET) прервет выполняемую операцию микросхемы, и сбросит внутреннюю внутреннюю машину состояния в состояние ожидания (idle state). Устройство останется в состоянии сброса, пока на выводе ~RESET присутствует лог. 0. Нормальная работа устройства может быть продолжена, когда вывод ~RESET вернется обратно к лог. 1. В устройстве реализована внутренняя схема сброса, благодаря чему нет ограничения на последовательность включения питания и подачу сигнала сброс. Если вывод ~RESET и его функция не используется, то рекомендуется снаружи подтянуть уровень вывода ~RESET к лог. 1.

READY/~BUSY: это выход с открытым стоком, который будет переходить в лог. 0, когда устройство занято внутренней операцией. Этот вывод в нормальном состоянии находится в лог. 1, если он подключен к верхнему подтягивающему резистору 1 кОм (pull-up). Уровень на выводе READY/~BUSY перейдет в лог. 0, когда начнет выполняться операция программирования, сравнения, перемещения данных между страницей памяти и буфером. Состояние занятости показывает, что к массиву памяти Flash и к одному из буферов нельзя получить доступ; операции чтения и записи в другой буфер при этом все еще могут быть выполнены.

Состояние после сброса или включения питания. Когда на устройство подано питание, или когда устройство восстанавливается из состояния сброса, по умолчанию активируется SPI Mode 3. Дополнительно вывод SO будет находится в состоянии высокого сопротивления, и переход от лог. 1 к лог. 0 на выводе ~CS потребуется для запуска допустимой инструкции. Режим SPI выбирается автоматически по каждому спаду уровня ~CS путем опроса не активного состояния тактов. После того, как подано питание, и напряжение VCC достигло минимального напряжения по даташиту, система должна подождать как минимум 20 мс перед тем, как может быть запущен рабочий режим микросхемы.

Таблица 1. Команды чтения.

Команда Режим SCK Opcode
Continuous Array Read ICP L/H(1) 68h
Режим SPI 0 или 3 E8h
Main Memory Page Read ICP L/H 52h
Режим SPI 0 или 3 D2h
Buffer 1 Read ICP L/H 54h
Режим SPI 0 или 3 D4h
Buffer 2 Read ICP L/H 56h
Режим SPI 0 или 3 D6h
Status Register Read ICP L/H 57h
Режим SPI 0 или 3 D7h

Примечание (1): ICP L/H означает "Inactive Clock Polarity Low or High", т. е. полярность не активности тактов может соответствовать лог. 0 или лог. 1.

Таблица 2. Команды программирования и стирания.

Команда Режим SCK Opcode
Buffer 1 Write любой 84h
Buffer 2 Write 87h
Buffer 1 to Main Memory Page Program with Built-in Erase 83h
Buffer 2 to Main Memory Page Program with Built-in Erase 86h
Buffer 1 to Main Memory Page Program without Built-in Erase 88h
Buffer 2 to Main Memory Page Program without Built-in Erase 89h
Page Erase 81h
Block Erase 50h
Main Memory Page Program through Buffer 1 82h
Main Memory Page Program through Buffer 2 85h

Таблица 3. Дополнительные команды.

Команда Режим SCK Opcode
Main Memory Page to Buffer 1 Transfer любой 53h
Main Memory Page to Buffer 2 Transfer 55h
Main Memory Page to Buffer 1 Compare 60h
Main Memory Page to Buffer 2 Compare 61h
Auto Page Rewrite through Buffer 1 58h
Auto Page Rewrite through Buffer 2 59h

Примечание: в таблицах 2 и 3 режим SCK обозначен как "любой", что соответствует одному из четырех режимов работы SPI (Inactive Clock Polarity Low, Inactive Clock Polarity High, SPI Mode 0 или SPI Mode 3).

Таблица 4. Подробная последовательность адресации на уровне бит.

AT45DB161B bit level addressing sequence

Условные обозначения в таблице 4:

r = зарезервированный бит.
P = бит адреса страницы.
B = бит адреса байта или буфера.
x = бит Don’t Care (его уровень не имеет значения).
N/A = недоступно, не существует.

[Предельные абсолютные значения]

• Рабочий диапазон температур (под напряжением) -55°C .. +125°C.
• Температура хранения -65°C .. +150°C.
• Входное напряжение для всех выводов (включая не подключенные NC) относительно GND -0.6V .. +6.25V.
• Напряжение на всех выходах относительно GND -0.6V .. (VCC + 0.6V).

[Рабочие условия по постоянному току]

Параметр
AT45DB161B
(версия 2.5V)
AT45DB161B
Рабочая температура (корпуса) Коммерческое исполнение 0°C .. +70°C 0°C .. +70°C
Индустриальное исполнение - -40°C .. +70°C
Напряжение питания VCC(1) 2.5V .. 3.6V 2.7V .. 3.6V

Примечание (1): после подачи питания и нарастания VCC до указанного минимального уровня по этому даташиту, должно пройти 20 мс задержки перед тем, как можно переходить в рабочий режим.

[Характеристики постоянного тока]

Симв. Параметр
Условия Min Typ Max Ед.
ISB Ток состояния ожидания ~CS, ~RESET, ~WP = VCC, все входы на уровнях CMOS   2 10 мкА
ICC1(1) Ток потребления в активном режиме, операция чтения f = 20 МГц; IOUT = 0 мА;
VCC = 3.6V
  4 10 мА
ICC2 Ток потребления в активном режиме, операция программирования, очистки
VCC = 3.6V   15 35 мА
ILI Ток нагрузки входа VIN = уровни CMOS     1 мкА
ILO Ток утечки выхода       1 мкА
VIL Входное напряжение лог. 0       0.6 V
VIH Входное напряжение лог. 1   2.0     V
VOL Выходное напряжение лог. 0  IOL = 1.6 мА; VCC = 2.7V      0.4 V
VOH Выходное напряжение лог. 1  IOH = -100 мкА VCC - 0.2V     V

Примечание (1): ICC1 во время чтения буфера составит 20 мА максимум.

[Характеристики переменного тока]

Симв.
Параметр
AT45DB161B
(версия 2.5V)
AT45DB161B
Ед.
Мin Max Min Max
fSCK Частота SCK    15   20 МГц
fCAR Частота SCK для непрерывного чтения массива   15   20 МГц
tWH Время лог. 1 для SCK 30   22   нс
tWL Время лог. 0 для SCK 30   22   нс
tCS Минимальное время ~CS 250   250   нс
tCSS Время установки ~CS 250   250   нс
tCSH Время удержания ~CS 250   250   нс
tCSB Время между ~CS=1 до RDY/~BUSY=0   200   200 нс
tSU Время установки входных данных 10   5   нс
tH Время удержания входных данных 15   10   нс
tHO Время удержания выхода 0   0   нс
tDIS Время запрета выхода   20   18 нс
tV Данные на выходе достоверны   25   20 нс
tXFR Время передачи в буфер / сравнения страницы   300   250 мкс
tEP Время очистки и программирования страницы   20   20 мс
tP Время программирования страницы   14   14 мс
tPE Время очистки страницы   8   8 мс
tBE Время очистки блока   12   12 мс
tRST Время импульса ~RESET 10   10   мкс
tREC Время восстановления ~RESET   1   1 мкс

[Входные тестовые сигналы и уровни измерения]

AT45DB161B Input Test Waveforms and Measurement Levels

tR, tF < 3 нс (10% .. 90%)

[Нагрузка выхода при тестировании]

AT45DB161B Output Test Load

Ниже показаны две разные диаграммы времени. Диаграмма 1 показывает сигнал SCK в лог. 0, когда ~CS меняет уровень 1 -> 0, и Диаграмма 2 показывает сигнал SCK в лог. 1, когда ~CS меняет уровень 1 -> 0. Обе диаграммы показывают допустимые варианты сигналов. Времена установки и удержания для сигнала SI измеряются относительно перехода 0 -> 1 сигнала SCK.

Диаграмма 1 показывает интервалы времени, которые также совместимы с SPI Mode 0, и Диаграмма 2 показывает интервалы времени, совместимые с SPI Mode 3.

Диаграмма 1 – не активная полярность тактов 0 и SPI Mode 0:

AT45DB161B Inactive Clock Polarity Low SPI Mode 0

Диаграмма 2 – не активная полярность тактов 1 и SPI Mode 3:

AT45DB161B Inactive Clock Polarity High SPI Mode 3

Интервалы времени сброса (показан вариант не активной полярности тактов 0):

AT45DB161B Reset Timing Inactive Clock Polarity Low

Примечание: сигнал ~CS должен быть в состоянии лог. 1 перед тем, как снимается сигнал ~RESET. HIGH Z и HIGH IMPEDANCE означает высокое сопротивление, VALID IN допустимые входные данные, VALID OUT допустимые выходные данные.

Командная последовательность для операций чтения/записи (кроме чтения регистра состояния Status Register Read):

AT45DB161B command sequ Read Write operations except Status Register Read

Примечания:

1. "r" обозначает биты, зарезервированные для более емких устройств.
2. Рекомендуется, чтобы "r" были логическими нулями для плотностей 16 мегабит и менее емких устройств.
3. Для плотностей больше 16 мегабит, биты "r" становятся старшими битами адреса страницы для соответствующих емкостей.
4. MSB означает самый старший бит (Most Significant Bit), LSB самый младший бит 
(Least Significant Bit).

[Операции записи]

Следующая блок-схема и диаграммы показывают различные доступные последовательности записи.

AT45DB161B Write Operations

Программирование страницы основной памяти через буферы:

AT45DB161B Main Memory Page Program through Buffers

Запись буфера:

AT45DB161B Buffer Write

Программирование буфера в страницу основной памяти (данные из буфера программируются в страницу FLASH):

AT45DB161B Buffer to Main Memory Page Program

Примечание: n соответствует первому байту, n+1 второму байту в последовательности данных. "Независимая операция" означает, что все процессы происходят по самостоятельно формируемому тактированию внутри микросхемы.

[Операции чтения]

Следующая блок-схема и диаграммы показывают различные доступные последовательности чтения.

AT45DB161B Read Operations

Чтение страницы основной памяти:

AT45DB161B Main Memory Page Read

Перемещение из страницы основной памяти в буфер (данные из страницы FLASH считываются в буфер):

AT45DB161B Main Memory Page to Buffer Transfer

Чтение буфера:

AT45DB161B Buffer Read

Примечание: n соответствует первому байту, n+1 второму байту в последовательности данных.

[Подробные диаграммы на уровне бит - полярность не активности тактов 0]

Continuous Array Read (непрерывное чтение массива памяти, opcode 68H):

AT45DB161B Continuous Array Read ICP L

Main Memory Page Read (чтение страницы основной памяти, opcode 52H):

AT45DB161B Main Memory Page Read ICP L

Buffer Read (чтение буфера, opcode 54H или 56H):

AT45DB161B Buffer Read ICP L

Status Register Read (чтение регистра состояния, opcode 57H):

AT45DB161B Status Register Read ICP L

[Подробные диаграммы на уровне бит - полярность не активности тактов 1]

Continuous Array Read (непрерывное чтение массива памяти, opcode 68H):

AT45DB161B Continuous Array Read ICP H

Main Memory Page Read (чтение страницы основной памяти, opcode 52H):

AT45DB161B Main Memory Page Read ICP H

Buffer Read (чтение буфера, opcode 54H или 56H):

AT45DB161B Buffer Read ICP H

Status Register Read (чтение регистра состояния, opcode 57H):

AT45DB161B Status Register Read ICP H

[Подробные диаграммы на уровне бит - SPI Mode 0]

Continuous Array Read (непрерывное чтение массива памяти, opcode E8H):

AT45DB161B Continuous Array Read SPI Mode 0

Main Memory Page Read (чтение страницы основной памяти, opcode D2H):

AT45DB161B Main Memory Page Read SPI Mode 0

Buffer Read (чтение буфера, opcode D4H или D6H):

AT45DB161B Buffer Read SPI Mode 0

Status Register Read (чтение регистра состояния, opcode D7H):

AT45DB161B Status Register Read SPI Mode 0

[Подробные диаграммы на уровне бит - SPI Mode 3]

Continuous Array Read (непрерывное чтение массива памяти, opcode E8H):

AT45DB161B Continuous Array Read SPI Mode 3

Main Memory Page Read (чтение страницы основной памяти, opcode D2H):

AT45DB161B Main Memory Page Read SPI Mode 3

Buffer Read (чтение буфера, opcode D4H или D6H):

AT45DB161B Buffer Read SPI Mode 3

Status Register Read (чтение регистра состояния, opcode D7H):

AT45DB161B Status Register Read SPI Mode 3

fSCK
(МГц)
ICC (мА)
Код для покупки
Корпус
Рабочие условия
Active Standby
15 10 0.01 AT45DB161B-CC-2.5
AT45DB161B-CNC-2.5
AT45DB161B-RC-2.5
AT45DB161B-TC-2.5
24C1
8CN3
28R
28T
Коммерческое исполнение
(0°C .. 70°C)
2.5V .. 3.6V
20 10 0.01 AT45DB161B-CC
AT45DB161B-CNC
AT45DB161B-RC
AT45DB161B-TC
24C1
8CN3
28R
28T
Коммерческое исполнение
(0°C .. 70°C)
20 10 0.01 AT45DB161B-CI
AT45DB161B-CNI
AT45DB161B-RI
AT45DB161B-TI
24C1
8CN3
28R
28T
Индустриальное исполнение
(-40°C .. 85°C)

"Зеленые" версии корпусов (Pb/Halide-free):

fSCK
(МГц)
ICC (мА)
Код для покупки
Корпус
Рабочие условия
Active Standby
20 10 0.01 AT45DB161B-CNU
AT45DB161B-RU
AT45DB161B-TU
8CN3
28R
28T
Индустриальное исполнение
(-40°C .. 85°C)

Примечание: "зеленые" корпуса также удовлетворяют требованиям lead-free.

Тип корпуса
24C1 24-ball (массив шариков 5 x 5), Plastic Chip-scale Ball Grid Array (CBGA)
8CN3 8-контактный (6 x 8 мм) Chip Array Small Outline No Lead Package (CASON8)
28R 28-выводный, ширина 0.330", Plastic Gull Wing Small Outline Package (SOIC28)
28T 28-выводный, Plastic Thin Small Outline Package (TSOP28)

[24C1 – CBGA]

Размеры показаны в миллиметрах (в скобках в дюймах). Контрольные размеры в миллиметрах.

AT45DB161B CBGA dimensions

[8CN3 – CASON8]

AT45DB161B CASON8 dimensions

Общие размеры (в миллиметрах):

Символ MIN NOM MAX Примечание
A     1.0  
A1 0.17 0.21 0.25  
b  0.41 TYP 4
D 7.90 8.00 8.10  
E 5.90 6.00 6.10  
e 1.27 BSC  
e1 1.095 REF  
L 0.67 TYP 4
L1 0.92 0.97 1.02 4

Примечания:

1. Все размеры и допуски удовлетворяют требованиям ASME Y 14.5M, 1994.
2. Финишное покрытие корпуса должно быть EDM Charmille #24-27.
3. Допуски следующие, если не указано что-то другое: десятичные ±0.05, угловые ±2°.
4. Размеры металлической контактной площадки.

[28R – SOIC28]

AT45DB161B SOIC28 dimensions

Общие размеры (в миллиметрах):

Символ MIN NOM MAX Примечание
A 2.39 - 2.79  
A1 0.050 - 0.356  
D 18.00 - 18.50 1
E 11.70 - 12.50  
E1 8.59 - 8.79 1
B 0.356 - 0.508  
C 0.203 - 0.305  
L 0.94 - 1.27  
e 1.27 TYP  

Примечание 1: размеры D и E1 не включают формовку (mold Flash) или выступ. Они не должны превышать 0.25 мм (0.010").

[28T – TSOP28]

AT45DB161B TSOP28 dimensions

Общие размеры (в миллиметрах):

Символ MIN NOM MAX Примечание
A - - 1.20  
A1 0.05 - 0.15  
A2 0.90  1.00 1.05  
D 13.20 13.40 13.60  
D1 11.70 11.80 11.90 2
E 7.90 8.00 8.10 2
L 0.50 0.60 0.70  
L1 0.25 BASIC  
b 0.17 0.22 0.27  
c 0.10 - 0.21  
e 0.55 BASIC  

Примечания:

1. Этот корпус удовлетворяет требованиям JEDEC reference MO-183.
2. Размеры D1 и E не учитывают формовочный выступ. Допустимый выступ E составляет 0.15 мм не сторону и для D1 составляет 0.25 мм на сторону.
3. Копланарность выводов 0.10 мм максимум.

[Ссылки]

1. AT45DB161B DataFlash site:microchip.com.
2Использование Atmel Serial DataFlash.
3. Интерфейс SPI.
4AVR335: цифровой рекордер звука на AVR и DataFlash.