Скачать 238.36 Kb.
|
Практическое задание №1 Вариант 1 Написать на AVR-ассемблере и отладить в AVR Studio программу, реализующую преобразование N-байтного двоично-десятичного числа, в двоичное число. Байты исходного числа последовательно считываются с порта A. Байты результата выводятся в порт B. Вариант 2 Произвести сложение двух беззнаковых двоично-десятичных чисел. Байты чисел последовательно вводятся с портов A и B. Байты результата выводятся в порт С. Вариант 3 Получить результат сложения двух беззнаковых N-байтных чисел. Байты чисел последовательно вводятся с портов A и B. Байты результата выводятся в порт С. Краткие теоретические сведения AVR представляет собой 8-разрядный RISC (Redused Instruction-Set Computing) микроконтроллер, имеющий быстрое процессорное ядро, Flash-память программ ROM, память данных SRAM, порты ввода/вывода и интерфейсные схемы. Гарвардская архитектура AVR реализует полное логическое и физическое разделение не только адресных пространств, но и информационных шин для обращения к ROM и SRAM. Такое построение уже ближе к структуре цифровых сигнальных процессоров и обеспечивает существенное повышение производительности. Использование одноуровневого конвейера в AVR также заметно сократило цикл "выборка - исполнение" команды. Например, у стандартных микроконтроллеров семейства MCS-51 короткая команда выполняется за 12 тактов генератора (1 машинный цикл), в течение которого процессор последовательно считывает код операции и исполняет ее. В микроконтроллерах AVR короткая команда в общем потоке тоже выполняется за один машинный цикл, но он составляет всего один период тактовой частоты. Отличительной чертой архитектуры AVR является регистровый файл быстрого доступа, содержащий 32 байтовых регистров общего назначения. Шесть регистров файла могут использоваться как три 16-разрядных указателя адреса при косвенной адресации данных (X, Y и Z Pointers), что существенно повышает скорость пересылки данных при работе прикладной программы. Flash-память программ AVR может быть загружена как с помощью обычного программатора, так и с помощью SPI (Serial Peripheral Interface) –интерфейса (последовательный интерфейс для программирования периферийных устройств). Последние версии кристаллов "mega" выпуска 2001-2002 года имеют возможность самопрограммирования (функция SPM). Все AVR имеют также блок энергонезависимой памяти данных EEPROM, доступный программе микроконтроллера непосредственно в ходе ее выполнения. EEPROM обычно используется для хранения промежуточных данных, констант, таблиц перекодировок, калибровочных коэффициентов и т.п. Эта память может быть загружена извне как через SPI интерфейс, так и с помощью обычного программатора. Два программируемых бита секретности позволяют защитить ROM и энергонезависимую память данных EEPROM от несанкционированного считывания. Внутренняя оперативная память SRAM имеется у AVR семейств "classic" и "mega", а также у одного представителя "tiny" - ATtiny26/L. Для некоторых микроконтроллеров возможна организация подключения внешней памяти данных объемом до 64К. Внутренний тактовый генератор AVR может запускаться от внешнего генератора или кварцевого резонатора, а также от внутренней или внешней RC-цепочки (рис. 1). Все AVR полностью статические, их минимальная рабочая частота ничем не ограничена (вплоть до пошагового режима). Микроконтроллеры ATmega64/103/128 также имеют интересную архитектурную особенность, позволяющую значительно снизить энергопотребление кристалла в целом, когда в процессе работы целесообразно понизить основную тактовую частоту микросхемы. Специальный предделитель на кристалле позволяет делить основную частоту на целое число в диапазоне от 2 до 129. Включение/выключение данной функции осуществляется программно. Рис. 1 Подключение внешней RC-цепочки Микроконтроллеры AVR имеют от 1 до 4 таймеров/счетчиков общего назначения с разрядностью 8 или 16 бит. Модули таймеров служат для приема информации о времени наступления тех или иных событий от внешних датчиков событий, а также для формирования управляющих воздействий во времени. Общие черты всех таймеров/счетчиков следующие:
Сторожевой таймер у AVR имеет свой собственный RC-генератор с частотой 1 МГц, которая является приближенной и зависит от величины напряжения питания микроконтроллера и от температуры. Сторожевой таймер снабжен отдельным программируемым предделителем входной частоты, что позволяет подстраивать временной интервал переполнения таймера и сброса микроконтроллера. Данный таймер можно программно отключать во время работы микросхемы, как в активном режиме, так и в любом из режимов пониженного энергопотребления. В последнем случае это приводит к значительному снижению потребляемого тока. Система реального времени (RTC) реализована во всех микроконтроллерах "mega" и в двух кристаллах "classic" - AT90(L)S8535. Таймер/счетчик RTC имеет отдельный предделитель, который может быть программным способом подключен или к источнику основной тактовой частоты, или к дополнительному асинхронному источнику опорной частоты (кварцевый резонатор или внешний синхросигнал). Для этой цели зарезервированы два вывода микросхемы. Внутренний осциллятор, нагруженный на счетный вход таймера/счетчика RTC, оптимизирован для работы с внешним "часовым" кварцевым резонатором 32,768 кГц. Порты ввода/вывода AVR имеют число независимых линий "Вход/Выход" от 3 до 53. Выходные драйверы обеспечивают токовую нагрузочную способность 20 мА на линию порта (втекающий ток) при максимальном значении 40 мА, что позволяет непосредственно подключать к микроконтроллеру светодиоды и биполярные транзисторы. Архитектура построения портов ввода/вывода AVR с тремя битами контроля/управления (вместо двух, как это сделано у большинства 8-разрядных микроконтроллеров) позволяет разработчику полностью контролировать процесс ввода/вывода, устраняет необходимость иметь копию содержимого порта в памяти для безопасности и повышает скорость работы микроконтроллера при работе с внешними устройствами. Особую значимость приобретает данная возможность AVR при реализации систем, работающих в условиях внешних электрических помех. Аналоговый компаратор входит в состав большинства AVR. Он имеет отдельный вектор прерывания в общей системе прерываний микроконтроллера. Тип перепада, вызывающий запрос на прерывание при срабатывании компаратора, может быть запрограммирован как фронт, срез или переключение. Важной аппаратной особенностью является то, что логический выход компаратора может быть программным образом подключен ко входу одного из 16-разрядных таймеров/счетчиков, работающего в режиме захвата. Это дает возможность измерять длительности аналоговых сигналов, а также реализовывать АЦП двухтактного интегрирования. Аналого-цифровой преобразователь построен по схеме АЦП последовательных приближений с устройством выборки/хранения. Число независимых каналов преобразования определяется типом микроконтроллера, разрядность АЦП составляет 10 бит. Время преобразования выбирается программно с помощью установки коэффициента делителя частоты, входящего в состав блока АЦП. Важной особенностью аналого-цифрового преобразователя является функция подавления шума при преобразовании, когда на точность не оказывают влияние помехи, возникающие при работе процессорного ядра. AVR - микроконтроллеры могут быть переведены программным путем в один из шести режимов пониженного энергопотребления. Для разных семейств AVR и разных микроконтроллеров в пределах каждого семейства изменяются количество и реализованное сочетание доступных режимов пониженного энергопотребления. Система команд AVR весьма развита и насчитывает до 133 различных инструкций. Почти все команды имеют фиксированную длину в одно слово (16 бит), что позволяет в большинстве случаев объединять в одной команде и код операции, и операнд(ы). В последних версиях кристаллов "mega" AVR реализована функция аппаратного умножения. По разнообразию и количеству инструкций AVR больше похожи на CISC (Complex Instruction Set Chip - процессор с полным набором команд, выполняющий до 300 машинных инструкций), чем на RISC процессоры. AVR функционируют в широком диапазоне питающих напряжений от 1,8 до 6,0 Вольт. Температурные диапазоны работы - коммерческий и индустриальный. Программные и аппаратные средства поддержки для AVR и включают в себя компиляторы, внутрисхемные эмуляторы, отладчики, программаторы и простейшие отладочные платы. ATmega128 – 8 битный КМОП микроконтроллер, построенный по расширенной RISC архитектуре. Благодаря выполнению инструкции за один такт производительность ATmega128 достигает 1 MIPS (миллион инструкций в секунду) на 1 МГц, что позволяет разработчику, оптимизировать потребление энергии за счет вариации скорости обработки. Возможности микроконтроллера: – разрядность – 8 бит; – архитектура – расширенная RISC: – 133 инструкции – большинство выполняется за один такт; – 32 x 8 регистров общего назначения, соединенных к АЛУ + регистры управления периферии; – полностью статичный процессор; – производительность 16 MIPS на частоте 16 МГц; – аппаратный 2-тактовый перемножитель; – энергонезависимая память программ и данных: – 128 кбайт Flash памяти, программируемой в системе; – 10 тысяч циклов записи/стирания; – дополнительная область для загрузочного кода с битом защиты; – 4 кбайт EEPROM (Electrically Erasable Programmable Read-Only Memory); – 100 тысяч циклов записи/стирания; – 4 кбайт встроенного ОЗУ; – до 64 кбайт внешнего адресуемого пространства памяти; – программируемые биты для защиты программного кода; – интерфейс SPI (Serial Peripheral Interface) для внутрисистемного программирования; – интерфейс JTAG согласно IEEE std. 1149.1: – граничное сканирование по стандарту JTAG; – обширная поддержка внутрисхемной отладки; – программирование Flash, EEPROM, Fuses и битов защиты через интерфейс JTAG; – периферийные устройства: – два 8-битных таймеров/счетчиков с отдельными предделителями и режимами сравнения; – два расширенных 16-битных таймеров/счетчиков с отдельными предделителями и режимами сравнения и захвата; – счетчик реального времени с отдельным кварцевым резонатором; – два 8-битных ШИМ каналов; – 6 ШИМ каналов с программируемым разрешением от 2 до 16 бит; – 8-канальный 10ти-битный АЦП (8 независимых каналов, 7 дифференциальных каналов, 2 дифференциальных канала с программируемым усилением 1x, 10x или 200x; – байт-ориентированный двухпроводный последовательный интерфейс; – два последовательный интерфейса USART (Universal synchronous/asynchronous receiver transmitter); – последовательный интерфейс SPI (Serial Peripheral Interface); – программируемый сторожевой таймер с встроенным генератором; – встроенный аналоговый компаратор – дополнительные особенности: – схема сброса по включению питания и детектор правильного напряжения питания; – встроенный калибруемый RC генератор; – поддержка внешних и внутренних прерываний; – 6 режимов пониженного энергопотребления, в том числе режим отключения ядра МК при работе АЦП; – программно выбираемая тактовая частота; – глобальное отключения подтягивающих резисторов Pull-up; – корпус и выводы: – 53 программируемые линии ввода-вывода; – корпус TQFP с 64 выводами для поверхностного монтажа; – напряжение питания 4.5–5.5 В; – отдельный вход напряжения питания АЦП; – тактовая частота 0–16 МГц; Назначение выводов микроконтроллера VCC Напряжение питания цифровой части GND Общий провод Port A(PA7..PA0) Порт A – 8-разрядный двунаправленный порт ввода-вывода с внутренними подтягивающими резисторами, управляемыми отдельно для каждой линии. Имеет три состояния. Port B(PB7..PB0) Порт В – 8-разрядный двунаправленный порт ввода-вывода с внутренними подтягивающими резисторами, управляемыми отдельно для каждой линии. Имеет три состояния. Port C(PC7..PC0) Порт С – 8-разрядный двунаправленный порт ввода-вывода с внутренними подтягивающими резисторами, управляемыми отдельно для каждой линии. Имеет три состояния. Port D(PD7..PD0) Порт D – 8-разрядный двунаправленный порт ввода-вывода с внутренними подтягивающими резисторами, управляемыми отдельно для каждой линии. Имеет три состояния. Port E(PE7..PE0) Порт В – 8-разрядный двунаправленный порт ввода-вывода с внутренними подтягивающими резисторами, управляемыми отдельно для каждой линии. Имеет три состояния. Port F(PF7..PF0) Порт F обеспечивает аналоговые входы АЦП. Порт F также может работать как 8-разрядный двунаправленный порт ввода-вывода. Порт имеет подтягивающие резисторы, управляемые отдельно для каждой линии. Имеет три состояния. При активизации интерфейса JTAG, подтягивающие резисторы для линий PF7 (TDI), PF5 (TMS) и PF4 (TCK) будут подключены даже в состоянии сброса. Port G(PG4..PG0) Порт G – 5-разрядный двунаправленный порт ввода-вывода с внутренними подтягивающими резисторами, управляемых отдельно для каждой линии. Имеет три состояния. RESET Вход сигнала сброса. XTAL1 Вход усилителя генератора тактовых импульсов. Вход тактирования. XTAL2 Выход усилителя генератора тактовых импульсов. AVCC Напряжение питания порта F и АЦП. Вывод должен быть подключен к VCC, даже если не используется АЦП. При использовании АЦП вывод подключается к VCC через фильтр низких частот. AREF Вывод для подключения источника опорного напряжения для АЦП. PEN Вывод активизации режима последовательного программирования через SPI. Архитектура микроконтроллера Ядро микроконтроллера объединяет в себе большой набор инструкций и 32 рабочих регистра общего назначения. Эти регистры непосредственно соединены с арифметико-логическим устройством (АЛУ), что позволяет в одной инструкции, выполняемой за один такт, использовать два независимых регистра. Такая архитектура более эффективная и производительная – в десять раз быстрее чем у обычных CISC микроконтроллеров. ATmega128 обеспечивает следующие средства: 128К встроенной программируемой Flash-памяти с возможностью чтения во время записи; 4К EEPROM; 4K SRAM; 53 линии ввода/вывода для общих целей; 32 рабочих регистра общего назначения; таймер реального времени; четыре настраиваемых таймера/счетчика с режимом сравнения и «переполнение содержимого»; 2 интерфейса USART; двухпроводной последовательный интерфейс; 8-ми канальный 10-ти битный АЦП с задаваемым диапазоном входных сигналов с программируемым усилением; программируемый сторожевой таймер с внутренним заданием тактовой частоты; интерфейс SPI; интерфейс JTAG IEEE стандарта версии 1149.1; а также шесть программно выбираемых режимов энергосбережения. Режим Idle останавливает процессор, позволяя в то же время SRAM, таймерам/счетчикам, SPI порту и системе прерываний продолжать функционировать. Режим Power-down сохраняет содержимое регистров, но останавливает генератор тактовой частоты, деактивирует все остальные функции микросхемы до появления запроса на прерывание или до аппаратного сброса микросхемы. В режиме Power-save асинхронный таймер/счетчик продолжает работать, позволяя пользователю использовать значение таймера, в то время как вся остальная часть устройства «спит». В режиме уменьшения шумов АЦП центральный процессор, все блоки ввода-вывода и другая периферия кроме асинхронного таймера и АЦП останавливаются, чтобы минимизировать шум переключения во время преобразования в AЦП. В режиме Standby генератор тактовой частоты работает, в то время как вся остальная часть устройства «спит». Это позволяет совместить быстрый запуск с низкий потреблением энергии. В режиме Extended Standby продолжает работать как основной генератор тактовой частоты, так и асинхронный таймер/счетчик. МК изготовлен с использованием высокоплотной технологии энергонезависимой памяти фирмы Atmel. Встроенная память Flash программируется внутрисхемно через последовательный интерфейс SPI. Можно организовывать начальный загрузчик, который, располагаясь в начальной области Flash, позволяет через любой интерфейс загрузить прикладную программу в прикладную память Flash. ПО в загрузчике продолжает работать во время обновления прикладного ПО, производя чтение во время записи. Рис. 3.2. Структура микроконтроллера ATmega128 AVR использует Гарвардскую архитектуру с отдельными шинами кода и данных. Инструкции в памяти программы выполняются в единственном конвейере. В то время как одна инструкция выполняется, происходит выборка следующей инструкции. Это позволяет инструкциям выполняться в каждом такте. Регистровый файл быстрого доступа содержит 32 8-битных регистра общего назначения с временем доступа в 1 такт. Шесть из 32 регистров могут использоваться как три косвенных 16-битных адресных регистра для адресации пространства данных, предоставляя возможность эффективного вычисления адреса. Один из этих указателей также может использоваться как указатель в таблицах поиска в памяти программ Flash. Эти добавочные функциональные регистры получили названия X, Y и Z. АЛУ поддерживает арифметические и логические действия между регистрами или между константой и регистром. После арифметического действия, регистр статуса обновляется, отражая информацию о результате. Рис. 3.3. Упрощенная структурная схема микроконтроллера ATmega128 Процесс выполнения программы поддерживает условные и безусловные переходы и вызовы, способные непосредственно обращаться ко всему адресному пространству. Большинство инструкций имеет 16-битный формат слова. Каждый адрес памяти программы содержит 16- или 32-битную инструкцию. Адресное пространство Flash памяти разделено на две секции, секцию загрузчика и секцию прикладной программы. Обе секции содержат выделенные биты запрета для защиты от записи и от записи-чтения. SPM инструкция, которая пишет в секцию прикладной памяти Flash должна постоянно находиться в секции загрузчика. Во время обработки прерываний и вызовов подпрограмм, адрес возврата сохраняется в стеке. Стек размещен в общем пространстве ОЗУ, а следовательно размер стека ограничен только размером памяти данных. Все пользовательские программы должны инициализировать стек в процедуре сброса (перед исполнением подпрограммы или обработкой прерывания). Указатель стека SP доступен для чтения-записи в пространстве ввода-вывода. К данным в ОЗУ можно обратиться посредством пяти различных режимов адресации. Модуль прерывания имеет свой управляющий регистр в пространстве ввода-вывода с дополнительным битом активизации глобального прерывания в статусном регистре. Все прерывания имеют отдельные вектора в таблице векторов прерываний. Прерывания имеют приоритет в соответствии с положением их вектора. Чем ниже адрес вектора прерывания, тем выше приоритет. |
Программирование микроконтроллера avr. Первые шаги Данные статьи посвящены программированию микроконтроллеров avr фирмы Atmel на языках с и С++. Avr – это, пожалуй, самое распространенное... |
Avr микроконтроллеры: очередной этап на пути развития Кривченко И.... Для тех читателей, которые, возможно, еще не слышали про avr или просто пока присматриваются к этой микроконтроллерной платформе,... |
||
Algorithm Builder fo avr, Начинаем Графический ассемблер Только он позволяет максимально использовать ресурсы кристалла. Однако работать на ассемблере не слишком удобно. Существенным барьером... |
10 практических устройств на avr (А. В. Кравченко, 2008) |
||
Ю. Ревич «Практическое программирование микроконтроллеров atmel avr на языке ассемблера» |
Avr isp Гц, 100Гц, 48 кГц, 125кГц, 250кГц, 500кГц, 1MHz, 2MHz, 4MHz и 8МГц частоты sck |
||
Здесь и далее, если не указано иное, под словом ассемблер подразумевается... Здесь и далее, если не указано иное, под словом ассемблер подразумевается ассемблер для avr – архитектуры, используемой в контроллерах... |
Инструкция по перепрошивке видеорегистратора Ritmix avr-777 Подготовка Подготовьте sd-карту на 4Гб. На карте памяти должно быть хотя бы 100Мб свободной памяти |
||
Лабораторная работа №4 по дисциплине «Системы ввода/вывода и периферийные устройства» Разработать и написать драйвер клавиатуры для учебно-лабораторного стенда sdk написать тестовую программу для разработанного драйвера,... |
Руководство пользователя ■ Оглавление Важные инструкции по безопасности... Индикатор buck avr (voltage reduction) «Автоматическая регулировка на понижение» (желтый светодиод) 6 |
||
Программатор Программатор willem pcb 0E, далее программатор, является функционально-законченным полуавтоматическим устройством и предназначенный... |
Инструкция по эксплуатации 1998 зао «л-кард» На модуле установлены 4 микросхемы ad7714 (24-разрядный сигма-дельта ацп фирмы Analog Devices) и 8-ми битный risc процессор avr фирмы... |
||
Fuse-биты Все мк at90Sxxxx семейства avr classic, имеют стандартное подключение программатора через isp. Существует два варианта этой схемы:... |
Описание кнопок Пульта ду для видеорегистратора avr -815 Кнопка приближения оптического зума (режим фотосъемки). B) Кнопка регулировки экспозиции (режим видеосъемки). C) Кнопка перемещения... |
||
Трансляция, компиляция и интерпретация транслятор Транслятор – это программа или техническое средство, выполняющее преобразование программы, представленной на одном из языков программирования,... |
Курсовая работа Написать программу, которая формирует базу «Телефонный справочник», содержащую следующие сведения: фио, адрес, телефон. Просмотр... |
Поиск |