Описание и характерные особенности микроконтроллеров ATmega8535

Введение

Любые устройства, в том числе и устройства связи, радиоавтоматики или аудиовизуальной аппаратуры требуют присутствия в своем составе устройства управления (контроллера). Контроллеры требуются практически во всех предметах и устройствах, которые окружают нас.

Одним распространёнными в настоящее время являются микроконтроллеры фирмы Atmel семейства AVR. Несмотря на то, что они появились на рынке в 1996 году, их популярность до сих пор очень высока. С каждым годом они захватывают все новые и новые ниши на рынке. Не последнюю роль в этом играет соотношение показателей цена/быстродействие/энергопотребление, до сих пор являющееся едва ли не лучшим на рынке 8-битных микроконтроллеров.

 

  1. Описание и характерные особенности микроконтроллеров ATmega8535

Как и все микроконтроллеры AVR фирмы «Atmel», микроконтроллеры семейства Mega, а в частности ATmega8535 являются 8-разрядными микроконтроллерами, предназначенными для встраиваемых приложений. Они изготавливаются по малопотребляющей КМОП-технологии, которая в сочетании с усовершенствованной RISC - архитектурой[1] позволяет достичь наилучшего соотношения быстродействие/энергопотребление. Контроллеры описываемого семейства являются наиболее развитыми представителями микроконтроллеров AVR.

К некоторым особенностям микроконтроллера ATmega8535 относятся:

- FLASH-память программ объемом 8 Кбайт с возможностью внутрисистемного перепрограммирования и загрузки через последовательный канал SPI (число циклов стирания/записи не менее 1000);

- оперативная память (статическое ОЗУ) объемом 512 байт;

- энергонезависимая память данных (EEPROM) объем 512 байт с возможностью внутрисистемного перепрограммирования и загрузки через последовательный канал SPI (число циклов стирания/записи не мене 100000);

- возможность защиты от чтения и модификации памяти программ и данных;

- возможность программирования непосредственно в системе через последовательные интерфейсы SPI и JTAG;

- возможность программного снижения частоты тактового генератора;

- 130 команд, большинство из которых выполняются за один машинный цикл;

- 17 внутренних+3 внешних источников прерываний;

- наличие программного стека;

- наличие аппаратного умножителя;

- 32 8-битных регистра общего назначения (далее РОН);

- 32 программируемые линии ввода/вывода;

- диапазон напряжений питания от 4,5 В до 5,5 В;

- производительность до 8 MIPS при частоте 8 МГц и т.д.

 

1.1 Устройства ввода/вывода ATmega8535

 

Микроконтроллеры семейства Mega имеют наиболее богатый набор периферийных устройств (ПУ). При этом в большинстве моделей имеются все ПУ, которые вообще встречаются в составе микроконтроллеров AVR. У микроконтроллера ATmega8535 имеются в наличии [3]:

1) многофункциональные, двунаправленные GPIO порты ввода-вывода с встроенными нагрузочными резисторами. Конфигурация портов ввода/вывода задаётся программно;

2) два 8-разрядных таймера/счетчика (таймеры ТО и Т2);

3) 16-разрядный таймер/счетчик (таймер Т1);

4) 4 канала ШИМ-модулятора разрядностью 8 бит (один из режимов работы 8-разрядных таймеров/счетчиков ТО и Т2);

5) аналоговый компаратор;

6) восьмиканальный 10-разрядный АЦП с дифференциальными входами:

- программируемый коэффициент усиления перед АЦП 1, 10 и 200;

- опорное напряжение 2,56 В.

7) полнодуплексный универсальный асинхронный приемопередатчик UART;

8) последовательный синхронный интерфейс SPI;

9) последовательный двухпроводный интерфейс TWI (аналог интерфейса I2С).

 

1.2 Архитектура микроконтроллера ATmega8535

 

Микроконтроллер ATmega8535 имеет гарвардскую архитектуру (программа и данные находятся в разных адресных пространствах) и систему команд, близкую к идеологии RISC. Процессор имеет 32 8-битных регистра общего назначения, объединённых в регистровый файл. В отличие от «идеального» RISC, регистры не абсолютно ортогональны:

