stringtranslate.com

AVR-микроконтроллеры

Логотип АВР
Различные старые микроконтроллеры AVR: ATmega8 в 28-контактном узком двухрядном корпусе ( DIP -28N), ATxmega128A1 в 100-контактном тонком четырехрядном корпусе ( TQFP -100), ATtiny45 в 8-контактном малогабаритном корпусе ( SO -8).
ATmega328 P в 28-контактном узком двухрядном корпусе ( DIP -28N). Обычно встречается на платах Arduino .

AVR — это семейство микроконтроллеров , разрабатываемое с 1996 года компанией Atmel , приобретенной Microchip Technology в 2016 году. Это модифицированные 8-битные RISC -микроконтроллеры с архитектурой Harvard. AVR был одним из первых семейств микроконтроллеров, использовавших встроенную флэш-память для хранения программ, в отличие от однократно программируемых ПЗУ , СППЗУ или EEPROM , используемых другими микроконтроллерами в то время.

Микроконтроллеры AVR находят множество применений в качестве встраиваемых систем . Они особенно распространены в любительских и образовательных встраиваемых приложениях, популяризировавшись благодаря их включению во многие линейки открытых аппаратных плат разработки Arduino .

История

Архитектура AVR была задумана двумя студентами Норвежского технологического института (NTH) [1] Альфом-Эгилем Богеном [2] и Вегардом Волланом. [3]

Atmel утверждает, что название AVR не является аббревиатурой и не обозначает ничего конкретного. Создатели AVR не дают однозначного ответа на вопрос, что означает термин «AVR». [3] Однако общепринято считать, что AVR означает процессор R ISC компании Alf and V egard . [4] Обратите внимание, что использование «AVR» ​​в этой статье обычно относится к 8-битной линейке RISC микроконтроллеров Atmel AVR.

Оригинальный AVR MCU был разработан в местном ASIC- ателье [ требуется разъяснение ] в Тронхейме, Норвегия , которое в то время называлось Nordic VLSI, теперь Nordic Semiconductor , где Боген и Воллан работали студентами. [ требуется ссылка ] Он был известен как μRISC (Micro RISC) [5] и был доступен в виде кремниевого IP/строительного блока от Nordic VLSI. [6] Когда технология была продана Atmel от Nordic VLSI , внутренняя архитектура была дополнительно разработана Богеном и Волланом в Atmel Norway, дочерней компании Atmel. Разработчики тесно сотрудничали с разработчиками компиляторов в IAR Systems , чтобы гарантировать, что набор инструкций AVR обеспечивает эффективную компиляцию языков высокого уровня . [7]

Среди первых в линейке AVR был AT90S8515, который в 40-контактном DIP-корпусе имел ту же распиновку, что и микроконтроллер 8051 , включая внешний мультиплексированный адрес и шину данных. Полярность линии RESET была противоположной (у 8051 активный высокий RESET, а у AVR активный низкий RESET ), но в остальном распиновка была идентичной.

Архитектура 8-битного микроконтроллера AVR была представлена ​​в 1997 году. К 2003 году компания Atmel поставила 500 миллионов флэш-микроконтроллеров AVR. [8] Платформа Arduino , разработанная для простых электронных проектов, была выпущена в 2005 году и включала микроконтроллеры AVR ATmega8.

Обзор устройства

AVR — это модифицированная машина с архитектурой Гарварда, в которой программа и данные хранятся в отдельных системах физической памяти, которые отображаются в разных адресных пространствах, но имеют возможность считывать элементы данных из памяти программ с помощью специальных инструкций.

Основные семьи

АРН обычно классифицируются следующим образом:

tinyAVR – серия ATtiny

Серия ATtiny включает в себя микроконтроллеры в небольших корпусах с ограниченным набором периферийных устройств. Однако улучшенная серия tinyAVR 0/1/2 (выпущенная в 2016 году) включает в себя:

megaAVR – серия ATmega

Серия ATmega включает микроконтроллеры, которые предоставляют расширенный набор инструкций (инструкции по умножению и инструкции для обработки больших программных запоминающих устройств), обширный набор периферийных устройств, солидный объем программной памяти, а также широкий спектр доступных выводов. megaAVR 0-серия (выпущенная в 2016 году) также имеет такие функциональные возможности, как:

AVR Dx – Семейство AVR Dx включает в себя несколько серий микроконтроллеров, ориентированных на HCI , аналоговое преобразование сигналов и функциональную безопасность.

Номера деталей форматируются как AVR ff D xpp , где ff — размер флэш-памяти, x — семейство, а pp — количество контактов. Пример: AVR128DA64 — 64-контактная серия DA с флэш-памятью 128k. Все устройства семейства AVR Dx включают:

XMEGA

Серия ATxmega предлагает широкий спектр периферийных устройств и функций, таких как:

AVR для конкретных приложений

FPSLIC (AVR с FPGA)

32-битные AVR

Архитектура устройства

Atmel ATxmega128A1 в 100-контактном корпусе TQFP
ATMEL MEGA32U4 снимок кристалла

AVR имеют 32 однобайтовых регистра и классифицируются как 8-битные RISC-устройства.

Flash , EEPROM и SRAM интегрированы в один чип, что устраняет необходимость во внешней памяти в большинстве приложений. Некоторые устройства имеют опцию параллельной внешней шины, позволяющую добавлять дополнительную память данных или отображаемые в память устройства. Почти все устройства (за исключением самых маленьких чипов TinyAVR) имеют последовательные интерфейсы, которые можно использовать для подключения более крупных последовательных EEPROM или чипов флэш-памяти.

