Вспомогательные микросхемы I2C

Микросхемы, описываемые в этом подразделе, не имеют само­стоятельной ценности и могут быть использованы как дополнитель­ные, облегчающие разработку приборов и устройств. Таких микро­схем, как показывает опыт изучения элементной базы, в номенклату­ре 1~С фирмы Philips большинство. Из этого большого списка автором были выбраны три наименования: PCF8574 (интерфейсная микросхема), PCF8583 (часы/календарь), PCF8591 (АЦП/ЦАП). Ин­терес также представляет микросхема DS1621, выпускаемая фирмой Dallas Semiconductors, — электронный термометр.

PCF8574

Согласно документации [29], эта микросхема представляет собой remote 8-bit I/O expander for I2C bus, или 8-битовый интерфейс, со­вмещенный с интерфейсом I2C, предназначенный для трансляции данных. Проще говоря, микросхему эту можно использовать для пре­образования данных, поступающих с шины I2C в 8-битовый парал­лельный код, или последовательно передавать код по шине. Зачем нужна такая микросхема? К примеру, в какой-либо конструкции не­обходимо использовать микроконтроллер, включив его как slave-уст-

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

Традиционное предуведомление отражает наиболее привлека­тельные для разработчика свойства микросхемы:

• сохранение работоспособности при напряжении питания от 2,5 до 6 В;

• низкое потребление тока в ждущем режиме — 10 мкА;

• открытый сток вывода «прерывание» (interrupt);

• 8-битовый двунаправленный I/O порт;

• совместимость с большинством микроконтроллеров;

• высокая нагрузочная способность выходов, позволяющая непо­средственно подключать светоизлучающие диоды;

• внешние 3 вывода slave-адреса, позволяющие подключить к шине I2C одновременно до 8 однотипных микросхем;

• корпус DIP 16 (SOT38-1) или S016 (SOT162-1).

Расположение выводов микросхемы приведено на рис. 3.55, на­значение выводов — в табл. 3.35.

clip_image002

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

Символ

Вывод

Описание

АО

1

Адресный вход 0

1

А1

2

Адресный вход 1

А2

3

Адресный вход 2

Р0

4

Квази-двунаправленный I/O порт 0

Р1

5

Квази-двунаправленный I/O порт 1

Р2

6

Квази-двунаправленный I/O порт 2

РЗ

7

Квази-двунаправленный I/O порт 3

Vss

со

Общий провод микросхемы

Р4

9

Квази-двунаправленный I/O порт 4

Р5

10

Квази-двунаправленный I/O порт 5

Р6

11

Квази-двунаправленный I/O порт 6

Р7

12

Квази-двунаправленный I/O порт 7

INT

13

Вывод сигнала прерывания (LOW)

SCL

14

Линия SCL шины I2C

SDA

15

Линия SDA шины I2C

Vdo

16

Питание«+»

В чем состоит «изюминка» данной микросхемы? Как известно, прием и передача данных посредством стробирования не вызывает сложностей. Достаточно помещать данные в сдвиговый регистр, а потом осуществлять их движение подачей стробирующих импуль­сов. Все это так, но главная сложность работы с шиной I2C заключа­ется в том, что затруднительно фиксировать условие Start, свидетель­ствующее об активизации шины. Если вы помните, в протоколе ши­ны был оставлен служебный адрес 0000 0001, называемый «программный Start». Работать в условиях программного отслежива­ния Start-условия достаточно трудно и далеко не всегда оправданно, поэтому в состав микросхемы PCF8574 была введена «изюминка» в виде вывода генерации прерывания (interrupt, INT). Сигнал прерыва­ния сообщит микроконтроллеру о начале активации шины. Таким образом, сторона микросхемы PCF8574, относящаяся к интерфейсу ГС, представляет собой обычное slave-усгройство (рис. 3.56).

clip_image004

Управляющая схема интерфейса параллельного ввода-вывода по­казана на рис. 3.57. Обратите внимание: интерфейсные выводы за­щищены от перегрузки диодами VD1 и VD2.

clip_image006

Поговорим теперь о программных способах работы с данной микросхемой. Традиционно начнем с определения slave-адреса (рис. 3.58).

clip_image008

