Микросхемы, описываемые в этом подразделе, не имеют самостоятельной ценности и могут быть использованы как дополнительные, облегчающие разработку приборов и устройств. Таких микросхем, как показывает опыт изучения элементной базы, в номенклатуре 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.
Таблица 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).
Управляющая схема интерфейса параллельного ввода-вывода показана на рис. 3.57. Обратите внимание: интерфейсные выводы защищены от перегрузки диодами VD1 и VD2.
Поговорим теперь о программных способах работы с данной микросхемой. Традиционно начнем с определения slave-адреса (рис. 3.58).
Вам могут встретиться две разновидности микросхемы PCF8574 — с буквой «А» и без буквы. Отличаются они только четырьмя старшими битами slave-адреса. Таким образом, если на одной шине будет присутствовать 8 микросхем PCF8574 и 8 микросхем PCF8574A, конфликта это не вызовет. Биты А2...А0 задаются с помощью внешних выводов микросхем.
Запись в порт осуществляется по схеме, представленной на рис. 3.59. «Запись» в данном случае означает, что данные с шины I2C появятся на параллельном порте Р0...Р7.
Обратите внимание: данные появляются на выходе порта спустя время t после возникновения сигнала АСК (а также записи в порт). Микроконтроллер должен успеть считать предыдущие данные на линиях Р0...Р7 до появления следующего байта данных.
Чтение с порта происходит по схеме, показанной на рис. 3.60. Напоминаем, что микросхема по-прежнему остается в режиме slave-устройства, то есть сигнал SCL генерируется master-устрой- ством.
Чтение данных с порта происходит в момент появления сигнала АСК. В промежутках между сигналами АСК данные менять нет смысла, поскольку они будут потеряны.
Очень важный и, можно даже сказать, принципиальный момент связан с генерацией сигнала прерывания INT. Аппаратно сигнал INT реализован по принципу выходного каскада с открытым стоком, поэтому необходима «подтяжка» к напряжению питания через pull-up резистор, как показано на рис. 3.61. Выводы INT разных микросхем можно объединить и подать на вывод прерывания микроконтроллера.
кий, так и в обратном направлении. Возврат сигнала INT происходит после генерации сигнала АСК (рис. 3.62) следующим образом:
а) в режиме чтения — в момент положительного перепада сигнала SCL;
б) в режиме записи — в момент отрицательного перепада сигнала SCL.
Прерывания, которые происходят в течение импульса АСК, могут быть потеряны из-за очень короткой длительности импульса.
В табл. 3.36 приведены сведения, необходимые для разработчика.
Таблица 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 | Напряжение питания«+» |
Slave-адрес микросхемы задается, как показано на рис. 3.65. Он содержит фиксированную часть (биты 7...4) и изменяемую часть (биты 3...1). Бит 0, как всегда, несет в себе признак «R/W» (чтение/запись).
Второй байт, следующий за slave-адресом, носит название байта контроля и управления. Этот байт конфигурирует микросхему под задачи пользователя. Во-первых, с его помощью можно включить аналоговый выход или отключить его. Во-вторых, возможно настроить аналоговые входы как в прямом, так и в дифференциальном включении. В-третьих, возможна установка (двумя битами) номера канала A/D, в котором будет происходить преобразование. Если установлен флаг автоинкремента, после каждого A/D преобразования номер входного канала будет увеличиваться на единицу. Режим автоинкремента наиболее рационально использовать совместно с внутренним генератором, поскольку в таком режиме он будет работать непрерывно. Как сказано в документации, задержка пуска генератора при переключении каналов ведет к ошибкам преобразования данных. Рекомендуется также отключать аналоговый выход (переводить его в Z-состояние), если он не используется. Эта мера позволит сократить ток потребления микросхемы. На рис. 3.66 показаны возможные состояния байта контроля и управления.
D/A преобразование
Третий байт, который должна получать микросхема PCF8591, — это байт данных для цифроаналогового преобразователя. Естественно, в этом случае в байте контроля и управления (рис. 3.66) должен быть активизирован аналоговый выход.
Физически D/A преобразователь состоит из резисторной матрицы, показанной на рис. 3.67. Точки соединения резисторов образуют
ответвления, которые с помощью переключателей связываются с выходной линией. Управляет схемой декодер ответвлений. Выходное напряжение (L)AC out) подается затем на усилитель с автомата-
ческой балансировкой нуля (auto-zeroed unity gain amplifier). Этот усилитель может быть либо включен (через байт контроля и управления), либо переведен в высокоимпедансное (2) состояние выхода.
Важно отметить, что D/A преобразователь используется также в процедуре A/D преобразования по методу последовательного приближения. Данный метод подробно описан в литературе, и возвращаться к нему в рамках этой книги нет смысла.
Процедура D/A преобразования показана на рис. 3.68. Любая точка на графике в диапазоне 00h...FFh может быть определена по формуле
где VA0UT — выходное напряжение D/A преобразователя; VREF — опорное напряжение; VAGND — потенциал аналоговой «земли»; D, — соответствующий разряд байта данных.
Обратите внимание также на рис. 3.69. Возможна работа с микросхемой посредством передачи цепочки байтов данных, следующих один за другим. Уровень напряжения, соответствующий заданному, появляется на выходе в момент выдачи сигнала АСК. В момент выдачи сигнала АСК, подтверждающего прием байта контроля и управления (рис. 3.66, control byte) на выходе микросхемы, появляются данные, содержащиеся в регистре DAC с момента окончания предыдущего цикла работы микросхемы.
A/D преобразование
Чтобы выполнить A/D преобразование, вначале нужно передать байт контроля и управления с признаком R/W = 0. Затем осуществить считывание данных согласно рис. 3.70.
Важно отметить, что считывание сигнала с аналогового входа и передача цифровых данных на шину ГС происходит по сигналу АСК. Причем момент считывания аналогового сигнала и момент начала передачи цифрового сигнала (точнее, его старшего бита) разнесены во времени, как показано на рис. 3.70.
Как уже было сказано ранее, входы микросхемы могут работать в обычном и дифференциальном режимах. График, отражающий работу микросхемы в обычном режиме, приведен на рис. 3.71, дифференциальный режим показан на рис. 3.72.
Чтобы обеспечить стабильность A/D и D/A преобразований, необходим специальный источник опорного напряжения, подключаемый к выводам Vref и AGND микросхемы. Встроенный генератор необходим для обеспечения цикла преобразования A/D и для корректировки буферного усилителя с автоматической подстройкой нуля.
Чтобы задействовать внутренний генератор, вывод ЕХТ должен быть замкнут к 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 включены по дифференциальной схеме.
Литература:
Б. Ю. Семенов, «ШИНА 12С В РАДИОТЕХНИЧЕСКИХ КОНСТРУКЦИЯХ» ,Москва СОЛОН-Р 2002
0 коммент.:
Отправить комментарий