AT24C64: Serial EEPROM с интерфейсом I2C (TWI) |
Добавил(а) microsin | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Микросхема AT24C64D Serial EEPROM обладает емкостью 65536 бит, эта память организована как 8192 слов по 8 бит (8 килобайт). К одной шине I2C можно подключить до 8 устройств параллельно, используя выводы адресации A2, A1, A0 (не на всех корпусах есть эти выводы). Устройство оптимизировано для использования во многих индустриальных и коммерческих приложениях, где важны требования по низкому энергопотреблению и используются низкие напряжения питания. Микросхема поставляется в 8-выводных корпусах JEDEC SOIC, 8-выводных TSSOP, 8-контактных UDFN, XDFN, 8-шариковых VFBGA, 4-шариковых и 6-шариковых WLCSP. Микросхемы во всех типах корпусов могут работать в диапазоне питающих напряжений от 1.7V до 5.5V. Основные функциональные возможности AT24C64D: • Широкий диапазон напряжений питания, от самых низких до стандартных (VCC = 1.7V .. 5.5V). Пример системы, где используется несколько микросхем AT24XXX (slave, подчиненные устройства), подключенных параллельно к одной шине I2C: Виды корпусов AT24C64D, вид сверху:
Примечание: при использовании корпусов 4-ball и 6-ball WLCSP обратитесь к разделу "Адресация" для получения информации по установке бит аппаратного адреса A2, A1, A0. Таблица 2-1. Таблица цоколевки корпусов.
Примечания: 1. Нижняя металлическая контактная площадка (exposed pad) корпуса UDFN может быть подключена к GND, или оставлена без подключения. Блок-схема внутреннего устройства AT24C64D: GND. Вывод земли, общий провод для всех сигналов, минус напряжения питания. A0, A1, A2. Адрес устройства на шине I2C. Эти выводы должны быть жестко подключены либо к GND, либо к VCC, чтобы обеспечить совместимость с другими устройствами AT24C, подключенными к одной шине. Это позволяет адресовать до 8 разных устройств, соединенных параллельно сигналами SCL и SDA. Если выводы A0, A1, A2 оставить не подключенными, то они получат внутреннюю подтяжку к уровню GND. Однако в таком случае возможна емкостная наводка помех на эти выводы, поэтому Microchip всегда рекомендует подключать эти адресные выводы в известное состояние. При использовании для этой цели внешних верхних подтягивающих резисторов (pull-up) их номинал должен быть 10 кОм или меньше. SDA. Вывод SDA представляет из-себя двунаправленный сигнал данных, выход которого реализован на ключе с открытым стоком. По этой причине SDA должен иметь внешнюю подтяжку к VCC с помощью резистора номиналом не больше 10 кОм. Таким способом реализуется схема проводного ИЛИ с параллельным соединением (почти) любого количества устройств, у которых выходы тоже имеют открытый сток (или открытый коллектор). SCL. Вход, через который на устройство подается тактовая частота, под управлением которой данные могут передаваться через сигнал SDA в обоих направлениях. Биты команд и данных, поступающих на вывод SDA, всегда защелкиваются по фронту нарастания уровня SCL, в то время как выходные данные выводятся наружу через тот же вывод SDA по спаду уровня SCL. Когда шина I2C находится в состоянии ожидания, сигнал SCL должен быть притянут к лог. 1 либо внешним выходом устройства мастера шины, либо подтянут к лог. 1 внешним верхним резистором pull-up. WP. Это вход защиты от записи (Write Protect). Когда он подключен к GND, разрешаются операции записи. Когда WP подключен к VCC, все операции в любую область памяти запрещены. Если этот вывод оставить не подключенным, то он будет подтянут к уровню GND внутри микросхемы. Однако в таком случае возможна емкостная наводка помех на WP, поэтому Microchip всегда рекомендует подключать этот вход к известному уровню. При использовании для этой цели внешних верхних подтягивающих резисторов (pull-up) их номинал должен быть 10 кОм или меньше. VCC. Питание устройства. Следует использовать напряжения питания в допустимом диапазоне и гарантировать отсутствие помех, иначе эксплуатация микросхемы может привести к ошибкам и непредсказуемым результатам. [Абсолютные предельные значения] Рабочий диапазон температур -55°C .. +125°C [Рабочий диапазон DC и AC] Таблица 4-1. Рабочий диапазон температур и напряжения питания.
Таблица 4-2. Характеристики DC.
Примечания: (1) Типовые значения указаны при TA = +25°C, если не отмечено что-то другое. [Характеристики AC] Таблица 4-3. Характеристики переменного тока AC(1).
Примечания: (1) Условия измерения AC: - RPUP (верхний подтягивающий резистор, pull-up между SDA и VCC): 1.3 kΩ (1000 кГц), 4 kΩ (400 кГц), 10 kΩ (100 кГц). (2) Этот параметр указан как характеристика, и он не был протестирован на 100%. Рис. 4-1. Интервалы времени шины. [Электрические спецификации] Требования к включению питания и поведение при сбросе. Во время включения питания уровень VCC, поданный на AT24C64D, должен монотонно возрастать от GND до своего номинального уровня, указанного в таблице 4-1, со скоростью нарастания не быстрее чем 0.1 V/мкс. Сброс устройства. Чтобы предотвратить непреднамеренные операции записи или другие случайные события при последовательности включения питания, в устройстве AT24C64D имеется внутренняя схема сброса при включении питания Power-on Reset (POR). При включении питания устройство не будет отвечать ни на какие команды, пока уровень VCC не пересечет внутренний порог сброса (VPOR), который выведет устройство из состояния Reset и переведет в режим ожидания (Standby mode). Разработчик системы должен гарантировать, что в устройство не будут отправляться команды до тех пор, пока уровень VCC не застабилизируется на значении, большем или равном минимально допустимому уровню VCC. Кроме того, как только VCC станет больше или равным минимальному уровню напряжения VCC, мастер шины должен подождать в течение как минимум интервала времени tPUP перед тем, как будет отправлена первая команда в устройство. См. таблицу 4-4, где указаны соответствующие параметры включения питания. Таблица 4-4. Параметры и условия включения питания(1).
Примечание (1): эти параметры даны только как характеристика, однако они не были на 100% протестированы в производстве. Если в системе произошло событие, когда подаваемый на AT24C64D уровень напряжения VCC падает ниже максимального уровня VPOR, рекомендуется провести последовательность полного включения питания путем первоначального перевода уровня VCC к GND, после чего должен быть выдержан интервал tPOFF, и затем должна быть начата новая последовательность включения питания, совместимая с требованиями, определенными в этой секции. [Паразитные емкости] Таблица 4-5. Емкости выводов(1).
Примечание (1): эти параметры даны только как характеристика, однако они не были на 100% протестированы в производстве. [Производительность ячеек памяти EEPROM] Таблица 4-6. Параметры ячеек памяти EEPROM.
Примечание (1): эти параметры определены в процессе получения характеристик и оценки качества. [Работа устройства и обмен данными] AT24C64D работает как подчиненное (slave) устройство на шине I2C, обмениваясь данными с главным контроллером, так называемым мастером шины (bus master). Мастер инициирует и управляет всеми операциями чтения и записи, осуществляя обмен с подчиненными устройствами, подключенными к шине. И мастер, и подчиненные устройства могут передавать данные по шине в любом направлении. Последовательный интерфейс шины состоит только из двух сигналов: Serial Clock (SCL) и Serial Data (SDA). Вывод SCL используется для приема тактов от мастера (это вход), в то время как двунаправленный вывод SDA используется для приема команд и данных от мастера, а также для отправки данных обратно к мастеру. Данные, поступающие в AT24C64D, всегда защелкиваются по нарастанию уровня SCL, и всегда выводятся из AT24C64D по спаду уровня SCL. На обоих сигналах SCL и SDA имеется встроенная система подавления/фильтрации помех на триггерах Шмитта. Информация команд и данных всегда передается самым старшим битом (Most Significant Bit, MSB) вперед. Во время обмена по шине один бит данных передается на каждом такте SCL, и после прохождения 8 бит (одного байта) принимающее устройство должно ответить либо положительным подтверждением (Acknowledge, ACK), либо отсутствием положительного подтверждения (No-Acknowledge, NACK) во время девятого такта SCK (такт ACK/NACK), сгенерированного мастером. Таким образом, для перемещения одно байта данных требуется 9 тактов. В операциях чтения или записи нет не используемых тактов, поэтому не должно быть никаких нарушений генерации тактов в потоке передачи байта и битов ACK или NACK. Во время перемещений данных уровень на выводе SDA может менять свое значение только когда уровень SCL находится в лог. 0, и данные на SDA должны оставаться стабильными, когда на SCL лог. 1. Если данные на SDA меняют уровень, когда SCL в лог. 1, то этот факт обозначает специальные события старта или останова (сигнал Start или сигнал Stop). Сигналы Start и Stop используются для инициации или завершения всех обменов данными между мастером и подчиненными устройствами. Количество байт данных, пересылаемых между Start и Stop, не ограничено и определяется только мастером шины. Чтобы шина I2C находилась в состоянии ожидания, на обоих выводах SCL и SDA должен быть уровень лог. 1. Требования и изменениям уровня данных и тактов. Двунаправленный вывод SDA имеет драйвер выхода с открытым стоком, и поэтому должен иметь подтяжку к лог. 1 с помощью внешнего pull-up резистора. Вход SCL может быть переведен к лог. 1 либо внешним выходом, либо внешним pull-up резистором (обычно для этой цели всегда используется pull-up резистор, чтобы обеспечить лог. 1 в моменты времени, когда мастер находится в отключенном состоянии). Взаимосвязь параметров времени переменного тока (AC timing parameters) сигналов SCL и SDA для AT24C64D показана на рис. 4-1 (см. врезку "Электрические характеристики и параметры"). Интервалы времени AC и их спецификации обозначены в разделе "Характеристики AC". Start и Stop. Событие Start происходит, когда осуществляется переход 1 -> 0 на SDA, когда на SCL стабильный уровень лог. 1, и это событие выводит устройство из режима ожидания (Standby mode). Сигнал Start генерируется устройством мастер, и он использует Start для инициации любой последовательности передачи данных; таким образом каждая команда должна начинаться с события/сигнала Start. Устройство постоянно мониторит выводы SDA и SCL на предмет появления Start и не отвечает, пока Start не будет обнаружен (см. рис. 5-1). Событие Stop происходит, когда осуществляется переход 0 -> на SDA, когда на SCL стабильный уровень лог. 1. Мастер может использовать Stop для завершения последовательности перемещения данных, переводя микросхему AT24C64D в режим Standby. Мастер может также использовать повторный сигнал Start вместо сигнала Stop, чтобы завершить текущую передачу данных, если мастеру нужно выполнить другую операцию (см. рис. 5-1). ACK и NACK. После приема каждого байта принимающее устройство должно подтвердить мастеру, что байт данных был успешно принят, с помощью сигнала положительного подтверждения Acknowledge (ACK). Прохождение ACK обеспечивается передающим устройством, когда оно освобождает линию SDA на спаде восьмого такта, когда принимающее устройство ответит логическим нулем в течение всего периода лог. 1 девятого такта SCK. Когда AT24C64D передает данные устройству мастер, мастер может показать, что он завершил прием данных и хочет завершить операцию путем выдачи лог. 1 вместо лог. 0 на девятом такте. Это называется отрицательным подтверждением No-Acknowledge (NACK), и обеспечивается отправкой устройством мастер лог. 1 во время девятого такта SCK, в этом месте AT24C64D освободит линию SDA, чтобы мастер мог сгенерировать сигнал Stop. Передающее устройство, которым может быть либо мастер шины, либо Serial EEPROM, должно освободить линию SDA на спаде уровня девятого такта, чтобы позволить принимающему устройству подтянуть уровень SDA к лог. 0 для выдачи ACK на предыдущее 8-битное слово. При этом принимающее устройство должно освободить SDA по окончании девятого такта SCK, чтобы передающее устройство продолжило посылать данные. Все вышеперечисленные требования к протоколу шины иллюстрируются на рис. 5-1. Рис. 5-1. Сигнал Start, изменения данных, сигнал Stop и подтверждение ACK. Режим Standby. В микросхеме AT24C64D реализован режим низкого энергопотребления (Standby mode), который запускается, когда происходит одно из следующих событий: • Выполнена допустимая последовательность включения питания (см. "Требования к включению питания и поведение при сбросе" во врезке "Электрические характеристики и параметры"). • Принят сигнал Stop, если при этом не начался внутренний цикл записи (см. "Операции записи"). Программный сброс. После обрыва в протоколе, пропадания питания или сброса системы любое I2C-устройство можно сбросить программно путем тактирования SCL, пока сигнал SDA не будет освобожден микросхемой EEPROM, и он не перейдет в лог. 1. Количество тактов до момента, когда SDA будет освобожден устройством EEPROM, будет варьироваться, однако программный сброс не должен занимать больше 9 пустых (dummy) тактовых импульсов. Как только последовательность программного сброса завершилась, может быть начат новый протокол обмена путем отправки сигнала Start. Последовательность программного сброса показана на диаграмме рис. 5-2. Рис. 5-2. Software Reset. Если AT24C64D все еще не отвечает или удерживает линию SDA, нужно выключить и снова включить питание, чтобы сбросить устройство (см. "Требования к включению питания и поведение при сбросе"). [Адресация] AT24C64D организовано внутри как 256 страниц, каждая емкостью по 32 байта. Доступ к устройству требует 8-битного адреса устройства, переданного после сигнала Start, после этого разрешается работа с устройством на чтение или запись. Поскольку на шине может одновременно присутствовать несколько устройств, каждое из них должно иметь свой уникальный адрес, чтобы мастер мог обращаться к каждому устройству отдельно. 4 самых старших бита адреса устройства показывают тип устройства. Для AT24C64D требуется идентификатор типа устройства 1010 (Ah), который находится в битах 7 .. 4 байта адреса (таблица 6-1). За 4 битами идентификатора типа устройства идут биты аппаратного адреса подчиненного устройства A0, A1 и A2. Эти биты могут использоваться для расширения доступного объема памяти путем подключения к одной шине нескольких устройств Serial EEPROM (может быть одновременно подключено до 8 устройств). Аппаратный адрес подчиненного устройства зависит о логических уровней, присутствующих на адресных выводах A0, A1 и A2. На выводах A0, A1 и A2 микросхемы AT24C64D реализована схема автоматической подтяжки уровня к лог. 0, если вывод A0, A1 и A2 оставлен не подключенным. При использовании корпуса 6-ball WLCSP выводы A1 и A0 недоступны и подтянуты к лог. 0 внутри микросхемы; таким образом, при обмене с микросхемой в таком корпусе биты A1 и A0 в адресе устройства всегда должны быть нулями (см. таблицу 6-1). При использовании корпуса 4-ball WLCSP выводы A2, A1 и A0 недоступны и подтянуты к лог. 0 внутри микросхемы; таким образом, при обмене с микросхемой в таком корпусе биты A2, A1 и A0 в адресе устройства всегда должны быть нулями (см. таблицу 6-1). Защита данных. У AT24C64D есть аппаратная схема защиты данных, что позволяет пользователю защитить от записи всю память микросхемы, когда вывод WP подключен к VCC. У микросхемы в корпусе 4-ball WLCSP нет вывода WP, поэтому только в таком корпусе защита от записи отсутствует. [Операции записи] Все операции записи AT24C64D начинаются с отправки мастером сигнала Start, за которым идет адрес устройства с младшим битом R/W, установленным в лог. 0, после чего идут байты адреса слова. Значения записываемых байт данных передаются сразу после байт адреса слова. Запись байта (Byte Write). AT24C64D поддерживает запись одного байта (8-битного слова данных). Выбор слова данных в AT24C64D требует 13-битного адреса слова. После приема правильного адреса устройства и байт адреса слова, микросхема EEPROM отправит ACK. После этого устройство будет готово к приему первого 8-битного слова данных. После приема 8-битного слова данных EEPROM ответит сигналом ACK. На адресованном мастером устройстве EEPROM операция записи должна быть завершена сигналом Stop. В этот момент времени EEPROM войдет во внутренний цикл записи, который будет продолжаться в интервале времени tWR, чтобы слово данных могло записаться в энергонезависимую память EEPROM. Во время этого цикла записи все входы запрещаются, и EEPROM не будет отвечать по шине, пока не завершится запись. Рис. 7-1. Запись байта. Запись страницы (Page Write). Операция записи страницы позволяет записать за один раз до 32 байт, когда предоставляются все байты в одной строке массива памяти (по адресам, у которых все биты A12 .. A5 одинаковые). Также разрешена частичная запись страницы, когда передано меньше 32 байт. Запись страницы начинается так же, как запись байта, но мастер не посылает сигнал Stop после того, как был передан первый байт записываемых данных. Вместо этого после того, как EEPROM подтвердит ACK прием первого слова данных, мастер шины может продолжить передавать до 31 дополнительных слов данных. EEPROM ответит ACK после каждого принятого слова данных. Как только все записываемые данные переданы в устройство, мастер шины должен передать сигнал Stop (рис. 7-2), после чего начнется внутренний цикл записи. При передаче каждого слова данных младшие 5 бит внутреннего счетчика адреса автоматически инкрементируются. Старшие биты при этом остаются неизменными, и хранят в себе место расположения строки страницы памяти. Операции записи страницы всегда ограничены по объему размером одной физической страницы, независимо от того, сколько реально было записано байт. Когда инкрементируемый адрес достигает границы страницы, счетчик адреса перескакивает на начало физической страницы. Тем не менее следует избегать таких ситуаций, потому что могут быть не умышленно изменены ранее записанные на эту страницу данные. Рис. 7-2. Запись страницы. Опрос ACK. Может быть реализована подпрограмма опроса готовности микросхемы (Acknowledge Polling), чтобы оптимизировать время операций записи и не ждать фиксированное, определенное в даташите максимальное время цикла записи (tWR). Этот метод позволяет приложению немедленно узнать о моменте, когда Serial EEPROM завершила цикл записи, чтобы можно было запустить следующую операцию. После того, как запустился внутренний цикл записи, можно инициировать циклические вызовы подпрограммы Acknowledge Polling. Вызовы Acknowledge Polling приводят к повторяющимся отправкам сигнала Start, за которым идет достоверный адрес устройства, где бит R/W установлен в лог. 0. Устройство не ответит сигналом ACK, пока все еще идет цикл записи. Как только внутренний цикл записи завершится, EEPROM ответит ACK, что позволит немедленно начать следующую операцию чтения или записи. На рисунке 7-3 показан алгоритм, иллюстрирующий эту технику. Рис. 7-3. Алгоритм опроса готовности (Acknowledge Polling). Время цикла записи. Длительность цикла записи (tWR) определяется как время от момента сигнала Stop, когда начинается операция записи, до момента, когда в ответ на сигнал Start с правильным адресом AT24C64D ответит сигналом ACK. На рис. 7-4 показывает измерение этого времени. Во время внутренней операции записи любые попытки обращения к устройству на чтение или запись не будут обработаны. Рис. 7-4. Тайминг цикла записи. Защита от записи. В микросхеме AT24C64D реализована аппаратная защита данных, которая позволяет запретить запись во всем массиве памяти микросхемы, когда на вывод WP подано напряжение VCC (или достоверный уровень VIH, соответствующий лог. 1). Когда на выводе WP лог. 0, или когда WP оставлен не подключенным, защита от записи не действует. Микросхемы в корпусе 4-ball WLCSP не имеют функции защиты от записи. Состояние ножки WP анализируется в момент сигнала Stop для каждой команды записи байта или записи страницы, перед запуском внутреннего цикла записи. Изменение состояния вывода WP после того, как отправлен сигнал Stop, не изменит или не прервет выполнение запущенного внутреннего цикла записи. Состояние вывода WP должно быть достоверным по отношению со связанным временем установки (Write-Protect Setup, tSU:WP) и удержания (Write-Protect Hold, tHD:WP), как это показано на рис. 7-5 ниже. Время установки WP это количество времени, когда состояние WP должно быть стабильным перед тем, как будет выдан сигнал Stop. Время удержания WP это время, в течение которого уровень WP должен быть стабильным после выдачи сигнала Stop. Рис. 7-5. Тайминг Write-Protect Setup и Write-Protect Hold. Если сделана попытка записи в устройство, когда установлен сигнал WP, устройство подтвердит (ACK) адрес устройства и байты данных, но не запишет их в энергонезависимую память после выдачи сигнала Stop, и устройство станет немедленно готовым к новой команде чтения или записи. [Операции чтения] Операция чтения инициируется так же, как операции записи с тем исключением, что бит Read/Write в байте адреса должен быть в лог. 1. Существует 3 операции чтения: • Current Address Read (чтение по текущему адресу) Current Address Read. Внутренний счетчик адреса слова хранит последний адрес, по которому осуществлялся доступ последней операции чтения или записи, увеличенный на 1. Этот адрес остается достоверным между операциями, пока для микросхемы поддерживается VCC. Адрес переваливает на первый байт первой страницы после чтения последнего байта последней страницы. Операция чтения по текущему адресу выведет данные, соответствующие внутреннему счетчику адреса слова. Эта операция инициируется сигналом Start, за которым идет достоверный адрес устройства с битом R/W, установленным в лог. 1. Устройство будет подтверждать ACK эту последовательность, и слово данных по текущему адресу будет выводиться через линию SDA. Все типы операций чтения будут прерываться, если мастер шины не ответит подтверждением ACK (т. е. ответит сигналом NACK) на девятом импульсе тактов SCL. После ответа NACK мастер может послать сигнал Stop для завершения протокола, или может отправить сигнал Start для начала следующей последовательности. Рис. 8-1. Current Address Read. Random Read. Произвольное чтение (random read) начинается так же, как операция записи байта выполняет загрузку нового адреса слова данных. Это известно как последовательность пустой записи (dummy write); однако байт данных и сигнал Stop записи байта должны быть опущены, чтобы предотвратить вход микросхемы во внутренний цикл записи. Как только адрес устройства и адрес слова вдвинуты в микросхему EEPROM и подтверждены ей, мастер шины должен генерировать другой сигнал Start. Теперь мастер шины использует операцию чтения по текущему адресу отправкой сигнала Start, за которым идет правильный адрес устройства с битом R/W, установленным в 1. EEPROM подтвердит ACK адрес устройства и последовательно выдвинет слово данных через линию SDA. Все типы операций чтения будут завершены, если мастер шины не ответит сигналом ACK (выдаст NACK) во время девятого такта SCK. После ответа NACK мастер может отправить сигнал Stop для завершения протокола, или может отправить Start для начала следующей последовательности. Рис. 8-2. Random Read. Sequential Read. Последовательное чтение инициируется либо операцией чтения по текущему адресу (current address read), либо операцией чтения по произвольному адресу (random read). После того, как мастер пример слово данных, он передаст сигнал положительного подтверждения (ACK). Пока микросхема EEPROM принимает ACK, она будет продолжать инкрементировать слово адреса и последовательно выдвигать слова данных. Когда будет достигнут максимальный адрес памяти, адрес слова данных перевалит в 0, и последовательное чтение продолжится от начала массива памяти. Все типы операций чтения завершатся мастером шины, когда он ответит сигналом NACK на девятом такте. После ответа NACK мастер может отправить сигнал Stop для завершения протокола, или может отправить Start для начала следующей последовательности. Рис. 8-3. Последовательное чтение (Sequential Read). [Ссылки] 1. AT24C64D: I2C-Compatible (2-Wire) Serial EEPROM 64-Kbit (8,192 x 8) site:microchip.com. |