Вам могут встретиться две разновидности микросхемы PCF8574 — с буквой «А» и без буквы. Отличаются они только че­тырьмя старшими битами slave-адреса. Таким образом, если на од­ной шине будет присутствовать 8 микросхем PCF8574 и 8 микросхем PCF8574A, конфликта это не вызовет. Биты А2...А0 задаются с помо­щью внешних выводов микросхем.

Запись в порт осуществляется по схеме, представленной на рис. 3.59. «Запись» в данном случае означает, что данные с шины I2C появятся на параллельном порте Р0...Р7.

Обратите внимание: данные появляются на выходе порта спустя время t после возникновения сигнала АСК (а также записи в порт). Микроконтроллер должен успеть считать предыдущие данные на ли­ниях Р0...Р7 до появления следующего байта данных.

clip_image010

Чтение с порта происходит по схеме, показанной на рис. 3.60. Напоминаем, что микросхема по-прежнему остается в режиме slave-устройства, то есть сигнал SCL генерируется master-устрой- ством.

clip_image012

Чтение данных с порта происходит в момент появления сигнала АСК. В промежутках между сигналами АСК данные менять нет смысла, поскольку они будут потеряны.

Очень важный и, можно даже сказать, принципиальный момент связан с генерацией сигнала прерывания INT. Аппаратно сигнал INT реализован по принципу выходного каскада с открытым сто­ком, поэтому необходима «подтяжка» к напряжению питания через pull-up резистор, как показано на рис. 3.61. Выводы INT разных микросхем можно объединить и подать на вывод прерывания мик­роконтроллера.

clip_image014

кий, так и в обратном направлении. Возврат сигнала INT происходит после генерации сигнала АСК (рис. 3.62) следующим образом:

а) в режиме чтения — в момент положительного перепада сигна­ла SCL;

б) в режиме записи — в момент отрицательного перепада сигнала SCL.

Прерывания, которые происходят в течение импульса АСК, мо­гут быть потеряны из-за очень короткой длительности импульса.

В табл. 3.36 приведены сведения, необходимые для разработчика.

clip_image016

Таблица 3.36

Параметр технических условий

Символ

Мин.

Норма

Макс.

Ед. изм.

Напряжение питания

Vdd

2,5

-

6,0

В

Ток потребления в активном состоянии VDD = 6 В, fscl= 100 кГц

'dd

-

40

100

мкА

Ток потребления в неактивном состоянии

'sib

-

2,5

10

мкА

Уровень напряжения сброса внутренней схемы

Vpor

-

1,3

2,4

В

Время, за которое выходные данные вступают в силу

^pv

-

-

4

мкс

Время установки входных данных

^su

0

-

-

мкс

Время удержания входных данных

th

4

-

-

мкс

Время, за которое входные данные вступают в силу

tiv

-

-

4

мкс

Время задержки сброса

tir

-

-

4

мкс

Температура хранения

Tstg

-65

-

+150

°С

Рабочая температура

Tamb

-40

-

+85

Максимальная частота сигнала SCL

'scl

-

-

100

кГц

PCF8591

Документация [30] относит эту микросхему к типу 8-bit A/D and D/A convertor, то есть микросхема предназначена для аналого-циф­ровых и цифро-аналоговых преобразований сигналов. В современ­ной технике такие преобразователи используются для решения са­мых разнообразных задач. При написании этой книги не предполага­лось рассказывать об использовании преобразователей в радиолюби­тельских конструкциях. Читатель, столкнувшийся с необходимостью применить в своих разработках указанные элементы, всегда найдет необходимую вспомогательную литературу. Например, об использо­вании ЦАП и АЦП в устройствах измерения можно прочитать в кни­ге [32]. Отметим только, что отечественным сокращениям ЦАП и АЦП соответствуют зарубежные DAC (D/A) и ADC (A/D). В совре­менном мире выпускается много микросхем преобразователей, осна­щенных интерфейсом последовательного доступа, однако доля ин­терфейса I2C среди них невысока.

Микросхема PCF8591 обладает следующими заманчивыми свой­ствами:

• единственный источник питающего напряжения;

• сохранение работоспособности в диапазоне питающих напря­жений от 2,5 до 6 В;

• низкий ток потребления;

• три вывода задания slave-адреса;

• четыре аналоговых входа с возможностью программирования включения (прямое и дифференциальное);

• использование A/D преобразования с последовательным при­ближением и 8-разрядным диапазоном чисел;

• мультиплексированный D/A преобразователь с одним аналого­вым выходом.

Данная микросхема выполнена по технологии КМОП, имеет 4 аналоговых входа и 1 аналоговый выход, управляемые посредством задания данных на шине I2C. Биты А2...А0 в slave-адресе микросхе­мы задаются внешними сигналами по традиционному способу: под­ключением соответствующих выводов либо к общему проводу, либо к напряжению питания. Это позволяет использовать до 8 однотип- ных микросхем. В составе PCF8591 имеется только один A/D преоб­разователь, но использование методов мультиплексирования расши­ряет входные возможности микросхемы. Вход АЦП последовательно подключается к 4 сигнальным входам, и происходит считывание ин­формации с них. К сожалению, мультиплексирование нельзя исполь­зовать для D/A преобразования, поэтому аналоговый выход только один. Максимальная скорость преобразования данных ограничена максимальным быстродействием шины I2C.

Расположение выводов микросхемы показано на рис. 3.63, назна­чение выводов — в табл. 3.37. Блок-схема, отражающая внутреннее устройство и взаимодействие элементов микросхемы, приведена на рис. 3.64.

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

Символ

Вывод

Описание

AIN0

1

Аналоговый вход (A/D)

AIN1

2

Аналоговый вход (A/D)

AIN2

3

Аналоговый вход (A/D)

AIN3

1

4

Аналоговый вход (A/D)

АО

5

Адресный вход 0

А1

6

Адресный вход 1

А2

7

Адресный вход 2

Vss

8

Общий провод микросхемы (питание)

SDA

9

Линия SDA шины I2C

SCL

10

Линия SCL шины I2C

OSC

11

Вывод подключения внешнего генератора

EXT

12

Внешний/внутренний генератор

AGND

13

Аналоговая «земля»

Vref

14

Опорное напряжение

AOUT

15

Аналоговый выход (D/A)

Vqd

16

Напряжение питания«+»


clip_image018

clip_image020

Slave-адрес микросхемы задается, как показано на рис. 3.65. Он содержит фиксированную часть (биты 7...4) и изменяемую часть (би­ты 3...1). Бит 0, как всегда, несет в себе признак «R/W» (чтение/за­пись).

clip_image022

Второй байт, следующий за slave-адресом, носит название байта контроля и управления. Этот байт конфигурирует микросхему под задачи пользователя. Во-первых, с его помощью можно включить аналоговый выход или отключить его. Во-вторых, возможно настро­ить аналоговые входы как в прямом, так и в дифференциальном включении. В-третьих, возможна установка (двумя битами) номера канала A/D, в котором будет происходить преобразование. Если ус­тановлен флаг автоинкремента, после каждого A/D преобразования номер входного канала будет увеличиваться на единицу. Режим ав­тоинкремента наиболее рационально использовать совместно с внут­ренним генератором, поскольку в таком режиме он будет работать непрерывно. Как сказано в документации, задержка пуска генератора при переключении каналов ведет к ошибкам преобразования данных. Рекомендуется также отключать аналоговый выход (переводить его в Z-состояние), если он не используется. Эта мера позволит сократить ток потребления микросхемы. На рис. 3.66 показаны возможные со­стояния байта контроля и управления.

D/A преобразование

Третий байт, который должна получать микросхема PCF8591, — это байт данных для цифроаналогового преобразователя. Естествен­но, в этом случае в байте контроля и управления (рис. 3.66) должен быть активизирован аналоговый выход.

Физически D/A преобразователь состоит из резисторной матри­цы, показанной на рис. 3.67. Точки соединения резисторов образуют

clip_image002[3]

ответвления, которые с помощью переключателей связываются с выходной линией. Управляет схемой декодер ответвлений. Выход­ное напряжение (L)AC out) подается затем на усилитель с автомата-

ческой балансировкой нуля (auto-zeroed unity gain amplifier). Этот усилитель может быть либо включен (через байт контроля и управле­ния), либо переведен в высокоимпедансное (2) состояние выхода.

clip_image004[3]

clip_image006[3]

Важно отметить, что D/A преобразователь используется также в процедуре A/D преобразования по методу последовательного при­ближения. Данный метод подробно описан в литературе, и возвра­щаться к нему в рамках этой книги нет смысла.

Процедура D/A преобразования показана на рис. 3.68. Любая точ­ка на графике в диапазоне 00h...FFh может быть определена по фор­муле

clip_image008[3]

где VA0UT — выходное напряжение D/A преобразователя; VREF — опорное напряжение; VAGND — потенциал аналоговой «земли»; D, — соответствующий разряд байта данных.

Обратите внимание также на рис. 3.69. Возможна работа с микро­схемой посредством передачи цепочки байтов данных, следующих один за другим. Уровень напряжения, соответствующий заданному, появляется на выходе в момент выдачи сигнала АСК. В момент вы­дачи сигнала АСК, подтверждающего прием байта контроля и управ­ления (рис. 3.66, control byte) на выходе микросхемы, появляются данные, содержащиеся в регистре DAC с момента окончания преды­дущего цикла работы микросхемы.

clip_image010[3]

A/D преобразование

Чтобы выполнить A/D преобразование, вначале нужно передать байт контроля и управления с признаком R/W = 0. Затем осущест­вить считывание данных согласно рис. 3.70.

clip_image002[5]

Важно отметить, что считывание сигнала с аналогового входа и передача цифровых данных на шину ГС происходит по сигналу АСК. Причем момент считывания аналогового сигнала и момент на­чала передачи цифрового сигнала (точнее, его старшего бита) разне­сены во времени, как показано на рис. 3.70.

Как уже было сказано ранее, входы микросхемы могут работать в обычном и дифференциальном режимах. График, отражающий рабо­ту микросхемы в обычном режиме, приведен на рис. 3.71, дифферен­циальный режим показан на рис. 3.72.

clip_image004[5]

Чтобы обеспечить стабильность A/D и D/A преобразований, не­обходим специальный источник опорного напряжения, подключае­мый к выводам Vref и AGND микросхемы. Встроенный генератор не­обходим для обеспечения цикла преобразования A/D и для корректи­ровки буферного усилителя с автоматической подстройкой нуля.

clip_image006[5]

clip_image008[5]

Чтобы задействовать внутренний генератор, вывод ЕХТ должен быть замкнут к Vss. Тогда на выводе OSC появится сигнал частоты преобразования, который можно проконтролировать. Если вывод ЕХТ подключить к VDD, внугренний генератор перейдет в высокоим- педансное состояние и на вывод OSC можно подавать сигнал от внешнего генератора.

В табл. 3.38 приведены основные технические характеристики микросхемы, необходимые для проектирования.

Таблица 3.38

Параметр технических условий

Символ

Мин.

Норма

Макс.

Ед. изм.

Напряжение питания

Vdd

2,5

6,0

В

Ток потребления: 1 в ждущем режиме A0UT отключен А01ГГ включен

'dd

-

1

125 0,45

15 250 1,0

мкА

Порог срабатывания схемы внутреннего сброса

Vpor

0,8

-

2,0

В

Входное опорное напряжение

Че.

Vss+1.6

-

Vdd

В

1 Потенциал аналоговой «земли»

Vagnd

Vss

-

Vdo

В

Входное сопротивление

Rref

-

100

_

кОм

Частота преобразования

^osc

0,75

-

1,25

МГц

Выходное напряжение

Vo

Vss

-

Vdd

В

D/A характеристики

Ошибка смещения

ose

-

-

50

мВ

Ошибка линейности

u

-

-

±1,5

LSB

Ошибка усиления

Gg

-

-

1

%

Время установки DAC

w

-

-

90

мкс

A/D характеристики

Ошибка смещения

ose

-

-

20

мВ

Ошибка линейности

It,

-

-

±1,5

LSB

Ошибка усиления

Ge

-

-

1

%

Ошибка усиления малого сигнала (AV|= 16LSB)

GSe

-

-

5

%

Время преобразования

*adc

-

-

90

мкс

Рабочая температура

^amb

-40

-

+85

•с

Температура хранения

Tstg

-65

-

+150

•с

На рис. 3.73 приведен пример использования микросхемы PCF8591 в качестве температурного датчика. Выводы AIN0 и AIN1 работают в обычном режиме, выводы AIN2 и AIN3 включены по дифференциальной схеме.

clip_image010[5]

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

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