Память программ

Программные инструкции хранятся в энергонезависимой флэш-памяти . Хотя микроконтроллеры 8-битные, каждая инструкция занимает одно или два 16-битных слова. Размер программной памяти обычно указывается в названии самого устройства (например, линейка ATmega64x имеет 64 КБ флэш-памяти, а линейка ATmega32x — 32 КБ). Не предусмотрено внешней программной памяти; весь код, выполняемый ядром AVR, должен находиться во встроенной флэш-памяти. Однако это ограничение не распространяется на микросхемы AT94 FPSLIC AVR/FPGA.

Внутренняя память данных

Адресное пространство данных состоит из файла регистров , регистров ввода-вывода и SRAM . Некоторые небольшие модели также отображают ПЗУ программы в адресное пространство данных, но более крупные модели этого не делают.

Внутренние регистры

В вариантах tinyAVR и megaAVR архитектуры AVR рабочие регистры отображаются как первые 32 адреса памяти данных (0000 16 –001F 16 ), за которыми следуют 64 регистра ввода-вывода (0020 16 –005F 16 ). В устройствах со множеством периферийных устройств за этими регистрами следуют 160 регистров «расширенного ввода-вывода», доступных только как отображенный в памяти ввод-вывод (0060 16 –00FF 16 ).

Фактическая SRAM начинается после этих разделов регистров, по адресу 0060 16 или, в устройствах с «расширенным вводом-выводом», по адресу 0100 16 .

Несмотря на то, что для доступа к регистровому файлу и первым 64 регистрам ввода-вывода существуют отдельные схемы адресации и оптимизированные коды операций, ко всем этим данным можно обращаться и манипулировать ими так, как если бы они находились в SRAM.

Самый маленький из вариантов tinyAVR использует сокращенную архитектуру всего с 16 регистрами (r0 по r15 опущены), которые не адресуются как ячейки памяти. Память ввода-вывода начинается с адреса 0000 16 , за которым следует SRAM. Кроме того, эти устройства имеют небольшие отклонения от стандартного набора инструкций AVR. В частности, инструкции прямой загрузки/сохранения (LDS/STS) были сокращены с 2 слов (32 бита) до 1 слова (16 бит), что ограничивает общий объем памяти с прямой адресацией (сумма ввода-вывода и SRAM) до 128 байт. И наоборот, 16-битное адресное пространство инструкции косвенной загрузки (LD) расширено, чтобы также включить энергонезависимую память, такую ​​как Flash и биты конфигурации; поэтому инструкция загрузки памяти программ (LPM) не нужна и опущена. (Подробную информацию см. в разделе Набор инструкций Atmel AVR .)

В варианте XMEGA рабочий файл регистров не отображается в адресное пространство данных; таким образом, невозможно рассматривать любой из рабочих регистров XMEGA так, как если бы они были SRAM. Вместо этого регистры ввода-вывода отображаются в адресное пространство данных, начиная с самого начала адресного пространства. Кроме того, объем адресного пространства данных, выделенного для регистров ввода-вывода, существенно вырос до 4096 байт (0000 16 –0FFF 16 ). Однако, как и в предыдущих поколениях, быстрые инструкции по манипуляции вводом-выводом могут достигать только первых 64 ячеек регистра ввода-вывода (первые 32 ячейки для побитовых инструкций). После регистров ввода-вывода серия XMEGA выделяет 4096-байтовый диапазон адресного пространства данных, который может использоваться опционально для отображения внутренней EEPROM в адресное пространство данных (1000 16 –1FFF 16 ). Фактическая SRAM располагается после этих диапазонов, начиная с 2000 16 .

Порты GPIO

Каждый порт GPIO на крошечном или большом AVR управляет восемью контактами и управляется тремя 8-битными регистрами: DDR x , PORT x и PIN x , где x — идентификатор порта.

В более новых моделях ATtiny AVR, таких как ATtiny817 и ее собратья, регистры управления портами определены несколько иначе. У xmegaAVR есть дополнительные регистры для конфигураций push/pull, totem-pole и pullup.

EEPROM

Почти все микроконтроллеры AVR имеют внутреннюю EEPROM для полупостоянного хранения данных. Как и флэш-память, EEPROM может сохранять свое содержимое при отключении электропитания.

В большинстве вариантов архитектуры AVR эта внутренняя память EEPROM не отображается в адресуемое пространство памяти MCU. К ней можно получить доступ только так же, как к внешнему периферийному устройству, используя специальные регистры указателей и инструкции чтения/записи, что делает доступ к EEPROM намного медленнее, чем к другой внутренней памяти RAM.

Однако некоторые устройства семейства SecureAVR (AT90SC) [11] используют специальное отображение EEPROM в память данных или программ, в зависимости от конфигурации. Семейство XMEGA также позволяет отображать EEPROM в адресное пространство данных.

Поскольку количество циклов записи в EEPROM ограничено (в своих технических описаниях компания Atmel указывает 100 000 циклов записи), хорошо спроектированная процедура записи в EEPROM должна сравнивать содержимое адреса EEPROM с желаемым содержимым и выполнять фактическую запись только в том случае, если содержимое необходимо изменить.

Выполнение программы

AVR от Atmel имеют двухступенчатую одноуровневую конструкцию конвейера . Это означает, что следующая машинная инструкция извлекается по мере выполнения текущей. Большинство инструкций занимают всего один или два такта, что делает AVR относительно быстрыми среди восьмибитных микроконтроллеров.

