Микроконтроллеры для систем автоматики - часть 17

 

  Главная      Учебники - Производство     

 

поиск по сайту           правообладателям

 

 

 

 

 

 

 

 

 

содержание   ..  15  16  17  18   ..

 

 

Микроконтроллеры для систем автоматики - часть 17

 

 

 

67 

обращение  к  регистрам  запрещено,  в  процессе  считывания  регистров ADCL и ADCH, 
прерывание будет активизироваться, даже при потере результата. 

Регистр ADMUX (ADC Multiplexer Selection Register) предназначен для управления 

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

º 

Биты 7 и 6 - REFS1..0 (Reference Selection Bits) – обеспечивают  выбор 
эталонного 

напряжения 

на 

входе AREF аналого-цифрового 

преобразователя.  Выбор  производится  в  соответствии  с  таблицей  10.1. 
Изменение  этих  битов  во  время  процесса  преобразования  приводит  к 
ошибке.  Для  её  исключения  пользователь  должен  игнорировать  первый 
результат  после  изменения  битов.  Внутренние  источники  напряжения  не 
могут  быть  использованы,  если  к  контакту AREF приложено  внешнее 
напряжение. 

Таблица 10.1.  

Выбор источника опорного напряжения аналого-цифрового преобразователя 

REFS1  REFS0 

Выбор источника напряжения 

0  

AREF, 

внутреннее напряжение Vref отключено 

0  

1 AVCC 

с внешним конденсатором на контакте AREF 

1  

Резерв 

Внутренний источник 2.56В с внешним конденсатором на AREF 

 

º 

Бит 5 – ADLAR (ADC Left Adjust Result) – воздействует на запись результата 
в  регистры  данных ADCL и ADCH. При ADLAR=0 можно  использовать 
упрощенное 8-битное преобразование.

 

º 

 Биты 4..0 - MUX4..MUX0 (Multiplexer bits) – предназначены  для  выбора 
входа,  коммутируемого  на вход преобразователя. Выбор осуществляется в 
соответствии  с  таблицей  10.2.  Изменение  этих  битов  в  процессе 
преобразования,  когда  флаг ADIF в  регистре  ADCSR  установлен,  не 
приводит к изменению результата.

 

Таблица 10.2.  

Выбор входного сигнала ADC 

MUX4..0 

Подключаемый контакт 

00000 ADC0 
00001 ADC1 
00010 ADC2 
00011 ADC3 
00100 ADC4 
00101 ADC5 
00110 ADC6 
00111 ADC7 

01000. .11101 

Резерв 

11110 

1.22V  

11111 0V 

(AGND) 

 

68 

Регистр - ADCSR (ADC Control and Status Register) предназначен для управления 

работой аналого-цифрового преобразователя. 

º 

Бит 7 – ADEN (ADC Enable) - разрешение  работы ADC. Очистка  бита 
запрещает  работу ADC. Запрещение ADC в  процессе  преобразования 
прекращает преобразование.  

º 

Бит 6 – ADSC (ADC Start Conversion) - запуск  преобразования ADC. В 
режиме  однократного  преобразования  для  запуска  каждого  цикла 
преобразования  необходимо  устанавливать  бит ADSC в  состояние  1.  В 
циклическом  режиме  бит ADSC устанавливается  в  состояние  1  только  при 
запуске первого цикла преобразования. Каждый раз после первой установки 
бита ADSC, выполненной  после  разрешения  или  одновременно  с 
разрешением,  будет  выполняться  пустое  преобразование.  Это  пустое 
преобразование  активизирует  преобразователь. ADSC будет  сохранять 
состояние  1  в  течение  всего  цикла  преобразования  и  сбрасывается  по  его 
завершению.  При  выполнении  пустого  преобразования,  предшествующего 
активизируемому,  бит ADSC остается  установленным  до  завершения 
активируемого преобразования. Запись 0 в этот бит эффекта не оказывает.  

º 

Бит 5 – ADFR (ADC Free Run Select) - установка  циклического  режима 
работы ADC. При  установленном  в  состояние  1  бите ADFR аналого-
цифровой  преобразователь  будет  работать  в  циклическом  режиме.  В  этом 
режиме  производятся выборки и обращения к регистрам непрерывно (одно 
за другим). Очистка бита приводит к прекращению циклического режима.  

º 

Бит 4 – ADIF (ADC Interrupt Flag) - флаг  прерывания ADC. Данный  бит 
устанавливается  в  состояние  1  по  завершению  преобразования  и 
обновления регистров данных. Прерывание по завершению преобразования 
ADC  выполняется,  если  в  состояние  1  установлены  бит ADIE и I - бит 
регистра статуса SREG. Бит ADIF сбрасывается аппаратно при выполнении 
подпрограммы  обработки  соответствующего  вектора  прерывания.  Кроме 
того,  бит ADIF может  быть  очищен  записью  во  флаг  логической  1.  Этого 
необходимо 

остерегаться 

при 

чтении-модификации-записи ADCSR, 

поскольку может быть запрещено отложенное прерывание. Это применимо и 
в случаях использования команд sbi и cbi.  

º 

Бит 3 – ADIE (ADC Interrupt Enable) - разрешение  прерывания ADC. При 
установленных  в  состояние  1  бите ADIE и I-бите  регистра SREG 
активируется  прерывание  с  вектором  $1C  по  завершению  преобразования 
ADC.  

º 

