Представители микросхем с интерфейсом I2C

Как показывает практика, далеко не все микросхемы возможно использовать в радиолюбительском творчестве. Например, доста­точно трудно применять такие варианты, как микросхемы для теле­визионных приемников, формирователи сигналов разверток, кор­ректоры цветовых переходов, декодеры цветности, синтезаторы час­тоты для мобильных телефонов и т. д. Поэтому в рамках данной книги рассматриваются микросхемы, которые могут быть использо­ваны преимущественно в домашней аудиоаппаратуре, такой, как, например, усилители низкой частоты, усилители мощности, радио­приемники. Что-то подойдет для создания несложных и полезных устройств на основе микроконтроллера — охранные системы, сис­темы сбора информации, электронные частотомеры, фазометры, ге­нераторы. При необходимости получить информацию по другим ти­пам микросхем можно непосредственно с сайта фирмы Philips (http://www.semiconductors.philips.com). Следует отметить, что ори­гинальная документация требует перевода с английского языка, а значит, необходимо приложить некоторые усилия тем, кто англий­ский знает плохо или вообще не знает. Но при определенном навы­ке глубоких знаний не требуется и смысл большинства слов стано­вится ясным без перевода.

Итак, перейдем к рассмотрению микросхем.

ЭСППЗУ с последовательным доступом

Микросхемы ЭСППЗУ (электрически стираемые постоянно про­граммируемые запоминающие устройства) с последовательным дос­тупом появились на рынке сравнительно недавно, но тем не менее они прочно вошли в арсенал разработчика. Международная аббре­виатура микросхем — EEPROM (electrically erasable PROM). Истори-

чески первыми появились, впрочем, микросхемы с параллельным доступом, когда каждый бит байта мог быть считан или записан по отдельной линии, а значит, одновременно с другими битами. Адрес хранения байта задавался также параллельным способом. То есть, к примеру, память 8-разрядных данных на 256 ячеек должна содержать 8 линий данных и 8 линий адреса данных. Достоинством памяти с параллельным доступом является достаточно малое время досту­па — данные транслируются одновременно по всем линиям. Управ­лять такой памятью тоже очень просто, достаточно выставить адрес, и данные будут считаны (записаны).

Гораздо сложнее работать с последовательной памятью. Во-пер- вых, необходимо последовательно, бит за битом, передать адрес ячейки памяти, затем точно так же передать (или считать) данные. Очевидно, скорость обмена с такой памятью в десятки раз меньше, чем с памятью параллельной. Что и сдерживало появление такого ви­да памяти. Массовый выпуск последовательных EEPROM начался после того, как в составе малогабаритной техники появились не­сложные микроконтроллеры. В основном такая техника не критична к высокой производительности вычислительных устройств, к ней от­носится бытовая и управляющая аппаратура. Еще одно важное об­стоятельство, расширяющее возможности применения последова­тельных микросхем ЭСППЗУ, — их достаточно низкая стоимость.

Следует отметить, что для доступа к данным последовательной памяти используются разные интерфейсы: I2C, Microwire, SPI, CBUS. Некоторые сведения относительно номенклатуры микросхем можно почерпнуть в литературе [2]. Мы коснемся только тех, которые име­ют интерфейс I2C. Обратите внимание: ЭСППЗУ с интерфейсом I2C, выпускаемые разными фирмами (SGS-Thomson microelectronics, Philips, Microchip) и имеющими одно наименование (например, 24С01), могут немного отличаться по расположению выводов, спосо­бу задания slave-адреса, особенности внутренней организации, прин­ципам защиты от записи и др. При проектировании конкретных уст­ройств рекомендуется ориентироваться не только на наименование ЭСППЗУ, но также и поинтересоваться фирмой-производителем, по­лучить оригинальную техническую документацию.

Примеры применения EEPROM с последовательным доступом рассмотрим по документации [10, 11], относящейся к микросхемам

РСА8581 (128 х 8 битов) и PCF85xx (256... 1024 х 8 битов), произво­димых Philips, а также по мануалам [12, 13], описывающим микро­схемы 24LC16B (2048 х 8 битов) и 24LC32A (4096 х 8 битов) произ­водства фирмы Microchip.

РСА8581

Микросхема имеет два исполнения (без буквы «С» в окончании названия и с буквой), отличающихся по некоторым основным экс­плуатационным характеристикам. Основные параметры микросхе­мы:

• питающее напряжение от 4,5 до 5,5 В (РСА8581) и от 2,5 до 6,0 В (РСА8581С);

• встроенный импульсный умножитель напряжения «зарядовый насос» для обеспечения режима записи (для программирования памяти нужно напряжение 12 В, в то время как микросхемы пи­таются пониженным напряжением);

• автоматическое стирание ранее записанной информации перед записью новой (режим automatic erase/write);

• ток потребления в дежурном режиме 10 мкА;

• задание slave-адреса с помощью трех внешних выводов (АО, А1.А2);

• автоматический инкремент адреса при обращении;

• минимально гарантированное число циклов записи — 10 000;

• минимально гарантируемое время сохранения записанной ин­формации — 10 лет;

• бесконечно возможное число циклов чтения;

• рабочая температура окружающей среды от -25 до +85 °С;

• возможность использования на одной шине до 8 однотипных микросхем без дополнительных аппаратных средств переклю­чения и расширения;

• максимальная частота SCL сигнала — 100 кГц (режим low-speed).

Микросхема выпускается в 8-выводном корпусе типа DIP8 или S08 (с планарными выводами). Расположение выводов приведено на рис. 3.1, а их назначение — в табл. 3.1.

Таблица 3.1. Назначение выводов РСА8581

Символ

Вывод

Описание

АО

1

slave-адрес 0

А1

2

slave-aflpec 1

А2

3

slave-адрес 2

f ^

4

Общий вывод

SDA

5

Линия SDA вход/выход

SCL

6

Линия SCL вход

TEST

7

Тестовый вывод

vDD

8

Питание«+»

clip_image002[4]

Внутреннее устройство микросхемы показано на рис. 3.2.

Чтобы предохранить микросхему от перегрузок, например при воздействии статического электричества, разработаны и используют­ся разные методы защиты. Наиболее эффективны, дешевы и носят массовый характер методы встраивания защитных диодов. Один из таких способов, примененный в данной микросхеме, показан на рис. 3.3.

Выводы конфигурации slave-адреса А0...А2 снабжены двумя по­следовательно включенными диодами. При превышении напряжения на выводах А0...А2 порога, заданного напряжением VDD, открывается верхний диод и «притягивает» вывод к потенциалу питания VDD. Ес­ли напряжение становится ниже Vss (потенциал общего провода), от­крывается нижний диод и «притягивает» вывод к потенциалу «зем­ли» Vss. Обратите внимание: в данном случае выводы SDA и SCL имеют только защиту от отрицательного напряжения и не имеют за-

clip_image004[4]

щиты от положительного (верхний диод отсутствует), поскольку микросхема может быть использована при напряжениях на шине, от­личных от напряжения питания микросхемы.

Мы уже знаем, что обращение к микросхеме происходит посред­ством передачи по шине I2C slave-адреса, как показано на рис. 3.4. Адрес в данном случае состоит из 7 битов. Старшие 4 бита (1010) определяют принадлежность микросхемы к группе EEPROM, младшие 3 бита — АО, А1, А2 — задают уникальный идентификационный но­мер в группе однотипных микросхем. Если на шине присутствует не­сколько микросхем с одинаковыми старшими 4 битами slave-адреса, необходимо с помощью перемычек, подключаемых к напряжению питания или к общему проводу, задать на выводах А0...А2 потенциа­лы, назначить микросхемам уникальные идентификационные номе­ра, например, как показано на рис. 3.5. Обращение к соответствую­щему элементу будет производиться программно, заданием битов А0...А2.

clip_image006[4]

clip_image008[4]

Разберемся теперь, как устроена матрица памяти микросхемы и каким образом осуществить запись (считывание) данных.

Рассмотрим сначала ситуацию, когда устройство master передает данные к slave-абоненту (режим записи WRITE). Формат сообщения представлен на рис. 3.7.

Вначале осуществляется передача slave-адреса и признака R/W (в данном случае этот бит установлен в «О»), Второй байт — адрес ячейки матрицы памяти, изображенной на рис. 3.6. Обратите внима­ние: старший бит этого байта, помеченный на рис. 3.7 знаком «х», не определяется или, другими словами, может быть установлен в «О» или в «1». Почему? Это станет понятным, когда мы представим, что с помощью 8 битов возможно задание 256 адресов, но в данной мик­росхеме присутствует только 128 ячеек (а значит, столько же и адре­сов). Старшие 128 адресов здесь просто не определены.

После передачи адреса ячейки осутествлясгся передача байта данных (DATA). Биты 7...О последовательно занимают ячейки памя­ти. После приема бита «О» данных осуществляется автоинкремент (увеличение на единицу) адреса памяти. Естественно, завершение передачи должно сопровождаться появлением условия Stop.

Чтение из памяти осуществляется по протоколу, показанному на рис. 3.8.

clip_image010[4]

Вначале необходимо передать slave-адрес с признаком R/W — «О», затем адрес ячейки. После получения master-абонентом сигнала АСК, свидетельствующего о нормальном приеме адреса ячейки па­мяти, master-абонент должен выставить повторное условие Start и пе­редать slave-устройству slave-адрес с признаком R/VV -— «1», полу­чить АСК от slave-устройства и начать считывание данных, выстав­ляя после каждого полученного байта сигнал АСК. После получения последнего байта master-абонент не выставляет сигнала АСК, а вы­полняет условие Stop. Заметим, что в данном случае также справед­лив автоинкремент адреса ячейки.

Master-абонент может начать непосредственное чтение со slave-устройства, но в этом случае он должен учитывать, что чтение будет производиться не с нулевого адреса, а с увеличенного на еди­ницу адреса, операция с которым была последней в предыдущем цикле (рис. 3.9).

clip_image012[4]

PCF85xx

Эта серия микросхем EEPROM имеет увеличенный объем памяти по сравнению с предыдущей микросборкой. Емкость микросхем се­рии указана в табл. 3.2.

Таблица 3.2

Микросхема

Емкость

Организация j

PCF8582

2 кбита

256 х £

битов |j

PCF8594

4 кбита

512 х

битов J

PCF8598

8 кбитов

1024 х

8 битов if


clip_image014[4]

совместимы с чипами PCF8570, PCF8571, PCF8572 и PCF8581 по расположению выводов. Внутренее устройство микросхем PCF8582, PCF8594 и PCF8598 приведено на рис. 3.10.

Расположение выводов указанных микросхем приведено на рис. 3.11, назначение выводов — в табл. 3.3—3.5.

clip_image016[4]

Таблица 3.3. Назначение выводов PCF8582

Символ

Вывод

Описание

АО

1

Slave-адрес 0

А1

2

Slave-адрес 1

А2

3

Slave-адрес 2

Vss

4

Общий вывод

SDA

5

Линия SDA вхо/^выход

SCL

6

Линия SCL вход

РТС

7

Контроль времени программирования

Vdd

со

Вывод питания«+»

Таблица 3.4. Назначение выводов PCF8594

Символ

Вывод

Описание

WP

1

Защита записи

А1

2

Slave-адрес 1

А2

3

Slave-адрес 2

Vss

4

Общий вывод

SDA

5

Линия SDA вхо^выход

clip_image018[4]

Таблица 3.5. Назначение выводов PCF8598

Символ

Вывод

Описание

WP

1

Защита записи

-

2

Не используется

А2

3

Slave-aflpec 2

Vss

4

Общий вывод

SDA

5

Линия SDA вход/выход

SCL

6

Линия SCL вход

РТС

7

Контроль времени программирования

Vdd

8

Вывод питания«+»

Протокол программирования памяти микросхем аналогичен при­веденному ранее, но имеет некоторые особенности. Одна из особен­ностей связана с тем, что адрес ячейки памяти пе может содержать число, превышающее 255. Но приведенные тины микросхем содер­жат 512 и 1024 ячейки. Что это означает? Все очень просто: в slave-адресе биты Л0...А2 уже не все программируются внешними перемычками. Часть из них выбирается программно, при задании shve-адреса. Мы словно объединяем в одном корпусе несколько микросхем PCF8582. Структура памяти, состоящая из блоков по 256 байтов, называется страничной организацией. К слову, максималь­ное число страниц в одной микросхеме 8.

Интересной возможностью, реализованной в описываемых мик­росхемах, является возможность защиты от повторной записи. Если вывод WP имеет низкий уровень, работа с EEPROM не имеет ограни­чений. Если WP устанавливается в состояние «1», верхняя половина памяти EEPROM защищается от записи. В таком случае сигнал АСК пе будет генерироваться при адресации к верхней половине (256 бай­тов) PCF9594 и PCF8598 (512 байтов).

При записи данных в память EEPROM должны быть выдержаны определенные временные соотношения (циклы erase/write). Длитель­ность этих циклов формируется внутри микросхемы и в большинст­ве случаев не требует коррекции. Если коррекции не требуется, вы­вод РТС может быть подключен к VDn или оставлен не подключен­ным. Типичное значение Бремени tr vv г= 7 мс, оно может быть задано внешне в пределах 4... 10 мс.

Как уже ранее было сказано, микросхемы EEPROM с последова­тельным доступом по шине ГС выпускает не только фирма Philips, но и другие не менее известные фирмы. Для сравнения приведем описания микросхем 24LC16B и 24LC32A, производимых Microchip.

24LC16B

Емкость микросхемы —- 16 кбитов, организованных в 8 блоков по 256 битов. Основные характеристики:

• возможность питания пониженным напряжением (до 2,5 В):

• наличие входных формирователей (триггеров Шмитта) для обеспечения помехоустойчивости;

• ток потребления в активном режиме 1 мА;

• потребление в режиме ожидания — 10 мкА при питании 5,5 В и 5 мкА при питании 3,0 В:

• организация 8 х 256 х 8 би тов;

• зашита входов от потенциального пробоя 4 кВ:

• возможность работы в режиме fast-speed;

• автоматическое выполнение цикла E/W;

• внутренний буфер данных размером 16 байтов;

• типичный цикл записи страницы данных ■—- 2 мс;

• аппаратная защита от перезаписи;

• гарантированное число циклов E/W — 1 ООО ООО;

• сохранность записанных данных — не менее 200 (!) лет;

• коммерческое (0...+70 °С) и индустриальное (-40...+85 °С) ис­полнения;

• корпуса DIP и SOIC.

Расположение выводов показано на рис. 3.12.

clip_image020

Запись в память и считывание из нее осуществляется по принци­пам, описанным выше, поэтому мы не будем повторяться.

Очень важный момент, на который обращают внимание разра­ботчики микросхемы, связан с повторным обращением к памяти вслед за завершением предыдущего цикла. Другими словами, после установки условия Stop внутри микросхемы начинается процесс за­писи в матрицу памяти и, пока он не закончится, совершать повтор­ные операции не представляется возможным.

Особенно это будет заметно в режиме fast-speed, поскольку в нем используются ускоренные шинные циклы. Сообщить об окончании внутренних операций микросхема может только при помощи уста­новки сигнала АСК в состояние «О». Для сокращения времени опо­знавания разработчики рекомендуют производить эту процедуру с помощью так называемого поллинга (acknowledge polling flow), то есть постоянного опроса состояния готовности. Процедура поллинга приведена на рис. 3.13.

Как следует из рис. 3.13, master-абонент вслед за передачей усло­вия Stop выставляет условие Start, передает slave-адрес и проверяет сигнал АСК. Если АСК = 1 (занято), передается повторно условие Start, slave-адрес, осуществляется проверка АСК. Если АСК = 0 (сво­бодно), master-абонент переходит к следующей операции.

Память можно защитить от записи, подключив вывод WP к на­пряжению VDD. Обратите внимание: таким образом защищается пол­ный объем памяти (OOOh—7FFh), а не ее часть (верхняя или нижняя). Защищенная память представляет собой тип ROM с последователь­ным доступом (read-only, только чтение).

Внутреннее устройство микросхемы, приводимое в технической документации, вы можете увидеть на рис. 3.14.

clip_image022

На рис. 3.14:

• — порт ввода/вывода;

• — контроллер памяти;

• — декодер «X»;

• — генератор высокого напряжения;

• — матрица памяти;

• — селектор страниц;

• — декодер «У»;

• — схема контроля R/W.

24LC32A

Пожалуй, это наиболее интересная микросхема, позволяющая хранить 32 кбита информации. «Как же так, — спросите вы, — неу­жели возможно без специальных средств обеспечить хранение и об­мен информации, превышающей 16 кбитов?» Оказывается, можно. Причем никаких дополнительных микросхем расширения не потре­буется — все необходимые средства уже есть в составе описываемой EEPROM.

Мы не будем останавливаться на параметрах микросхемы, так как они в основном совпадают с теми, что были приведены для 24LC16B. Расположение выводов показано на рис. 3.15, внутреннее устройство — на рис. 3.16. Назначение блоков совпадает с рис. 3.14.

Вы уже обратили внимание на наличие выводов АО...A3, позво­ляющих селектировать slave-адрес и «повесить» на шину I2C до 8 та­ких микросхем? Не будет ли здесь путаницы, шинного конфликта? В самом деле, классический вариант может адресовать только 256

clip_image024

clip_image026

ячеек, переключая страницы посредством задания определенных уровней сигнала на выводах АО...A3 или программируя их в slave-ад­ресе. Дело в том, что данная микросхема имеет два адресных бита, следующих за slave-адресом, как показано на рис. 3.17.

clip_image028

Матрица памяти разделена здесь также на блоки по 256 байтов, но селектируются они уже не посредством задания битов А0...А2 в slave-адресе, а битами А8...А11 в адресном бите 1.

Операции записи байга, записи цепочки байтов с автоинкремен­том адреса, чтения байта и чтения байта с автоинкрементом приве­дены на рис. 3.18...3.21. Дополнительных пояснений рисунки не тре­буют.

Добавлю, что в данной микросхеме предусмотрен вывод WP, по­зволяющий выполнить защиту от записи. Здесь также может быть использована процедура программного поллинга для обеспечения быстрого повторного доступа.

clip_image030

clip_image032

clip_image034

clip_image036

К5004РС2,КР5004РР4

Отечественная промышленность хоть и с большим опозданием, но все же собирается выпустить на рынок микросхемы памяти с по­следовательным доступом и интерфейсом, один к одному соответст­вующим I2C [17, 18]. И хотя на момент написания этой книги доку- ментация пока еще имеет гриф «предварительно», возможно, что ко дню выхода этой книги из печати микросхемы К5004РС2 и КР5004РР4 производства ОАО «Ангстрем», г. Зеленоград уже поя­вятся в продаже.

Что же это за микросхемы? Просматривая документацию, вы не найдете там упоминания об Т2С, но, сравнив принципы доступа с фирменными, приведенными чуть выше, можно убедиться в полной совместимости с этой шиной. Мало того, интерфейсные линии име­ют обозначения SCL и SDA, как у лицензированных микросхем I2C.

Микросхема К5004РС2 (АДБК.431210.792 ТУ) совместима с ре­жимами low-speed и fast-speed. Она организована страницами по 8 байтов. Количество страниц — 32. Запись осуществляется блоками размером от 1 до 8 байтов в одной странице, при одном цикле запи­си. Питается микросхема напряжением 2,7...5,5 В, имеет аппаратную защиту от записи.

Микросхема КР5004РР4 (АДБК.431210ю737 ТУ) также совмес­тима с режимами low-speed и fast-speed, организована страницами по 8 байтов. Количество страниц — 64, питание от 4,5 до 5,5 В. Обе микросхемы будут выпускаться в двух корпусах — DIP8 и SOIC.

В чем же может заключаться преимущество данных микросхем перед импортными? Пожалуй, только в цене.

Литература:
Б. Ю. Семенов, «ШИНА 12С В РАДИОТЕХНИЧЕСКИХ КОНСТРУКЦИЯХ» ,Москва СОЛОН-Р 2002

Предлагаю ознакомиться с аналогичными статьями: