13.3 Применение МК AVR в учебном процессе.Часть вторая
Кроме того, практически все линии портов использованы для поддержки периферийных функций (входы таймеров и прерываний, входы многоканального АЦП, выходы ШИМ, интерфейс программирования SPI и др.)
При использовании портов для байтового или битового ввода-вывода данных работа каждого из портов обеспечивается тремя регистрами (см. рис.5.1):
· регистр данных порта PORTx – режимы чтения и записи; определяет информацию, выдаваемую через порт;
· регистр направления данных DDRx – задает направление работы каждой линии соответствующего порта («0» – вход, «1» – выход);
· регистр выводов порта PINx – только чтение уровня сигналов с внешних физических выводов (каждая линия содержит триггер Шмита для обеспечения крутизны фронтов сигнала).
5.6 Таймеры микроконтроллера AVR ATmega16
5.6 Таймеры микроконтроллера AVR ATmega16
Модель ATmega16 имеет в своем составе три таймера-счетчика с условными именами Т0, Т1 и Т2. По функциональности 8-разрядные таймеры Т0 и Т2 аналогичны.
В состав каждого из идентичных таймеров Т0 и Т2 входят по три регистра из пространства ввода-вывода:
· счетный регистр TCNT0 (TCNT2),
· регистр управления TCCR0 (TCCR2);
· регистр сравнения OCR0 (OCR2).
Таймер Т2 содержит также регистр ASSR для управления его модулем (коэффициентом счета) в асинхронном режиме.
Таймеры Т0 и Т2 могут работать в таких режимах:
· 8-разрядный счетчик (Т0 и Т2);
· счетчик внешних импульсов (только Т0);
· ШИМ (Т0 и Т2) – режимы генерации FastPWM и Phase-CorrectPWM;
· формирователь сигналов на внешнем вывода МК (Т0 и Т2);
· часы реального времени (только Т2)
Таймер Т1 является 16-разрядным. Для него допустимы все режимы работы, характерные для таймеров Т0 и Т2. Кроме того, он может по внешнему сигналу сохранять свое состояние в отдельном регистре (режим захвата).
В состав таймера Т1 входят:
· счетный регистр TCNT1;
· регистр захвата ICR1;
· два регистра сравнения OCR1A и OCR1B (все регистры 16-разрядные);
· два 8-разрядных регистра управления TCCR1A и TCCR1B.
Все 16-разрядные регистры реализованы как пара 8-разрядных с соответствующими именами: TCNT1H и TCNT1L. Поскольку таймер содержит два регистра сравнения, он может работать как двухканальный ШИМ-генератор.
5.7 Прерывания микроконтроллера AVR ATmega16
5.7 Прерывания микроконтроллера AVR ATmega16
Таймеры в процессе работы формируют 8 флагов прерываний по событиям «переполнение», «совпадение» и «захват» (для таймера Т1). Флаги прерываний фиксируются в регистре TIFR (timer interrupt flag register).
Для разрешения/запрещения прерываний от таймеров предназначен регистр TIMSK.
Кроме прерываний от таймеров, обслуживаются также внешние запросы (INT0, INT1), прерывание от АЦП, аналогового компаратора, последовательных интерфейсов UART, SPI и TWI.
5.8 Аналого-цифровой преобразователь МК AVR ATmega16
5.8 Аналого-цифровой преобразователь МК AVR ATmega16
Микроконтроллеры ATmega16 оснащены 10-разрядным АЦП последовательного приближения. Основные параметры этого модуля следующие:
· абсолютная погрешность: ±2 МЗР;
· интегральная нелинейность: ±0.5 МЗР;
· быстродействие до 15 тыс. выборок/с.
На входе модуля АЦП всех моделей имеется 8-канальный аналоговый мультиплексор, что позволяет построить на основе МК многоканальную систему сбоар данных.
В модели ATmega16 входы АЦП могут также объединяться попарно для формирования в общей сложности до 13 каналов с дифференциальным входом. Два канала при этом имеют возможность 20 - и 200-кратного предварительного усиления входного сигнала.
В качестве источника опорного напряжения UREF для АЦП может использоваться как напряжение питания микроконтроллера, так и внутренний либо внешний источник напряжения.
АЦП может функционировать в двух режимах:
· режим одиночного преобразования, когда запуск каждого преобразования инициируется программой;
· режим непрерывного преобразования через определенные интервалы времени, задаваемые таймерами, компаратором или внешними сигналами.
Для управления модулем АЦП в микроконтроллере ATmega16 предусмотрены следующие регистры:
· ADCSR – регистр управления и состояния;
· ADMUX– регистр выбора мультиплексора АЦП;
· SFIOR – регистр специальных функций (выбор сигнала запуска АЦП).
Регистры данных АЦП – ADCL и ADCH – фиксируют результат преобразования в зависимости от настройки в регистре ADMUX.
Наибольшая точность преобразования достигается, если АЦП работает с тактовой частотой в диапазоне от 50 до 200 кГц.
На частоте преобразования 200 кГц, согласно теореме Котельникова, АЦП адекватно сможет отслеживать аналоговый гармонический сигнал частотой 20кГц.
Более детально работа с ресурсами МК AVR представлена в книгах А.В. Евстифеева «Микроконтроллеры AVR семейств Tiny и Mega фирмы «Atmel» и «Микроконтроллеры AVR семейства Classic фирмы «Atmel».
5.9 Технология программирования МК AVR
5.9 Технология программирования МК AVR
Разработку программного обеспечения для МК AVR выполняют как на языке Ассемблер, так и высокоуровневыми средствами, как правило, на языке Си.
Технология программирования включает традиционные этапы:
· анализ задачи и разработка алгоритмов на основе структурного подхода;
· распределение аппаратных ресурсов МК (память, таймеры, прерывания, порты ввода-вывода) в соответствии с функциональными алгоритмами;
· разработка отдельных программных модулей на языке Ассемблер или Си;
· компиляция и сборка программы;
· автономная отладка на симуляторах;
· загрузка в контроллер и тестирование готовой программы.
Для поддержки технологии программирования существует целый рад интегрированных сред:
· AVR Studio – бесплатный продукт Atmel Corp.
· WinAVR;
· Code Vision.
|