Гребнев В.В. - Микроконтроллеры семейства AVR фирмы Atmel (1044208), страница 15
Текст из файла (страница 15)
Прерывание по запросу ВЕЗЕТ выполняется вне зависимости от состояния разряда 1 в регистре ЖЕС. Опрос состояния входов блока прерываний выполняется в каждом такте. Прн обнаружении запроса код из счетчика команд заносится в стек, па что затрачивается 2 такта, и выполняется безусловный переход по команде с мнемокодом В.~МР 1~ (2 такта) или !МР 1с (3 такта). Если прн обнаружении запроса прерывания процессор не закончил выполнение текушей многотактовой команды, до перехода к прерывакпией программе завершается выполнение этой команды. Таа ли ца 3.27 Тип МК Запрос прерывания 2З1З паОЗ Ы6З 8616 4433 000 000 000 002 004 000 001 002 000 001 002 ВЕЯЕТ !й!ТО ЮТ1 !МТ2 000 001 002 000 001 002 002 004 006 001 002 010 003 012 ОО6 003 014 008 004 016 ООА 005 003 004 005 006 003 003 ООС 006 ОО4 004 ООЕ 007 008 010 005 005 012 009 ООА ООВ ООС ООО ООЕ ООЕ 010 006 00? 008 009 ООА ООВ ООС ООО 00? 004 ОО6 014 008 016 018 01А 01С 01Е 020 022 009 ООА ООВ 007 008 009 ООС ООА !й!Т? Ш Р!ЙЯ Т/С2 СОМР Т/С2 ОЧЕ Т/С1 САРТ Т/С1 СОМРА Т/С1 СОМРВ Т/С1 ОЧЕ Т/СО СОМР Т/СО ОЧЕ ЯР! ЯТС 0АНТ ВХС 0АВТ 0ОНЕ 0АВТ ТХС АОС СС ЕЕ НОУ АЙА СОМР ТМIЯ! 018 01А 01С 01Е 020 022 024 026 028 02А 02С 02Е Глава 4 Работа микроконтроллера 4.
1. Программирование микроконтроллера Программирование микроконтроллера заключается в записи: ° кодов команд программы и констант в НайКОМ; ° кодов исходных данных в ЕЕРКОМ; ° требуемых значений установочных битов (Гиле ВЫз); ° треоуемых значений битов защиты (Лосй Вю).
В микроконтроллерах, иостуиа|о~иих в продажу, во всех ячейках НайКОМ записан код ЗРЕЕТЕ во всех ячейках ЕЕРКОМ вЂ” код БЕК биты защиты имеют единичное значение, а установочные биты могут иметь разные значения. Исходные значения установочных битов у микроконтроллеров разных типов указаны в приложении Пб. Кроме того, в трех специальных ячейках памяти записаны сигиатурные байты, определяющие тип микроконтроллера. Коды, записанные в НайКОМ и ЕЕРВОМ, сигнатурные байты и значения установочных битов и битов защиты могут быть прочитаны для контроля правильности записи и определения типа и состояния микроконтроллера. В микроконтроллерах семействах Л11К имеются два бита защиты— 1 В1 и 1 В2. При единичном значении обоих битов возможны и запись, и чтение кодов. После программирования бита ЕВ1 (1В1 = 0) дальней- 86 Глава 4 шая запись кодов в Е1азЬКОМ и ЕЕРКОМ и изменение значения установочных битов невозможны.
После программирования бита ЕВ1 (1.В1 = О, 1.В2 = 0) невозможно также чтение кодов, записанных в НазЬКОМ и ЕЕРКОМ, и значений установочных битов. При перепрограммировании микроконтроллера (программировании микроконтроллера, ранее прошедшего программирование) необходимо предварительно "стереть" прежнюю запись. При стирании во всех ячейках Е1авЬКОМ и ЕЕРКОМ восстанавливаются коды 3ГГЕЕ и 3ГГ соответственно, биты защиты принимают единичное значение, а установочные биты и сигнатурные байты остаются без изменения. Допускается выполнить до 1000 циклов "стирание- запись" для ячеек Е1азЬКОМ и до 100000 циклов для ячеек ЕЕРКОМ, Запись и чтение кодов при программировании выполняются побайтно.
Ввод и вывод битов в байте могут выполняться параллельно или последовательно. В микроконтроллерах семейства АЪ'К реализуются следующие способы программирования: 1. Параллельное программирование с использованием дополнительного источника напряжения +12 В (НцЬ-ЪЬЮаце Рата!!е! Ргораттг'пя, НАУРР); 2. Последовательное программирование с использованием дополнительного источника напряжения +12 В (НфЬ-~Ь!гиде 5епа! Ргоя'гиттгпя, НЧБР); 3.
Последовательное программирование без использования дополнительного источника напряжения (Аои>-~Ь!!аде 5епи! Рторатттд', 1ХЯР). 4. Самопрограммирование (5е!~-Ргоратттд, Б1 ЕР). Возможность использования названных способов программирования в микроконтроллерах разных типов отмечена знаком "+" в табл. 4.1. Программирование с использованием дополнительного источника напряжения (НЪ'РР и НЪ'БР) выполняется с помощью программатора до установки микроконтроллера в аппаратуре, где ему предстоит работать.
Последовательное программирование без использования дополнительного источника напряжения (1.ЧБР) может выполняться после установки микроконтроллера в аппаратуре (1п-Буегет Ртоцгаттгпф. Программирование по способу 1.ЧЯР возможно при нулевом значении установочного бита БР1ЕХ. При программировании по способу 1ХЯР микроконтроллер находится в рабочем состоянии, значения напряжения питания и тактовой частоты лежат в пределах, установленных для микроконтроллера данного типа (приложение П1). Вывод КЕЯЕТ соединен с шиной бХР. Ввод и вывод байтов при программировании выполняются с использованием трех выводов — МОЯ1, М1ЯО и БСК.
Схема подключения микроконтроллера для программирования изображена на рис. 4.1. Работа микроконтроллера Таблица 4.1 * — выполняется при ВР! ЕМ - О; ** — при программировании НХ0 и ТХО. И/50 Рис. 4.! В микроконтроллерах, имеющих последовательный порт ввода-вывода ЯР1 (табл.
1.1), используются выводы этого порта. В микроконтроллерах без порта ЯР1 находится вспомогательный порт ЯР1, работающий только при программировании в режиме ведомого устройства. Функции выводов МОБ1, М150 и ЯСК выполняют выводы параллельных портов ввода-вывода. Выводы микроконтроллера, используемые в качестве входов М051 и ЯСК и выхода М150 у микроконтроллеров разных типов указаны в табл. 4.1. В микроконтроллере типа т103 вместо выводов М051 и М150 используются выводы ВХВ и ТХВ соответственно. 88 Глава 4 У микроконтроллеров типа ш163 и ш103 запись байтов в Г1аз11КОМ выполняется за два этапа.
На первом этапе байты записываются в буферное запоминающее устройство. На втором этапе выполняется перепись всех кодов из буферного запоминающего устройства в страницу Ная11КОМ. Страница у микроконтроллеров типа ш163 и ш103 имеет емкость 128 и 256 байтов соответственно. При программировании цо способу 1ХЯР в микроконтроллере могут выполняться следующие операции: 1) разрешение 1Л'ЯР (Ргораттгпд ЕпаЫе); 2) стирание записи (Оггр Егаяе); 3) запись байта в г1аз!ЖОМ (Игге Ргодгат Мепгогу) 4) запись байта в буферные ЗУ (Аоаг~ Лай Риде); 5) перепись из буферного ЗУ в Г1айКОМ (Игге ЛаяЬ Раде); 6) чтение байта из Г1ав11КОМ (Яеас) Ргодгат Методу); 7) запись байта в ЕЕРКОМ ('Д'ггге ЕЕРКОМ); 8) чтение байта из ЕЕРКОМ (аеас~ ЕЕРКОМ): 9) запись битов зашиты (Итге Аосй Вгй); 10) чтение битов защиты (Леала Еосй Вгй); 11) запись установочных битов (Итге Ризе ВгЬ); 12) чтение установочных битов (Леала( Егере Вгь); 13) чтение сигнатурного байта (Яеаг1 5гдпагиге Вуге); 14) чтение калибровочного байта (йеас1 Са1гЬтаггоп Вуге).
Операции №№ 10 и 12 у микроконтроллеров некоторых типов объединены в одну операцию. При выполнении операции "Запись байта в ЕЕРКОМ" автоматически перед записью выполняется стирание соответствующей ячейки ЕЕРКОМ. Операции №№ 1, 2, 6, 7, 8, 9, 13 выполняются в микроконтроллерах всех типов. Возможность выполнения других операций у микроконтроллеров разных тиггов отмечена знаком "+" в табл. 4.2. 7аблица 4.2 * — кроме ЗРгегч Работа микроконтроллера Если операция "запись установочных битов" в микроконтроллере не выполняется, а значения этих битов перед программированием (перепрограммированием) отличаются от требуемых, необходимо до установки микроконтроллера в аппаратуре выполнить запись требуемых значений установочных битов с помощью программатора, Для выполнения любой операции в микроконтроллер через вход МО51 вводится последовательность из четырех оайтов, в которую входят один или два байта, определяющие тии операции, и байты, используемые при выполнении операции (адрссный байт, записываемый байт, байт, содержащий значения установочных битов и битов защиты, холостой байт).
При выполнении операции чтения одновременно с вводом одного из байтов выводится считанный байт через выход М150. Байты вводятся и выводятся, начиная со старшего бита. Частота следования импульсов иа входе ЯСК должна быть ие более 1/4 частоты тактового сигнала микроконтроллера. Сгинал иа входе ЯСК при отсутствии импульсов должен иметь низкий уровень. После завершения программирования по способу 1.Ъ'ЯР при размыкаиии ключа К (см. схему на рис. 4.1) микроконтроллер переходит к выполнению записанной программы, начиная с команды, записанной по адресу 30000. В микроконтроллере типа гп103 программирования ио способу 1ХЯР может выполняться при высоком уровне напряжения на входе КЕЯЕТ, если при подаче напряжения питания вывод РЕЯ был соединен с пшной СМЭ, и это соединение сохранялось до конца программирования.
Самопрограммирование микроконтроллера осуществляется в процессе его работы. Самопрограммированис может выполняться в микроконтроллере типа т163. В этом микроконтроллере Р1авЬКОМ разделена на две секции. Одна секция (Лррйсайоп 5есйоп, АРЯ) предназначена для рабочей программы. В другой секции (Воог Еоадег 5есйоп, В15) размещается программирующая программа (Най-КеяйепФ Воог Еоааег), введенная ранее в Иав11КОМ.
Деление Г1авЬКОМ на две секции определяется комбинацией значений установочных битов ВООТЯ'.1 и ВООТЯ'.0 в соответствии с табл. 4.3. Таблица 4.3 90 Главо 4 Если установочный бит ВООТЮТ имеет нулевое значение, прп пуске микроконтроллера первая команда программы выбирается не по адресу $0000, а по адресу, указанному в табл.