Администрирование Железо AT24C64: Serial EEPROM с интерфейсом I2C (TWI) Wed, June 26 2019  

Поделиться

нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


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).
• Внутренняя организация 8192 x 8 (64 килобит).
• I2C-совместимый последовательный интерфейс (2-Wire, TWI) с двунаправленным протоколом передачи данных:
   – стандартный режим с частотой тактов 100 кГц (VCC = 1.7V .. 5.5V).
   – быстрый ускоренный режим (Fast mode) с частотой тактов 400 кГц (VCC = 1.7V .. 5.5V).
   - дополнительно ускоренный режим (Fast Mode Plus, FM+) с частотой тактов 1 МГц (VCC = 2.5V .. 5.5V).
• Для подавления шума на входах применен триггер Шмитта.
• Имеется вывод аппаратной защиты от записи (Write Protect, WP).
• Страничный режим записи (32-byte Page Write Mode), позволяющий частичную запись страницы.
• Режим последовательного чтения и режим чтения по произвольному адресу.
• Автоматический цикл записи, реализованный внутри микросхемы (максимальной длительностью 5 мс).
• Защита от статического электричества (ESD Protection) > 4000V.
• Высокая надежность хранения данных:
   – износостойкость к перезаписи 1000000 циклов.
   – сохранность данных 100 лет.
• Опции поставки "зеленых" корпусов (Lead-free/Halide-free/RoHS compliant).
• AT24C64D поставляется в стертом состоянии, когда вся память EEPROM заполнена единицами (все ячейки содержат значение слова данных FFh).

Пример системы, где используется несколько микросхем AT24XXX (slave, подчиненные устройства), подключенных параллельно к одной шине I2C:

AT24C64D system bus example

Виды корпусов AT24C64D, вид сверху:

AT24C64D SOIC8 TSSOP8 AT24C64D UDFN8 XDFN8
  AT24C64D 8 ball VFBGA  
AT24C64D 4 ball WLCSP AT24C64D 6 ball WLCSP

Примечание: при использовании корпусов 4-ball и 6-ball WLCSP обратитесь к разделу "Адресация" для получения информации по установке бит аппаратного адреса A2, A1, A0.

Таблица 2-1. Таблица цоколевки корпусов.

Имя SOIC8
TSSOP8
UDFN8(1),
XDFN8
8-ball
VFBGA
4-ball
WLCSP
(2)
6-ball
WLCSP
(2)
Функция
A0(3) 1 1 1 - - Аппаратный адрес устройства I2C
A1(3) 2 2 2 - -
A2(3) 3 3 3 - B3
GND 4 4 4 A2 B2 Земля, общий провод
SDA 5 5 5 B2 B1 Последовательные данные
SCL 6 6 6 B1 A1 Последовательные такты
WP(3) 7 7 7 - A2 Защита от записи
VCC 8 8 8 A1 A3 + питания

Примечания:

1. Нижняя металлическая контактная площадка (exposed pad) корпуса UDFN может быть подключена к GND, или оставлена без подключения.
2. При использовании корпусов 4-ball и 6-ball WLCSP обратитесь к разделу "Адресация" для получения информации по установке бит аппаратного адреса A2, A1, A0.
3. Если на вывод WP не подан никакой внешний сигнал (он не подключен), то его логический уровень подтягивается к GND внутри микросхемы, т. е. запись разрешена. Этот механизм подтяжки сделан довольно сильным, чтобы он хорошо работал в широком диапазоне различных рабочих условий. Как только уровень на выводе WP смещается выше порогового напряжения для входа буфера CMOS (~0.5 x VCC), механизм подтяжки освобождается. Microchip рекомендует по мере возможности подключать вход WP в известное состояние (с уровнем VCC или GND). Поскольку у корпусов WLCSP нет вывода WP, для них функция защиты от записи не предоставляется.

Блок-схема внутреннего устройства AT24C64D:

AT24C64D block diagram

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
Диапазон температур хранения -65°C .. +150°C
VCC 6.25V
Напряжение на любом выводе относительно GND -1.0V .. +7.0V
Постоянный (DC) выходной ток 5.0 mA
ESD защита >4 kV

[Рабочий диапазон DC и AC]

Таблица 4-1. Рабочий диапазон температур и напряжения питания.

