Содержание
Технические данные и применение микроконтроллеров AVR
Разработка
Программирование
Плата STK500 для тестирования и программирования микроконтроллеров AVR 14
Внутрисистемное программирование
Глава 1. Анализ и коррекция ошибок. Калибровка устройств, управляемых микроконтроллерами AVR
- Калибровка с целью коррекции ошибки на программном уровне.
- Калибровка в случае метода измерения с зависимостью от времени
- Частные случаи
- Выводы
Глава 2. Вспомогательные средства при вводе-выводе данных
2.1.Управление семисегментным индикатором через один вывод порта
- Непосредственное управление семисегментным светодиодным индикатором с
- помощью микроконтроллера AVR
- Принцип мультиплексной индикации
2.2.Управление семисегментным индикатором через один вывод порта микроконтроллера AVR
- Разделение тактового сигнала и сигнала данных
- Генерирование импульса записи в буфер
- Вычисление частоты регенерации/ц
- Буферизированный сдвиговой регистр.
- Расчет токоограничительныхрезисторов R4...R11 (см. рис. 2.3)
- Практическая реализация светодиодных дисплеев
- Описание программы
- Часть инициализации
- Программа тестирования
- Подпрограмма обработки прерываний Display
- Подпрограмма Code_4
- Подпрограмма Code_3
- Подпрограмма Get_7_Segm
- Выводы
2.3.Взаимодействие микроконтроллера AVR с ПК через последовательный интерфейс
- Программа HyperTerminal
- Определения для последовательной передачи данных по интерфейсу RS232.
- Соединения внутри интерфейса RS232
- Управляющие сигналы стандарта RS232
- Схема тестирования обмена данными по интерфейсу RS232
- Программа тестирования
- Описание программы
- Часть инициализации
- Основная программа
Глава 3. Измерение напряжения с помощью микроконтроллеров AVR
3.1.Встроенный АЦП микроконтроллеров AVR с разрешением десять разрядов .. 64
- Характеристики АЦП микроконтроллеров AVR
- Принцип работы
- Подача тактовых импульсов на АЦП.
- Входные каналы АЦП
- Режимы работы АЦП.
- Выбор входных каналов и источника опорного напряжения
- Регистр ADMUX АЦП
- Регистровая пара ADCH.ADCL
- Регистр управления и состояния ADCSRA
- Подавление/предотвращение помех при аналого-цифровом преобразовании.
- Примеры
- Описание программы
- Часть инициализации
- Основная программа
- Подпрограмма Out_Text
- Подпрограмма CalcRe suit
- Подпрограмма SendResult
- Подпрограмма DivlO
- Подпрограмма Mu 15
3.2.Подключение микросхемы АЦП ADS7818 с разрешением 12 разрядов и интерфейсом SPI
- Технические данные ADS7818
- Принцип работы ADS7818
- Процесс аналого-цифрового преобразования eADS7818
- Режим пониженного энергопотребления ADS7818
- Дополнительные режимы работы ADS7818
- Изменение направления потока битов результата
- Уменьшение разрешения ADS7818
- УправлениеADS7818 через интерфейс SPIмикроконтроллераAVR
- Реализация последовательной передачи с помощью аппаратного интерфейса SPI 95 Реализация последовательной передачи с помощью программного интерфейса SPI97
- Тестовая схема для проверки интерфейса АЦП микроконтроллера
- Тестовая программа управления ADS7818 и выдачи результата аналого-цифрового преобразования
- Описание программы
- Часть инициализации
- Основная программа
- Подпрограмма обработки прерывания Display
- Подпрограмма ReadSPI
- Подпрограмма CalcResult
- Подпрограмма SendByte
- Подпрограмма SendResult
- Подпрограмма Code_4
- Подпрограмма Get_7_Segm
- Подпрограмма DivlO
- Выводы
3.3. Тестовая плата для микроконтроллера AT90S2313 и микросхемы AIjnADS7818aba
4. Цифро-аналоговое преобразование с помощью микроконтроллеров AVR
4.1.Цифро-аналоговое преобразование с использованием широтно-импульсной модуляции
- Принцип цифро-аналогового преобразования с помощью ШИМ-сигнала
- Амплитудный спектр прямоугольных импульсов
- Среднее арифметическое выходного напряжения
- Практическая реализация АЦП с ШИМ
- Калибровка схемы
- Пример расчета параметров фильтра нижних частот
- Формирование ШИМ-сигнала с помощью Т/С1
- Аналоговое управление коэффициентом заполнения прямоугольных импульсов напряжения
- Управление коэффициентом заполнения прямоугольных импульсов напряжения с помощью Т/С1
- Режим быстрой широтно-импульсной модуляции
- Программа
- Описание программы
- Тестовая программа
- ПАП с управлением по прерыванию при использовании ШИМ-аккумулятора.
- Алгоритм формирования ШИМ-сигнала
- Пример ШИМ-генератора в качестве "виртуальной периферии"
- Описание программы
4.2.Цифро-аналоговое преобразование с помощью встроенного АЦП микроконтроллера AVR
- Практическая реализация ПАП с помощью встроенного АЦП микроконтроллера AVR
- Алгоритм регулирования ПАП.
- Пример применения
- Описание программы
- Часть инициализации
- Основная программа
- Подпрограмма обработки прерывания по завершению АЦ-преобразования
- Подпрограмма Dif ferenz
- Подпрограмма SendByte
- Подпрограмма GetByte
- Подпрограмма Out_Text
- Подпрограмма In_Text
- Подпрограмма Dekodieren
- Подпрограмма Mul_ 10
- Подпрограмма Div_5
- Подпрограмма Verzoegerung
Технические данные и применение микроконтроллеров AVR
В своей книге "AVR RISC-микроконтроллеры"1 автор достаточно подробно описал возможности микроконтроллеров AVR на примере некоторых моделей серии "Classic" (AT90Sxxxx). Рассмотренные характеристики действительны также и для новейших представителей семейства AVR и останутся актуальными и в будущих моделях. Как и прежде, у микроконтроллеров будет регистровый файл, оперативная и флэш-память, память типа EEPROM, порты ввода-вывода, интерфейсы SPI, I2C (TWI) и RS232, таймер, аналоговый компаратор и режим ожидания и т.д. К примеру, порты ввода-вывода ATmega32 устроены аналогично портам AT90S2313, а аналоговый компаратор ATtiny26 работает по тем же принципам, что и в AT90S8515. Безусловно, в устройствах появляются новые дополнительные функции, однако и в новейших поколениях микроконтроллеров AVR будут применяться принципы, исследованные и описанные в упомянутой выше книге.
Система команд также основана на системе команд серии AT90Sxxxx, хотя и дополнена новыми инструкциями (например, командами умножения и пересылки, применение которых будет описано ниже в этой книге). По этой причине, в данной серии мы не будем повторяться с описанием всех функций микроконтроллеров AVR, рассмотренных в книге "AVR-RISC микроконтроллеры", а остановимся подробнее на таких вопросах как цифро-аналоговое преобразование и скоростной режим широтно-импульсной модуляции таймера/счетчика Т/С1.
Наиболее свежие технические описания всех микроконтроллеров AVR и многие рекомендации относительно их применения можно найти на Web-сайте компании Atmel: www. atmel. com (информация распространяется бесплатно).
Atmel — компания, непрерывно совершенствующая свою продукцию. Серия микроконтроллеров AVR постоянно пополняется новыми, более производительными образцами. В том случае, если модели, рассмотренные в этой книге, станут недоступны, все примеры и варианты применения могут быть воспроизведены с помощью более совершенных AVR-моделей следующего поколения.
Разработка
Для ускорения и упрощения разработки собственных проектов, основанных на устройствах AVR, можно воспользоваться интегрированной средой AVR-Studio, бесплатно распространяемой через Web-сайт компании Atmel (www. atmel. com).
В состав AVR-Studio входит ассемблер и эмулятор, позволяющий тестировать программы непосредственно в среде разработки. При этом программа может выполняться последовательно или с учетом точек прерывания, а на экране может быть отображено и, в случае необходимости, изменено содержимое ячеек памяти, регистров и портов ввода-вывода. Пользователь может непрерывно контролировать ход выполнения программы, наблюдая за состоянием переменных в окне Watch.
Компания Atmel предлагает также внутрисхемные эмуляторы, однако возможности моделирующей среды AVR-Studio позволяют отследить до 95% всех ошибок. Остальное обнаруживается при тестировании в режиме реального времени посредством определения подходящих программных прерываний.
Интегрированный в AVR-Studio ассемблер является неизмененной версией автономного ассемблера, описанного в книге "AVR-RISC микроконтроллеры". В этой же книге описаны и принципы работы с самой средой AVR-Studio.
Программирование
Серия "Измерение, управление и регулирование с помощью AVR-микроконт-роллеров" затрагивает, прежде всего, наиболее распространенные задачи техники измерения и автоматического регулирования на примере микроконтроллеров AVR компании Atmel. Исходные тексты разработанных автором программ в расширенном виде можно найти на прилагаемом к книге компакт-диске. Программы предназначены для частного (не промышленного!) использования и создавались как образец для дальнейших самостоятельных разработок.
Плата STK500 для тестирования и программирования микроконтроллеров AVR
Существует множество способов записи представленных в книге и созданных читателем самостоятельно программ в микроконтроллеры AVR, однако наиболее доступным и универсальным решением можно назвать предлагаемую компанией Atmel плату STK500 , позволяющую максимально упростить программирование почти всех микроконтроллеров AVR серий "Classic", "Tiny" и "Mega".
Для различных вариантов исполнения микроконтроллеров предусмотрены различные разъемы с двухрядным расположением контактов. Микроконтроллеры AVR с корпусами типа PLCC и TQFP подключаются к плате через адаптер.
Плата STK500 питается нестабилизированным постоянным напряжением в диапазоне 10-15 В. Стабилизация реализована в самой плате.
Данные из компьютера поступают на STK500, где собственно и происходит процесс программирования микроконтроллера. Благодаря этой концепции, плата STK500 может применяться и с новыми типами микроконтроллеров AVR, для чего достаточно установки обновленного программного обеспечения — весьма ценное свойство, если учесть темпы расширения семейства AVR.
Мультиплексный режим светодиодного семисегментного индикатора
В целом, в микроконтроллерах можно заметить четкую закономерность: чем большее выводов присутствует на корпусе, тем большее количество функций реализует микроконтроллер (приемопередатчик UART, цифро-аналоговый преобразователь, таймер, интерфейсы TWI и SPI и т.д.). Эти функции, безусловно, влияют на стоимость, поэтому микроконтроллеры с большим количеством выводов более дорогостоящие. Тем не менее, очень часто многие функций остаются неиспользованными, а наиболее востребованными оказываются порты ввода-вывода. В этом случае, из соображений экономии, выбирается микроконтроллер AVR с наименьшими возможными размерами корпуса и оптимальным набором портов ввода/вывода.
В главе 16 своей книги "AVR RISC-микроконтроллеры" автор продемонстрировал метод увеличения количества портов ввода/вывода с помощью интерфейса SPI, позволяющий без значительных затрат получить устройство с необходимым количеством выводов. Интерфейс SPI позволяет подключать параллельно внешние блоки, используя при этом все три вывода (а также, в случае необходимости, дополнительные п выводов для сигналов выборки, разрешения или фиксации). Однако, учитывая тот факт, что в "младших" моделях микроконтроллеров AVR (например, таких как AT90S1200 или AT90S2313) этот интерфейс не реализован вообще или предназначен только для программирования, а не для свободного использования, описанный способ также будет стоить (3 + п) выводов.
В разделе 2.2 на примере восьмиразрядного дисплея, построенного на основе семисегментных светодиодных индикаторов, будет рассмотрена схема управления, которая свободно интегрируется в пользовательские проекты и обходится всего одним выводом микроконтроллера AVR. Этот принцип управления может быть легко применен также и для других вариантов вывода данных.
Но прежде рассмотрим два стандартных метода управления светодиодным дисплеем с помощью микроконтроллера AVR.
|