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. Чтобы упростить перепрограммирование в системе (принцип 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. [Выводы и цоколевка]
Варианты цоколевки корпусов:
Блок-схема AT45DB161B: Организация массива памяти. Для обеспечения оптимальной гибкости массив памяти AT45DB161B поделен на 3 уровня гранулярности, представляя секторы, блоки и страницы. Диаграмма памяти, показанная ниже для каждого уровня, содержит информацию по количестве станиц на сектор и блок. Все операции программирования DataFlash происходят на основе страниц (страница за страницей); однако оптимальные операции очистки могут выполняться на уровне блока или страницы. Прим. переводчика: не понял, что значит "Архитектура секторов", и как происходят операции записи сектора. Дело в том, что далее в описании нет никаких специальных команд, которые выполняют запись именно сектора, есть только запись страницы фиксированного размера 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). Данные в регистре состояния постоянно обновляются, поэтому каждая повторяющаяся последовательность выдачи бит может содержать новые данные. Формат регистра состояния:
Прим. переводчика: скорее всего здесь в формате регистра состояния допущена ошибка. Апноут "Using Atmel’s Serial DataFlash" (AN-4, Atmel_2001_doc0842.pdf) дает другую информацию, см. таблицы 4 и 5 этого апноута: Таблица 4. Определение бит регистра состояния.
Таблица 5. Коды плотности устройства DataFlash.
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:
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 кумулятивных операций стирания/программирования в этом секторе. Рис. 1. Алгоритм для последовательного программирования и перепрограммирования всего массива памяти. Примечания: 1. Этот тип алгоритма используется для приложений, в которых весь массив программируется последовательно, с заполнением массива памяти страница за страницей. Рис. 2. Алгоритм для произвольно-случайной модификации данных. Примечания: 1. Чтобы сберечь целостность данных, каждая страница в секторе DataFlash должна быть обновлена / перезаписана как минимум один раз для каждой из 10000 кумулятивных операций стирания / программирования. Адресация секторов:
[Обзор рабочих режимов] Режимы можно разделить на две группы – режимы, которые используют массив памяти Flash (Группа A) и режимы, которые не используют массив памяти Flash (Группа B). Группа A состоит из операций: 1. Main Memory Page Read (чтение страницы). Группа B состоит из операций: 1. Buffer 1 (или 2) 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. Команды чтения.
Примечание (1): ICP L/H означает "Inactive Clock Polarity Low or High", т. е. полярность не активности тактов может соответствовать лог. 0 или лог. 1. Таблица 2. Команды программирования и стирания.
Таблица 3. Дополнительные команды.
Примечание: в таблицах 2 и 3 режим SCK обозначен как "любой", что соответствует одному из четырех режимов работы SPI (Inactive Clock Polarity Low, Inactive Clock Polarity High, SPI Mode 0 или SPI Mode 3). Таблица 4. Подробная последовательность адресации на уровне бит. Условные обозначения в таблице 4: r = зарезервированный бит. [Предельные абсолютные значения] • Рабочий диапазон температур (под напряжением) -55°C .. +125°C. [Рабочие условия по постоянному току]
Примечание (1): после подачи питания и нарастания VCC до указанного минимального уровня по этому даташиту, должно пройти 20 мс задержки перед тем, как можно переходить в рабочий режим. [Характеристики постоянного тока]
Примечание (1): ICC1 во время чтения буфера составит 20 мА максимум. [Характеристики переменного тока]
[Входные тестовые сигналы и уровни измерения] tR, tF < 3 нс (10% .. 90%) [Нагрузка выхода при тестировании] Ниже показаны две разные диаграммы времени. Диаграмма 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: Диаграмма 2 – не активная полярность тактов 1 и SPI Mode 3: Интервалы времени сброса (показан вариант не активной полярности тактов 0): Примечание: сигнал ~CS должен быть в состоянии лог. 1 перед тем, как снимается сигнал ~RESET. HIGH Z и HIGH IMPEDANCE означает высокое сопротивление, VALID IN допустимые входные данные, VALID OUT допустимые выходные данные. Командная последовательность для операций чтения/записи (кроме чтения регистра состояния Status Register Read): Примечания: 1. "r" обозначает биты, зарезервированные для более емких устройств. [Операции записи] Следующая блок-схема и диаграммы показывают различные доступные последовательности записи. Программирование страницы основной памяти через буферы: Запись буфера: Программирование буфера в страницу основной памяти (данные из буфера программируются в страницу FLASH): Примечание: n соответствует первому байту, n+1 второму байту в последовательности данных. "Независимая операция" означает, что все процессы происходят по самостоятельно формируемому тактированию внутри микросхемы. [Операции чтения] Следующая блок-схема и диаграммы показывают различные доступные последовательности чтения. Чтение страницы основной памяти: Перемещение из страницы основной памяти в буфер (данные из страницы FLASH считываются в буфер): Чтение буфера: Примечание: n соответствует первому байту, n+1 второму байту в последовательности данных. [Подробные диаграммы на уровне бит - полярность не активности тактов 0] Continuous Array Read (непрерывное чтение массива памяти, opcode 68H): Main Memory Page Read (чтение страницы основной памяти, opcode 52H): Buffer Read (чтение буфера, opcode 54H или 56H): Status Register Read (чтение регистра состояния, opcode 57H): [Подробные диаграммы на уровне бит - полярность не активности тактов 1] Continuous Array Read (непрерывное чтение массива памяти, opcode 68H): Main Memory Page Read (чтение страницы основной памяти, opcode 52H): Buffer Read (чтение буфера, opcode 54H или 56H): Status Register Read (чтение регистра состояния, opcode 57H): [Подробные диаграммы на уровне бит - SPI Mode 0] Continuous Array Read (непрерывное чтение массива памяти, opcode E8H): Main Memory Page Read (чтение страницы основной памяти, opcode D2H): Buffer Read (чтение буфера, opcode D4H или D6H): Status Register Read (чтение регистра состояния, opcode D7H): [Подробные диаграммы на уровне бит - SPI Mode 3] Continuous Array Read (непрерывное чтение массива памяти, opcode E8H): Main Memory Page Read (чтение страницы основной памяти, opcode D2H): Buffer Read (чтение буфера, opcode D4H или D6H): Status Register Read (чтение регистра состояния, opcode D7H):
"Зеленые" версии корпусов (Pb/Halide-free):
Примечание: "зеленые" корпуса также удовлетворяют требованиям lead-free.
[24C1 – CBGA] Размеры показаны в миллиметрах (в скобках в дюймах). Контрольные размеры в миллиметрах. [8CN3 – CASON8] Общие размеры (в миллиметрах):
Примечания: 1. Все размеры и допуски удовлетворяют требованиям ASME Y 14.5M, 1994. [28R – SOIC28] Общие размеры (в миллиметрах):
Примечание 1: размеры D и E1 не включают формовку (mold Flash) или выступ. Они не должны превышать 0.25 мм (0.010"). [28T – TSOP28] Общие размеры (в миллиметрах):
Примечания: 1. Этот корпус удовлетворяет требованиям JEDEC reference MO-183. [Ссылки] 1. AT45DB161B DataFlash site:microchip.com. |