Микросхема PCF8591 обладает следующими возможностями:
- единственный источник питающего напряжения;
- сохранение работоспособности в диапазоне питающих напряжений от 2,5 до 6 В;
- низкий ток потребления;
- три вывода задания slave-адреса;
- четыре аналоговых входа с возможностью программирования включения (прямое и дифференциальное);
- использование A/D преобразования с последовательным приближением и 8-разрядным диапазоном чисел;
- мультиплексированный D/A преобразователь с одним аналоговым выходом.
Данная микросхема выполнена по технологии КМОП, имеет 4 аналоговых входа и 1 аналоговый выход, управляемые посредством задания данных на шине I2C. Биты А2...А0 в slave-адресе микросхемы задаются внешними сигналами по традиционному способу: подключением соответствующих выводов либо к общему проводу, либо к напряжению питания. Это позволяет использовать до 8 однотипных микросхем. В составе PCF8591 имеется только один A/D преобразователь, но использование методов мультиплексирования расширяет входные возможности микросхемы. Вход АЦП последовательно подключается к 4 сигнальным входам, и происходит считывание информации с них. К сожалению, мультиплексирование нельзя использовать для D/A преобразования, поэтому аналоговый выход только один. Максимальная скорость преобразования данных ограничена максимальным быстродействием шины I2C.
Рисунок 1. Расположение выводов микросхемы PCF8591
Рисунок 2. Блок-схема, отражающая внутреннее устройство и взаимодействие элементов микросхемы
Таблица 1. Назначение выводов PCF8591
Символ | Вывод | Описание |
AIN0 | 1 | Аналоговый вход (A/D) |
AIN1 | 2 | Аналоговый вход (A/D) |
AIN2 | 3 | Аналоговый вход (A/D) |
AIN3 | 4 | Аналоговый вход (A/D) |
А0 | 5 | Адресный вход 0 |
A1 | 6 | Адресный вход 1 |
A2 | 7 | Адресный вход 2 |
Vss | 8 | Общий провод микросхемы (питание) |
SDA | 9 | Линия SDA шины I2C |
SCL | 10 | Линия SCL шины I2C |
OSC | 11 | Вывод подключения внешнего генератора |
EXT | 12 | Внешний/внутренний генератор |
AGND | 13 | Аналоговая «земля» |
Vref | 14 | Опорное напряжение |
AOUT | 15 | Аналоговый выход (D/A) |
Vdd | 16 | Напряжение питания«+» |
Slave-адрес микросхемы задается, как показано на рис.3. Он содержит фиксированную часть (биты 7...4) и изменяемую часть (биты 3...1). Бит 0, как всегда, несет в себе признак «R/W» (чтение/запись).
Рисунок 3. Slave-адрес микросхемы
Второй байт, следующий за slave-адресом, носит название байта контроля и управления. Этот байт конфигурирует микросхему под задачи пользователя. Во-первых, с его помощью можно включить аналоговый выход или отключить его. Во-вторых, возможно настроить аналоговые входы как в прямом, так и в дифференциальном включении. В-третьих, возможна установка (двумя битами) номера канала A/D, в котором будет происходить преобразование. Если установлен флаг автоинкремента, после каждого A/D преобразования номер входного канала будет увеличиваться на единицу. Режим автоинкремента наиболее рационально использовать совместно с внутренним генератором, поскольку в таком режиме он будет работать непрерывно. Как сказано в документации, задержка пуска генератора при переключении каналов ведет к ошибкам преобразования данных. Рекомендуется также отключать аналоговый выход (переводить его в Z-состояние), если он не используется. Эта мера позволит сократить ток потребления микросхемы. На рис. 4 показаны возможные состояния байта контроля и управления.
Рисунок 4. Состояния байта контроля и управления
D/A преобразование
Третий байт, который должна получать микросхема PCF8591, - это байт данных для цифроаналогового преобразователя. Естественно, в этом случае в байте контроля и управления (рис. 4) должен быть активизирован аналоговый выход.
Физически D/A преобразователь состоит из резисторной матрицы, показанной на рис. 5. Точки соединения резисторов образуют ответвления, которые с помощью переключателей связываются с выходной линией. Управляет схемой декодер ответвлений. Выходное напряжение (L)AC out) подается затем на усилитель с автоматаческой балансировкой нуля (auto-zeroed unity gain amplifier). Этот усилитель может быть либо включен (через байт контроля и управления), либо переведен в высокоимпедансное (2) состояние выхода.
Рисунок 5. D/A преобразователь
Важно отметить, что D/A преобразователь используется также в процедуре A/D преобразования по методу последовательного приближения. Данный метод подробно описан в литературе, и возвращаться к нему в рамках этой книги нет смысла.
Рисунок 6. Процедура D/A преобразования
Процедура D/A преобразования показана на рис. 6. Любая точка на графике в диапазоне 00h...FFh может быть определена по формуле:
где VA0UT — выходное напряжение D/A преобразователя; VREF — опорное напряжение; VAGND — потенциал аналоговой «земли»; D - соответствующий разряд байта данных.
Обратите внимание также на рис. 7. Возможна работа с микросхемой посредством передачи цепочки байтов данных, следующих один за другим. Уровень напряжения, соответствующий заданному, появляется на выходе в момент выдачи сигнала АСК. В момент выдачи сигнала АСК, подтверждающего прием байта контроля и управления (рис. 4) на выходе микросхемы, появляются данные, содержащиеся в регистре DAC с момента окончания предыдущего цикла работы микросхемы.
Рисунок 7.
A/D преобразование
Чтобы выполнить A/D преобразование, вначале нужно передать байт контроля и управления с признаком R/W = 0. Затем осуществить считывание данных согласно рис. 8.
Рисунок 8. A/D преобразование
Важно отметить, что считывание сигнала с аналогового входа и передача цифровых данных на шину ГС происходит по сигналу АСК. Причем момент считывания аналогового сигнала и момент начала передачи цифрового сигнала (точнее, его старшего бита) разнесены во времени, как показано на рис. 8.
Как уже было сказано ранее, входы микросхемы могут работать в обычном и дифференциальном режимах. График, отражающий работу микросхемы в обычном режиме, приведен на рис. 9, дифференциальный режим показан на рис. 10.
Рисунок 9. Обычный режим измерения
Рисунок 10. Дифференциальный режим измерения
Чтобы обеспечить стабильность A/D и D/A преобразований, необходим специальный источник опорного напряжения, подключаемый к выводам Vref и AGND микросхемы. Встроенный генератор необходим для обеспечения цикла преобразования A/D и для корректировки буферного усилителя с автоматической подстройкой нуля.
Чтобы задействовать внутренний генератор, вывод ЕХТ должен быть замкнут к Vss. Тогда на выводе OSC появится сигнал частоты преобразования, который можно проконтролировать. Если вывод ЕХТ подключить к VDD, внугренний генератор перейдет в высокоимпедансное состояние и на вывод OSC можно подавать сигнал от внешнего генератора.
Литература:
Б. Ю. Семенов, «ШИНА I2C В РАДИОТЕХНИЧЕСКИХ КОНСТРУКЦИЯХ»