Процессоры AVR были разработаны с учетом эффективного выполнения скомпилированного кода C и имеют несколько встроенных указателей для этой задачи.

Набор инструкций

Набор инструкций AVR более ортогонален , чем у большинства восьмибитных микроконтроллеров, в частности, клонов 8051 и микроконтроллеров PIC, с которыми AVR конкурирует сегодня. Однако он не полностью регулярен:

Кроме того, некоторые различия, характерные для чипов, влияют на генерацию кода. Указатели кода (включая адреса возврата в стеке) имеют длину два байта на чипах с флэш-памятью до 128 КБ, но три байта на более крупных чипах; не все чипы имеют аппаратные множители; чипы с флэш-памятью более 8 КБ имеют инструкции ветвления и вызова с более длинными диапазонами; и так далее.

В основном регулярный набор инструкций делает компиляторы C (и даже Ada) довольно простыми и эффективными. GCC уже давно включает поддержку AVR, и эта поддержка широко используется. LLVM также имеет элементарную поддержку AVR. Фактически, Atmel запросила вклад от основных разработчиков компиляторов для небольших микроконтроллеров, чтобы определить функции набора инструкций, которые были бы наиболее полезны в компиляторе для языков высокого уровня. [7]

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

Линейка AVR обычно поддерживает тактовые частоты от 0 до 20 МГц, а некоторые устройства достигают 32 МГц. Работа с низким энергопотреблением обычно требует пониженной тактовой частоты. Все последние (Tiny, Mega и Xmega, но не 90S) AVR оснащены встроенным генератором, что устраняет необходимость во внешних тактовых генераторах или резонаторных схемах. Некоторые AVR также имеют предделитель системных часов, который может делить системные часы до 1024. Этот предделитель может быть перенастроен программным обеспечением во время работы, что позволяет оптимизировать тактовую частоту.

Поскольку все операции (кроме умножения и 16-битного сложения/вычитания) на регистрах R0–R31 являются однотактными, AVR может достигать до 1 MIPS на МГц, т. е. процессор с частотой 8 МГц может достигать до 8 MIPS. Загрузка и сохранение в/из памяти занимает два цикла, ветвление занимает два цикла. Ветвления в последних «3-байтовых ПК» частях, таких как ATmega2560, на один цикл медленнее, чем на предыдущих устройствах.

Разработка

AVR имеют большую популярность благодаря доступным бесплатным и недорогим инструментам разработки, включая недорогие платы разработки и бесплатное программное обеспечение для разработки. AVR продаются под разными названиями, которые используют одно и то же базовое ядро, но с разными комбинациями периферии и памяти. Совместимость между чипами в каждом семействе довольно хорошая, хотя функции контроллера ввода-вывода могут различаться.

См. внешние ссылки на сайты, посвященные разработке AVR.

Функции

AVR предлагают широкий спектр функций:

Интерфейсы программирования

Существует множество способов загрузки программного кода в микросхему AVR. Методы программирования микросхем AVR различаются в зависимости от семейства микросхем AVR. Большинство описанных ниже методов используют линию RESET для входа в режим программирования. Чтобы избежать случайного входа микросхемы в такой режим, рекомендуется подключить подтягивающий резистор между выводом RESET и положительным источником питания. [16]

Интернет-провайдер

Схемы 6- и 10-контактных разъемов ISP

Метод программирования внутрисистемного программирования (ISP) функционально выполняется через SPI , плюс некоторое изменение линии сброса. Пока контакты SPI AVR не подключены к чему-либо разрушительному, чип AVR может оставаться припаянным к печатной плате во время перепрограммирования. Все, что нужно, это 6-контактный разъем и адаптер для программирования. Это наиболее распространенный способ разработки с помощью AVR.

Устройство Atmel-ICE или AVRISP mkII (устаревшее устройство) подключается к USB-порту компьютера и выполняет внутрисистемное программирование с использованием программного обеспечения Atmel.

AVRDUDE (AVR Downloader/UploaDEr) работает на Linux , FreeBSD , Windows и Mac OS X и поддерживает множество аппаратных средств для внутрисистемного программирования, включая Atmel AVRISP mkII, Atmel JTAG ICE, старые программаторы Atmel на базе последовательного порта, а также различные сторонние и самодельные программаторы. [17]

ПДИ

Интерфейс программирования и отладки (PDI) — это фирменный интерфейс Atmel для внешнего программирования и отладки на кристалле устройств XMEGA. PDI поддерживает высокоскоростное программирование всех пространств энергонезависимой памяти (NVM); флэш-памяти, EEPROM, предохранителей, битов блокировки и строки подписи пользователя. Это делается путем доступа к контроллеру XMEGA NVM через интерфейс PDI и выполнения команд контроллера NVM. PDI — это 2-контактный интерфейс, использующий вывод сброса для тактового входа (PDI_CLK) и выделенный вывод данных (PDI_DATA) для входа и выхода. [18]

УПДИ

Унифицированный программный и отладочный интерфейс (UPDI) — это однопроводной интерфейс для внешнего программирования и отладки на кристалле новых устройств ATtiny и ATmega. Atmel-ICE и PICkit 4 способны программировать чипы UPDI. Также возможно использовать Arduino благодаря jtag2updi, [19] или стандартному адаптеру USB-UART с контактами TX и RX, закороченными резистором 1 кОм, и утилите pymcuprog, предоставляемой Microchip. [20]

Высоковольтный последовательный

