Гребнев В.В. - Микроконтроллеры семейства AVR фирмы Atmel (1044208), страница 3
Текст из файла (страница 3)
В генераторах с КС-цепочкой тактовая частота определяется параметрами цепочки, но изменяется в значительных пределах при изменении напряжения питания микроконтроллера. В микроконтроллерах типа 2343 и 1200 внутренний КС-генератор (ИС) используется при нулевом значении установочного бита ВСЕХ. В микроконтроллерах типа г11, г12, г28 и т163 выбор генератора для работы определяется комбинацией значений установочных битов СКЯЕ1..
У микроконтроллеров типа г11 таких битов три (СКЯЕ1.2 — 0), у микроконтроллеров остальных типов — четыре (СКЯЕ13 — 0). В табл. 1.3 приведены числа, двоичные коды которых являются комбинацией значений установочных битов СКВЕР. при выборе типа генератора. Биту СКЯЕ1 0 соответствует младший разряд двоичного кода.
Табли ца 1.3 В микроконтроллерах, имеющих внутренний генератор с внешней КС-цепочкой (ЕКС), резистор (3 — 100 кОм) подключается между выводом ХТЛ1 1 и шиной ЧСС, а конденсатор (не менее 20 пФ) — между выводом ХТАЕ1 и шиной ОХИ. В микроконтроллерах типа г12, г15, 128 и т163 при использовании внутреннего КС-генератора тактовая частота может изменяться программными средствами путем изменения кода, записываемого в регистр ОЯССА1.
Прп записи кода $00 тактовая частота имеет наименьшее значение, при записи кода 3Гà — наибольшее значение. В микроконтроллере типа гп103 программнымп средствами может изменяться тактовая частота генератора с кварцевым резонатором. Значение тактовой частоты Гск определяется по формуле Р ~ск = 129 — (ХИЧ.6 — О) ' где Х~ — рабочая частота кварцевого резонатора; (ХР1Ч6 — 0) — число, двоичный код которого записан в младших семи разрядах регистра ХР1Ъ' (Лй ЗЗС). Изменение тактовой частоты возможно при Х01Ъ',7 1.
1.3. Процессор Процессор (СР(1) формирует адрес очередной команды, выбирает команду из памяти и организует ее выполнение. Код команды имеет формат "слово" (16 бит) или "два слова". Система команд микроконтроллеров семейства АЧК рассматривается в главе 2. В состав процессора кроме счетчика команд (РС), арифметикологического устройства (АШ) и блока регистров общего назначения (СРй),изображенных на структурной схеме рпс.
1.1, входят: ° регистр состояния микроконтроллера ЯКЕС: ° регистр-указатель стека ЯР пли 5РЕ н БРН и другие элементы, далее не рассматриваемые. В счетчике команд адрес очередной команды формируется путем добавления 1 к числу, код которого хранится в счетчике команд. При пуске и перезапуске микроконтроллера в счетчик команд заносится код числа 0 и первая команда выбирается из НайКОМ по адресу О. В арифметико-логическом устройстве (А1Х) выполняются арифметические и логические операции. Операнды поступают из регистров общего назначения (СРК).
При выполнении одноместных операций результат записывается в регистр, из которого поступил операнд. При выполнении двухместных операций результат записывастся в регистр, из которого поступил первый операнд. Блок регистров общего назначения (СРК) содержит 32 восьмиразрядных регистра, которым присвоены имена КО, К1, ..., 231. В некоторых операциях в АШ могут участвовать лишь регистры со старшими номерами (от 216 до 231). Регистры с именами от 224 до 231 могут образовывать пары, используемые для хранения слов, при этом регистр труктура микроконтроллера . четным номером хранит младший байт, а регистр с нечетным номером — старший байт.
Паре регистров К26, К27 присвоено имя Х, паре регистров К28, К29 — имя У, паре регистров КЗО, К31 — имя Х. Эти пары регистров :.~спользуются для хранения адресов при обраьцениях к памяти с косвенной адресацией. Регистр состояния микроконтроллера ЯКЕС (№ $3Г) содержит восемь зазрядов (ЯКЕС.7, ЯКЕС.6, ..., ЯКЕС.О). Разряд ЯКЕС, 7 (1) используется для разрешения/запрещения прерываний. При 1 - 0 все прерывания запрещены. При 1 - 1 любое прерывание может быть разрешено. Разряд ЯКЕ( .6 (Т) используется для хранения бита при выполнении операций с битами. Остальные разряды регистра ЯКЕС используются лля хранения признаков результатов арифметических и логических операций, выполняемых в АШ. Назначение этих разрядов рассматривается прп оппсашш системы команд микроконтроллера. Регистр-указатель стека ЯР(№ $Ю) хранит и формирует адрес при обращении к стеку типа 11ГО.
В микроконтроллерах типа г11, 112, т15, 1200 и 128 в качестве стека используется специальное запоминающее устройство (аппаратный стек). Этот стек используется только для хранения адресов возврата при прерываниях и обращениях к подпрограммам. В системе команд отсутствуют команды обращения к стеку. В микроконтроллерах других типов в качестве стека используется выделяемая пользователем область в ЯКАМ. В системе команд есть команды для обращещпо к стеку. Запись байтов в стек выполняется в порядке уменыпенпя адресов в ЯКАМ. Прп пуске и перезапуске микроконтроллера в регистр-указатель стека заносится код числа О. Для нормальной работы стека в регистр-указатель необходимо занести другой начальный адрес.
В микроконтроллерах с большой емкостью ЯКАМ регистр-указатель состоит пз двух регистров — ЯР1. и ЯРН (№№ ЗЗР и 33Е). 1.4. Запоминающее устройство НазЬВОМ Постоянное запоминающее устройство НайКОМ предназначено для хранения кодов команд программы и констант. Ячейка памяти содержит 16 разрядов. В цей могут храниться код команды формата "слово", половина кода команды формата "два слова" илп коды двух констант. Емкость Наз11КОМ (в числе байтов!) у микроконтроллеров разных типов указана в табл. 1.1. в колонке Нав1ь При чтеппн кодов команд адрес в НайКОМ поступает пз счетчика команд.
При чтении констант адрес поступает из пары 2 регистров общего назначения. 16 Запись кодов в НазЬКОМ выполняется в процессе программирования побайтно. В микроконтроллерах с большим числом выводов (20 и более) байт может вводиться параллельно пли последовательно. В микроконтроллерах с малым числом выводов (8) байт вводится последовательно. Программирование может выполняться с использованием дополнительного источника напряжения +12 В или без использования дополнительного источника. Последовательное программирование без использования дополнительного источника напряжения производится с использованием трех выводов микроконтроллера и может выполняться после установки микроконтроллера в аппаратуре, где ему предстоит работать, (Вожп!оайпф. Типы микроконтроллеров, в которых этот способ программирования реализуется, отмечены знаком "+" в табл.
1.1 в колонке 1ЯР (1п-5уйет Ргоратттф. В микроконтроллере типа гп163 имеется возможность вводить и записывать в НазЬКОМ коды в процессе работы микроконтроллера. Эта процедура (5е1~-ргоуатлпщ) выполняется под управлением специальной программы (Воог ЛоаИег), которая составляется программистом и записывается в специальную секцию НазЛКОМ. При выполнении этой программы исгюльзуется регистр ЯРМСК (Хв $37). Команда, с использованием которой выполняется запись кодов в НазЬКОМ в процессе работы микроконтроллера, рассмотрена в п. 2.8. 1.5. Запоминающее устройство ВЯАМ Оперативное запоминающее устройство статического типа ЯКАМ предназначено для хранения данных, получаемых в процессе работы микроконтроллера. При выключении напряжения питания микроконтроллера данные в ЯКАМ теряются.
Ячейка памяти содержит 8 разрядов. Емкость ЯКАМ (в числе байтов) у микроконтроллеров разных типов указана в табл. 1.1 в колонке ЯКАМ. Адрес байта при обращении к ЯКАМ может быть указан в коде команды с обращением к ЯКАМ (прямая адресация) или предварительно записан в пару регистров Х, У или Х (косвенная адресация). Обращение к ЯКАМ может выполняться с использованием адреса, хранящегося в регистре-указателе стека.
Байт для записи в ЯКАМ поступает из регистра общего назначения. Байт, считанный из ЯКАМ, поступает в регистр общего назначения. В адресное пространство ЯКАМ кроме адресов, по которым выполняется обращение к ячейкам памяти ЯКАМ, включены 32 адреса для обращения к регистрам общего назначения (адреса от $00 до $1Е) и 64 адреса для обращения к регистрам ввода-вывода (адреса от $20 до $5Е), Структура микроконтроллера 17 Первой ячейке в ЯКАМ соответствует адрес $60. Адрес для обращения к регистру общего назначения по команде обращения к ЯКАМ совпадает с номером регистра (Π— 31 = $00 — $1Г). Адрес для обращения к регистру ввода-вывода по команде обращения к ЯКАМ равен его номеру увеличенному на число 32 ($20).
В микроконтроллерах, допускающих подключение внешнего запоминающего устройства ЕКАМ, адреса для обращения к ячейкам ЕКЛМ включены в адресное пространство ЯКАМ и расположены после старшего адреса ЯКАМ. Типы микроконтроллеров, в которых возможно подключение ЕКЛМ, отмечены знаком "+" в табл. 1.1 в колонке ЕКАМ. На рис.
1.2, в качестве примера, показано распределение адресов в адресном пространстве ЯКЛМ между регистрами общего назначения (СРК), регистрами ввода-вывода (10К), ячейками памяти в ЯКАМ и ячейками памяти в ЕКАМ у микроконтроллера типа 8515. ~попо ~оп~е ~ппгп ~оо~е ~опбп Ф ~пле ~помбо $ЕЕЕЕ Рис, 1.2 Запись в стек выполняется в порядке убывания адресов. В качестве исходного адреса для обращений к стеку, который заносится в регистр- указатель стека в начале программы, целесообразно использовать старший адрес ЯКАМ.