Биты 2..0 - ADPS2..ADPS0 (ADC Prescaler Select Bits) - выбор коэффициента 
предварительного  деления.  Данные  биты  определяют  коэффициент 
деления  тактовой  частоты  микроконтроллера  для  получения  необходимой 
тактовой частоты ADC.  

Таблица 10.3.  

Выбор коэффициента предварительного деления 

ADPS2 ADPS1 ADPS0 Коэффициент деления 

0 0 0  Без деления 
0 0 1 2 

1 0 

1 8 

 

69 

Окончание табл. 10.3. 

ADPS2 ADPS1 ADPS0 Коэффициент деления 

1 0 0 

16 

1 0 1 32 

1 0 

64 

128 

Регистры ADCL и ADCH являются регистрами данных. Их содержимое зависит от 

состояния бита ADLAR регистра ADMUX. 

Когда преобразование выполнено десятибитный результат находится в этих двух 

регистрах.  Если  младший  регистр ADCL считан,  то  регистры  не  изменяются  до  чтения 
старшего регистра ADCH. ADLAR бит в ADMUX воздействует на представление результата. 
Если ADLAR сброшен, то результат представлен в виде, изображенном на рис. 10.8. 

 

Биты  7 6 5 4 3 2 1 0 

ADCH  $05 ($25)  ADC9 ADC8 ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 

ADCL $04 

($24) ADC1 ADC0   

 

 

 

 

 

Рис. 10.8. Представление результата в регистре данных при ADLAR=0 

Если  достаточным  является 8-битное  преобразование,  то  при ADLAR=0 можно 

считывать только старший байт результата (регистр ADCH).  

11. АНАЛОГОВЫЕ КОМПАРАТОРЫ 

Аналоговые компараторы осуществляют сравнение двух напряжений. Результатом 

сравнения является логический сигнал, фиксирующий момент равенства входных сигналов. 
Выход компаратора может быть использован в качестве запроса на прерывание. При этом 
пользователь может программировать формирование запроса по переднему или заднему 
фронту сигнала, либо по любому его изменению. 

Схема компаратора микроконтроллера ATmega163 приведена на рис. 11.1.. 

 

Рис.11.1. Структурная схема аналогового компаратора 

 

70 

Аналоговый  компаратор  сравнивает  уровни  на  положительном (AC+) и 

отрицательном (AC-) входах. При напряжении на входе (AC+) большем, чем напряжение на 
входе (AC-), выход  аналогового  компаратора ACO устанавливается  в  состояние  1. 
Компаратор  может  формировать  запрос  на  прерывание.  Пользователь  может  задать 
формирование запроса по нарастающему или падающему фронту или по переключению.  

В работе компаратора используются регистры (рис. 11.2): 

º 

Регистр  управления  аналоговым  компаратором ACSR (Analog Comparator 
Control And Status Register); 

º 

Регистр  специальных  функций  ввода/вывода SFIOR (Special Function Input 
Output Register);
 

º 

Регистр состояния аналого-цифрового преобразователя ADCSR (ADC Status 
Register);
 

º 

Регистр  мультиплексора  аналого-цифрового  преобразователя ADCMUX 
(ADC Multiplexer). 

º 

Регистр состояния микроконтроллера SREG (Status Register). 

 

  Биты 7  6 5 4 3  2  1 0 

ACSR $08 

($28) ACD ACBG ACO ACI ACIE ACIC ACIS1 ACIS0 

SFIOR $30 ($50) 

 

 

 

 ACME   

 

 

ADCSR $06 ($26)  ADEN 

 

 

 

 

 

 

 

ADMUX $07 ($27) 

 

 

 

 

 MUX2 

MUX1 MUX0 

SREG $3F ($5F) 

 

 

 

 

 

 

 

Рис. 11.2. Регистры, задействованные в работе аналогового компаратора 

Регистр ACSR (Analog Comparator  Control And Status Register)  предназначен  для 

управления аналоговым компаратором. 

º 

Бит 7 – ACD (Analog Comparator Disable) - отключает  аналоговый 
компаратор. Когда этот бит установлен, питание на аналоговый компаратор 
не  подается.  Бит  может  быть  установлен  в  любое  время.  При  изменении 
бита прерывание от компаратора должно быть заблокировано очисткой бита 
ACIE. 

º 

Бит 6 – ACBG (Analog Comparator Bandgap) - выбор  эталона  аналогового 
компаратора.  Когда  этот  бит  установлен,  и BOD позволяется (fuse-бит 
BODEN запрограммирован), фиксированное напряжение 1.22V поступает на 
положительный  вход  аналогового  компаратора.  Когда  бит  сброшен,  к 
положительному входу подключается контакт AIN0 

º 

Бит 5 – ACO (Analog Comparator Output) - выход аналогового компаратора. 

º 

Бит 4 – ACI (Analog Comparator Interrupt Flag) - флаг  прерывания  по 
аналоговому  компаратору.  Данный  бит  устанавливается  в  состояние  1  в 
случае  формирования  компаратором  прерывания,  определяемого ACIS1  и 
ACIS0.  Подпрограмма  обработки  прерывания  по  аналоговому  компаратору 
будет  выполняться  при  установленном  бите ACIE и  установленном  бите 
глобального  прерывания  в  регистре SREG. Бит ACI очищается  аппаратно 
при выполнении соответствующего вектора обработки прерывания, Бит ACI 
можно  очистить,  также,  записью  во  флаг  логической  1.  При  модификации 

 

 

 

 

 

 

 

содержание   ..  15  16  17  18   ..