Высоковольтное последовательное программирование (HVSP) [21] в основном является резервным режимом на небольших AVR. 8-контактный корпус AVR не оставляет много уникальных комбинаций сигналов для перевода AVR в режим программирования. Однако 12-вольтовый сигнал — это то, что AVR должен видеть только во время программирования и никогда во время нормальной работы. Высоковольтный режим также может использоваться в некоторых устройствах, где вывод сброса отключен предохранителями.

Высоковольтная параллельная

Высоковольтное параллельное программирование (HVPP) считается «последним средством» и может быть единственным способом исправить неисправные настройки предохранителя на микросхеме AVR.

Загрузчик

Большинство моделей AVR могут резервировать область загрузчика , от 256 байт до 4 КБ, где может находиться код перепрограммирования. При сбросе загрузчик запускается первым и выполняет некоторое запрограммированное пользователем определение, перепрограммировать или перейти к основному приложению. Код может перепрограммироваться через любой доступный интерфейс или может считывать зашифрованный двоичный файл через адаптер Ethernet, такой как PXE . У Atmel есть заметки по применению и код, относящиеся ко многим интерфейсам шины. [22] [23] [24] [25]

ПЗУ

Серия AVR AT90SC поставляется с заводским ПЗУ-маской, а не с флэш-памятью для памяти программ. [26] Из-за больших первоначальных затрат и минимального объема заказа ПЗУ-маской экономически эффективно только для крупносерийного производства.

aWire

aWire — это новый однопроводной отладочный интерфейс, доступный на новых устройствах UC3L AVR32.

Отладка интерфейсов

AVR предлагает несколько вариантов отладки, большинство из которых предполагает отладку на кристалле, пока кристалл находится в целевой системе.

debugWIRE

debugWIRE — это решение Atmel для предоставления возможностей отладки на кристалле через один вывод микроконтроллера. Это особенно полезно для деталей с меньшим количеством выводов, которые не могут предоставить четыре «запасных» вывода, необходимых для JTAG. JTAGICE mkII, mkIII и AVR Dragon поддерживают debugWIRE. debugWIRE был разработан после оригинального выпуска JTAGICE, и теперь его поддерживают клоны.

JTAG

Функция Joint Test Action Group ( JTAG ) обеспечивает доступ к функциям отладки на кристалле во время работы кристалла в целевой системе. [27] JTAG позволяет получать доступ к внутренней памяти и регистрам, устанавливать точки останова в коде и выполнять пошаговое выполнение для наблюдения за поведением системы.

Компания Atmel предлагает серию адаптеров JTAG для AVR:

  1. Atmel-ICE [28] — новейший адаптер. Он поддерживает интерфейсы JTAG, debugWire, aWire, SPI, TPI и PDI.
  2. JTAGICE 3 [29] — отладчик среднего уровня в семействе JTAGICE (JTAGICE mkIII). Он поддерживает интерфейсы JTAG, aWire, SPI и PDI.
  3. JTAGICE mkII [30] заменяет JTAGICE и имеет схожую цену. JTAGICE mkII подключается к ПК через USB и поддерживает как JTAG, так и более новый интерфейс debugWIRE. Многочисленные сторонние клоны устройства Atmel JTAGICE mkII начали поставляться после того, как Atmel выпустила протокол связи. [31]
  4. AVR Dragon [32] — это недорогая (примерно 50 долларов США) замена JTAGICE mkII для определенных целевых деталей. AVR Dragon обеспечивает внутрисистемное последовательное программирование, высоковольтное последовательное программирование и параллельное программирование, а также эмуляцию JTAG или debugWIRE для деталей с 32 КБ памяти программ или меньше. ATMEL изменила функцию отладки AVR Dragon с последней прошивкой AVR Studio 4 — AVR Studio 5, и теперь она поддерживает устройства с более чем 32 КБ памяти программ.
  5. Адаптер JTAGICE подключается к ПК через стандартный последовательный порт. [33] Хотя компания Atmel объявила адаптер JTAGICE « снятым с производства », он по-прежнему поддерживается в AVR Studio и других инструментах.

JTAG также можно использовать для выполнения теста граничного сканирования , [34] который проверяет электрические соединения между AVR и другими микросхемами, поддерживающими граничное сканирование в системе. Граничное сканирование хорошо подходит для производственной линии, в то время как любителю, вероятно, лучше проводить тестирование с помощью мультиметра или осциллографа.

Инструменты разработки и оценочные комплекты

Плата разработки Atmel STK500

Официальные инструменты разработки и оценочные комплекты Atmel AVR содержат ряд стартовых комплектов и инструментов отладки с поддержкой большинства устройств AVR:

Стартовый комплект STK600

Стартовый комплект и система разработки STK600 являются обновлением STK500. [35] STK600 использует базовую плату, плату маршрутизации сигналов и целевую плату.

Базовая плата похожа на STK500 тем, что она обеспечивает питание, часы, внутрисистемное программирование, порт RS-232 и порт CAN (Controller Area Network, автомобильный стандарт) через разъемы DE9, а также выводы для всех сигналов GPIO от целевого устройства.

Целевые платы имеют гнезда ZIF для корпусов DIP , SOIC , QFN или QFP , в зависимости от платы.

Плата маршрутизации сигналов располагается между базовой платой и целевой платой и направляет сигналы на соответствующий штифт на плате устройства. Существует много различных плат маршрутизации сигналов, которые можно использовать с одной целевой платой, в зависимости от того, какое устройство находится в гнезде ZIF.

