23LC1024 и 23A1024 — последовательная SRAM 1 Мбит от Microchip
23LC1024 — статическое ОЗУ Microchip на 1 Мбит (128 Кбайт) с шиной SPI в восьмивыводном корпусе. Оно добавляет микроконтроллеру буфер для кадров дисплея, звука или журнала: запись идёт без задержек и без ограничения числа циклов, но данные пропадают без питания. Разбираем по даташиту выводы, семь команд, регистр режима, двух- и четырёхпроводный обмен SDI и SQI, тайминги и отличия 23LC1024 от 23A1024 на 1,8 В.
Обновлено Редакция GAW
23LC1024 (Microchip) — статическое ОЗУ ёмкостью 1 Мбит, организованное как 128 К × 8 бит, с последовательной шиной SPI. Это внешняя оперативная память для микроконтроллера, у которого не хватает своей: буфер кадра для дисплея, кольцевой буфер звука или пакетов, временное хранилище журнала. В отличие от SPI-флеш-памяти и EEPROM, запись в неё мгновенная и бесконечная, но данные исчезают при выключении. Вариант 23A1024 — то же самое для питания 1,8 В.
Коротко
- Объём — 1 Мбит: 131 072 байта, 4096 страниц по 32 байта, адрес 24 бита (старшие 7 не используются).
- Шина — SPI, а также SDI (два бита за такт) и SQI (четыре бита за такт); до 20 МГц, у исполнения E — до 16 МГц.
- Запись — без задержки и без ограничения числа циклов; режимы байта, страницы и потока (по умолчанию).
- Питание — 23LC1024: 2,5–5,5 В; 23A1024: 1,7–2,2 В; чтение 3 мА тип. при 5,5 В и 20 МГц, покой до 4 мкА при 2,2 В.
- Корпуса — PDIP-8 (P), SOIC-8 (SN), TSSOP-8 (ST); −40…+85 °C (I) и −40…+125 °C (E), есть AEC-Q100.
Выводы
| Вывод | Имя | SPI | SDI | SQI |
|---|---|---|---|---|
| 1 | CS | выбор, активный ноль | то же | то же |
| 2 | SO/SIO1 | выход данных | линия данных 1 | линия данных 1 |
| 3 | SIO2 | не используется, не оставлять свободным | не используется | линия данных 2 |
| 4 | VSS | земля | ||
| 5 | SI/SIO0 | вход данных | линия данных 0 | линия данных 0 |
| 6 | SCK | тактовый вход | ||
| 7 | HOLD/SIO3 | пауза обмена, активный ноль; держать в единице | то же | линия данных 3 (паузы нет) |
| 8 | VCC | питание |
Расстановка выводов та же, что у SPI-флеш-памяти W25Q в восьмивыводных корпусах: CS, SO, земля, SI, SCK, HOLD и питание на тех же местах, а на выводе 3 у флеш-памяти — /WP (IO2) (наш вывод по сравнению таблиц выводов). Корпуса описаны чертежами Microchip: PDIP-8 — C04-018-P Rev F, SOIC-8 — C04-057-SN Rev J, TSSOP-8 — C04-086 Rev C (корпус 2,90–3,10 × 4,30–4,50 мм, шаг 0,65 мм).
Команды и режимы
| Команда | Код | Действие |
|---|---|---|
| READ | 03h | чтение с указанного адреса |
| WRITE | 02h | запись с указанного адреса |
| EDIO | 3Bh | перейти в режим SDI |
| EQIO | 38h | перейти в режим SQI |
| RSTIO | FFh | вернуться в SPI |
| RDMR | 05h | прочитать регистр режима |
| WRMR | 01h | записать регистр режима |
Чтение и запись: CS в ноль, команда, 24 бита адреса старшим битом вперёд (первые семь — любые), затем данные; операция заканчивается подъёмом CS. Режим выбирают биты 7 и 6 регистра режима (табл. 2-2):
| Биты 7–6 | Режим | Что происходит после байта |
|---|---|---|
| 00 | байт | обмен одним байтом |
| 10 | страница | адрес растёт внутри 32-байтной страницы и с её конца возвращается к началу |
| 01 | поток (по умолчанию) | адрес растёт по всему массиву, после 1FFFFh — снова 00000h |
| 11 | — | зарезервирован |
Биты 0–5 регистра записывают нулями. Наш вывод: после включения память уже в потоковом режиме, и библиотеке достаточно команд READ и WRITE — это удобно для буфера кадра, который пишется одной длинной передачей.
Данные защёлкиваются по фронту SCK, выход меняется после спада (разд. 3.5); на диаграммах SCK в покое в нуле. Наш вывод: подходит режим SPI 0. При включении память в режиме покоя с CS = 1, и перед первой командой нужен перепад CS из единицы в ноль (разд. 2.7).
SDI и SQI
Команда EDIO (3Bh) переводит память в режим SDI — две линии данных SIO0 и SIO1, EQIO (38h) — в SQI с четырьмя линиями SIO0–SIO3. В обоих режимах после адреса при чтении идёт холостой байт, и только затем данные (рис. 4-2 и 4-5). Вывод HOLD в режиме SQI становится линией SIO3, поэтому паузы обмена в нём нет. Вернуть SPI можно только командой RSTIO, переданной в текущем режиме.
Даташит предупреждает: если микроконтроллер перезапустился, а память — нет, она остаётся в SDI или SQI, и программа должна это учитывать (разд. 4.1). Наш вывод: при старте программы надёжнее всего послать RSTIO в том режиме, в котором память могла остаться, и только затем работать по SPI; подтяжка SIO2 к питанию, по разд. 3.3, помогает выйти из случайно включённого SQI. Чем четырёхпроводный обмен отличается от обычного SPI, рассказано в статье «Quad SPI».
Параметры
Условия — −40…+85 °C (I) и −40…+125 °C (E), табл. 1-1 и 1-2.
| Параметр | Мин. | Тип. | Макс. | Условия |
|---|---|---|---|---|
| Питание 23LC1024 | 2,5 В | — | 5,5 В | |
| Питание 23A1024 | 1,7 В | — | 2,2 В | |
| Единица на входе | 0,7 · VCC | — | VCC + 0,3 В | |
| Ноль на входе | −0,3 В | — | 0,1 · VCC | 23LC1024 (у 23A1024 — 0,2 · VCC) |
| Ноль на выходе | — | — | 0,2 В | 1 мА |
| Единица на выходе | VCC − 0,5 В | — | — | −400 мкА |
| Ток чтения | — | 3 мА | 10 мА | 20 МГц, 5,5 В (при 2,2 В — 1 мА тип.) |
| Ток покоя | — | 4 мкА | 10 мкА | CS = VCC = 5,5 В, I (у E — до 20 мкА) |
| Ток покоя | — | 1 мкА | 4 мкА | CS = VCC = 2,2 В, I (у E — до 12 мкА) |
| Напряжение удержания данных VDR | — | 1,0 В | — | выборочно проверяется |
| Частота SCK | — | — | 20 МГц | I; у E — 16 МГц |
| Установка / удержание данных | 10 нс | — | — | |
| Выход действителен после спада SCK | — | — | 25 нс | I; у E — 32 нс |
| Высокий и низкий уровень SCK | 25 нс | — | — | I; у E — 32 нс |
Предельные режимы (с. 2): VCC до 6,5 В, входы и выходы от −0,3 В до VCC + 0,3 В, хранение −65…+150 °C.
Наш расчёт: при VCC = 5 В ноль на входе — до 0,5 В, при 3,3 В — до 0,33 В. Это жёстче обычных 0,3 · VCC, поэтому длинные линии и подтяжки на шине стоит проверить осциллографом. С 5-вольтовым Arduino 23LC1024 соединяется напрямую, а 23A1024 — только через преобразователь уровней.
SRAM, FRAM, EEPROM и флеш
| Параметр | 23LC1024 (SRAM) | FM24CL16B (FRAM) | 24LC256 (EEPROM) |
|---|---|---|---|
| Объём | 128 Кбайт | 2 Кбайта | 32 Кбайта |
| Шина | SPI, SDI, SQI до 20 МГц | I²C до 1 МГц | I²C до 400 кГц (24FC256 — до 1 МГц) |
| Задержка записи | нет | нет | до 5 мс на страницу 64 байта |
| Ресурс записи | не ограничен | 1014 циклов | более 1 000 000 циклов |
| Без питания | данные теряются | 10 лет при 85 °C | более 200 лет |
Наш вывод: SRAM — для данных, которые часто переписываются и не нужны после выключения; для настроек и счётчиков, которые должны пережить выключение, — FRAM FM24CL16B или EEPROM.
Расхождения в документации
- Ток покоя. Свойства на с. 1 обещают «4 мкА при +85 °C», а табл. 1-1 даёт 4 мкА как максимум только при 2,2 В (23A1024); при 5,5 В это типовое значение, максимум — 10 мкА.
- Обозначение объёма. На с. 1 организация записана как «128-Kbit x 8-bit», хотя речь о 128 К слов по 8 бит (131 072 байта): в разд. 2.2 — 4096 страниц по 32 байта.
- Режим SPI не назван. Даташит не указывает номер режима SPI; режим 0 следует из описания выводов (защёлкивание по фронту SCK, выход после спада) и диаграмм.
- Выход из SDI. Разд. 4.3 начинается словами «чтобы выйти из режима SDI», а описывает выход и из SDI, и из SQI (рис. 4-7 и 4-8).
Частые вопросы
Чем 23LC1024 отличается от 23A1024?
Только питанием и порогом нуля на входах. 23LC1024 работает от 2,5 до 5,5 В и подходит и к 3,3-, и к 5-вольтовым микроконтроллерам; 23A1024 — от 1,7 до 2,2 В. Ноль на входе у 23LC1024 — не выше 0,1 · VCC, у 23A1024 — не выше 0,2 · VCC. Команды, режимы, частота 20 МГц и корпуса у них общие.
Сохраняет ли 23LC1024 данные без питания?
Нет, это статическое ОЗУ: без питания содержимое теряется. Даташит указывает напряжение удержания данных VDR около 1,0 В (тип.) — до него можно снизить VCC без потери содержимого, но это значение только выборочно проверяется. Для данных, которые должны пережить выключение, нужна энергонезависимая память — EEPROM, флеш или FRAM.
Почему 23LC1024 не отвечает после перезапуска микроконтроллера?
Скорее всего, она осталась в режиме SDI или SQI: режим шины не сбрасывается при сбросе микроконтроллера, а команды в обычном SPI она тогда не понимает. Даташит советует определить режим и сбросить его командой RSTIO (FFh) в текущем режиме. Вывод SIO2 (3) при работе по SPI нельзя оставлять свободным: подтяжка к питанию помогает выйти из случайно включённого SQI.
Сколько времени занимает запись в 23LC1024?
Ровно столько, сколько идёт передача по шине: задержки записи нет, опрашивать готовность не нужно. Наш расчёт для SPI на 20 МГц: команда, 24 бита адреса и один байт — 40 тактов, 2 мкс; поток по 1 байту за 8 тактов — 2,5 Мбайт/с, в режиме SQI четыре бита за такт — до 10 Мбайт/с. Число циклов записи не ограничено.
Источники
- Microchip. 23A1024/23LC1024 1-Mbit SPI Serial SRAM with SDI and SQI Interface (DS20005142D, revision D, July 2022) — с. 1 — свойства, таблица вариантов (питание, температура, 20 МГц, 16 МГц для E), расположение выводов; с. 2 — предельные режимы и табл. 1-1 (DC: питание, уровни, токи, VDR 1,0 В); с. 3 — табл. 1-2 (AC); с. 4 — диаграммы; с. 5 — разд. 2.1–2.4 (режимы, 4096 страниц по 32 байта, адрес 24 бита, 1FFFFh); с. 6 — табл. 2-1 (команды); с. 10–11 — регистр режима, состояние при включении; с. 12–13 — табл. 3-1 и описание выводов (SIO2 не оставлять свободным, HOLD); с. 14–18 — SDI и SQI (EDIO, EQIO, RSTIO, холостой байт); с. 20–26 — чертежи C04-018-P Rev F (PDIP), C04-057-SN Rev J (SOIC), C04-086 Rev C (TSSOP, по рендеру); с. 29 — история ревизий
- Microchip. 24AA256/24LC256/24FC256 256K I2C Serial EEPROM (DS20001203W, 2019) — для сравнения (по карточке EEPROM I²C): запись страницы 64 байта до 5 мс, более 1 000 000 циклов
Нашли ошибку?
Смотрите также
- Микросхемы памятиSPI-флеш и EEPROM: устройство, команды, выбор
- SPI-флеш-памятьВыводы, страницы и секторы, команды, статус BUSY, время записи и стирания
- EEPROM с шиной I²CВыводы, адрес на шине, запись байта и страницы, опрос ACK, защита, чтение
- SRAM (статическое ОЗУ)Статическая оперативная память: устройство и размещение в AVR и STM32
- PSRAMВнешняя оперативная память на шине SPI: размеры, режимы, выводы
- QSPISPI с четырьмя линиями данных для флеш-памяти и PSRAM
- Режимы SPI (CPOL, CPHA)Режимы 0–3: полярность и фаза такта SPI
- FRAMЭнергонезависимая память с записью как у ОЗУ: ресурс, ECC, применение
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR
- Кадр SPIДиаграмма режимов 0–3, время передачи, предельная частота
- SOIC-8Шаг 1,27 мм, корпус 4,90 × 3,90 мм, посадочное место, θJA 91,8 °C/Вт
- PDIP-8 (DIP-8)Шаг 2,54 мм, ряды через 7,62 мм, корпус 9,27 × 6,35 мм, чертёж в дюймах
- TSSOP-8Шаг 0,65 мм, корпус 3,0 × 4,4 мм, с выводами 6,4 мм, высота до 1,2 мм