Портирование приложений с семейства PIC18 на PIC24F. 2.7. 10-и битный АЦП

2.7. 10-битный аналого-цифровой преобразователь
10-битный АЦП семейства PIC24F значительно отличается от аналогичного модуля в микроконтроллерах PIC18 (см. табл. 31). Основные отличия это увеличенная до 500 тыс. выборок в секунду скорость преобразования, режим автоматического сканирования каналов, буфер результатов с различными режимами заполнения, четыре формата представления результата, индивидуально настраиваемые аналоговые входы. Новые функции позволяют значительно увеличить гибкость системы и снизить объем программных ресурсов, используемых для реализации аналого-цифрового преобразования.

Таблица 31. Сравнение модулей 10-битного АЦП семейств PIC18 и PIC24F


Параметры

PIC18

PIC24F

Разрядность

10 бит

10 бит

Максимальная скорость преобразования (тыс. выборок в секунду)

100

500

Источники опорного напряжения

внутренний и внешний

внутренний и внешний

Флаг окончания преобразования

да

да

Настраиваемый предделитель для тактирования АЦП

да

да

Встроенный RC генератор для реализации преобразования при остановленном основном генераторе

да

да

Автоматическая выборка (заряд устройства выборки-хранения - УВХ)

да

да

Настройка длительности выборки

да

да

Индивидуально настраиваемые аналоговые входы

нет

да

Специальный триггер начала преобразования (от модуля сравнения или внешнего прерывания)

да

да

Автоматическое сканирование каналов

нет

да

Буфер результатов преобразования

нет

да

4 формата представления результата

нет

да

Дифференциальный формирователь напряжения для УВХ

нет

да

2.7.1. Наименования битов и регистров модуля
Структуры модулей АЦП семейств PIC18 и PIC24F довольно похожи – это 10-битные АЦП последовательного приближения с настраиваемой скоростью преобразования, встроенным тактовым RC-генератором, возможностью изменения канала преобразования в ходе работы. Основные биты и регистры, отвечающие за функционирование АЦП в PIC18 и PIC24F приведены в табл. 32. Они имею различные названия, но выполняют сходные функции.

 

Таблица 32. Сравнение основных управляющих битов 10-битных АЦП семейств PIC24F и PIC18


Функция

PIC18

PIC24F

Биты, используемые для выбора опорных напряжений – AVDD или VREF+ для позитивного и AVSS или VREF+ для негативного входов опоры

VCFG2:VGFG0

VCFG2:VGFG0

Флаг программного старта и индикации окончания преобразования

GO/DONE

DONE

Выбор источника тактирования (основной системный генератор или встроенный RC) и делителя тактовой частоты

ADCS2:ADCS0

ADRC, ADCS7:ADCS0

Конфигурация времени автоматической выборки

ACQT2:ACQT0

SAMC4:SAMC0

Настройка вывода как аналогового

PCFG3:PCFG0

PCFG15:PCFG0

Выбор канала преобразования

CHS3:CHS0

CSSL15:CSSL0

Конфигурация триггера начала преобразования (от модуля сравнения или внешнего прерывания)

CCPxM3:CCPxM0 (CCPxM:<3:0>)

SSRC2:SSRC0

2.7.2. Новые функции 10-битного АЦП в семействе PIC24F
Увеличенная скорость преобразования. Минимальная период тактовой частоты для АЦП PIC24F уменьшен с 750 нсек (PIC18) до 75 нсек, таким образом, обеспечивается скорость преобразования до 500 тыс. выборок в секунду.
Гибкая буферизация результатов. Буфер результатов преобразования может быть сконфигурирован как два 8-уровневых буфера или один 16-уровневый буфер. В первом случае результаты преобразования могут сохранятся поочередно в каждый буфер или последовательно до заполнения одного из них.
Форматы результата. Результат преобразования может быть представлен в одном из четырех форматов, включая форматы с фиксированной точкой.
Автоматическое сканирование каналов – аппаратная функция, позволяющая настроить АЦП таким образом, чтобы по окончании одного преобразования мультиплексор автоматически переключался на следующий выбранный канал.
Индивидуальная конфигурация аналоговых входов. Каждый вывод, имеющий функцию аналогового может быть выбран индивидуально, в отличие от PIC18, в которых выбирается определенная последовательность выводов ANx.
Дифференциальное преобразование. Дифференциальный формирователь напряжения для устройства выборки-хранения позволяет оцифровывать разность напряжений между двумя аналоговыми каналами.

2.7.3. Функции 10-битного АЦП, отсутствующие в семействе PIC24F
Все функции 10-битного модуля АЦП семейства PIC18 так же поддерживаются в семействе PIC24F.

2.7.4. Портирование типового приложения
Последовательность конфигурация модуля АЦП в семействе PIC24F очень похожа на настройку АЦП в PIC18. Один или несколько выводов выбираются в качестве аналоговых, устанавливается время выборки и период тактового сигнала. Включается модуль АЦП. Если используется прерывание, необходимо сбросить флаг и разрешить его. После минимально допустимого времени заряда конденсатора УВХ (которое обеспечивается программно или автоматически логикой модуля) запускается процесс квантования. После окончания преобразования устанавливается флаг DONE и, если разрешено, генерируется прерывание.
Для настройки модуля АЦП PIC24F, при которой он будет работать аналогично АЦП в PIC18, необходимо сделать следующие действия:

  1. Выбрать каналы преобразования (AD1PCFG<15:0>);
  2. Установить требуемые источники опорного напряжения (AD1CON2<15:13>);
  3. Выбрать в качестве тактового источника встроенный RC-генератор (AD1CON3<15>), или установить делитель тактовой частоты (AD1CON3<7:0>);
  4. Установить режим работы – автоматическая выборка после завершения предыдущего преобразования или программный старт выборки (AD1CON1<2>);
  5. Выбрать триггер старта преобразования – программный, по фронту на выводе INT0, по переполнению таймера TMR3 или автоматически после завершения выборки (AD1CON1<7:5>);
  6. Выбрать формат результата преобразования: знаковый целый, беззнаковый целый, знаковый с фиксированной точкой или беззнаковый с фиксированной точкой (AD1CON1<9:8>);
  7. Сбросить биты SMPI (AD1CON2<5:2>) для того чтобы по аналогии с архитектурой PIC18 прерывание возникало после каждого преобразования;
  8. Включить модуль АЦП (AD1CON1<15>);
  9. Если необходимо, разрешить прерывание, сбросив флаг (IFS0<13>), установив бит разрешения (IEC0<13>), и требуемый приоритет (IPC3<6:4>).

2.7.5. Рекомендации по портированию приложения
Диапазон входных напряжения для модуля АЦП PIC24F меньше чем для PIC18, так как PIC24F имеет более низкое напряжение питания. Как для PIC18, так и для PIC24F напряжение на аналоговом входе не должно превышать VDD более чем на 0.3 В и не должно быть ниже VSS более чем на 0.3 В.

Входное сопротивление модуля АЦП PIC24F составляет 2.5 кОм, в то время как у большинства контроллеров PIC18 входное сопротивление – 10 кОм. Емкость конденсатора устройства выборки-хранения PIC24F составляет 4.4 пФ, у семейства PIC18 – 25 пФ. Уменьшение емкости конденсатора УВХ и входного сопротивления возможно потребует изменения внешних согласующих цепей.