STK600 позволяет осуществлять внутрисистемное программирование с ПК через USB, оставляя порт RS-232 доступным для целевого микроконтроллера. 4-контактный разъем на STK600 с маркировкой «RS-232 backup» может подключать любой порт USART уровня TTL на чипе к встроенному чипу MAX232 для преобразования сигналов в уровни RS-232. Сигналы RS-232 подключаются к контактам RX, TX, CTS и RTS на разъеме DB-9.

Стартовый комплект STK500

Стартовый комплект STK500 и система разработки включают ISP и высоковольтное программирование (HVP) для всех устройств AVR, как напрямую, так и через платы расширения. Плата оснащена DIP-гнездами для всех AVR, доступных в DIP-корпусах.

Модули расширения STK500: Для платы STK500 доступно несколько модулей расширения:

Стартовый комплект STK200

Стартовый комплект STK200 и система разработки имеют гнездо DIP , в которое можно установить микросхему AVR в 40-, 20- или 8-контактном корпусе. Плата имеет источник тактовой частоты 4 МГц, 8 светодиодов (LED), 8 кнопок ввода, порт RS-232 , гнездо для 32 КБ SRAM и многочисленные общие входы/выходы. Микросхему можно программировать с помощью ключа, подключенного к параллельному порту.

Atmel-ICE

Atmel ICE — это поддерживаемый в настоящее время недорогой инструмент для программирования и отладки всех устройств AVR (в отличие от AVRISP/AVRISP mkII, Dragon и т. д., обсуждаемых ниже). Он подключается к ПК и получает питание от него через USB, а также поддерживает интерфейсы JTAG , PDI , aWire , debugWIRE , SPI , SWD , TPI и UPDI (Microchip Unified Program and Debug Interface).

ICE может программировать и отлаживать все AVR через интерфейс JTAG, а также программировать с помощью дополнительных интерфейсов, поддерживаемых каждым устройством:

Поддерживаются диапазоны рабочего напряжения от 1,62 В до 5,5 В, а также следующие диапазоны тактовой частоты:

ICE поддерживается средой разработки Microchip Studio, а также интерфейсом командной строки (atprogram).

Atmel-ICE поддерживает ограниченную реализацию Data Gateway Interface (DGI), когда функции отладки и программирования не используются. Data Gateway Interface — это интерфейс для потоковой передачи данных с целевого устройства на подключенный компьютер. Он предназначен как полезное дополнение к устройству для демонстрации функций приложения и как помощь в отладке на уровне приложения.

AVRISP и AVRISP mkII

AVRISP mkII

AVRISP и AVRISP mkII — недорогие инструменты, позволяющие программировать все AVR через ICSP .

AVRISP подключается к ПК через последовательный порт и получает питание от целевой системы. AVRISP позволяет использовать любую из "стандартных" распиновок ICSP, как 10-контактный, так и 6-контактный разъем.

AVRISP mkII подключается к ПК через USB и получает питание от USB. Светодиоды , видимые через полупрозрачный корпус, показывают состояние питания цели.

Поскольку в AVRISP mkII отсутствуют микросхемы драйвера/буфера, [36] у него могут возникнуть проблемы с программированием целевых плат с несколькими нагрузками на линиях SPI. В таких случаях требуется программатор, способный обеспечить больший ток. В качестве альтернативы AVRISP mkII все еще можно использовать, если на линиях SPI перед каждым периферийным устройством можно разместить резисторы ограничения нагрузки с низким номиналом (~150 Ом).

И AVRISP, и AVRISP mkII теперь сняты с производства, а страницы продуктов удалены с веб-сайта Microchip. По состоянию на июль 2019 года AVRISP mkII все еще имеется в наличии у ряда дистрибьюторов. Также доступно несколько клонов сторонних производителей.

АВР Дракон

AVR Dragon с кабелем программирования ISP и прикрепленным сине-зеленым разъемом ZIF

Atmel Dragon — недорогой инструмент, подключаемый к ПК через USB. Dragon может программировать все AVR через JTAG, HVP, PDI, [37] или ICSP. Dragon также позволяет отлаживать все AVR через JTAG, PDI или debugWire; предыдущее ограничение для устройств с 32 КБ или менее памяти программ было снято в AVR Studio 4.18. [38] Dragon имеет небольшую область прототипа, которая может вместить 8, 28 или 40-контактный AVR, включая соединения с питанием и программными контактами. Нет области для каких-либо дополнительных схем, хотя это может быть предоставлено сторонним продуктом под названием «Dragon Rider». [39]

JTAGICE

Инструмент отладки JTAG In Circuit Emulator (JTAGICE) поддерживает отладку на кристалле ( OCD) AVR с интерфейсом JTAG. Оригинальный JTAGICE (иногда ретроспективно называемый JTAGICE mkI) использует интерфейс RS-232 для ПК и может программировать только AVR с интерфейсом JTAG. JTAGICE mkI больше не выпускается, однако его заменил JTAGICE mkII.

JTAGICE mkII

Инструмент отладки JTAGICE mkII поддерживает отладку на кристалле (OCD) AVR с интерфейсами SPI, JTAG, PDI и debugWIRE. Интерфейс debugWire позволяет выполнять отладку с использованием только одного контакта (контакта Reset), что позволяет отлаживать приложения, работающие на микроконтроллерах с малым количеством контактов.

