Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Уч-Пособие-HC08.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.23 Mб
Скачать

14. Модуль аналого-цифрового преобразователя adc08.

В состав микроконтроллеров MC68HC908GP32 входит модуль 8-разрядного аналого-цифрового преобразователя ADC08, который содержит входной мультиплексер, выбирающий один из 8 входов аналоговых сигналов, АЦП, работающий по принципу последовательного приближения, регистр управления-состояния ADSCR, регистр управления тактированием ADCLK и регистр результата ADR.

Функционирование АЦП определяется содержимым регистр ADSCR, который содержит следующие биты (рис.28,а):

COCO – признак окончания преобразования 1 (доступен только для чтения), принимает значение COCO=1 после выполнения очередного цикла преобразования, если установлено значение бита AIEN=0;

AIEN – разрешает при значении AIEN=1 формирование запроса прерывания после каждого цикла преобразования;

ADCO – определяет режим работы АЦП: однократное преобразование при значении ADCO=0, непрерывная работа преобразователя при ADCO=1;

ADCH4-0 - осуществляют выбор аналогового входа в соответствии с табл.23 или выключение модуля ADC08 при установке значения ADCH4-0 = 11111.

7

6

5

4

3

2

1

0

COCO

AIEN

ADCO

ADCH4

ADCH3

ADCH2

ADCH1

ADCH0

а). ADSR (адрес $003C)

7

6

5

4

3

2

1

0

ADIV2

ADIV1

ADIV0

ADICLK

0

0

0

0

б). ADCLK (адрес $003E)

Рис.28. Формат содержимого регистров ADSCR (а) и ADCLK (б) модуля ADC08

Запуск АЦП производится при выборе необходимого аналогового входа путем записи соответствующего значения битов ADCH4-0 в регистр ADSСR. В процессе работы АЦП принимает потенциал, установленный на выбранном входе ADi, и формирует 8-разрядное число, соответствующее величине этого потенциала, которое записывается в регистр результата ADR (адрес $003D). Считывание результата в регистр A или X для последующей обработки производится командой LDA или LDX.

Поступающий на аналоговый вход потенциал Vвх должен находиться в диапазоне Vr>Vвх>0, где Vrf – величина опорного потенциала, который в микроконтроллерах MC68HC908GP32 равен Vап - напряжению питания АЦП, для подключения которого используются отдельные выводы аналогового питания и “земли”. Между этими выводами обязательно следует включить высокочастотный керамический конденсатор для фильтрации помех. При значении Vrf = Vап = 5 В разрешающая способность АЦП составляет около 20 мВ, а погрешность преобразования 10 мВ.

При установке соответствующих значений битов ADCH4-0 производится измерение потенциала Vrf или потенциала на входе аналоговой «земли» (табл.24). Такое измерение выполняется для контроля значений этих потенциалов.

Таблица 24. Выбор аналоговых входов модуля ADC08

ADCH4-0

Аналоговый вход

ADCH4-0

Аналоговый вход

00000

AD0 (PTB0)

00101

AD10 (PTD2/PTD1**)

00001

AD1 (PTB1)

00110

AD11 (PTD3/PTD0**)

00010

AD2 (PTB2)

00111

AD12 (PTD4)

00011

AD3 (PDTB)

01000

AD13 (PTD5)

00100

AD4 (PTB4)

01001

AD14 (PTD6)

00101

AD5 (PTB5)

01010-11100

Не используются

00110

AD6 (PTB6)

11101

Потенциал Vrf

00111

AD7 (PTB7)

11110

Аналоговая «земля»

01000

AD8 (PTD0/PTD3*)

11111

Отключение АЦП

01001

AD9 (PTD1/PTD2*)

В зависимости от значения бита ADCO в регистре ADSCR (рис.28,а), обеспечиваются следующие режимы работы АЦП:

  • режим однократного преобразования (ADCO=0), при котором АЦП автоматически выключается (в регистре ADSCR устанавливается значение битов ADCH4-0 = 11111) после выполнения очередного преобразования и записи результата в регистр ADR;

  • режим непрерывного преобразования (ADCO=1), при котором АЦП продолжает многократно выполнять преобразования и выдавать значения потенциала на выбранном аналоговом входе до записи в регистр ADSCR нового содержимого.

При любом режиме работы после выполнения очередного цикла преобразования модуль ADC08 выдает запрос прерывания, если в регистре ADSCR установлено значение бита AIEN=1. При этом производится обращение к вектору, который размещается в таблице векторов прерываний по адресу $FFDE-DF (см. табл.10 в разделе 5).

Если прерывания по запросу АЦП запрещены (бит AIEN=0), то после каждого цикла преобразования в регистре ADSCR устанавливается значение признака COCO=1. В этом случае процессор должен производить программный опрос признака COCO и выполнять считывание результата из регистра ADR, если COCO=1. Сброс COCO в состояние 0 производится автоматически после чтения содержимого регистра ADR или после записи нового значения в регистр ADSCR.

В состав модуля ADC08 входит схема тактирования, работающая под управлением регистра ADCLK, который содержит следующие биты (рис.28,б):

ADICLK – определяет выбор сигналов для тактирования АЦП: тактовые импульсы с частотой Ft при установке значения ADICLK=1 или импульсы с частотой кварцевого резонатора Fq при ADICLK=0;

ADV2-0 – задает коэффициент деления частоты Ka при формировании тактовых сигналов АЦП (табл. 25).

Для получения необходимой точности АЦП должен тактироваться импульсами с частотой Fa = (0,5…1) МГц, причем оптимальным является значение Fa, близкое к 1МГц. Эта частота обеспечивается путем деления тактовой частоты Ft (при значении бита ADICLK=1) или частоты кварцевого резонатора Fq (при значении бита ADICLK=0). Необходимое значение коэффициента деления Ka = Ft/Fa или Fq/Fa задается установкой битов ADV2-0 в регистре ADCLK в соответствии с табл.25. Отметим, что нормальная работа АЦП обеспечивается при значениях частоты Ft или Fq не менее 1 МГц.

Для выполнения одного цикла преобразования требуется 17 тактов, поэтому время преобразования составляет около 17 мкс при значении Fa=1 МГц.

Таблица 25. Коэффициент деления

частоты Ka для модуля ADC08

ADIV2-0

Ka

000

1

001

2

010

4

011

8

1xx

16