Управление аналого–цифровым преобразователем 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Управление аналого–цифровым преобразователем



Микроконтроллер ATmega16 оснащен 10–разрядным ADC последовательных приближений (рис. 24). ADC подсоединен к 10– канальному аналоговому мультиплексору (MUX), позволяющему подать на вход преобразователя любой из восьми входных сигналов со входов ADC0…. ADC7, либо эталонное напряжение 1,22 В, либо сигнал со входа AGND. Вывод AGND рекомендуется подсоединить к точке c нулевым потенциалом GND. ADC содержит схему выборки/хранения SH.

 

 
 

 

 


Рис. 24. Структура аналого–цифрового преобразователя

 

Результат AD преобразования в виде 10–битного двоичного числа D равен:

 

где U– входное напряжение, a Uo опорное напряжение преобразователя.

В качестве источника опорного напряжения преобразователя можно использовать внешний сигнал с вывода AREF, внутренний источник 2,56 В, либо напряжение питания аналоговой части микроконтроллера с вывода AVCC.

Для управления преобразователем в микроконтроллере используются регистры (рис. 25):

0 Регистр управления мультиплексором ADMUX

0 Регистр управления аналого–цифровым преобразователем ADCSR

0 Регистры данных ADCL и ADCH

0 Регистр состояния микроконтроллера SREG

 

 
 

 


Рис. 25. Регистры, используемые аналого–цифровым преобразователем

 

Аналого–цифровой преобразователь может работать в двух режимах: режиме однократного преобразования и в циклическом режиме. Выбор режима производится битом ADFR регистра ADCSR.

Работа аналого–цифрового преобразователя разрешается установкой в состояние 1 бита ADEN в регистре ADCSR. Преобразование начинается с установки в состояние 1 бита начала преобразования ADSC

Поскольку аналого–цифровой преобразователь формирует 10–разрядный результат, то по завершении преобразования результирующие данные размещаются в двух регистрах данных ADCH и ADCL.

Аналого–цифровой преобразователь имеет свое собственное прерывание ADC (вектор $1С), которое может быть активизировано по завершению преобразования. Когда обращение к регистрам запрещено, в процессе считывания регистров ADCL и ADCH, прерывание будет активизироваться, даже при потере результата.

Регистр ADMUXпредназначен для управления входным аналоговым мультиплексором.

0 Биты 7 и 6 - REFS1..0 – обеспечивают выбор эталонного напряжения на входе AREF аналого–цифрового преобразователя. Выбор производится в соответствии с таблицей 28.

Таблица 28. Выбор источника опорного напряжения ADC

 

REFS1 REFS0 Выбор источника напряжения
    AREF, внутреннее напряжение Vref отключено
    AVCC с внешним конденсатором на контакте AREF
    Резерв
    Внутренний источник 2.56 В с внешним конденсатором на AREF

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

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

 

Таблица 29. Выбор входного сигнала ADC

MUX4..0 Подключаемый контакт
  ADC0
  ADC1
  ADC2
  ADC3
  ADC4
  ADC5
  ADC6
  ADC7
01000..11101 Резерв
  1.22V
  0V (AGND)

 

Регистр – ADCSRпредназначен для управления работой аналого–цифрового преобразователя.

0 Бит 7 – ADEN– разрешение работы ADC.

0 Бит 6 – ADSC запуск преобразования ADC.

0 Бит 5 – ADFR установка циклического режима работы ADC.

0 Бит 4 – ADIF флаг прерывания ADC.

0 Бит 3 – ADIE– разрешение прерывания ADC.

0 Биты 2..0 – ADPS2..ADPS0 выбор коэффициента предварительного деления (табл.30).

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

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

 

 

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

Если ADLAR сброшен, то результат представлен в виде, изображенном на рис. 26.

 

 

 
 

 

 


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

 

Если достаточным является 8-битное преобразование, то при ADLAR=0 можно считывать только старший байт результата (регистр ADCH).

 

 

Задание к лабораторной работе

 

Изучить программу Lb6.asm и файл проекта Lb_6.prj. Отладить программу в среде VMLab, подключив необходимую периферию к микроконтроллеру AVR – источник синусоидального напряжения. Программа преобразует напряжение на выводе PA5 микроконтроллера в двоичный 10-разрядный код. Используется 8 старших разрядов. Преобразование осуществляется по прерываниям от ADC. На рис. 27 представлены результаты моделирования программы управления аналогоцифровым преобразователем по прерываниям.

 

 

 

Рис.27. Результаты моделирования программы

управления аналого–цифровым преобразователем

Файл Lаb_6.prj

 

; **************************************

; Analog to digital converter demo

; **************************************

 

.MICRO "ATmega16"

.PROGRAM "Lab6.asm"

.TRACE

.POWER VDD=5 VSS=0; Power nodes

 

; Используется вход PA5 микроконтроллера

V1 PA5 VSS SIN(2.5 2.5 1)

.PLOT V(PA5)

 

Файл Lab6.asm

;**********************************************

;* 10 bits A/D converter

;**********************************************

.include "c:\vmlab\include\m16def.inc"

.def temp = r16

;**********************************************

; Reset and interrupt vectors

;

Cseg

.org $00



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 120; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.157.186 (0.013 с.)