JTAGICE mkII подключается через USB, но есть альтернативное подключение через последовательный порт, которое требует использования отдельного источника питания. В дополнение к JTAG, mkII поддерживает программирование ISP (с использованием адаптеров с 6 или 10 контактами). Как USB, так и последовательные соединения используют вариант протокола STK500.

JTAGICE3

JTAGICE3 обновляет mkII, предлагая более продвинутые возможности отладки и более быстрое программирование. Он подключается через USB и поддерживает интерфейсы JTAG, aWire, SPI и PDI. [40] В комплект входит несколько адаптеров для использования с большинством интерфейсных выводов.

АВР ОДИН!

AVR ONE! — это профессиональный инструмент разработки для всех 8- и 32-разрядных устройств AVR Atmel с возможностью отладки на кристалле. Он поддерживает режимы программирования SPI, JTAG, PDI и aWire, а также отладку с использованием интерфейсов debugWIRE, JTAG, PDI и aWire. [41]

Демонстрационная доска «Бабочка»

Atmel ATmega169 в 64-контактном корпусе MLF на задней стороне платы Atmel AVR Butterfly

Очень популярная демонстрационная плата AVR Butterfly представляет собой автономный компьютер с питанием от батареи, работающий на микроконтроллере Atmel AVR ATmega169V. Она была создана для демонстрации семейства AVR, особенно нового на тот момент встроенного интерфейса ЖК-дисплея. Плата включает в себя ЖК-экран, джойстик, динамик, последовательный порт, часы реального времени (RTC), чип флэш-памяти, а также датчики температуры и напряжения. Более ранние версии AVR Butterfly также содержали фоторезистор CdS ; он отсутствует на платах Butterfly, выпущенных после июня 2006 года, чтобы обеспечить соответствие RoHS . [42] На небольшой плате сзади есть булавка для рубашки, поэтому ее можно носить как бейдж.

AVR Butterfly поставляется с предустановленным программным обеспечением для демонстрации возможностей микроконтроллера. Заводская прошивка может прокручивать ваше имя, отображать показания датчиков и показывать время. AVR Butterfly также имеет пьезоэлектрический преобразователь, который может использоваться для воспроизведения звуков и музыки.

AVR Butterfly демонстрирует управление ЖК-дисплеем, используя 14-сегментный шестибуквенно-цифровой дисплей. Однако интерфейс ЖК-дисплея потребляет много контактов ввода/вывода.

Процессор Butterfly ATmega169 способен развивать частоту до 8 МГц, но на заводе он установлен программным обеспечением на 2 МГц для сохранения срока службы батареи кнопки. Предустановленная программа загрузчика позволяет перепрограммировать плату через стандартный последовательный разъем RS-232 с помощью новых программ, которые пользователи могут писать с помощью бесплатных инструментов Atmel IDE.

AT90USBКлюч

Эта небольшая плата, размером примерно с половину визитной карточки, стоит немного дороже, чем AVR Butterfly. Она включает в себя AT90USB1287 с поддержкой USB On-The-Go (OTG), 16 МБ DataFlash , светодиоды, небольшой джойстик и датчик температуры. Плата включает в себя программное обеспечение, которое позволяет ей работать как USB-накопитель (документация поставляется на DataFlash), USB-джойстик и многое другое. Для поддержки возможности USB-хоста она должна работать от батареи, но при работе в качестве периферийного USB-устройства ей требуется только питание, подаваемое по USB.

Только порт JTAG использует обычную распиновку 2,54 мм. Все остальные порты ввода-вывода AVR требуют более компактных разъемов 1,27 мм.

AVR Dragon может как программировать, так и отлаживать, поскольку ограничение в 32 КБ было снято в AVR Studio 4.18, а JTAGICE mkII способен как программировать, так и отлаживать процессор. Процессор также можно программировать через USB с хоста Windows или Linux, используя протоколы USB "Device Firmware Update". Atmel поставляет собственные (исходный код включен, но распространение ограничено) примеры программ и стек протоколов USB вместе с устройством.

LUFA [43] — это стороннее бесплатное программное обеспечение ( лицензия MIT ) для стека USB-протокола для USBKey и других 8-битных USB AVR.

Беспроводной комплект Raven

Комплект RAVEN поддерживает беспроводную разработку с использованием чипсетов Atmel IEEE 802.15.4 для Zigbee и других беспроводных стеков. Он напоминает пару беспроводных более мощных карт Butterfly, плюс беспроводной USBKey; и стоит примерно столько же (менее 100 долларов США). Все эти платы поддерживают разработку на основе JTAG.

В комплект входят две платы AVR Raven, каждая с приемопередатчиком 2,4 ГГц, поддерживающим IEEE 802.15.4 (и свободно лицензируемый стек Zigbee). Радиостанции работают на процессорах ATmega1284p, которые поддерживаются специальным сегментированным ЖК-дисплеем, управляемым процессором ATmega3290p. Периферийные устройства Raven напоминают Butterfly: пьезодинамик, DataFlash (больше), внешняя EEPROM, датчики, кристалл 32 кГц для RTC и т. д. Они предназначены для использования при разработке удаленных сенсорных узлов, для управления реле или для всего необходимого.

USB-накопитель использует AT90USB1287 для подключения к USB-хосту и беспроводным каналам связи 2,4 ГГц. Они предназначены для мониторинга и управления удаленными узлами, полагаясь на питание хоста, а не на локальные батареи.

Сторонние программисты

Для AVR доступен широкий спектр сторонних инструментов программирования и отладки. Эти устройства используют различные интерфейсы, включая RS-232, параллельный порт ПК и USB. [44]

