Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3_ЦАП_АЦП.doc
Скачиваний:
87
Добавлен:
03.03.2016
Размер:
95.74 Кб
Скачать

Программирование ацп

Алгоритм действий при программировании АЦП такова.

  1. Выбор номера канала. Поскольку плата 5710 снабжена мультиплексором аналоговых сигналов, осуществляющем подключение только одного из сигналов на вход АЦП, то необходимо в регистр мультиплексора выдать номер канала. Нумерация каналов ведется от 0 до 15 в случае однопроводной схемы включения, а в случае дифференциального подключения, в качестве номеров каналов берутся нечетные числа от 1 до 15 (1, 3, 5, - 15). При однопроводном включении можно использовать все 16 каналов, при дифференциальном – только 8.

Адресом регистра выбора номера канала в плате 5710 является BASE+0x09.

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

  2. Выдать команду начала преобразования. Делается это занесением в регистр по базовому адресу платы 5710 любого числа (обычно 0).

  3. Ждать сигнала готовности данных. По окончании процесса преобразования АЦП выставляет бит готовности данных. Это нулевой бит по базовому адресу платы. Данные готовы для считывания программой, если этот бит установлен в единицу.

ЦСУА 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)).

  1. Преобразование данных из кода в инженерные единицы (вольты).

Считанный код представляет собой 12-ти разрядное число в диапазоне от 0 до 4095. Таблица соответствия дискретных кодов аналоговым значениям приведена выше.

Для получения значения в вольтах можно пользоваться формулой, обратной вышеприведенной для ЦАП:

.

Для случая Code=922 получим: .

.

Для случая Code=1126 получим: .