МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Разработка программной и аппаратной поддержки к методическим указаниям Программирование микроконтроллеров

    Системный тактовый генератор.

    AVR может использовать три различных источника системной частоты:

    кварцевый или керамический резонатор, внешний тактовый сигнал или

    встроенный RC-генератор (имеется не во всех моделях). Обычный диапазон

    частот для AVR – от 0 до 16 МГц.

    Кварцевый или керамический резонатор может быть подключен к AVR (см.

    рис. 2.6). Если используется одна из этих схем, то не следует подключать

    какие-либо другие устройства ни к одному из выводов XTAL.

    а) б)

    Рис. 2.6. Схемы подключения к AVR керамического и кварцевого резонаторов

    а) без встроенных конденсаторов и б) со встроенными конденсаторами.

    Также AVR может синхронизироваться внешним тактовым сигналом,

    поступающим на вход XTAL1. Последний способ синхронизации – использование

    встроенного RC-генератора. Такой генератор на данный момент есть только в

    AT90S1200, он обеспечивает тактовую частоту 1 МГц. Этот режим задается при

    помощи одного из битов конфигурации (fuse bit) только при параллельном

    программировании МК.

    Таймеры.

    Источником сигнала переключения таймеров/счетчиков является либо

    тактовая частота процессора, либо внешний синхросигнал. Тактовая частота

    процессора может использоваться непосредственно или предварительно

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

    помощью мультиплексора (см. рис. 2.8). Биты CSxn, управляющие

    мультиплексором, расположены в регистре управления таймера TCCR0. В

    AT90S8515, который содержит два таймерных блока, имеется два мультиплексора

    – по одному на каждый блок. В AT90S1200 есть только один таймерный блок и

    один мультиплексор. Содержимое таймера инкрементируется при поступлении

    переднего фронта переключающего сигнала. Поэтому синхросигнал со внешнего

    вывода МК поступает в мультиплексор в прямом и инвертированном. Значение

    внешнего сигнала проверяется при поступлении переднего фронта тактового

    сигнала процессора.

    На рис. 2.7 показан Таймер 0 – простой 8-разрядный таймер, содержимое

    которого может быть считано или записано. Отключение входного сигнала

    происходит путем выбора «заземленного» входа при помощи мультиплексора. При

    переполнении счетчика реализуется маскируемое прерывание.

    Таймер 1 – более сложный 16-разрядный таймер. Он может выдавать на

    выход импульсы и ШИМ-сигналы. Его большим достоинством является возможность

    реализации дополнительных функций, таких как таймер событий.

    Рис. 2.7. Структура таймера 0.

    Сторожевой таймер.

    Сторожевой таймер представляет собой отдельный таймер с собственной

    частотой на 1 МГц, который при включении будет отсчитывать нужный интервал

    времени. Если произойдет переполнение до того, как команда WDR сбросит

    таймер в 0, то производиться перезапуск МК.

    Сторожевой таймер включается при установке в 1 бита WDE в регистре

    управления сторожевого таймера WDTCR. Содержимое битов WDPn этого регистра

    определяет интервал времени до того, как сторожевой таймер произведет

    перезапуск МК.

    Устройство внешнего вывода.

    Схема подключения внешнего вывода, показанная на рис. 2.8, дает

    представление о его работе. С каждым набором линий («портом») связано три

    адреса ввода/вывода, которые позволяют определять значения данных,

    записанных в порт, направление передачи данных (1- вывод, 0 - ввод) и

    реальное значение сигнала на внешнем выводе. Вследствие этого есть

    возможность «подтянуть» выводы порта к высокому потенциалу для работы в

    режиме ввода данных, и использовать состояние некоторых выводов в качестве

    запросов прерываний.

    Чтение данных может быть либо непосредственно с внешнего вывода, либо

    с выхода регистра данных порта. Такая возможность является важной

    особенностью работы порта. Если внешняя линия перегружена или случайно

    закорочена на «землю», то состояние внешнего выхода никогда не будет

    меняться. Поэтому в некоторых случаях очень важно иметь возможность

    прочитать содержимое регистра порта и сравнить его с реальным состоянием

    внешнего вывода.

    Рис. 2.8. Схема внешнего вывода.

    «Подтягивание» внешнего вывода к высокому потенциалу управляется не

    отдельными битами регистра, а для этого используется специальная

    комбинационная схема. Эта схема разрешает «подтягивание» только, когда

    внешний вывод работает в режиме ввода данных, т.е. когда бит регистра

    направления данных сброшен в 0, а бит регистра данных порта установлен в 1.

    Аналоговый ввод/вывод.

    Встроенный аналоговый компаратор напряжений дает возможность не только

    сравнивать входное напряжение с опорным, но и измерять длительность

    импульса при помощи встроенного таймера.[13] Выход компаратора (см. рис.

    2.9.) будет находиться в состоянии 1, если значение напряжения на

    положительном (не инвертирующем) входе AIN0 больше, чем на отрицательном

    (инвертирующем) AIN1.

    Рис. 2.9. Устройство компаратора напряжения.

    Состояние может использоваться для реализации различных вариантов

    запроса прерывания, которые задаются при помощи битов ACIS1 и ACIS0 (см.

    таблицу 2.1.) в регистре прерывания и состояния аналогового компаратора

    ACSR.

    Таблица 2.1. Установки битов ACIS1 и ACIS0.

    |ACIS1 |ACIS0 |Тип прерывания |

    |0 |0 |Прерывание по переключению выхода компаратора |

    |0 |1 |Зарезервировано |

    |1 |0 |Прерывание по спадающему фронту (из 1 в 0) |

    |1 |1 |Прерывание по нарастающему фронту (из 0 в 1) |

    Определить текущее состояние выхода компаратора можно путем опроса

    значения бита ACO в ACSR. Для уменьшения мощности потребления можно

    отключить компаратор, установив в 1 бит ACD в регистре ACSR. Перед тем, как

    включить или выключить компаратор, надо запретить все его прерывания путем

    сброса в 0 бита ACIE в регистре ACSR, чтобы предотвратить возможность

    поступления ложных запросов прерывания от компаратора.

    В МК AT90S8515 к выходу компаратора можно подключить вход захвата

    таймера. При этом можно зафиксировать момент изменения сигнала на выходе

    компаратора, если в регистре ACSR бит ACIC установлен в 1. Такая

    возможность позволяет измерять длительность сигнала, поступающего на

    компаратор.

    Конфигурирование МК

    В AVR есть два типа битов, задающих конфигурацию МК. Биты

    конфигурирования «fuses bits» (плавкие перемычки) используются для выбора

    режима работы AVR, тогда как биты защиты «lock bits» используются для

    запрещения доступа к памяти.

    . Биты конфигурирования различны для разных типов AVR. В AT90S1200

    установка в 1 бита RCEN подключает встроенный RC-генератор, при этом

    внешние тактовые импульсы игнорируются. Когда бит SPIEN сброшен в 0,

    разрешается программирование МК по последовательному интерфейсу через порт

    SPI. Во всех этих моделях биты SPIEN и RCEN по умолчанию сброшены в 0.

    МК AT90S8515 имеет биты SPIEN и FSTRT, которые позволяют при

    использовании внешнего тактового генератора производить быстрое включение

    МК без обычной задержки в 16мс.

    Биты конфигурирования «fuses bits» могут быть установлены или сброшены

    только при параллельном программировании.

    Биты защиты «lock bits» используются для запрещения/разрешения доступа

    к памяти программ в EEPROM, при этом достигаются свойства приведенные в

    таблице 2.2.

    Таблица 2.2. Режимы защиты и биты блокировки

    |Биты блокировки |Тип защиты |

    |Режим |LB1 |LB2 | |

    |1 |1 |1 |Защита не установлена |

    |2 |0 |1 |Дальнейшее программирование |

    | | | |флэш-памяти запрещено |

    |3 |0 |0 |Как режим 2, но запрещено и |

    | | | |чтение |

    Примечание: биты блокировки стираются только при полном

    стирании памяти

    Память данных EEPROM.

    Операции чтения и записи области данных EEPROM довольно просты и

    надежны. Обращение к EEPROM производится при помощи команд с индексной

    адресацией, которые используют адрес, хранящийся в регистре EEAR.

    Если EEPROM имеет емкость больше 256 байт, как у AT90S8515, то

    используются два адресных регистра: EEARH для хранения старшей части адреса

    и EEARL – для хранения младшей части. Эти регистры должны сохранять

    правильный адрес до тех пор, пока не буде закончена операция чтения или

    записи.

    Запись в память данных EEPROM производится следующим образом:

    1. Ожидание сброса в 0 бита EEWE в регистре управления EECR памяти

    EEPROM;

    2. Запись в EEAR нужного адреса;

    3. Запись в регистр данных EEDR нужных данных;

    4. Установка в 1 бита EEMWE в регистре EECR. (Бит EEMWE не

    используется в AT90S1200);

    5. В течении четырех тактов после установки бита EEMWE установить бит

    EEWE в 1 для начала записи в EEPROM. Операция записи занимает от

    2,5 до 4мс.

    Бит EEMWE регистра EECR обеспечивает аппаратную блокировку записи для

    того, чтобы уменьшить возможность случайного изменения EEPROM.

    Чтение из EEPROM выполняется аналогичным образом.

    1. Ожидание сброса в 0 бита EEWE в регистре управления EECR;

    2. Запись в EEAR нужного адреса;

    3. Установка в 1 бита EERE в регистре EECR;

    4. Чтение данных из EEDR.

    Операция записи должна быть закончена до того, как программа

    произведет попытку чтения из EEPROM. После установки в 1 бита EERE

    процессор переходит в состояние ожидания в течении двух тактов, пока данные

    выбираются из EEPROM. Это означает, что выполнение команды

    «SBI EECR, EERE», которая инициализирует операцию чтения, занимает не один

    такт, а три.

    Подключение питания и запуск.

    Подключение питания к AVR осуществляется очень просто. Для этого

    требуется напряжение +5В, шина «земля» развязывающий конденсатор. Все

    модели имеют широкий диапазон напряжений питания 2,7 В – 6,0 В, что

    позволяет легко реализовать батарейное питание, используя от 2 до 4 обычных

    батареек или никель-кадмиевых элемента.

    Что касается потребления энергии, то МК потребляют несколько мА в

    рабочем режиме и несколько сотен мкА в режим ожидания (sleep mode).

    Вывод RESET имеет внутреннее соединение с шиной питания через резистор

    («потягивания» к питанию), что избавляет от необходимости использования

    внешнего соединения. В процессе отладки системы, когда надо постоянно

    перезапускать МК и наблюдать за его поведением, все, что вам для этого

    нужно – это простая кнопка, которая будет замыкать вывод RESET на землю

    (см. рис. 2.10). В законченной системе вы можете оставлять вывод RESET не

    подключенным.

    Рис. 2.10. Запуск AVR при помощи внешнего выключателя.

    Если во время выполнения программы на вход RESET поступит сигнал

    низкого уровня длительность более двух тактов, то выполнение программы

    сбрасывается в начальное состояние, а тактовый генератор продолжает

    работать. Когда на этом выводе снова установиться высокий уровень,

    выполнения программы начнется с нулевого адреса.

    Программирование в системе.

    Используя программирование по последовательному интерфейсу, можно

    менять программу в памяти МК, уже установленного в готовую к применению

    систему. Для этого плата с контроллером должна быть подключена к питанию и

    генератору тактовых сигналов (см. рис. 2.11).

    Рис. 2.11. Схеме подключения МК для программирования в системе.

    На рис. 2.11 включены согласующие резисторы в линиях программирования,

    чтобы быть уверенным, что если схема программирования подает на эти линии

    сигналы, уровень которых отличается от того, который поступает на них от

    других устройств системы, состояния выводов не изменяться и на них не

    возникнет конфликт сигналов.

    Для линии запуска используется другое подключение. Нормально на этой

    линии поддерживается высокий уровень сигнала, а программатор может подать

    на нее низкий, чтобы перевести МК в режим программирования по

    последовательному интерфейсу. Управление состоянием линии RESET

    осуществляется схемой, имеющий выход с открытым коллектором.

    Эту схему можно использовать для программирования прикладной системы.

    Надо соединить МК (сигналы «земля», RESET, MISO, MOSI и SCK) с

    программатором при помощи 5-и контактного IDC-разъема.

    2.3. Система команд микроконтроллера AVR

    Микроконтроллеры AVR имеют очень широкий набор команд. Это позволяет

    более просто произвести разработку компиляторов, что также означает, что

    AVR может быть легко запрограммирован с использованием разнообразных

    команд, упрощающих решение задачи.

    Следует обратить внимание на следующие тонкости. Многие команды могут

    обращаться только к 16-старшим РОН и не имеют доступа к 16-младшим.

    Значения смещений и констант могут быть ограничены и оказаться не в том

    диапазоне, который вы ожидали.

    Существует различие между «полноценными» старшими моделями серии 8515

    и младшими моделями серии 1200. Младшие модели МК реализуют часть полного

    набора команд, в которых доступен только один индексный регистр Z. Хотя

    при переносе программ с младших моделей на старшие вряд ли возникнут

    проблемы, они весьма вероятны при обратном направлении переноса. Даже с

    учетом всех этих предостережений AVR – это МК очень простой для

    программирования благодаря богатству набора команд и особенностям его

    структуры.

    Для наглядности, в данном разделе приведем только некоторые примеры

    команд. Но прежде чем приступить к изучению команд, целесообразно

    рассмотреть различные способы адресации данных.

    Способы адресации данных

    Прямая адресация к Регистрам Общего Назначения

    Основным способом доступа к данным является прямое (непосредственное)

    обращение к РОН. На рис. 2.12 операнд команды содержится в регистре Rd, а

    КОП обозначает часть слова команды, соответствующую Коду ОПерации, Обычно в

    формате команды отводиться пять бит, которые позволяют адресоваться к

    любому регистру.

    Команды, оперирующие с двумя регистрами, действуют, в основном,

    аналогичным образом. В этих командах регистр-приемник Rd (destination)

    указывается перед регистром-источником Rr (resource), то есть является

    первым параметром (см. рис. 2.13). Таким образом, команда:

    ADD R0, R1

    реально выполняется так: R0 = R0 + R1.

    Рис. 2.12. Прямая адресация одного регистра.

    Результат сохраняется в регистре Rd.

    Рис. 2.13. Прямая адресация к двум РОН.

    Прямая адресация к регистрам ввода/вывода.

    На рис. 2.14 адрес операнда содержится в 6 битах слова команды (ячейка

    Р).

    Rd – определяет адрес регистра источника или регистра приемника. К примеру,

    этот тип адресации могут использовать команды IN или OUT:

    IN R0, SREG ;сохранить регистр состояния в регистре R0

    OUT PORTB, R1 ;записать данные из регистра R1 в PORTB

    Рис. 2.14. Прямая адресация регистров ввода/вывода.

    Прямая адресация данных.

    Рис.2.15. Прямая адресация данных.

    Единое адресное пространство является пространством данных, включая

    РОН, регистры ввода/вывода, внутренняя память и внешняя память (если есть).

    16-разрядный адрес данных содержится в 16 младших разрядах 32-х разрядной

    команды. Rd/Rr определяет адрес регистра источника или регистра приемника.

    Такой тип адресации, к примеру, могут использовать команды LDS и STS:

    LDS PORTB, R1 ;записать данные из регистра R1 в PORTB

    STS PORTB, R1 ;записать данные из регистра R1 в PORTB

    Косвенная адресация данных

    Существует четыре типа косвенной адресации данных: простая, с

    постинкрементом, с преддекрементом, со смещением. Для первых трех типов

    косвенной адресации данных адрес операнда содержится в регистре X, Y или Z.

    Для последнего типа (со смещением) адрес операнда вычисляется сложением

    содержимого регистров Y или Z с шестью битами адреса, содержащимися в слове

    команды. Сами же регистры остаются неизмененными.

    Смысл косвенной адресации с постинкрементом (с преддекрементом)

    заключается в следующем. После (до) выполнения операции регистр X, Y и Z

    инкрементируется (декрементируется).

    Рассмотрим некоторые примеры:

    1) ST X, Rn ;поместить данные из Rn в по адресу указанному в регистре Х;

    2) ST X+, Rn ;тоже что и в 1), но впоследствии X инкрементируется;

    3) ST -X, Rn ;предварительно X декрементируется;

    В предыдущих трех примерах вместо Х могут быть Y или Z.

    4) STD Y+c, Rn ; к значению Y прибавляется константа смещения ’c’ и по

    этому адресу записываются данные из Rn. Y при это остается неизменен.

    Вместо Y может быть только Z.

    Команды пересылки данных.

    Пересылка данных из одного места в другое является для AVR очень

    простой операцией, так как имеется очень большое количество команд,

    предназначенных для выполнения этой задачи. Ни одна команда пересылки

    данных не оказывает влияния на биты регистра состояния.

    Команда LPM – загрузка данных из таблиц, хранящихся в памяти программ.

    В этой команде младший бит индексного регистра Z используется для указания

    байта, который будет читаться, если 0 – читается младший байт, 1 – старший.

    Оставшиеся 14 байт используются для указания адреса слова.

    Страницы: 1, 2, 3, 4, 5, 6, 7, 8


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.