Модуль АЦП (ADC) в dsPIC. Описание модуля АЦП. Характеристики АЦП в 10-ти битном режиме работы

Страницы работы

Содержание работы

10. Модуль АЦП (ADC) в dsPIC

10.1. Описание модуля АЦП

10.2. Основные биты и режимы работы АЦП

10.3. Пример использования АЦП с внешним опорным напряжением (пример в PROTEUS)

10.1. Описание модуля АЦП

У dsPIC разное количество аналоговых входов, но их количество достаточно велико. Модуль АЦП может работать как в 10 битном режиме, так и в 12 битном режиме.

Характеристики АЦП в 10-ти битном режиме работы

-Скорость преобразования до 1,1Msps

- до 13 аналоговых входов (dsPIC33FJ32GP204)

- Возможность внешнего подключения опорного напряжения.

- Одновременная фиксация до четырёх аналоговых сигналов

- Режим автоматического сканирования каналов

- Можно выбрать с какого вывода и по какому пути будет происходить преобразование.

- Выбор режима заполнения буфера (16 уровней)

- четыре типа выравнивания результата преобразования

-16 битный буфер результата

Отличие Характеристик АЦП в 12-ти битном режиме работы

-В 12-ти битном режиме скорость преобразования до 500ksps.

-Поддерживается только режим преобразования по одному каналу.

10.2. Основные биты и режимы работы АЦП

Модуль АЦП довольно функциональный, соответственно и битов настройки достаточно много. Далее кратко пройдём по основным из них.

ADON – Включить или выключить модуль АЦП. В принципе такой бит есть у каждого модуля, точно также как и бит ADSIDL, который указывает как себя должен вести модуль АЦП, когда ядро перейдёт в энергосберегающий режим. В данном случае АЦП может лечь спать вместе с ядром, а может и продолжить работу, пока руководитель будет спать.

AD12B – Включить или выключить 12 битный режим. Как уже ранее отмечалась, результат преобразования может быть как 10 битным, так и 12 битным. Естественно, чем больше разрядность, тем точнее измерения. На этом плюсы 12-ти разрядного режима для dsPIC заканчиваются, так как данный режим работает в 2 раза медленнее, чем 10-ти разрядный, а также некоторые функции модуля АЦП становятся недоступными при работе в 12-ти битном режиме.

FORM – Форма выравнивания результата. В разных ситуациях нам при одних и тех же исходных данных хочется получить, как бы отличающиеся по виду представления результаты. Например, в одном случае нам хочется, чтобы результат был всегда положительным. Т.е. при входном напряжении равном Vref-  результат должен быть равен 0, а при входном напряжении равном Vref+, результат должен быть максимальным.

В другом случае нам потребуется, чтобы при входном напряжении Vref- результат был максимальным отрицательным, а при Vref+  - максимально положительным.

Существует четыре формы выравнивания:

11 = Знаковый, смещённый влево

10 = Беззнаковый, смещённый влево

01 = Знаковый, смещённый вправо

00 = Беззнаковый, смещённый вправо

Если этой информации мало, то можно посмотреть в даташите, там на картинках показаны результаты выравнивания, тогда вообще всё станет понятным.

SSRC – бит выбора источника запуска преобразования. Конечно, наиболее распространённый способ запуска преобразования – это вручную установить соответствующий бит, однако dsPIC предоставляет возможность выбора из различных источников запуска преобразования. Например, такими источниками могут быть: Таймер, внешнее прерывание, внутреннее PWM, внутренний счётчик. Допустим, нам необходимо выполнять преобразование через определённые промежутки времени – это не проблема – настраиваем таймер и он будет автоматически запускать преобразование, а нам в программе останется только получать результат преобразования.

SIMSAM – Выбирает каким образом производить выборку сигналов. Если открыть даташит и взглянуть на структурную схему АЦП, то можно обратить внимания, что реально имеется только один (в некоторых контроллерах два) преобразователь АЦП. Получается, что в одно и тоже время может преобразовываться только значение из одного входа. Сразу же напрашивается вопрос: А что же делать, если нужно в одно и тоже время получить значения сразу с нескольких входов. Конечно можно было поставить десяток преобразователей АЦП в микроконтроллер, но это дорогое удовольствие. Было найдено более простое решения – не преобразователи были добавлены, а специальные устройства, которые просто фиксировали значение напряжения на своём входе по определённой команде. Таким образом, можно было одновременно дать команду всем фиксаторам, они мгновенно запомнят значение напряжения для одного и того же времени для всех каналов. А затем по очереди преобразовать все эти значения на единственном аналого-цифровом преобразователе.

Кстати, эти фиксаторы на структурной схеме модуля АЦП называются CH0, CH1, CH2, CH3.

А теперь вернёмся к биту SIMSAM. Так вот этот бит определяет нужно ли одновременно фиксировать значения на всех каналах, или же такой необходимости нет. Ниже приведён рисунок, который очень хорошо показывает смысл этого бита. На рисунке слева одновременно фиксируется, а справа каждый канал по очереди фиксируется.

ASAM – выбор автоматического преобразования. Т.е. можно определить, что после очередного преобразования начинается следующее преобразование, в противном случае преобразование не начнётся, пока мы не попросим об этом.

SAMP – вот именно установив этот бит мы требуем от АЦП начать преобразование. Когда преобразование завершится, то бит сбрасывается.

DONE – флажок, который показывает, закончил ли модуль АЦП преобразование или нет.  Если 1, то преобразование выполнено, в противном случае или не завершено, или даже не запущено.

VCFG– выбор источника опорного напряжения. Все АЦП по определению должны иметь источник опорного напряжения. Контроллеры обычно имеют возможность выбрать опорное напряжение из различных источников. Либо внутреннее напряжение, либо внешнее, либо вообще смешанное.

ADREF+

ADREF-

000

Avdd

Avss

001

VRef+

Avss

010

Avdd

VRef-

011

VRef+

VRef-

1xx

Avdd

Avss

Похожие материалы

Информация о работе