Новые микроконтроллеры AVR от Microchip – преемники Mega
29 декабря 2020
учёт ресурсовавтоматизацияинтернет вещейуниверсальное применениеMicrochipстатьяинтегральные микросхемыMicrochipМикроконтроллеры
Александр Белов (КОМПЭЛ)
В начале года Microchip анонсировал выход новой линейки 8-битных микроконтроллеров AVR, которая придет на смену контроллерам высокой и средний производительности ATmega. На данный момент в линейку входят серии AVR-DA, AVR-DB и AVR-DD. В статье разобраны отличия новой линейки от ее предшественницы, рассмотрены характеристики новых серий и проведено их сравнение между собой.
Семейство 8-битных микроконтроллеров AVR было создано компанией Atmel в 1996 году. Данные МК имеют гарвардскую архитектуру, то есть исполняемый код и данные находятся в разных адресных пространствах, и систему команд, близкую к идеологии RISC.
В 2016 году компания Microchip – американский производитель электроники, — приобрела компанию Atmel и пополнила свое портфолио 8-битных микроконтроллеров, представленное устройствами с ядром PIC, микроконтроллерами с архитектурой AVR.
Исторически микроконтроллеры с архитектурой AVR делились на три линейки:
- ATtiny;
- ATmega;
- ATxmega.
ATtiny – это контроллеры начального уровня с небольшим объемом памяти программ – до 32 кбайт в компактных корпусах (до 32-х выводов).
ATmega – контроллеры средней и высокой производительности с объем памяти до 256 кбайт в корпусах до 100 выводов. Последним пополнением этой линейки стала серия ATmega-0 (ее флагман – ATmega4809), выпущенная в 2018 году. Обновление линейки не планируется, дальнейшим развитием линейки ATmega стала новая линейка AVR, с одноименной архитектурой.
ATxmega – устройства с максимальной производительность, до 384 кбайт памяти программ.
Последней выпущенной серией стала E5, увидевшая свет в 2013 году. Развитие этой линейки остановлено, поскольку нишу производительных контроллеров заняли 32-битные микроконтроллеры на базе ядер группы ARM Cortex-M.В начале 2020 года Microchip анонсировал три серии микроконтроллеров, принадлежащих к новой линейке AVR:
- AVR-DA;
- AVR-DB;
- AVR-DD.
Вместе с названием линейки изменилось и обозначение устройств. Маркировка теперь имеет вид «AVRXXYYZZ», где:
- XX – объем памяти в килобайтах;
- YY – семейство;
- ZZ – количество выводов корпуса.
Серия AVR-DA
Серия AVR-DA состоит из 11 устройств с вариантами выбора объема памяти от 32 до 128 кбайт в корпусах 28…64 вывода. Эта серия была выпущена первой, все ее представители уже доступны для заказа. В таблице 1 указан состав серии и параметры микроконтроллеров.
Таблица 1. Состав и характеристики серии AVR-DA
Наименование | Частота ядра, МГц | Flash, кбайт | SRAM, кбайт | EEPROM, байт | Вы- воды | 12 бит АЦП | 10 бит ЦАП | Компара- торы | PTC | ZCD | USART/SPI/I2C | Таймеры | Корпуса |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AVR128DA28 | 24 | 128 | 16 | 512 | 28 | 1 | 1 | 3 | 1 | 1 | 3/2/1 | 5 | SPDIP, SOIC, SSOP |
AVR128DA32 | 24 | 128 | 16 | 512 | 32 | 1 | 1 | 3 | 1 | 1 | 3/2/2 | 5 | TQFP, VQFN |
AVR128DA48 | 24 | 128 | 16 | 512 | 48 | 1 | 1 | 3 | 1 | 2 | 5/2/2 | 7 | TQFP, VQFN |
AVR128DA64 | 24 | 128 | 16 | 512 | 64 | 1 | 1 | 3 | 1 | 3 | 6/2/2 | 8 | TQFP, VQFN |
AVR64DA28 | 24 | 64 | 8 | 512 | 28 | 1 | 1 | 3 | 1 | 1 | 3/2/1 | 5 | SPDIP, SOIC, SSOP |
AVR64DA32 | 24 | 64 | 8 | 512 | 32 | 1 | 1 | 3 | 1 | 1 | 3/2/2 | 5 | TQFP, VQFN |
AVR64DA48 | 24 | 64 | 8 | 512 | 48 | 1 | 1 | 3 | 1 | 2 | 5/2/2 | 7 | TQFP, VQFN |
AVR64DA64 | 24 | 64 | 8 | 512 | 64 | 1 | 1 | 3 | 1 | 3 | 6/2/2 | 8 | TQFP, VQFN |
AVR32DA28 | 24 | 32 | 4 | 512 | 28 | 1 | 1 | 3 | 1 | 1 | 3/2/1 | 5 | SPDIP, SOIC, SSOP |
AVR32DA32 | 24 | 32 | 4 | 512 | 32 | 1 | 1 | 3 | 1 | 1 | 3/2/2 | 5 | TQFP, VQFN |
AVR32DA48 | 24 | 32 | 512 | 4 | 48 | 1 | 1 | 3 | 1 | 2 | 5/2/2 | 6 | TQFP, VQFN |
Изменения коснулись ядра и его системы питания: ядро может функционировать на увеличенной максимальной частоте 24 МГц во всем диапазоне питающего напряжения 1,8…5,5 В.
Впервые в устройствах AVR появился модуль Zero Cross Detector – детектор пересечения переменным током нулевого уровня. Раньше это была периферия, свойственная только PIC-контроллерам.
АЦП было обновлено: новая версия обеспечивает оцифровку аналогового напряжения с частотой до 130 Гц и разрешением 12-бит с возможностью включения дифференциального режима работы. Аккумулятор был увеличен до 128 семплов. Как и в предыдущей версии, поддерживаются следующие режимы работы:
- единичное преобразование;
- режим непрерывного преобразования;
- режим накопления;
- режим сравнения с порогом;
- режим запуска по событию;
- режим измерения температуры (от встроенного датчика температуры).
В устройствах новой линейки появился модуль ЦАП. Напомним, что контроллеры Mega такового не имели. Преобразователь работает на скорости 140 ksps и имеет разрешение 10 бит.
По сравнению с линейкой ATmega, было увеличено количество следующих модулей периферии:
- количество модулей USART увеличено до шести;
- количество аналоговых компараторов увеличено до трех.
Обратим внимание на наличие специфической периферии – Peripheral Touch Controller, сенсорного контроллера, позволяющего реализовать емкостные сенсорные элементы управления – кнопки, слайдеры, спиннеры и 2D-поверхности. Благодаря библиотеке QTouch Library настройка этого модуля сводится к нескольким кликам мыши.
Структурная схема устройств серии AVR-DA изображена на рисунке 1.
Рис. 1. Блок-схема устройств семейства AVR-DA
Для оценки возможностей новой серии и быстрого прототипирования устройств на ее базе компания Microchip выпустила отладочную плату AVR128DA48 Curiosity Nano Evaluation kit, которая изображена на рисунке 2.
Линейка отладочных плат Curiosity Nano – это самые простые отладочные платы производства Microchip. Платы линейки Curiosity Nano содержат стандартный набор компонентов:
- одну пользовательскую кнопку;
- один пользовательский светодиод;
- встроенный программатор/дебаггер с USB-портом.
Данная плата, в дополнение к стандартному набору компонентов, имеет распаянный часовой кварц.
Рис. 2. Отладочная плата AVR128DA48 Curiosity Nano Evaluation kit
Платы Curiosity Nano могут подключаться в качестве процессорного модуля в базовую плату Curiosity Nano Base, которая содержит три порта расширения microBUS, используемые для подключения модулей расширения Click Boards производства MikroElektronika, и один порт расширения Xplained Pro для подключения одноименных модулей расширения Microchip. Базовая плата изображена на рисунке 3.
Рис. 3. Плата Curiosity Nano Base
Серия AVR-DB
Серия AVR-DB состоит из 11 устройств с объемом памяти 32…128 кбайт в корпусах, имеющих 28…64 вывода. На момент написания статьи эта серия выпущена частично. Для заказа доступны устройства с 128 кбайт Flash-памяти. Состав серии и основные характеристики указаны в таблице 2.
Таблица 2. Состав и характеристики серии AVR-DB
Наименование | Частота ядра, МГц | Flash, кбайт | SRAM, кбайт | EEPROM, байт | Вы- воды | 12 бит АЦП | 10 бит ЦАП | Компа-раторы | Опер. усил-ли | Вы- воды MVIO | ZCD | USART/SPI/I2C | Таймеры | Корпуса |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AVR128DB28 | 24 | 128 | 16 | 512 | 28 | 1 | 1 | 3 | 2 | 8 | 1 | 3/2/1 | 5 | SPDIP, SOIC, SSOP |
AVR128DB32 | 24 | 128 | 16 | 512 | 32 | 1 | 1 | 3 | 2 | 8 | 1 | 3/2/2 | 5 | TQFP, VQFN |
AVR128DB48 | 24 | 128 | 16 | 512 | 48 | 1 | 1 | 3 | 3 | 8 | 2 | 5/2/2 | 7 | TQFP, VQFN |
AVR128DB64 | 24 | 128 | 16 | 512 | 64 | 1 | 1 | 3 | 3 | 8 | 3 | 6/2/2 | 8 | TQFP, VQFN |
AVR64DB28 | 24 | 64 | 8 | 512 | 28 | 1 | 1 | 3 | 2 | 8 | 1 | 3/2/1 | 5 | SPDIP, SOIC, SSOP |
AVR64DB32 | 24 | 64 | 8 | 512 | 32 | 1 | 1 | 3 | 2 | 8 | 1 | 3/2/2 | 5 | TQFP, VQFN |
AVR64DB48 | 24 | 64 | 8 | 512 | 48 | 1 | 1 | 3 | 3 | 8 | 2 | 5/2/2 | 7 | TQFP, VQFN |
AVR64DB64 | 24 | 64 | 8 | 512 | 64 | 1 | 1 | 3 | 3 | 8 | 3 | 6/2/2 | 8 | TQFP, VQFN |
AVR32DB28 | 24 | 32 | 4 | 512 | 28 | 1 | 1 | 3 | 2 | 8 | 1 | 3/2/1 | 5 | SPDIP, SOIC, SSOP |
AVR32DB32 | 24 | 32 | 4 | 512 | 32 | 1 | 1 | 3 | 2 | 8 | 1 | 3/2/2 | 5 | TQFP, VQFN |
AVR32DB48 | 24 | 32 | 4 | 512 | 48 | 1 (18) | 1 (1) | 3 | 3 | 8 | 2 | 5/2/2 | 5 | TQFP, VQFN |
Серия DB очень похожа на уже рассмотренную серию: те же объемы памяти и корпуса, частота ядра и напряжение питания, схожий набор периферии. Однако есть и различия.
В наборе периферии произошла замена – Peripheral Touch Controller серии DA заменили на операционные усилители. Каждый операционный усилитель имеет в петле обратной связи резистивный делитель с настраиваемым соотношением сопротивлений, позволяющий настроить коэффициент усиления без использования внешних элементов. Для повышения коэффициента усиления операционные усилители могут соединяться каскадом.
Следующее отличие от серии DA – поддержка инновационной технологии MVIO, суть которой заключается в том, что Port C получил независимое питание VDDIO2, что позволяет последовательным интерфейсам, выведенным на этот порт, коммуницировать со внешними устройствами, запитанными от напряжения, отличного от питания микроконтроллера. Структурная схема питания изображена на рисунке 4.
Рис. 4. Домены питания в AVR-DB
Модификации подвергся Clock Controller, поддерживающий не только внешний часовой кварц, но и высокочастотные кварцевые резонаторы с частотой до 32 МГц. Обобщенная структурная схема контроллера тактовой частоты изображена на рисунке 5.
Рис. 5. Блок-схема генератора частоты
Для серии ABR-DB доступна отладочная плата AVR128DB48 Curiosity Nano Evaluation kit. На плату добавили кварц 16 МГц и нераспаянный разъем для подключения отдельного питания для Port C. Общий вид платы изображен на рисунке 6.
Рис. 6. Отладочная плата AVR128DB48 Curiosity Nano Evaluation kit
Серия AVR-DD
Данная серия включает в себя 12 устройств с объемами памяти 16…64 кбайт в корпусах с 14….32 выводами. Выпуск серии запланирован на второй квартал 2021 года. Характеристики устройств, входящих в серию, указаны в таблице 3.
Таблица 3. Состав и характеристики серии AVR-DD
Наименование | Частота ядра, МГц | Flash, кбайт | SRAM, кбайт | EEPROM, байт | Вы- воды | 12 бит АЦП | 10 бит ЦАП | Компара- торы | Выводы MVIO | ZCD | USART/SPI/I2C | Таймеры | Корпуса |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AVR64DD14 | 24 | 64 | 8 | 256 | 14 | 1 | 1 | 1 | 8 | 1 | 2/1/1 | 4 | SOIC |
AVR64DD20 | 24 | 64 | 8 | 256 | 20 | 1 | 1 | 1 | 8 | 1 | 2/1/1 | 4 | SOIC, VQFN |
AVR64DD28 | 24 | 64 | 8 | 256 | 28 | 1 | 1 | 1 | 8 | 1 | 2/1/1 | 5 | SPDIP, SOIC, SSOP |
AVR64DD32 | 24 | 64 | 8 | 256 | 32 | 1 | 1 | 1 | 8 | 1 | 2/1/1 | 5 | TQFP, VQFN |
AVR32DD14 | 24 | 32 | 4 | 256 | 14 | 1 | 1 | 1 | 8 | 1 | 2/1/1 | 4 | SOIC |
AVR32DD20 | 24 | 32 | 4 | 256 | 20 | 1 | 1 | 1 | 8 | 1 | 2/1/1 | 4 | SOIC, VQFN |
AVR32DD28 | 24 | 32 | 4 | 256 | 28 | 1 | 1 | 1 | 8 | 1 | 2/1/1 | 5 | SPDIP, SOIC, SSOP |
AVR32DD32 | 24 | 32 | 4 | 256 | 32 | 1 | 1 | 1 | 8 | 1 | 2/1/1 | 5 | TQFP, VQFN |
AVR16DD14 | 24 | 16 | 2 | 256 | 14 | 1 | 1 | 1 | 8 | 1 | 2/1/1 | 4 | SOIC |
AVR16DD20 | 24 | 16 | 2 | 256 | 20 | 1 | 1 | 1 | 8 | 1 | 2/1/1 | 4 | SOIC, VQFN |
AVR16DD28 | 24 | 16 | 2 | 256 | 28 | 1 | 1 | 1 | 8 | 1 | 2/1/1 | 5 | SPDIP, SOIC, SSOP |
AVR16DD32 | 24 | 16 | 2 | 256 | 32 | 1 | 1 | 1 | 8 | 1 | 2/1/1 | 5 | TQFP, VQFN |
Серия AVR-DD занимает нишу более компактных устройств с уменьшенным объемом памяти. В ней набор периферии больше не содержит таких специфических модулей, как Peripheral Touch Controller или операционные усилители. В остальном качественный состав периферии не изменился, но количество модулей было уменьшено:
- один модуль Zero Cross Detector;
- один компаратор;
- шесть каналов системы событий;
- два модуля USART, один SPI и один I2C.
Серию DD c серией DB объединяет поддержка технологии MVIO на Port C и поддержка внешнего кварца высокой частоты.
Сравнение серий DA, DB и DD
Рассмотренные серии поддерживают максимальную частоту ядра 24 МГц во всем диапазоне питающего напряжения 1,8…5,5 В. Таблица 4 позволяет наглядно сравнить характеристики рассмотренных серий.
Таблица 4. Сравнение серий DA, DB и DD
Наименование | AVR-DA | AVR-DB | AVR-DD |
---|---|---|---|
Максимальная частота ядра, МГц | 24 | 24 | 24 |
Flash-память, кбайт | 32… 128 | 32… 128 | 16…64 |
Память SRAM, кбайт | 4…16 | 4…16 | 2…8 |
Память EEPROM, байт | 512 | 512 | 256 |
Выводы | 28…64 | 28…64 | 14…32 |
Выводы I/O | 22…54 | 22…54 | 11…27 |
12 бит АЦП (каналы) | 1 (10…22) | 1 (9…22) | 1 (7…23) |
10 бит ЦАП (выходы) | 1 (1) | 1 (1) | 1 (1) |
Компараторы | 3 | 3 | 1 |
Сенсорный контроллер (PTC) | 1 | – | – |
Операционные усилители | – | 2…3 | – |
Выводы MVIO | – | – | 8 |
Детектор перенесения нуля (ZCD) | 1…3 | 1…3 | 1 |
Система событий, каналы | 8…10 | 8…10 | 6 |
Оконный сторожевой таймер (WWDT) | 1 | 1 | 1 |
Конфигурируемая логика (CCL), LUT | 1(4-6) | 1(4-6) | 1(4) |
USART/SPI/I2C | (3/5/6)/2/(1/2) | (3/5/6)/2/(1/2) | 2/1/1 |
Таймер 16 бит | 4/6/7 | 4/6/7 | 3/4 |
Таймер 12 бит | 1 | 1 | 1 |
Диапазон рабочих температур, °C | I = 85, E = 125 | I = 85, E = 125 | I = 85, E = 125 |
AVR-DA и DB занимают нишу производительных 8-битных контролеров с обширным набором периферии. Основное различие в том, что серия DA имеет Peripheral Touch Controller, а серия DB — операционные усилители.
Серия DD занимает нишу более компактных, но менее производительных устройств с урезанным набором периферии. Серии DB и DD схожи в том, что имеют поддержку технологии MVIO и внешнего кварца высокой частоты.
В новых сериях применены и другие проверенные технологии Microchip, повышающие надежность, гибкость системы и уменьшающие энергопотребление:
- Core Independent Peripherals – независимая от ядра периферия, способная продолжить работу даже при переходе контроллера в энергосберегающий режим и отключении ядра;
- Cyclic Redundancy Check Memory Scan – модуль, позволяющий выявить повреждение кода программы, хранящейся во Flash-памяти;
- Configurable Custom Logic – модуль настраиваемой пользовательской логики, дающий возможность реализовать несложные цифровые устройства, функционирующие без привлечения процессора;
- Event System – система событий, позволяющая модулям периферии взаимодействовать друг с другом без участия процессора, в том числе и в спящем режиме.
Средства разработки
Поддержка новых серий включена в интегрированные среды разработки от Microchip:
- Atmel Studio (сейчас — Microchip Studio) – родная среда разработки для микроконтроллеров AVR. Поддержка новых устройств доступна после установки пакета поддержки устройств (Device Family Pack) AVR-Dx_DFP.
- MPLAB X IDE – изначально среда разработки для микроконтроллеров PIC. В данный момент поддерживаются как PIC-микроконтроллеры, так и AVR, включая последние серии. Плагин MPLAB Code Configurator позволяет графическое конфигурирование устройства и генерацию оптимизированного кода.
- Atmel START – облачная онлайн-среда разработки, которая, как и MPLAB Code Configurator, имеет удобные графические средства для настройки модулей периферии и системы в целом. Отметим, что данная среда не поддерживает PIC-микроконтроллеры.
Применения
Рассмотренные серии относятся к контроллерам широкого спектра применений и могут использоваться в различных отраслях, требующих автоматического управления в реальном времени: в бытовой электронике, медицине, промышленной электронике и устройствах интернета вещей в качестве основного вычислителя или вспомогательного устройства.
Новые серии отмечены знаком Functional Safety Ready, что означает, что они могут применяться в приложениях, критичных к отказам: автомобильной и промышленной электронике. По запросу заказчика предоставляется отчет со статистикой отказа контроллера и руководство по обеспечению требований стандартов безопасности.
Обширная экосистема, включающая в себя средства разработки, отладочные платы, техническую документацию и примеры проектов позволяет сократить время, требуемое на проектирование и вывод на рынок нового устройства.
•••
AVR микроконтроллер и его применение в компьютере
В статье про порты ввода-вывода ПК упоминались такие устройства, как микроконтроллеры AVR. Возможно, многим читателям хотелось бы узнать подробнее, что это такое.
Содержание статьи
- Что такое микроконтроллер
- История семейства
- Особенности семейства
- Архитектура контроллера
- Программы для микроконтроллера
- Заключение
Что такое микроконтроллер
Прежде всего, разберемся с самим понятием «микроконтроллер». Микроконтроллер можно определить как миниатюрный компьютер на базе одного-единственного чипа, включающий, помимо процессора ряд вспомогательных элементов, таких, как ОЗУ, ППЗУ, таймер, и.т.д. Микроконтроллер предназначен для выполнения каких-либо заранее определенных заданий.
Проще всего сравнить микроконтроллер с персональным компьютером. Как и ПК, микроконтроллер имеет процессор, оперативную и постоянную память. Однако, в отличие от ПК, все эти элементы расположены на одном-единственном чипе.
Но означает ли это, что микроконтроллер равноценен персональному компьютеру? Разумеется, нет. ПК создан для того, чтобы выполнять задачи общего назначения. Например, вы можете использовать компьютер, для набора текста, хранения и запуска мультимедиа-файлов, серфинга в Интернет, и.т.д. Микроконтроллеры предназначены для выполнения специальных заданий, например, выключения кондиционера, когда температура в комнате опускается ниже определенного значения, или наоборот, его включения, когда температура повышается.
Существует несколько популярных семейств микроконтроллеров, которые используются для различных целей. Наиболее распространенными из них являются семейства микроконтроллеров 8051, PIC и AVR. И о последнем семействе мы и собираемся вам рассказать подробнее.
История семейства
Семейство микроконтроллеров AVR было создано в 1996 г. корпорацией Atmel, а разработчиками архитектуры микроконтроллеров являются Alf-Egil Bogen и Vegard Wollan. Отсюда и происходит название семейства – от первых букв имен разработчиков – A и V, и первой буквы аббревиатуры RISC – типа архитектуры, на которой базируется архитектура микроконтроллера. Также эту аббревиатуру часто расшифровывают как Advanced Virtual RISC (модернизированный эффективный RISC).
Первым микроконтроллером в серии был AT90S8515, однако первым микроконтроллером, выпущенным на рынок, стал AT90S1200. Это случилось в 1997 г.
На сегодняшний день доступны 3 линейки микроконтроллеров:
- TinyAVR – небольшой объем памяти, небольшие размеры, подходит для самых простых задач.
Внешний вид микроконтроллера TinyAVR
- MegaAVR – наиболее распространенная линейка, имеющая большой объем встроенной памяти (до 256 КБ), множество дополнительных устройств и предназначенная для задач средней и высокой сложности.
Внешний вид микроконтроллера MegaAVR
- XmegaAVR – используется в сложных коммерческих задачах, требующих большого объема памяти и высокой скорости.
Пример микроконтроллера XmegaAVR
Сравнительные характеристики различных линеек:
Название серии | Число контактов | Объем флэш-памяти | Особенность |
TinyAVR | 6-32 | 0,5 – 8 КБ | Небольшой размер |
MegaAVR | 28-100 | 4-256 КБ | Периферийные устройства |
XmegaAVR | 44-100 | 16-384 КБ | Система прерываний, поддержка DMA |
Особенности семейства
Прежде всего, микроконтроллеры этой серии являются быстрыми. Большинство инструкций процессор микроконтроллера выполняет за один цикл. Микроконтроллеры AVR примерно в 4 раза быстрее, чем PIC. Кроме того, они потребляют немного энергии и могут работать в 4 режимах экономии энергии.
Большинство контроллеров AVR являются 8-разрядными, хотя сейчас существует и 32-разрядная разновидность контроллеров AVR32. Кроме того, как уже упоминалось выше, AVR принадлежат к типу RISC-микроконтроллеров. Архитектура RISC (Complex Instruction Set Computers) означает, что набор инструкций, которые может выполнять процессор устройства, является ограниченным, но, в то же время, подобная архитектура дает преимущество в скорости. Противоположностью архитектуры RISC является архитектура CISC (Complex Instruction Set Computers).
32-разрядная разновидность контроллеров AVR32
8-битность контроллера означает, что он способен передавать и принимать 8-битные данные. Доступные регистры ввода/вывода также являются 8-битными.
Архитектура контроллера основана на регистрах. Это означает, что для хранения исходных данных операции и ее результата в контроллере используются регистры.
Процессор контроллера берет данные из двух входных регистров, выполняет логическую операцию и сохраняет результат в выходном регистре. Все это занимает 1 исполняемый цикл.
Архитектура контроллера
Всего контроллер AVR имеет 32 8-битных регистра общего назначения. В течение цикла процессор берет данные из двух регистров и помещает их в арифметико-логическое устройство (АЛУ), которое производит операцию над данными и помещает их в произвольный регистр. АЛУ может выполнять как арифметические, так и логические действия над операндами. Также АЛУ может выполнять и действия с одним операндом (регистром). При этом контроллер не имеет регистра-аккумулятора, в отличие от контроллеров семейства 8051 – для операций могут использоваться любые регистры, и результат операции также может быть помещен в любой регистр.
Контроллер соответствует Гарвардской вычислительной архитектуре, согласно которой компьютер имеет отдельную память для программ и данных. Поэтому в то время, пока выполняется одна инструкция, происходит предварительное извлечение из памяти следующей инструкции.
Котроллер способен выполнять одну инструкцию за цикл. Отсюда следует, что если тактовая частота контроллера составляет 1 МГц, то его производительность составит 1 млн. оп./c. Чем выше тактовая частота контроллера, тем выше будет его скорость. Однако при выборе тактовой частоты контроллера следует соблюдать разумный компромисс между его скоростью и энергопотреблением.
Помимо флэш-памяти и процессора контроллер имеет такие устройства, как порты ввода-вывода, аналого-цифровой преобразователь, таймеры, коммуникационные интерфейсы – I2C, SPI и последовательный порт UART. Все эти устройства могут контролироваться программно.
Типовая архитектура микроконтроллеров AVR
Программы для микроконтроллера
Как уже упоминалось выше, микроконтроллер подобен ПК, а это значит, что, как и ПК, AVR также может выполнять какую-либо программу, хотя и всего одну в какой-либо момент времени.
Программа микроконтроллера может храниться во встроенной памяти контроллера и представляет собой серию очень простых команд, которые выбирают данные и осуществляют с ними операции. В большинстве случаев это означает считывание входящих данных, проверка их состояния и вывода соответствующих выходных данных. Иногда может потребоваться изменение данных и совершение с ними некоторых операций, а также передача данных какому-либо внешнему устройству, например, индикатору, или последовательному порту.
Для таких элементарных задач используются наборы двоичных команд, каждая из которых имеет аналог на более доступном человеческому восприятию языке ассемблера. Поэтому наиболее распространенным способом написания программ для контроллера является написание их на языке ассемблера.
Преимуществом ассемблера является очень быстрый, компактный и эффективный код, но создание таких программ одновременно требует и глубоких знаний работы процессора контроллера, ручного управления памятью и контроля структуры программы. Поэтому зачастую для написания программ используются и языки высокого уровня, такие, как С, Basic и Java. В этом случае задачу по контролю структуры программы и управлению памятью берет на себя компилятор. Кроме того, часто используемые функции могут быть при этом помещены в библиотеки и извлекаться из них по мере надобности.
Заключение
Микроконтроллеры семейства AVR на сегодняшний день повсеместно используются в компьютерах, для автоматизации управления электронной аппаратурой, различными приборами и механизмами, применяемыми в промышленных, коммерческих, а также бытовых целях. Невысокая стоимость, широкий ассортимент и богатые возможности микроконтроллеров этой серии способствовали их большой популярности.
Порекомендуйте Друзьям статью:
Что такое микроконтроллеры ATMega и как сделать с ними простой проект?
Содержание
Введение в микроконтроллеры ATMegaМикроконтроллеры ATMega принадлежат к семейству микроконтроллеров AVR и производятся Atmel Corporation . Микроконтроллер ATMega представляет собой 8-битный микроконтроллер с сокращенным набором инструкций ( RISC ) на основе Гарвардской архитектуры.
Он имеет стандартные функции, такие как встроенное ПЗУ (постоянное запоминающее устройство), ОЗУ данных (оперативное запоминающее устройство), данные EEPROM (электрически стираемое программируемое постоянное запоминающее устройство), таймеры и порты ввода / вывода, а также дополнительные периферийные устройства, такие как аналого-цифровые. Цифровые преобразователи (АЦП), порты последовательного интерфейса и т. д. Они имеют 120 и более наборов инструкций и программную память в диапазоне от 4 до 256 Кбайт.
- Читайте также: Что такое WiMAX? Разница между широкополосным WiMax и WiFi
Микроконтроллеры ATMega были разработаны двумя студентами Норвежского технологического института (NTH) – Альфом-Эйгелем Богеном и Вегардом Волланом. Позже он был куплен и разработан корпорацией Atmel в 1996 году.
Архитектура микроконтроллеров ATMegaКак упоминалось во вводной части, микроконтроллеры ATMega основаны на гарвардской архитектуре, т. е. с отдельной памятью данных и памятью программ. Память программ, также известная как память программ или кодов, представляет собой флэш-память с произвольным доступом (ПЗУ). Размер памяти программ варьируется от 8К до 128К байт.
Память данных разделена на три части – 32 регистра общего назначения, память ввода/вывода и внутреннюю статическую оперативную память (SRAM). в то время как размер регистров общего назначения фиксирован, размер памяти ввода-вывода и внутренней SRAM варьируется от микросхемы к микросхеме.
Блок-схема микроконтроллера ATMEGAНа приведенной ниже схеме представлена архитектура микроконтроллеров ATMega.
Нажмите на изображение, чтобы увеличить
- Обязательно прочтите: Полностью автоматический контроллер уровня воды с использованием SRF04
Нажмите на изображение, чтобы увеличить его
Давайте кратко рассмотрим каждый модуль
1 . Регистры общего назначения : микроконтроллеры ATMega имеют архитектуру, основанную на регистрах, т. е. как операнды, так и результат операций хранятся в регистрах, расположенных совместно с центральным процессором (ЦП). Регистры общего назначения связаны с арифметико-логическим устройством (ALU) процессора.
Эти регистры используются для временного хранения информации во время выполнения программы. Они потребляют 32 байта памяти данных и занимают адресную ячейку — от $00 до $FF. Эти регистры имеют обозначение от R0 до R31, и каждый из них имеет ширину 8 бит.
2 . Память ввода/вывода : ее также называют памятью регистра специальных функций (SFR), поскольку она предназначена для специальных функций, таких как регистры состояния, таймеры, последовательная связь, порты ввода/вывода, аналого-цифровые счетчики (АЦП) и т. д.
Количество ячеек, занимаемых этой памятью, зависит от количества контактов и периферийных функций, поддерживаемых чипом. В то время как 64 байта места ввода-вывода фиксированы для всех микросхем, некоторые микроконтроллеры ATMega имеют расширенную память ввода-вывода, которая содержит регистры, связанные с дополнительными портами и периферийными устройствами.
3 . Внутренняя SRAM : также называется блокнотом и используется для хранения данных и параметров программистами и компиляторами. Каждое место доступно непосредственно по его адресу. Это используется для хранения данных с ввода/вывода и последовательных портов в ЦП.
4 . Электрически стираемая флэш-память (Flash EEPROM) : Это внутрисистемная программируемая память, используемая для хранения программ. Его можно стирать и программировать как единое целое. Поскольку она энергонезависима, содержимое памяти сохраняется даже в случае отключения питания. Для каждого микроконтроллера ATMega число в конце имени обозначает объем флэш-памяти.
Например , для ATMega16 объем флеш-памяти 16Кбайт. Преимуществом флэш-памяти в микроконтроллерах ATMega является ее внутрисистемная программируемость, т.е. микроконтроллер можно запрограммировать, даже находясь на печатной плате.
5 . Электрически стираемая программируемая память данных (Data EEPROM) : Some Эта память используется для хранения и вызова постоянных программных данных и других системных параметров.
- Читайте также: Что такое технология ZigBee и как она работает?
Кроме модуля памяти, микроконтроллер имеет внешние разъемы для питания, два внешних входа кристалла, сброс процессора и четыре 8-битных порта.
1 . Порты : микроконтроллеры ATMega содержат четыре 8-битных порта — порт A, порт B, порт C и порт D. Каждый порт связан с тремя регистрами — регистр данных (записывает выходные данные в порт), регистр направления данных (устанавливает определенный порт). контакт как выход или вход) и адрес входного контакта (считывает входные данные из порта).
2 . Часы : часы микроконтроллера используются для обеспечения временной базы для периферийных подсистем. Мы можем установить часы внутренне, используя выбираемый пользователем резистор-конденсатор, или внешне, используя генераторы.
3 . Таймеры и счетчики : микроконтроллеры ATMega обычно содержат 3 таймера/счетчика. В то время как два 8-битных таймера также могут использоваться в качестве счетчиков, третий является 16-битным счетчиком. Они используются для генерации точных выходных сигналов, подсчета внешних событий или измерения параметров входного цифрового сигнала.
3 . Системы последовательной связи : микросхема микроконтроллера ATMega содержит встроенный универсальный синхронный и асинхронный последовательный приемник и передатчик (USART), последовательный периферийный интерфейс (SPI) и двухпроводной последовательный интерфейс (TWI).
4 . Аналого-цифровые преобразователи : микроконтроллеры ATMega содержат многоканальную подсистему аналого-цифрового преобразователя (АЦП). АЦП имеет 10-битное разрешение и работает по принципу последовательного приближения. Он связан с тремя регистрами — регистром выбора мультиплексора АЦП, регистром управления и состояния АЦП и регистром данных АЦП.
5 . Прерывания : В микроконтроллерах ATMega имеется 21 периферийное прерывание. В то время как 3 используются для внешних источников, остальные 19 используются для внутренних подсистем. Они используются для прерывания нормальной последовательности событий в случае чрезвычайных ситуаций с высоким приоритетом.
- Что такое МЭМС – технология микроэлектромеханических систем?
Как упоминалось ранее, микроконтроллер ATMega основан на RISC-архитектуре, т.е. содержит сокращенный набор инструкций. Подобно другим микроконтроллерам, программирование микроконтроллеров ATMega также может выполняться как на языках низкого уровня (ассемблер), так и на языках высокого уровня (встроенный C).
Давайте кратко обсудим программирование на уровне ассемблера.
Инструкция на языке ассемблера состоит из следующих полей:
[Метка: ] мнемоника [операнды] [; комментарии]
Здесь мнемоника относится к инструкции. Микроконтроллеры ATMega поддерживают как непосредственный, так и косвенный режимы адресации. Доступ к регистрам ввода-вывода можно получить через соответствующие им места в пространстве памяти.
Операнды относятся к аргументам, обрабатываемым инструкцией. Для микроконтроллеров ATMega операндами являются регистры общего назначения или регистры ввода/вывода.
Обычно программирование выполняется на языке Си из-за его простоты. Ниже приведен небольшой пример программирования микроконтроллера ATMega16 с использованием языка Си
- Читайте также: Автоматизированная система идентификации отпечатков пальцев и как она работает?
Назначение : Включение светодиода с помощью кнопочного переключателя с микроконтроллером ATmega16
внутренний(недействительный)
{
DDRA=0x00;
DDRB=0xFF;
unsignedinti;
while(1)
{
i=PINA;
if(i==1)
{
PORTB=0xFF; 0x00;
}
}
В приведенном выше коде я назначил порт A в качестве входного порта, контакт PA.