Описание лабораторного оборудования
Вид АЦП стенда EasyAVR6, а также электрическая схема подключения приведены на рис. .
С помощью джампера J12 осуществляется подключение сигнала с переменного сопротивления к входам АЦП 0 – 4. Вращая ручку переменного сопротивления можно регулировать уровень сигнала, поступающего на вход АЦП.
Использование АЦП в режиме одиночного преобразования.
Исходя из алгоритма настройки АЦП, можно предложить следующий шаблон функции инициализации:
/*
ADC init
*/
void ADCInit(void)
{
ADMUX = 0; // канал 0, опорный сигнал с AREF, выравнивание результата вправо
/*Включаем АЦП, предв. делитель = 64, прерывания разрешены, Стоп */
ADCSRA = _BV(ADEN) | _BV(ADIF) | _BV(ADIE) | _BV(ADPS2) | _BV(ADPS1);
}
Для старта АЦП можно использовать следующую команду:
ADCSRA |= _BV(ADSC); // start conversion
А обработчик прерывания может иметь следующий вид:
/*
Обработчик прерывания от АЦП
*/
ISR (ADC_vect)
{
uint16_t result = ADC;
сохранение_или_отображение результата;
}
Задание. Методика выполнения задания
- Изучить и разобраться в теоретической части лабораторной работы. Представить в отчет основные положения.
- Создать проект лабораторной работы. Используя функции из теоретической части работы, создать программу, выполняющую периодическое преобразование данных с АЦП. Периодичность преобразования, частоту МК, входной порт и вид выдачи данных выбрать согласно варианту. Обратить внимание на допустимость частоты тактирования АЦП при изменении частоты работы МК!
- Скомпилировать программу и убедиться в ее работоспособности (можно промоделировать в Proteus или в симуляторе, либо запуская в лабораторном стенде). Подключить регулируемый аналоговый сигнал к входному порту. Регулируя уровень сигнала наблюдать изменение цифрового кода.
- Оформить отчет.
Требование к содержанию и оформлению отчета
Отчет должен быть оформлен в соответствие с требованиями кафедры и включать в себя необходимые описания, листинги программ и скриншоты экранов по каждому пункту задания (конкретизировано в указаниях по выполнению каждого пункта). В конце работы должны быть сделаны общие выводы.
Варианты заданий.
Вариант | Период сэмплирования | Входной порт | Вид выдачи данных | Частота МК |
| 1 с | PORTA.0 | PORTB, LCD | 8 МГц |
| 250 мс | PORTA.1 | PORTC, LCD | 8 МГц |
| 500 мс | PORTA.2 | PORTB, LCD | 8 МГц |
| 2 с | PORTA.3 | PORTB, LCD | 8 МГц |
| 1 с | PORTA.4 | PORTC, LCD | 4 МГц |
| 250 мс | PORTA.4 | PORTC, LCD | 4 МГц |
| 500 мс | PORTA.3 | PORTB, LCD | 4 МГц |
| 2 с | PORTA.2 | PORTC, LCD | 4 МГц |
| 1 с | PORTA.1 | PORTC, LCD | 1 МГц |
| 250 мс | PORTA.0 | PORTB, LCD | 1 МГц |
| 500 мс | PORTA.0 | PORTC, LCD | 1 МГц |
| 2 с | PORTA.1 | PORTB, LCD | 1 МГц |
Контрольные вопросы
- В каких режимах может работать АЦП МК AtMega16?
- Как связана частота тактирования АЦП и максимальная частота преобразований (сэмплирования или дискретизации)?
- Сколько входных каналов поддерживает АЦП МК AtMega16?
- Можно ли провести одновременное преобразование для 2 входных каналов?
- Чем отличается представление результата преобразования выровненное влево и выровненное вправо?
- Что такое опорное напряжение?
- Каков порядок инициализации АЦП?
- Как запустить однократное преобразование и проверить его завершение?
- Как запустить Циклическое преобразование и проверить его завершение?
Литература.
http://www.gaw.ru/html.cgi/txt/doc/micros/avr/arh/start.htm
http://avr.ru/docs/books/avr