- три «сдвоенных» 16-битных регистра-указателя X (r26:r27), Y (r28:r29) и Z (r30:r31);

- некоторые команды работают только с регистрами r16…r31;

- результат умножения (в тех моделях, в которых есть модуль умножения) всегда помещается в r0:r1.

Структура процессора также представляется как «высокопроизводительная RISC-архитектура с пониженным энергопотреблением» Гарвардского типа. Одним из основных достоинств этого контроллера является быстрое выполнение команд - он выполняет команду за один такт. AVR имеет, вероятно, наиболее разносторонний по своим возможностям процессор из всех микроконтроллеров. Это означает, что при разработке приложений надо потратить немного больше времени на планирование размещения данных в памяти и регистрах, чем для других микроконтроллеров. Но благодаря своей разносторонности AVR очень прост в программировании как для разработчиков прикладных программ на языке ассемблера так и для тех, кто пишет компиляторы языков высокого уровня.

Как и в любом процессоре, особенности являются следствием общих принципов, использованных при разработке этих процессоров. Организация набора регистров микропроцессоров AVR, которого представлена в графическом виде на рисунок 1. Такая организация обеспечивает высокую эффективность процессора при обработке данных.

 

 

Рисунок 1 – Приоритеты регистров в архитектуре процессоров AVR

 

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

Всё множество команд микроконтроллера можно разбить на несколько групп: - команды логических операций; - команды арифметических операций и команды сдвига;

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

Синтаксис: MOV Rd, Rr 0 < d < 31, 0 < r < 31.  

Арифметические команды

Синтаксис: ADD Rd, Rr 0 < d < 31, 0 < r < 31.  

Команды умножения

  Синтаксис: MUL Rd, Rr 0 < d < 31,0 < r < 31

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

Синтаксис: TSR Rd где 0 < d < 31  

Логические команды

Синтаксис: AND Rd, Rr где 0 < d < 31, 0 < r < 31  

Команда ANDI

где 0 < d < 31, 0 < K < 255   Команда осуществляет операцию логического «И» (см. таблицу 1) для содержимого регистра и непосредственного значения…

Команды сдвигов и операций с битами

Синтаксис: CLR Rd где 16 < d < 31  

Команды безусловного перехода

Команда RJMP Синтаксис: RJMP n где -2048 < n < 2048 (-2K < n < 2K)

Команды обращения к процедурам

Команда RCALL Синтаксис: RCALL n где -2048 < n < 2048 (-2K < n < 2K)

Команды условного перехода

Команда CPSE Синтаксис: CPSE Rd, Rr где 0 < d < 31, 0 < r < 31

Команда BRIE

где -64 < n < 63   Команда относительного перехода через n+1 команду, в случае, если установлен (равен единице) флаг глобального…

Окно просмотра содержимого памяти

Рисунок 12 Окно просмотра содержимого памяти  

Запуск эмулятора

– Run, запуск программы в реальном времени, результат будет виден только после остановки программы; – Break, останов программы, после просмотра исполнение программы можно… – Reset, сброс программы установка счетчика команд на начало программы;

Регистры, данные и команды пересылки данных

 

Цель работы

 

Изучение регистров общего назначения (РОН) и команд пересылки данных.

 

Постановка задачи

1. Занести число из столбца «Число 1» таблицы 7 и строки, соответствующей заданному варианту, в регистр R24; 2. Занести число из столбца «Число 2» таблицы 7 и строки, соответствующей… 3. Занести число из столбца «Число 3» таблицы 7 и строки, соответствующей заданному варианту, в регистровую пару…

Лабораторная работа №2. Арифметические команды

 

Цель работы

Изучение арифметических команд и получение навыка работы с ними.

 

Постановка задачи

a = ; b = ; c = N;

Лабораторная работа №3. Логические команды и команды манипулирования битами

 

Цель работы

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

 

Постановка задачи

a = N+100; b = ; c = N+60;