Параметр Диапазон значений
Температура корпуса микросхемы (индустриальное исполнение) -40°C .. +85°C
Напряжение питания VCC (класс микросхем с низким напряжением питания, Low Voltage Grade) 1.7V .. 5.5V

Таблица 4-2. Характеристики DC.

Параметр Sym MIN nom(1) MAX Ед. Условия тестирования
Напряжение питания  VCC1 - - 5.5 V  
Потребляемый ток ICC1 - 0.4 1.0 mA VCC = 5.0V, чтение на 400 кГц
ICC2 - 2.0 3.0 mA VCC = 5.0V, запись на 400 кГц
Ток режима приостановки (Standby) ISB1 - - 1 μA VCC = 1.7V, VIN = VCC или GND
- - 6 μA VCC = 5.0V, VIN = VCC или GND
Входной ток утечки ILI - 0.10 3.0 μA VIN = VCC или GND; VCC = 5.0V
Выходной ток утечки ILO - 0.05 3.0 μA VOUT = VCC или GND; VCC = 5.0V
Входной уровень лог. 0 VIL -0.6 - VCC x 0.3 V Примечание (2)
Входной уровень лог. 1 VIH VCC x 0.7 - VCC + 0.5 V Примечание (2)
Выходной уровень лог. 0 VOL1 - - 0.2 V VCC = 1.7V, IOL = 0.15 mA
Выходной уровень лог. 0 VOL2 - - 0.4 V VCC = 3.0V, IOL = 2.1 mA

Примечания:

(1) Типовые значения указаны при TA = +25°C, если не отмечено что-то другое.
(2) Этот параметр характеризован, однако не был на 100% проверен при производстве.

[Характеристики AC]

Таблица 4-3. Характеристики переменного тока AC(1).

Параметр Sym Fast Mode Fast Mode Plus Ед.
VCC = 1.7V .. 2.5V VCC = 2.5V .. 5.0V
MIN MAX MIN MAX
Частота тактов SCL fSCL - 400 - 1000 кГц
Интервал лог. 0 SCL tLOW 1300 - 500 - нс
Интервал лог. 1 SCL tHIGH 600 - 400 - нс
Интервал подавления шума(2) tI - 100 - 50 нс
Интервал между SCL=0 до достоверных выходных данных tAA 50 900 50 450 нс
Время свободного состояния шины между Stop и Start(2) tBUF 1300 - 500 - нс
Время удержания состояния шины (Start Hold Time) tHD.STA 600 - 250 - нс
Время установки состояния старта (Start Set‑up Time) tSU.STA 600 - 250 - нс
Время удержания входных данных (Data In Hold Time) tHD.DAT 0 - 0 - нс
Время установки состояния входных данных (Data In Set‑up Time) tSU.DAT 100 - 100 - нс
Время нарастания уровня на входе(2) tR - 300 - 300 нс
Время спада уровня на входе(2) tF - 300 - 100 нс
Время установки стоп (Stop Set-up Time) tSU.STO 600 - 250 - нс
Время удержания выходных данных (Data Out Hold Time) tDH 50 - 50 - нс
Время цикла записи tWR - 5 - 5 мс

Примечания:

(1) Условия измерения AC:

- RPUP (верхний подтягивающий резистор, pull-up между SDA и VCC): 1.3 kΩ (1000 кГц), 4 kΩ (400 кГц), 10 kΩ (100 кГц).
- Напряжение входных импульсов: 0.3 VCC .. 0.7 VCC
- Интервалы времени нарастания и спада уровня на входе: ≤ 50 нс.
- Опорный уровень, от которого отсчитывались входные и выходные интервалы: 0.5 VCC.

(2) Этот параметр указан как характеристика, и он не был протестирован на 100%.

AT24C64D bus timing fig4 01

Рис. 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).

Sym Параметр MIN MAX Ед.
tPUP Необходимый интервал времени после стабилизации уровня VCC перед тем, как устройство может принимать команды 100 - мкс
VPOR Пороговое напряжение выхода из состояния сброса - 1.5 V
tPOFF Минимальный интервал времени при VCC = 0V между включениями питания. 500 - мс

Примечание (1): эти параметры даны только как характеристика, однако они не были на 100% протестированы в производстве.

