- •Цсуа 3.1
- •Краткое описание принципа работы параллельных ацп.
- •Структурная схема 3-разрядного параллельного ацп
- •Краткое описание принципа работы последовательных ацп.
- •Сигнал готовности данных
- •Вопросы программирования ацп и цап
- •Цсуа 3.5
- •Разделение данных на младший значащий байт (lsb least significant bit)и старший значащий полубайт (msb) [most significant bit].
- •Программирование ацп
- •Преобразование данных из кода в инженерные единицы (вольты).
Программирование ацп
Алгоритм действий при программировании АЦП такова.
-
Выбор номера канала. Поскольку плата 5710 снабжена мультиплексором аналоговых сигналов, осуществляющем подключение только одного из сигналов на вход АЦП, то необходимо в регистр мультиплексора выдать номер канала. Нумерация каналов ведется от 0 до 15 в случае однопроводной схемы включения, а в случае дифференциального подключения, в качестве номеров каналов берутся нечетные числа от 1 до 15 (1, 3, 5, - 15). При однопроводном включении можно использовать все 16 каналов, при дифференциальном – только 8.
Адресом регистра выбора номера канала в плате 5710 является BASE+0x09.
-
Желательно осуществить небольшую выдержку времени (порядка нескольких микросекунд) для того, чтобы закончились переходные процессы в мультиплексоре, возникающие в момент переключения канала. Данная операция повышает точность измерения, поскольку переходные процессы мультиплексора могут вносить высокочастотные помехи в измеряемый сигнал.
-
Выдать команду начала преобразования. Делается это занесением в регистр по базовому адресу платы 5710 любого числа (обычно 0).
-
Ждать сигнала готовности данных. По окончании процесса преобразования АЦП выставляет бит готовности данных. Это нулевой бит по базовому адресу платы. Данные готовы для считывания программой, если этот бит установлен в единицу.
ЦСУА 3.6
Чтение и компоновка данных. Как и в случае с ЦАП, мы не сможем за одно обращение считать двенадцатиразрядный код. Чтение данных производится поочередно за две операции. Сначала по адресу BASE+0x02 считываются данные с 4 по 11-й бит (старший байт, или MSB). Затем по адресу BASE+0x03 считываются данные с 0 по 3-й бит (младший полубайт, или LSB). При этом физически биты с 0 по 3-й физически расположены с 4 по 7 в считываемом слове, см. таблицу.
Таким образом, данные размещаются по двум независимым адресам и должны быть программным путем скомбинированы для достижения 12-ти разрядного результата.
Другими словами, биты MSB c 0 по 7-й должны стать битами с 4-го по 11-й в результирующем 12-ти разрядном числе. А биты LSB c 4-го по 7-й должны стать битами с 0-го по 3-й. Делать это можно операциями циклического сдвига вправо и влево.
Пример на языке С: Code=((MSB<<4)+(LSB>>4)).
-
Преобразование данных из кода в инженерные единицы (вольты).
Считанный код представляет собой 12-ти разрядное число в диапазоне от 0 до 4095. Таблица соответствия дискретных кодов аналоговым значениям приведена выше.
Для получения значения в вольтах можно пользоваться формулой, обратной вышеприведенной для ЦАП:
.
Для случая Code=922 получим: .
.
Для случая Code=1126 получим: .