Устройство внутреннего аналого-цифрового преобразователя микроконтроллеров PICmicro

Рекомендованная последовательность действий для работы аналого-цифрового преобразователя. Временные требования к подключению канала. Выбор источника тактовых импульсов для АЦП, настройка аналоговых входов (регистры ADCON1 и TRIS). Абсолютная точность АЦП.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид доклад
Язык русский
Дата добавления 15.12.2010
Размер файла 474,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Устройство внутреннего АЦП микроконтроллеров PICmicro

Введение

Модуль аналого-цифрового преобразования (АЦП) имеет до четырех входных каналов.

Входной аналоговый сигнал через коммутатор каналов заряжает внутренний конденсатор АЦП CHOLD. Модуль АЦП преобразует напряжение, удерживаемое на конденсаторе CHOLD в соответствующий 8 - разрядный цифровой код методом последовательного приближения. Источник опорного напряжения может быть программно выбран с вывода VDD или AN3/VREF. Допускается работа модуля АЦП в SLEEP режиме микроконтроллера, при этом в качестве источника тактовых импульсов для АЦП должен быть выбран RC генератор.

Для управления АЦП в микроконтроллере используется 3 регистра:

* Регистр результата ADRES;

* Регистр управления ADCON0;

* Регистр управления ADCON1.

Регистр ADCON0 используется для настройки работы модуля АЦП, а с помощью регистра ADCON1 устанавливается, какие входы микроконтроллера будут использоваться модулем АЦП и в каком режиме (аналоговый вход или цифровой порт ввода/вывода).

Структурная схема модуля АЦП показана на рисунке 1.

Рис. 1

1.Работа модуля АЦП

В регистре ADRES сохраняется 8-разрядный результат аналого-цифрового преобразования. Когда преобразование завершено, результат преобразования записывается в регистр ADRES, после чего сбрасывается бит GO/-DONE (ADCON0<2>) и устанавливается флаг прерывания ADIF.

После включения и настройки АЦП необходимо выбрать рабочий аналоговый канал. Соответствующие биты TRIS аналоговых каналов должны настраивать канал порта ввода/вывода на вход. Перед началом преобразования необходимо выдержать временную паузу.

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

1. Настроить модуль АЦП:

* Настроить выводы как аналоговые входы, входы VREF или цифровые каналы ввода/вывода

(ADCON1);

* Выбрать входной канал АЦП (ADCON0);

* Выбрать источник тактовых импульсов для АЦП (ADCON0);

* Включить модуль АЦП (ADCON0).

2. Настроить прерывание от модуля АЦП (если необходимо):

* Сбросить бит ADIF в '0';

* Установить бит ADIE в '1';

* Установить бит PEIE в '1';

* Установить бит GIE в '1'.

3. Выдержать паузу, необходимую для зарядки конденсатора CHOLD.

4. Начать аналого-цифровое преобразование:

* Установить GO/-DONE бит в '1' (ADCON0).

5. Ожидать, окончания преобразования:

* Ждать, пока бит GO/-DONE не будет сброшен в '0'; ИЛИ

* Ожидать прерывание по окончанию преобразования.

6. Считать результат преобразования из регистра ADRES, сбросить бит ADIF в '0', если это необходимо.

7. Для следующего преобразования необходимо выполнить шаги начиная с пункта 1 или 2. Времяпреобразования одного бита определяется как время TAD. Минимальное время ожидания перед следующим преобразованием должно составлять не менее 2TAD.

На рисунке 2 показана последовательность преобразования аналогового сигнала. Время заряда CHOLD - интервал времени в течение которого на внутренний конденсатор АЦП подается внешний сигнал. Время преобразования равно 10 TAD, отсчет начинается с момента установки в '1' бита GO. Сумма этих двух временных интервалов является длительностью полного цикла преобразования АЦП. Существует минимальный интервал времени, в течение которого внешний сигнал подается на внутренний конденсатор CHOLD, чтобы гарантировать требуемую точность АЦП.

Рис. 2