Если в системе произошло событие, когда подаваемый на AT24C64D уровень напряжения VCC падает ниже максимального уровня VPOR, рекомендуется провести последовательность полного включения питания путем первоначального перевода уровня VCC к GND, после чего должен быть выдержан интервал tPOFF, и затем должна быть начата новая последовательность включения питания, совместимая с требованиями, определенными в этой секции.

[Паразитные емкости]

Таблица 4-5. Емкости выводов(1).

Sym Параметр MAX Ед. Условия тестирования
CI/O Емкость входа/выхода (SDA) 8 пФ VI/O = 0V
CIN Емкость входа (A2, A1, A0 и SCL) 6 пФ VI/O = 0V

Примечание (1): эти параметры даны только как характеристика, однако они не были на 100% протестированы в производстве.

[Производительность ячеек памяти EEPROM]

Таблица 4-6. Параметры ячеек памяти EEPROM.

Операция Условия тестирования MIN MAX Единицы
Износостойкость записи(1)
TA = 25°C, VCC = 3.3V, режим записи страницы 1000000 - Количество циклов записи
Срок хранения данных(1) TA = 55°C 100 - Лет

Примечание (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.

AT24C64D Start Data Stop Ack fig5 01

Рис. 5-1. Сигнал Start, изменения данных, сигнал Stop и подтверждение ACK.

Режим Standby. В микросхеме AT24C64D реализован режим низкого энергопотребления (Standby mode), который запускается, когда происходит одно из следующих событий:

• Выполнена допустимая последовательность включения питания (см. "Требования к включению питания и поведение при сбросе" во врезке "Электрические характеристики и параметры").

• Принят сигнал Stop, если при этом не начался внутренний цикл записи (см. "Операции записи").
• Момент завершения внутреннего цикла записи (см. "Операции записи").
• Несовпадение идентификатора типа устройства или аппаратного адреса (см. "Адресация").
• Мастер шины не ответил сигналом ACK на прочитанные из AT24C64D данные, место этого мастер ответил сигналом NACK (см. "Операции чтения").

Программный сброс. После обрыва в протоколе, пропадания питания или сброса системы любое I2C-устройство можно сбросить программно путем тактирования SCL, пока сигнал SDA не будет освобожден микросхемой EEPROM, и он не перейдет в лог. 1. Количество тактов до момента, когда SDA будет освобожден устройством EEPROM, будет варьироваться, однако программный сброс не должен занимать больше 9 пустых (dummy) тактовых импульсов. Как только последовательность программного сброса завершилась, может быть начат новый протокол обмена путем отправки сигнала Start. Последовательность программного сброса показана на диаграмме рис. 5-2.

AT24C64D Software Reset fig5 02

Рис. 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 не будет отвечать по шине, пока не завершится запись.

AT24C64D Byte Write fig7 01

Рис. 7-1. Запись байта.

Запись страницы (Page Write). Операция записи страницы позволяет записать за один раз до 32 байт, когда предоставляются все байты в одной строке массива памяти (по адресам, у которых все биты A12 .. A5 одинаковые). Также разрешена частичная запись страницы, когда передано меньше 32 байт.

Запись страницы начинается так же, как запись байта, но мастер не посылает сигнал Stop после того, как был передан первый байт записываемых данных. Вместо этого после того, как EEPROM подтвердит ACK прием первого слова данных, мастер шины может продолжить передавать до 31 дополнительных слов данных. EEPROM ответит ACK после каждого принятого слова данных. Как только все записываемые данные переданы в устройство, мастер шины должен передать сигнал Stop (рис. 7-2), после чего начнется внутренний цикл записи.

При передаче каждого слова данных младшие 5 бит внутреннего счетчика адреса автоматически инкрементируются. Старшие биты при этом остаются неизменными, и хранят в себе место расположения строки страницы памяти.

Операции записи страницы всегда ограничены по объему размером одной физической страницы, независимо от того, сколько реально было записано байт. Когда инкрементируемый адрес достигает границы страницы, счетчик адреса перескакивает на начало физической страницы. Тем не менее следует избегать таких ситуаций, потому что могут быть не умышленно изменены ранее записанные на эту страницу данные.

AT24C64D Page Write fig7 02

Рис. 7-2. Запись страницы.

Опрос ACK. Может быть реализована подпрограмма опроса готовности микросхемы (Acknowledge Polling), чтобы оптимизировать время операций записи и не ждать фиксированное, определенное в даташите максимальное время цикла записи (tWR). Этот метод позволяет приложению немедленно узнать о моменте, когда Serial EEPROM завершила цикл записи, чтобы можно было запустить следующую операцию.

После того, как запустился внутренний цикл записи, можно инициировать циклические вызовы подпрограммы Acknowledge Polling. Вызовы Acknowledge Polling приводят к повторяющимся отправкам сигнала Start, за которым идет достоверный адрес устройства, где бит R/W установлен в лог. 0. Устройство не ответит сигналом ACK, пока все еще идет цикл записи. Как только внутренний цикл записи завершится, EEPROM ответит ACK, что позволит немедленно начать следующую операцию чтения или записи. На рисунке 7-3 показан алгоритм, иллюстрирующий эту технику.

AT24C64D Acknowledge Polling Flowchart fig7 03

Рис. 7-3. Алгоритм опроса готовности (Acknowledge Polling).

Время цикла записи. Длительность цикла записи (tWR) определяется как время от момента сигнала Stop, когда начинается операция записи, до момента, когда в ответ на сигнал Start с правильным адресом AT24C64D ответит сигналом ACK.

На рис. 7-4 показывает измерение этого времени. Во время внутренней операции записи любые попытки обращения к устройству на чтение или запись не будут обработаны.

AT24C64D Write Cycle Timing fig7 04

Рис. 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.

AT24C64D Write Protect Setup and Hold Timing fig7 05

Рис. 7-5. Тайминг Write-Protect Setup и Write-Protect Hold.

Если сделана попытка записи в устройство, когда установлен сигнал WP, устройство подтвердит (ACK) адрес устройства и байты данных, но не запишет их в энергонезависимую память после выдачи сигнала Stop, и устройство станет немедленно готовым к новой команде чтения или записи.

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

Операция чтения инициируется так же, как операции записи с тем исключением, что бит Read/Write в байте адреса должен быть в лог. 1. Существует 3 операции чтения:

• Current Address Read (чтение по текущему адресу)
• Random Address Read (чтение по произвольному адресу)
• Sequential Read (последовательное чтение)

Current Address Read. Внутренний счетчик адреса слова хранит последний адрес, по которому осуществлялся доступ последней операции чтения или записи, увеличенный на 1. Этот адрес остается достоверным между операциями, пока для микросхемы поддерживается VCC. Адрес переваливает на первый байт первой страницы после чтения последнего байта последней страницы.

Операция чтения по текущему адресу выведет данные, соответствующие внутреннему счетчику адреса слова. Эта операция инициируется сигналом Start, за которым идет достоверный адрес устройства с битом R/W, установленным в лог. 1. Устройство будет подтверждать ACK эту последовательность, и слово данных по текущему адресу будет выводиться через линию SDA. Все типы операций чтения будут прерываться, если мастер шины не ответит подтверждением ACK (т. е. ответит сигналом NACK) на девятом импульсе тактов SCL. После ответа NACK мастер может послать сигнал Stop для завершения протокола, или может отправить сигнал Start для начала следующей последовательности.

AT24C64D Current Address Read fig8 01

Рис. 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 для начала следующей последовательности.

AT24C64D Random Read fig8 02

Рис. 8-2. Random Read.

Sequential Read. Последовательное чтение инициируется либо операцией чтения по текущему адресу (current address read), либо операцией чтения по произвольному адресу (random read). После того, как мастер пример слово данных, он передаст сигнал положительного подтверждения (ACK). Пока микросхема EEPROM принимает ACK, она будет продолжать инкрементировать слово адреса и последовательно выдвигать слова данных. Когда будет достигнут максимальный адрес памяти, адрес слова данных перевалит в 0, и последовательное чтение продолжится от начала массива памяти. Все типы операций чтения завершатся мастером шины, когда он ответит сигналом NACK на девятом такте. После ответа NACK мастер может отправить сигнал Stop для завершения протокола, или может отправить Start для начала следующей последовательности.

AT24C64D Sequential Read fig8 03

Рис. 8-3. Последовательное чтение (Sequential Read).

[Ссылки]

1. AT24C64D: I2C-Compatible (2-Wire) Serial EEPROM 64-Kbit (8,192 x 8) site:microchip.com.

 

Добавить комментарий


Защитный код
Обновить

Top of Page