Использует

Atmel AVR ATmega328 28-контактный DIP на плате Arduino Duemilanove
Atmel AVR ATmega8 28-контактный DIP на заказной плате разработки

AVR использовались в различных автомобильных приложениях, таких как системы безопасности, защиты, силовые агрегаты и развлекательные системы. Недавно Atmel выпустила новую публикацию "Atmel Automotive Compilation", чтобы помочь разработчикам с автомобильными приложениями. Некоторые текущие применения - BMW, Daimler-Chrysler и TRW.

Физическая вычислительная платформа Arduino основана на микроконтроллере ATmega328 (ATmega168 или ATmega8 в версиях плат старше Diecimila). ATmega1280 и ATmega2560 с большей схемой расположения выводов и возможностями памяти также использовались для разработки платформы Arduino Mega . Платы Arduino могут использоваться с ее языком и IDE или с более традиционными средами программирования ( C , ассемблер и т. д.) как просто стандартизированные и широко доступные платформы AVR.

AVR на базе USB использовались в ручных контроллерах Microsoft Xbox. Связь между контроллерами и Xbox осуществляется через USB.

Многочисленные компании производят платы микроконтроллеров на базе AVR, предназначенные для использования любителями, конструкторами роботов, экспериментаторами и разработчиками небольших систем, в том числе: Cubloc, [45] gnusb, [46] BasicX , [47] Oak Micros, [48] ZX Microcontrollers, [49] и myAVR. [50] Существует также большое сообщество плат, совместимых с Arduino, поддерживающих похожих пользователей.

Компания Schneider Electric раньше производила микросхему управления двигателем и движением M3000, включающую ядро ​​Atmel AVR и усовершенствованный контроллер движения для использования в различных приложениях движения, но производство было прекращено. [51]

ПЛИС-клоны

С ростом популярности FPGA среди сообщества разработчиков программного обеспечения с открытым исходным кодом люди начали разрабатывать процессоры с открытым исходным кодом, совместимые с набором инструкций AVR. На сайте OpenCores перечислены следующие основные проекты клонов AVR:

Другие поставщики

Помимо чипов, производимых Atmel, клоны доступны от LogicGreen Technologies. [57] Эти детали не являются точными клонами — у них есть несколько функций, которых нет в чипах, «клонами» которых они являются, и более высокие максимальные тактовые частоты, но для программирования они используют SWD ( Serial Wire Debug , вариант JTAG от ARM ) вместо ISP, поэтому необходимо использовать другие инструменты программирования.

Микроконтроллеры, использующие архитектуру ATmega, производятся НИИЭТ в Воронеже , Россия, как часть серии интегральных схем 1887. Сюда входит ATmega128 под обозначением 1887VE7T ( ‹См. Tfd› на русском языке : 1887ВЕ7Т ). [58]