2. Временные требования к подключению канала АЦП
Для обеспечения необходимой точности преобразования, конденсатор CHOLD должен успевать полностью заряжаться до уровня входного напряжения. Схема аналогового входа АЦП показана на рисунке 3. Сопротивления RS и RSS непосредственно влияют на время зарядки конденсатора CHOLD. Величина сопротивления ключа выборки (RSS) зависит от напряжения питания VDD (см. рисунок 3). Максимальное рекомендуемое значение внутреннего сопротивления источника аналогового сигнала 10кОм. При меньших значениях сопротивления источника сигнала меньше суммарное время преобразования.
После того, как будет выбран один из нескольких аналоговых входных каналов, но прежде, чем будет производиться преобразование, должно пройти определенное время. Для нахождения данного времени воспользуетесь уравнением 1. Это уравнение дает результат с ошибкой в Ѕ LSb (512 шагов АЦП). Ошибка в Ѕ LSb, это максимальная погрешность, позволяющая функционировать модулю АЦП с необходимой точностью.
3. Выбор источника тактовых импульсов для АЦП
Время получения одного бита результата равно TAD. Для 8-разрядного результата требуется как минимум 9.5TAD. Параметры тактового сигнала для АЦП определяются программно, TAD может принимать следующие значения:
* 2TOSC;
* 8TOSC;
* 32TOSC;
* Внутренний RC генератор модуля АЦП (2-6мкс).
Для получения корректного результата преобразования необходимо выбрать источник тактового сигнала АЦП, обеспечивающий время TAD не менее 1.6 мкс (для микроконтроллеров PIC16C71 не менее 2мкс) (см. параметр 130 в разделе "Электрические характеристики").
В таблицах 1 по 4 указано максимальное значение тактовой частоты микроконтроллера для каждого режима синхронизирующего сигнала АЦП.
Табл. 1 Максимальное значение Fosc удовлетворяющие требованию к Тао
Обозначение: Затененные ячейки - не рекомендованное значение:
1. Типовое значение времени TAD RC генератора АЦП равно 4мкс, может варьироваться от 2мкс до 6мкс.
2. Это значение выходит за пределы минимально допустимого времени TAD.
3. Для более точного преобразования рекомендуется выбрать другой источник тактовых импульсов.
4. Когда тактовая частота микроконтроллера больше 1МГц, рекомендуется использовать RC генератор АЦП только для работы в SLEEP режиме.
Табл. 2 Максимальное начение Fosc удовлетворяющие требованию к Тао
Обозначение: Затененные ячейки - не рекомендованное значение:
1. Типовое значение времени TAD RC генератора АЦП равно 4мкс, может варьироваться от 2мкс до 6мкс.
2. Это значение выходит за пределы минимально допустимого времени TAD.
3. Для более точного преобразования рекомендуется выбрать другой источник тактовых импульсов.
4. Когда тактовая частота микроконтроллера больше 1МГц, рекомендуется использовать RC генератор АЦП только для работы в SLEEP режиме.
Табл. 3 Максимальное начение Fosc удовлетворяющие требованию к Тао
Обозначение: Затененные ячейки - не рекомендованное значение:
1. Типовое значение времени TAD RC генератора АЦП равно 4мкс, может варьироваться от 2мкс до 6мкс.
2. Это значение выходит за пределы минимально допустимого времени TAD.
3. Для более точного преобразования рекомендуется выбрать другой источник тактовых импульсов.
4. Когда тактовая частота микроконтроллера больше 1МГц, рекомендуется использовать RC генератор АЦП только для работы в SLEEP режиме.
Табл. 4 Максимальное начение Fosc удовлетворяющие требованию к Тао
Обозначение: Затененные ячейки - не рекомендованное значение:
1. Типовое значение времени TAD RC генератора АЦП равно 4мкс, может варьироваться от 2мкс до 6мкс.
2. Это значение выходит за пределы минимально допустимого времени TAD.
3. Для более точного преобразования рекомендуется выбрать другой источник тактовых импульсов.
4. Когда тактовая частота микроконтроллера больше 1МГц, рекомендуется использовать RC генератор АЦП только для работы в SLEEP режиме.
4. Настройка аналоговых входов
Регистры ADCON1 и TRIS отвечают за настройку выводов АЦП. Если выводы микросхемы настраиваются как аналоговые входы, то при этом должны быть установлены соответствующие биты в регистре TRIS. Если соответствующий бит сброшен в '0', вывод микросхемы настроен как цифровой выход, со значениями выходных напряжений VOH или VOL.
Модуль АЦП функционирует независимо от состояния битов CHS2:CHS0 и битов TRIS.
При чтении содержимого регистра порта нули будут установлены в тех разрядах, которые были настроены как аналоговые входы. Настроенные на цифровой вход каналы будут преобразовывать входные аналоговые уровни в цифровые, что однако не окажет влияния на точность преобразования.
Значения напряжений, подаваемых на выводы, настроены как аналоговые входы, включая выводы (AN3:AN0), могут влиять на ток потребления входного буфера, который может выйти за пределы значений, оговоренных в технической спецификации.
5. Аналого-цифровое преобразование
В примере 1 показана последовательность действий для работы с АЦП. Выводы настроены как аналоговые входы. Источник опорного напряжения - VDD. Разрешены прерывания от модуля АЦП. Источником импульсов преобразования является RC генератор АЦП. Аналоговое цифровое преобразование выполняется с вывода AN0.
Бит GO/-DONE и бит включения АЦП должны устанавливаться разными командами.
Сброс бита GO/-DONE в '0' во время преобразования приведет к его прекращению. При этом регистр результата (ADRES) не изменит своего содержимого. После досрочного завершения преобразования необходимо обеспечить временную задержку 2TAD. Выдержав требуемую паузу, автоматически начинает заряжаться конденсатор CHOLD с выбранного аналогового канала.
На рисунке 3 показана последовательность получения результата после установки бита GO/-DONE в '1'.
Пример 1 Выполнение преобразования АЦП
BSF STATUS, RP0 ; Выбрать банк 1
CLRF ADCON1 ; Настроить входы АЦП
BSF PIE1, ADIE ; Разрешить прерывания от АЦП
BCF STATUS, RP0 ; Выбрать банк 0
MOVLW 0xC1 ; Тактовые импульсы от RC генератора АЦП,
MOVWF ADCON0 ; включить АЦП, выбрать канал 0
BCF PIR1, ADIF ; Сбросить pњ_№ЈЮ_узфлаг прерываний от АЦП
Рис. 3
6.Быстрое преобразование взамен разрешающей способности
аналоговый цифровой преобразователь микроконтроллер
Иногда бывает необходимо быстрое по времени преобразование за счет снижения разрешающей способности АЦП. Эта особенность работы модуля АЦП может использоваться в программе пользователя. Независимо от используемой разрешающей способности интервал времени TACQ остается неизменным. Для ускорения преобразования генератор тактовых импульсов модуля АЦП может быть включен так, чтобы время TAD вышло за пределы минимально-допустимого значения (см. соответствующие параметры в разделе "Электрические характеристики"). При этом модуль АЦП будет выдавать некорректный результат. Источником импульсов преобразования АЦП может быть один из трех источников: 2TOSC, 8TOSC, 32TOSC (RC-генератор не может использоваться).
Время преобразования может быть вычислено по формуле:
Время преобразования = TAD + N * TAD + (10 - N)(2TOSC) ,
где N - разрядность АЦП.
Из-за того, что время TAD зависит от частоты кварцевого генератора микроконтроллера, пользователь должен использовать какой-нибудь иной методов (например, используя таймер, программный цикл и др.) для определения времени изменения. В примере 2 представлено длительность 4 - разрядного преобразования, против 8 - разрядного.
Например, для микроконтроллера с тактовой частотой 20МГц или 16МГц (тактовый сигнал АЦП 32TOSC). Через 5TAD, после старта преобразования, тактовый сигнал АЦП программно переключается на 2TOSC. При 2TOSC не выдержано минимальное требование к TAD, поэтому 4 младших бита будут иметь неверное значение.
Пример 2
1. Минимальное рекомендуемое значение TAD = 1.6мкс (для микроконтроллеров PIC16C71 минимальное время TAD = 2мкс).
2. Если требуется полное 8 - разрядное значение преобразования, источник тактовых импульсов для модуля АЦП не должен изменяться.
7. Работа модуля АЦП в SLEEP режиме микроконтроллера
Модуль АЦП может работать в SLEEP режиме микроконтроллера при условии, что источником импульсов преобразования АЦП будет внутренний RC генератор (ADCS1:ADCS0=11). При выборе RC генератора импульсов модуль АЦП сделает задержку в один машинный цикл перед началом преобразования. Это позволяет программе пользователя выполнить команду SLEEP, тем самым уменьшить “цифровой шум” во время преобразования. После завершения преобразования аппаратно сбрасывается бит GO/-DONE в '0', результат преобразования сохраняется в регистре ADRES. Если разрешено прерывание от АЦП, то микроконтроллер выйдет из режима SLEEP. Если же прерывание было запрещено, то после преобразования модуль АЦП будет выключен, хотя бит ADON останется установленным.
Если был выбран другой источник тактовых импульсов АЦП (не внутренний RC генератор), то выполнение программой инструкции SLEEP прервет процесс преобразования и выключит модуль АЦП, оставив установленным бит ADON. Выключение модуля АЦП уменьшит ток потребления микроконтроллера.
Для работы модуля АЦП в SLEEP режиме необходимо выбрать внутренний RC генератор (ADCS1:ADCS0=11), инструкция SLEEP должна быть выполнена сразу после команды, устанавливающей бит GO/-DONE в '1'.
8. Точность преобразования АЦП
Абсолютная точность АЦП определяется суммарной ошибкой, исходя из ошибки дискретизации, интегральной ошибки, ошибки шкалы, ошибки смещения и монотонности. Суммарная ошибка определяется как максимальный разброс между текущим и идеальным результатом для любого значения. Абсолютная ошибка АЦП меньше ± 1 значащего бита при VDD=VREF, но она возрастает при отклонении VREF от VDD.
В некотором диапазоне напряжений на аналоговом входе цифровой результат будет один и тот же. Это возникает из-за дискретизации, которая неизбежна при преобразовании аналоговой величины в цифровую форму. Ошибка дискретизации составляет ± Ѕ значащего бита, и единственный способ уменьшить ее - увеличить разрядность АЦП. Ошибку смещения составляет разность между результатом первого преобразования и идеальным значением. Эта ошибка сдвигает всю передаточную функцию, и может быть учтена при помощи калибровки. Ошибка вносится в результате наложения токов утечки и выходного сопротивления источника сигнала. Ошибка усиления измеряется как максимальное отклонение результата, скорректированного с учетом ошибки смещения. Эта ошибка проявляется в виде изменения наклона передаточной функции. Ошибка усиления может быть откалибрована и учтена.
Ошибка линейности определяется как разница в приращении входного напряжения для получения одинакового приращения выходного кода и не поддается калибровке. Интегральная ошибка вычисляется как отклонение результата, скорректированного с учетом ошибки усиления.

Дифференциальная ошибка вычисляется как отклонение максимальной длины кода результат от идеальной длины кода без учета других ошибок.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.