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