Ссылки

  1. ^ С 1996 года NTH стал частью Норвежского университета науки и технологий (NTNU).
  2. ^ блог alfbogen.com
  3. ^ ab Архивировано в Ghostarchive и Wayback Machine: «История AVR». youtube.com.
  4. ^ "UNSW School of Computer Science and Engineering - General AVR Info". Cse.unsw.edu.au. Архивировано из оригинала 2012-06-23 . Получено 2012-09-19 .
  5. ^ Введение в Atmel и микроконтроллер AVR [ постоянная мертвая ссылка ]
  6. ^ "Встраиваемые системы и микроконтроллеры" (PDF) . Архивировано из оригинала (PDF) 2004-12-24 . Получено 2018-10-01 .
  7. ^ ab Myklebust, Gaute. Совместная разработка микроконтроллера AVR и компилятора C (PDF) . Atmel Norway. CiteSeerX 10.1.1.63.1447 . Получено 19.09.2012 . 
  8. ^ Пресс-релиз Atmel. «Микроконтроллеры AVR компании Atmel проданы тиражом в 500 миллионов единиц».
  9. ^ Интегральная схема системного уровня с полевым программированием. Архивировано 27.11.2012 на Wayback Machine .
  10. ^ atmel.com
  11. ^ Микросхемы смарт-карт Atmel
  12. ^ "AVR319: Использование модуля USI для связи по SPI" (PDF) . Atmel . 2004. Архивировано (PDF) из оригинала 2012-06-17 . Получено 10 июня 2014 .
  13. ^ "Atmel AVR310: использование модуля USI в качестве ведущего устройства I2C" (PDF) . Atmel . 2013. Архивировано (PDF) из оригинала 2014-07-14 . Получено 10 июня 2014 .
  14. ^ "AVR312: использование модуля USI в качестве ведомого устройства I2C" (PDF) . Atmel . 2005. Архивировано (PDF) из оригинала 2014-07-14 . Получено 10 июня 2014 .
  15. ^ "AVR307: полудуплексный UART с использованием модуля USI" (PDF) . Atmel . 2003. Архивировано (PDF) из оригинала 2014-07-14 . Получено 10 июня 2014 .
  16. ^ "AVR Hardware Design Considerations" (PDF) (примечание к применению). Atmel Corporation. Июнь 2015 г. стр. 5. Архивировано (PDF) из оригинала 2014-12-22 . Получено 14 июня 2015 г. Линия сброса имеет внутренний подтягивающий резистор, но если окружающая среда шумная, его может быть недостаточно, и сброс может происходить спорадически.
  17. ^ "Программист AVRDUDE". Savannah.nongnu.org . Получено 2012-09-19 .
  18. ^ "PDI programming driver" (PDF) . Архивировано (PDF) из оригинала 2020-03-25 . Получено 2012-09-19 .
  19. ^ "GitHub - ElTangas/Jtag2updi: программное обеспечение для программирования UPDI для Arduino (целевые микроконтроллеры Tiny AVR-0/1/2, Mega AVR-0 и AVR-DA/DB)". GitHub . 17 декабря 2021 г.
  20. ^ "pymcuprog - Python MCU programmer". Github . Microchip PIC&AVR Tools. 13 ноября 2022 г. Получено 18 ноября 2022 г.
  21. ^ "HVSP_Description". Support.atmel.no. Архивировано из оригинала 2009-10-12 . Получено 2012-09-19 .
  22. ^ "DES-encrypted AVR Bootloader" (PDF) . Архивировано (PDF) из оригинала 2005-05-16 . Получено 2012-09-19 .
  23. ^ "Загрузчик AVR с шифрованием AES" (PDF) . Получено 19 сентября 2012 г.
  24. ^ "XMEGA Bootloader" (PDF) . Получено 2012-09-19 .
  25. ^ "AVR USB Bootloader" (PDF) . Архивировано (PDF) из оригинала 2006-06-28 . Получено 2012-09-19 .
  26. ^ "Самопрограммируемые флэш-микроконтроллеры Atmel" (PDF) . Получено 12 марта 2020 г. .
  27. ^ "Руководство по пониманию JTAG и предохранителей безопасности на AVR" . Получено 19 сентября 2012 г.[ постоянная мертвая ссылка ]
  28. ^ "Atmel-ICE - Atmel Corporation". Atmel.com . Получено 2015-09-11 .
  29. ^ "JTAGICE 3- Atmel Corporation". Atmel.com . Получено 2012-09-19 .
  30. ^ "AVR JTAGICE mkII". Atmel . Архивировано из оригинала 15 февраля 2013 . Получено 13 января 2013 .
  31. ^ "JTAGICE mkII Communication Protocol" (PDF) . Архивировано (PDF) из оригинала 2005-05-16 . Получено 2012-09-19 .
  32. ^ "AVR Dragon". Atmel . Получено 13 января 2013 г. .
  33. ^ "AVR JTAGICE mkII User's Guide" (PDF) . microchip.com . Архивировано (PDF) из оригинала 2017-07-02 . Получено 25 марта 2020 .
  34. Пресс-релиз JTAGICE, 2004. Архивировано 07.07.2011 на Wayback Machine
  35. ^ "STK600". Atmel . Архивировано из оригинала 15 февраля 2013 . Получено 13 января 2013 .
  36. ^ "AVRISP mkII Disassembled". Архивировано из оригинала 2014-11-08 . Получено 2014-11-08 .
  37. ^ "AVR1005: Начало работы с XMEGA, страница 7" (PDF) . Atmel. Архивировано (PDF) из оригинала 2009-10-07 . Получено 7 ноября 2011 .
  38. ^ "AVR Studio v4.18 Release Notes" . Получено 2012-09-19 .
  39. ^ "ECROS Technology - Dragon Rider". Ecrostech.com. 2008-03-02 . Получено 2012-09-19 .
  40. ^ Страница продукта JTAGICE3
  41. ^ AVR ONE! Страница продукта
  42. ^ Бабочка AVR
  43. ^ "LUFA (ранее MyUSB)". Четырехстенный шкафчик . Получено 2012-09-19 .
  44. ^ Полный список см. на сайте avrffreaks.net.
  45. ^ "Comfile Technology". Comfile Technology, Inc. Архивировано из оригинала 17 января 2013 года . Получено 13 января 2013 года .
  46. ^ "gnusb: USB Sensor Box с открытым исходным кодом" . Получено 13 января 2013 г.
  47. ^ "BasicX". NetMedia, Inc. Архивировано из оригинала 23 мая 2013 г. Получено 13 января 2013 г.
  48. ^ "Добро пожаловать в Oak Micros". Oak Micros . Oak Micros. Архивировано из оригинала 2012-10-25 . Получено 13 января 2013 .
  49. ^ "ZBasic" . Получено 13 января 2013 г. .
  50. ^ "myAVR". Laser & Co. Solutions GmbH . Получено 13 января 2013 г.
  51. ^ "M3000 Motion controller on a chip". imshome.com . Schneider Electric Motion USA. Архивировано из оригинала 2009-12-02 . Получено 2011-08-02 .
  52. ^ "pAVR :: Обзор". OpenCores . Получено 2012-09-19 .
  53. ^ "AVR Core :: Обзор". OpenCores . Получено 2012-09-19 .
  54. ^ "Обзор клона Navré AVR (8-битный RISC)". OpenCores . Получено 2012-09-19 .
  55. ^ "Soft AVR Core + Interfaces Overview". OpenCores . Получено 2020-06-16 .
  56. ^ "CPU lecture". OpenCores . Получено 2015-02-16 .
  57. ^ "LGT8F88A FLASH Microcontroller". LogicGreen Technologies. Архивировано из оригинала 2017-08-29 . Получено 2019-01-18 ,клон ATmega88.
  58. ^ "Микроконтроллеры" [Microcontrollers] (на русском языке). Воронеж: ОАО "НИИЭТ". Архивировано из оригинала 22 августа 2017 года . Получено 22 августа 2017 года .

Дальнейшее чтение

Внешние ссылки

Официальный сайт
Официальное сообщество
Схемы распиновки
Симуляторы