- •1.2. Программирование aцп
- •1.2.1. Управляющие регистры
- •1.2.3. Задание 80хc196kс - совместимого или независимого конфигурируемого времени преобразования
- •1.2.4. Программирование регистра ad_command
- •1.2.5. Предоставление прерывания ацп
- •1.2.6 Чтение результатов преобразования
- •1.3. Интерфейс с ацп
- •1.6. Передаточная функция и источники ошибок ацп
- •1.4. Аналоговая земля (angnd) и опорное напряжение (Vref)
- •1.5. Использование смешанных аналоговых и цифровых входов
- •2. Порядок выполнения работы
- •3. Содержание отчета
ЛАБОРАТОРНАЯ РАБОТА № 6
АНАЛОГО-ЦИФРОВОЙ ПРЕОБРАЗОВАТЕЛЬ
Цель работы: 1. Изучение функциональных возможностей аналого-цифрового преобразователя микроконтроллеров I80XC196KC.
2. Изучение порядка программирования и применения аналогово-цифрового преобразователя микроконтроллера I80XC196KC.
1. Общие сведения
1.1. Краткая характеристика аналого-цифрового преобразователя
Модуль аналого-цифрового преобразователя (АЦП),структура которого представлена на рис.6.1 преобразовывает напряжение на аналоговых входах в 8 или 10-битное цифровое представление.
Модуль АЦП содержит следующие основные компоненты:
- Восемь аналоговых входов (ACH0-ACH7).
- Восьмиканальный мультиплексор (8-Channel Analog Mux), для выбора одного из восьми входных каналов.
- Устройство выборки и хранения.(The sample-and-hold circuit)
- 10-битный аналого-цифровой преобразователь последовательного приближения (10-bit successive approximation).
- Регистр AD_COMMAND, который управляет работой преобразователя через логику управления (control logic).
- Двухбайтовый регистр AD_RESULT, в который помещаются результаты преобразования и информация о состоянии устройства.
- Регистр AD_TIME, который содержит времена выборки и преобразования .
Если АЦП получает команду начать преобразование, перед началом выборки проходит одно время состояния. В течение этой задержки выборки сбрасывается регистр последовательного приближения и выбирается требуемый канал мультиплексора.
После задержки выборки, выход мультиплексора соединяется с конденсатором выборки и остается соединенным с ним в течение определенного времени. После того, как это окно выборки закрывается, конденсатор выборки отсоединяется от мультиплексора и поэтому во время процесса преобразования изменения на входе микроконтроллера не будут изменять сохраненный заряд. Затем компаратор автоматически обнуляется и начинается преобразование.
Чтобы выполнить аналого-цифровое преобразование, AЦП использует алгоритм последовательного приближения. Аппаратные средства преобразователя состоят из многозвенной схемы с 256 резисторами, компаратора, разделительных конденсаторов и 10-битного регистра последовательного приближения (SAR) с логикой, которая обеспечивает работу АЦП.
Многозвенная схема из резисторов обеспечивает шаг 20 мВ ( VREF = 5.12 В ), в то время как емкостная связь (разделительные конденсаторы) создают шаг преобразования 5 мВ внутри напряжения 20 мВ этой многозвенной схемы. Следовательно, для сравнения с напряжением аналогового входа доступны 1024 опорных внутренних напряжения, чтобы сгенерировать 10-битный результат преобразования .
Преобразование последовательным приближением выполняется путем последовательного сравнения опорных напряжений с напряжением на аналоговом входе, поиском напряжения, которое наиболее близко соответствует напряжению на аналоговом входе . Сначала проверяется среднее значение всех опорных напряжений. Это соответствует 10-битному результату, где старший бит - нуль и все другие биты - 1 (0111.1111.11B). Если аналоговый вход был меньше тестируемого напряжения, бит 10 SAR остается равным “0” , и проверяется новое напряжение равное 1/4 от всей шкалы тестируемых напряжений (0011.1111.11B). Если напряжение на аналоговом входе было больше, чем напряжение теста, устанавливается бит 9 SAR. Затем, для следующего теста, очищается Бит 8 0101.1111.11B). Этот двоичный поиск продолжается до тех пор , пока выполнится 10 ( или 8 ) тестов, правильный результат преобразования постоянно находится в SAR, откуда он может быть прочитан программно. Результат равен отношению напряжения на аналоговом входе, к опорному напряжению. Если это отношение равно 1.00, то в результате преобразования SAR будет содержать единицы во всех разрядах (1111.1111.11B).
1.2. Программирование aцп
1.2.1. Управляющие регистры
Следующие параметры AЦП могут быть запрограммированны:
- Преобразование восьми или десятибитное
- Выбор входного канала
- Времена выборки и преобразования
- Наличие прерывания при завершении
- 80IXC196KC - совместимый режим
- Непосредственно преобразование или обращение к быстродействующему модулю вывода (HSO) или периферийному серверу транзакций (PTS).
В таблице 6.1 приведены программируемые регистры, которые воздействуют на работу и функции AЦП.
Таблица 6.1. Регистры управления и состояния AЦП
Мнемоника |
Описание регистра |
AD_COMMAND |
Регистр команды АЦП. Этот регистр выбирает номер канала АЦП, который нужно преобразовать, определяет будет ли преобразование начинаться непосредственно или из команды HSO , также выбирает 8 или 10-битный режим преобразования |
AD_RESULT |
Регистр результата AЦП . Этот регистр состоит из двух байтов. Старший байт содержит восемь старших битов преобразования. Младший байт указывает номер канала АЦП, который был использован для преобразования, было ли преобразование выполнено правильно и содержит два младших бита 10-битного преобразования |
AD_TIME |
Время преобразования АЦП . Если установлен бит регистра IOC2, этот регистр определяет времена выборки и преобразования. |
IOC2 |
Регистр 2 управления вводом-выводом. Этот регистр выбирает: будет ли время преобразования АЦП контролироваться регистром AD_TIME или эмуляцией режимов быстрого и нормального преобразования микроконтроллера 8XC196KС. |
INT_MASK |
Маска прерывания .Этот регистр разрешает / запрещает прерывание “Завершение преобразования АЦП”( INT01, 2002H ). Установка бита 1 этого регистра разрешает прерывание, сброс бита 1 запрещает прерывание |
INT_PEND |
Захват прерывания. Бит 1 этого регистра, когда установлен, указывает, что поступило прерывание “Завершение преобразования АЦП”. Бит 1 сбрасывается, когда прерывание обращается к вектору в ячейке 2002H. |
1.2.2. Задание времени выборки и времени преобразования АЦП
Два параметра, время выборки и время преобразования, определяют время, требуемое для аналогово-цифрового преобразования.
Время выборки - промежуток времени , когда напряжение аналогового входа поступает на конденсатор выборки.
Если это время слишком мало, конденсатор выборки будет заряжен не полностью, если время выборки слишком велико , - входное напряжение может изменится и это будет причиной ошибок преобразования.
Время преобразования - промежуток времени, требуемый для того, чтобы преобразовать напряжение аналогового входа, сохраненное на конденсаторе выборки, в цифровое значение. Время преобразования должно быть достаточным для того, чтобы компаратор и схема определили и распознали напряжение. Чрезмерно длинные времена преобразования позволяют конденсатору выборки разряжаться, что ухудшает точность.
Времена выборки и преобразования или назначаются по умолчанию в 80ХC196KС - совместимом режиме или определяются в регистре AD_TIME.
Очистка бита AD_TIME_ENA (IOC2.3) допускает 80ХC196KС- совместимое преобразование. В 80ХC196KС - совместимом режиме, бит AD_FAST (IOC2.4) управляет временами выборки и преобразования . 80ХC196KС медленный режим использует 15 времен состояния для времени выборки и общее количество 158 времен состояния для всего преобразования. 80ХC196KС быстрый режим использует восемь времен состояния для времени выборки и общее количество 91 времен состояния для преобразования.
При использовании или быстрого или медленного режима преобразуйте эти времена состояния в микросекунды, чтобы гарантировать, что значения времени выборки (Tsam) и времени преобразования (Tconv), при данной тактовой частоте, представлены в допустимых пределах. При тактовой частоте 8 МГц одно время состояния равно 250 нс. Согласно требованиям,
Tsam = 3 мкс (минимум), 10мкс < Tconv < 20мкс
Если установлен бит AD_TIME_ENA (IOC2.3), времена выборки (SAM) и преобразования (CONV) определяются регистром AD_TIME. Регистр AD_TIME программирует быстродействие (скорость) аналогово-цифрового преобразования, которое определяется разрешающей способностью АЦП и частотой тактового генератора.
Чтобы определить оптимальные значения SAM и CONV, используются следующие формулы:
SAM = [(Tsam x Fosc) - 2 ] / 8
CONV = [((Tconv x Fosc) - 3) / (2 x B) ] - 1
Где: SAM = от 1 до 7
CONV = от 2 до 31
Tsam - время выборки, в микросекундах, равно 3 мкс
Tconv - время преобразования, в микросекундах, от 10 до 20 мкс
Fosc - частота тактового генератора, в MГц
B - число битов, которые нужно преобразовать (8 или 10)
Когда значения SAM и CONV известны, запишите их в регистр AD_TIME. Не записывайте в этот регистр во время процесса преобразования, иначе результаты будут непредсказуемыми.
