- •Встраиваемые микроконтроллеры avr-8
- •Санкт-Петербург 2013 Содержание
- •Часть 1. Архитектура мк (л2, л3)
- •Понятия мк для встраиваемых приложений и семейства мк. Семейство avr-8
- •Структура и архитектура мк
- •Тактирование, процессор и арифметико-логическая группа команд
- •Структура и адресация памяти программ. Ветвления, циклы, подпрограммы, и группа команд передачи управления
- •Структура и адресация памяти данных. Группа команд передачи данных
- •Порты ввода/вывода. Типовая схема включения мк. Структура управляющей программы, поллинг.
- •Часть 2. Процесс проектирования устройств на мк (л4, л5)
- •2.1. Этапы процесса проектирования устройств на мк
- •2.2.Техническое задание и разработка алгоритма (блок-схемы)
- •2.3. Языки программирования и синтаксическая проверка проекта
- •2.4. Средства загрузки кодов программ и данных (программаторы)
- •2.5. Средства отладки для выявления логических и схемотехнических ошибок
- •2.6. Подключение индикаторов и клавиатуры
- •Часть 3. Ввод/вывод в мпу
- •3.1. Понятие и характеристики интерфейса
- •3.2. Внутрисистемные интерфейсы в мпу
- •3.3 Параллельный порт avr
- •3.4. Внешняя магистраль памяти данных avr мк
- •3.5. Принцип и средства ввода/вывода по прерываниям.
- •3.6. Принцип прямого доступа к памяти
- •Часть 4. Прерывания (л8)
- •4.1. Механизм прерываний в avr и его программирование
- •4.2. Входы прерываний inTx и pcinTx.
- •Часть 5. Таймеры/счетчики
- •5.1. Задачи формирования и измерения временных интервалов
- •5.2. Принципы программного формирования/измерения временного интервала
- •5.3. Таймер/счетчик с прерыванием по переполнению
- •5.4. Таймер/счетчик с дополнительными узлами захвата и сравнения
- •Часть 6. Задачи и устройства аналогового ввода/вывода (л12, л13)
- •6.1. Задачи аналогового ввода и вывода
- •6.2. Встроенный аналоговый компаратор
- •6.3. Встроенный многоканальный ацп
- •6.4. Встроенный цап
- •Часть 7. Задачи и устройства последовательного интерфейса (л14, л15)
- •7.1. Принципы и преимущества последовательного интерфейса
- •7.2. Функции встроенного контроллера последовательного интерфейса
- •7.3. Протокол и контроллер трехпроводного синхронного пи (spi)
- •7.4. Устройство контроллера i2c и его применение
- •7.5 Цап с последовательным интерфейсом
- •7.6. Устройство контроллера u(s)art и его применение
- •7.7. Сетевые протоколы и их стандартизация
- •7.8. Открытый протокол Modbus
- •История
- •Введение
- •Категории кодов функций
- •Модель данных
- •Стандартные функции протокола Modbus
- •Запись одного значения
- •Запись нескольких значений
- •Контроль ошибок в протоколе Modbus rtu
- •Rtu фрейм
- •Логические ошибки
- •Стандартные коды ошибок
3.3 Параллельный порт avr
Для наблюдения и управления каждым 8-разрядным портом (например, портом А) используются три 8-разрядных регистра в субпространстве РВВ – DDRA, PORTA и PINA. Это значит, что каждый из них подключен к внутренней системной магистрали по шине данных, имеет свой селектор адреса (коды адреса из файла описания МК: PORTA = 0x1b, DDRA = 0x1a, PINA = 0x19). Причем регистры DDRA, PORTA доступны по чтению и записи, то есть формально их можно использовать как ячейки оперативной памяти. Регистр PINA доступен только по чтению, так как служит лишь для наблюдения за состоянием 8 выводов PA0…PA7 независимо от настройки выводов на ввод или вывод.
3.4. Внешняя магистраль памяти данных avr мк
Для уменьшения числа выводов используется мультиплексирование шины данных (8 разрядов D0…D7) и адреса (16 разрядов A0…A15). Мультиплексирование заключается во временном разделении – сначала по 8 линиям AD0…AD7 передаются 8 младших бит адреса, затем – 8 бит данных, для синхронизации смены адреса на данные используется выход ALE (Address Latch Enable), для синхронизации вывода используется выход WR, для синхронизации ввода – выход RD. Всего 19 выводов МК AVR (рис. 13) позволяют иметь внешнее адресное пространство 64 килобайта, в нем могут располагаться как ячейки памяти данных, так и устройства ввода/вывода.
Для подключения внешних устройств (SRAM объемом 216 байт на рис. 3.1) необходима микросхема регистра-защелки для фиксации 8 младших разрядов адреса по сигналу ALE и разрешение работы с внешней памятью данных (бит SRE в регистре MCUCR). В этом случае линии порта А PA0…PA7 используются как AD0…AD7, линии порта С PC0…PC7 – как A8…A15, PD6 = WR, PD7 = RD, ALE – свободный вывод. Микросхема регистра-защелки по сигналу ALE записывает младшие разряды адреса (на входах D0…7) и фиксирует их на своих выходах (Q0…Q7) до следующей операции на внешней магистрали. Микросхема внешней памяти данных (SRAM) или внешнее устройство ввода/вывода с подобным интерфейсом, подключается двунаправленным портом D[7:0] к линиям порта А, входы адреса младшие разряды A[7:0] получают с регистра защелки, старшие A[15:8] – с выходов порта С, входы записи и чтения – к одноименным выходам МК.
Рис. 3.1
При соблюдении требований по времени выборки адреса обмен по внешней магистрали также может выполняться за одну команду (LDx/STx), для незначительного увеличения длительности цикла чтения или записи по внешней магистрали используются биты настройки SRW регистра MCUCR. На рис. 14, представлены временные диаграммы сигналов на линиях внешней магистрали. Обычный цикл обмена (рис. 3.2, а) занимает 3 машинных цикла, первый служит для фиксации младших разрядов адреса в регистре-защелке, во втором начинается, в третьем заканчивается процедура записи или чтения. Увеличенный цикл (рис. 3.2, б) занимает 4 машинных цикла, «пустой» цикл увеличивает интервал между началом и концом процедуры записи или чтения.
Обращаем внимание, что сигналы записи и чтения работают в инверсной логике – фронт сигнала начинается с перехода к низкому уровню, срез – к высокому.
В среде моделирования Proteus VSM есть схемно-программный пример подключения внешней памяти данных объемом 64 КБ с временными диаграммами сигналов в процедурах записи и чтения. Меню «Справка Примеры проектов» < \ Sample \ VSM for AVR \ AVR External Memory \ extram.dsn >.
а
б
Рис. 3.2
Для увеличения адресного пространства свыше 64 КБ можно использовать не задействованные линии параллельных портов – каждая линия увеличивает размер пространства вдвое. В этом случае для смены полного адреса необходимо менять сигналы на выходах портов. Пример подключения внешней памяти 512 КБ рассмотрен в [Баранов В.Н. Применение микроконтроллеров AVR: схемы, алгоритмы, программы. – М.: Издательский дом «Додэка-ХХI», 2004. – 288 с.].
