- •Цель работы
- •3.1.2. Модуль аналогового компаратора.
- •3.1.3. Модуль 10-битного ацп.
- •3.1.4. Модуль 12-битного цап.
- •3.2. Программирование аналогового ввода-вывода
- •Меры безопасности
- •Описание лабораторной установки
- •Описание используемых программных комплексов
- •Задание
- •Методика выполнения задания
- •Требования к содержанию и оформлению отчета
- •Контрольные вопросы
- •Критерии оценки выполнения лабораторной работы
3.1.4. Модуль 12-битного цап.
Модуль 12-битного ЦАП DAC12 представляет собой цифро-аналоговый преобразователь с потенциальным выходом. Модуль DAC12 может работать в 8- или 12-битном режимах. Модуль DAC12 имеет следующие особенности:
монотонная характеристика в пределах 12-битного диапазона;
потенциальный выход с разрешением 8 или 12 бит;
программируемое соотношение между временем установления и потреблением;
внешний или внутренний источник опорного напряжения;
использует данные в натуральном двоичном коде или в дополнительном коде;
возможность самокалибровки для коррекции напряжения смещения;
возможность синхронного обновления выходов нескольких модулей DAC12.
Конфигурирование модуля DAC12 осуществляется пользовательской программой.
Модуль DAC12 может быть сконфигурирован для работы в 8- или 12-битном режиме. Максимальный уровень выходного сигнала (однократное или трёхкратное значение выбранного опорного напряжения) программно устанавливается. Это позволяет пользователю управлять динамическим диапазоном ЦАП. Формат входных - натуральный двоичный код или дополнительный код - также устанавливается программно.
В 8_битном режиме наибольшее используемое значение регистра входного кода DAC12_xDAT составляет 0FFh, а в 12_битном режиме — 0FFFh. Значения, превышающие указанные величины, могут быть записаны в регистр, однако все неиспользуемые старшие биты будут проигнорированы.
Выходы модулей DAC12 мультиплексированы с выводами порта P6, аналоговыми входами модуля ADC12, а также с выводами внешнего опорного напряжения.
Модуль DAC12 поддерживает два формата представления данных: натуральный двоичный код и обратный код. При использовании данных, представленных в натуральном коде, максимальному выходному сигналу в 12-битном режиме соответствует значение 0FFFh (0FFh в 8-битном режиме), как показано на рис. 3.2.
Рис. 3.2. Зависимость выходного напряжения модуля DAC12 от входных данных, представленных в натуральном двоичном коде (12-битный режим).
При использовании данных, представленных в дополнительном коде, диапазон сдвигается таким образом, чтобы при значении 0800h регистра DAC12_xDAT (0080h в 8-битном режиме) выходное напряжение ЦАП было равно нулю, при 0000h — половине от максимального значения, а при 07FFh (007Fh в 8-битном режиме) — максимальному значению, как показано на рис. 3.3.
Рис. 3.3. Зависимость выходного напряжения модуля DAC12 от входных данных, представленных в дополнительном двоичном коде (12-битный режим).
3.2. Программирование аналогового ввода-вывода
Среда разработки Energia и язык Arduino предоставляют следующие функции для программирования аналогового ввода и вывода.
Функция int analogRead().
Описание. Читает значение определенного аналогового вывода. Микроконтроллеры MSP430, входящие в комплект отладочного модуля LaunchPad, имеют 10-битный АЦП. Это означает, что входные напряжения в диапазоне между 0В и +5В переводятся в цифровые значения от 0 до 1023. Дискретность преобразования в таком случае составляет 5/1024 = 0,0049В. Выполнение преобразования занимает порядка 100мкс, т.е. максимальная скорость считывания составляет 10 000 раз в секунду.
Синтаксис: analogRead(pin).
Параметры: pin - номер контакта микроконтроллера, с которого следует прочесть значение входного аналогового сигнала (обычно от 0В до +5В). Доступные контакты для аналогового ввода показаны на рис. 1.9 и 1.10.
Возвращает: значение целого типа в диапазоне от 0 до 1023.
Примечание: если аналоговый вход ни к чему не подключен, то возвращаемое значение будет зависеть от различных факторов, в том числе от уровней напряжения на соседних выводах и заканчивая расстоянием от рук до вывода.
Функция analogWrite().
Описание: Пишет аналоговое значение (заполнение ШИМ) в порт. Может использоваться, например, для установки различной яркости свечения светодиодов, регулирования скорости двигателей. После вызова этой функции на выводе будет присутсвовать меандр с определенным коэффициентом заполнения импульсов до нового вызова этой или другой функции в применении к этому порту. Частота сигнала ШИМ состовляет примерно 490Гц.
Синтаксис: analogWrite(pin, value).
Параметры:
pin - номер контакта микроконтроллера, на который нужно выдать аналоговый сигнал. Доступные контакты для аналогового ввода показаны на рис. 1.9 и 1.10.;
value - коэффициент заполнения ШИМ-сигнала: между 0 (всегда низкий уровень) и 255 (всегда высокий уровень).
Примечание: функция analogWrite не имеет никакого отношения к портам АЦП и функции analogRead. Перед использованием функции analogWrite() не нужно вызывать pinMode() для установки вывода как выходного.