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 -микроконтроллеры с модифицированной гарвардской архитектурой . AVR было одним из первых семейств микроконтроллеров, использовавших встроенную флэш-память для хранения программ в отличие от одноразового программируемого ПЗУ , EPROM или EEPROM , используемых в других микроконтроллерах того времени.

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

История

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

Atmel утверждает, что название AVR не является аббревиатурой и не означает ничего конкретного. Создатели AVR не дают однозначного ответа на вопрос, что означает термин «AVR». [3] Однако общепринято, что AVR означает процессор Alf и Vegard R ISC . [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 Норвегии, дочерней компании 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 году и включала в себя микроконтроллеры ATmega8 AVR.

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

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

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

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 с флэш-памятью 128 Кбит. Все устройства семейства AVR Dx включают в себя:

КСМЕГА

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

AVR для конкретного приложения

FPSLIC (AVR с FPGA)

32-битные AVR

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

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

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

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

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

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

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

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

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

В вариантах архитектуры AVR tinyAVR и megaAVR рабочие регистры отображаются как первые 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) расширяется и включает в себя энергонезависимую память, такую ​​​​как флэш-память, и биты конфигурации; следовательно, инструкция загрузки памяти программ (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, тотемного столба и pullup.

ЭСППЗУ

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

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

Однако некоторые устройства семейства 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 МГц. Работа с меньшим энергопотреблением обычно требует пониженной тактовой частоты. Все последние модели AVR (Tiny, Mega и Xmega, но не 90S) оснащены встроенным генератором, что устраняет необходимость во внешних часах или схемах резонатора. Некоторые 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, предохранители, биты блокировки и строка подписи пользователя. Это осуществляется путем доступа к контроллеру NVM XMEGA через интерфейс 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 — это новый однопроводной интерфейс отладки, доступный на новых устройствах UC3L AVR32.

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

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

отладкаПРОВОД

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] Хотя адаптер JTAGICE был объявлен компанией Atmel « устаревшим », он по-прежнему поддерживается в AVR Studio и других инструментах.

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

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

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

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

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

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

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

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

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

STK600 позволяет осуществлять внутрисистемное программирование с ПК через USB, оставляя порт RS-232 доступным для целевого микроконтроллера. 4- контактный разъем на STK600 с надписью «Запасной RS-232» позволяет подключать любой порт 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 , разъем для SRAM объемом 32 КБ и множество общих входов/выходов. Чип можно запрограммировать с помощью ключа, подключенного к параллельному порту.

Атмел-ICE

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

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

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

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

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

AVRISP и AVRISP mkII

АВРИСП мкII

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 мкII

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

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

JTAGICE3

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

АВР ОДИН!

АВР ОДИН! — это профессиональный инструмент разработки для всех 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-сегментного шестибуквенно-цифрового дисплея. Однако интерфейс ЖК-дисплея потребляет много контактов ввода-вывода.

Процессор ATmega169 Butterfly способен работать на частоте до 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 «Обновление прошивки устройства». Atmel поставляет с устройством проприетарные программы (исходный код включен, но распространение ограничено) и стек протоколов USB.

LUFA [43] — это стек протоколов USB стороннего бесплатного программного обеспечения ( лицензия MIT ) для 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]

Использование

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

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 ). Интернет-провайдер для программирования, поэтому необходимо использовать разные инструменты программирования.

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

Рекомендации

  1. ^ С 1996 года NTH стал частью Норвежского университета науки и технологий (NTNU).
  2. ^ блог alfbogen.com
  3. ^ ab. Архивировано в Ghostarchive и Wayback Machine: «История AVR». youtube.com.
  4. ^ "Школа компьютерных наук и инженерии UNSW - Общая информация об AVR" . Cse.unsw.edu.au. Архивировано из оригинала 23 июня 2012 г. Проверено 19 сентября 2012 г.
  5. ^ Введение в Atmel и микроконтроллер AVR [ постоянная неработающая ссылка ]
  6. ^ «Встроенные системы и микроконтроллеры» (PDF) . Архивировано из оригинала (PDF) 24 декабря 2004 г. Проверено 1 октября 2018 г.
  7. ^ ab Myklebust, Гауте. Совместная разработка микроконтроллера AVR и компилятора C (PDF) . Атмел Норвегия. CiteSeerX 10.1.1.63.1447 . Проверено 19 сентября 2012 г. 
  8. ^ Пресс-релиз Atmel. «Микроконтроллеры Atmel AVR проданы 500 миллионами единиц».
  9. ^ Интегральная схема программируемого системного уровня. Архивировано 27 ноября 2012 г. в Wayback Machine .
  10. ^ atmel.com
  11. ^ Микросхемы смарт-карт Atmel
  12. ^ «AVR319: Использование модуля USI для связи SPI» (PDF) . Атмел . 2004. Архивировано (PDF) из оригинала 17 июня 2012 г. Проверено 10 июня 2014 г.
  13. ^ «Atmel AVR310: использование модуля USI в качестве ведущего устройства I2C» (PDF) . Атмел . 2013. Архивировано (PDF) из оригинала 14 июля 2014 г. Проверено 10 июня 2014 г.
  14. ^ «AVR312: Использование модуля USI в качестве ведомого устройства I2C» (PDF) . Атмел . 2005. Архивировано (PDF) из оригинала 14 июля 2014 г. Проверено 10 июня 2014 г.
  15. ^ «AVR307: Полудуплексный UART с использованием модуля USI» (PDF) . Атмел . 2003. Архивировано (PDF) из оригинала 14 июля 2014 г. Проверено 10 июня 2014 г.
  16. ^ «Аспекты проектирования аппаратного обеспечения AVR» (PDF) (примечания по применению). Корпорация Атмел. Июнь 2015. с. 5. Архивировано (PDF) из оригинала 22 декабря 2014 г. Проверено 14 июня 2015 г. Линия сброса имеет внутренний подтягивающий резистор, но если окружающая среда зашумлена, его может быть недостаточно, и поэтому сброс может происходить спорадически.
  17. ^ "Программист AVRDUDE" . Savannah.nongnu.org . Проверено 19 сентября 2012 г.
  18. ^ «Драйвер программирования PDI» (PDF) . Архивировано (PDF) из оригинала 25 марта 2020 г. Проверено 19 сентября 2012 г.
  19. ^ «GitHub - ElTangas/Jtag2updi: программное обеспечение программатора UPDI для Arduino (предназначено для микроконтроллеров Tiny AVR-0/1/2, Mega AVR-0 и AVR-DA/DB)» . Гитхаб . 17 декабря 2021 г.
  20. ^ «pymcuprog — программист Python MCU» . Гитхаб . Инструменты микрочипа PIC и AVR. 13 ноября 2022 г. Проверено 18 ноября 2022 г.
  21. ^ "HVSP_Description". Поддержка.atmel.no. Архивировано из оригинала 12 октября 2009 г. Проверено 19 сентября 2012 г.
  22. ^ «Загрузчик AVR с шифрованием DES» (PDF) . Архивировано (PDF) из оригинала 16 мая 2005 г. Проверено 19 сентября 2012 г.
  23. ^ «Загрузчик AVR с шифрованием AES» (PDF) . Проверено 19 сентября 2012 г.
  24. ^ «Загрузчик XMEGA» (PDF) . Проверено 19 сентября 2012 г.
  25. ^ «Загрузчик USB AVR» (PDF) . Архивировано (PDF) из оригинала 28 июня 2006 г. Проверено 19 сентября 2012 г.
  26. ^ «Самопрограммируемые флэш-микроконтроллеры Atmel» (PDF) . Проверено 12 марта 2020 г.
  27. ^ «Руководство по пониманию JTAG и предохранителей безопасности на AVR» . Проверено 19 сентября 2012 г.[ постоянная мертвая ссылка ]
  28. ^ "Atmel-ICE - Корпорация Atmel" . Atmel.com . Проверено 11 сентября 2015 г.
  29. ^ "JTAGICE 3 - Корпорация Atmel" . Atmel.com . Проверено 19 сентября 2012 г.
  30. ^ "AVR JTAGICE mkII" . Атмел . Архивировано из оригинала 15 февраля 2013 года . Проверено 13 января 2013 г.
  31. ^ «Протокол связи JTAGICE mkII» (PDF) . Архивировано (PDF) из оригинала 16 мая 2005 г. Проверено 19 сентября 2012 г.
  32. ^ "АВР Дракон". Атмел . Проверено 13 января 2013 г.
  33. ^ «Руководство пользователя AVR JTAGICE mkII» (PDF) . microchip.com . Архивировано (PDF) из оригинала 02 июля 2017 г. Проверено 25 марта 2020 г.
  34. ^ Пресс-релиз JTAGICE, 2004 г. Архивировано 7 июля 2011 г. в Wayback Machine.
  35. ^ "СТК600". Атмел . Архивировано из оригинала 15 февраля 2013 года . Проверено 13 января 2013 г.
  36. ^ "AVRISP mkII в разобранном виде" . Архивировано из оригинала 08.11.2014 . Проверено 8 ноября 2014 г.
  37. ^ «AVR1005: Начало работы с XMEGA, стр. 7» (PDF) . Атмел. Архивировано (PDF) из оригинала 07 октября 2009 г. Проверено 7 ноября 2011 г.
  38. ^ «Примечания к выпуску AVR Studio v4.18» . Проверено 19 сентября 2012 г.
  39. ^ «Технология ECROS - Всадник Дракона» . Ecrostech.com. 2 марта 2008 г. Проверено 19 сентября 2012 г.
  40. ^ Страница продукта JTAGICE3
  41. ^ АВР ОДИН! Страница продукта
  42. ^ АВР Бабочка
  43. ^ «LUFA (ранее MyUSB)» . Четырехстенный шкаф . Проверено 19 сентября 2012 г.
  44. ^ Полный список см. на сайте avrffreaks.net.
  45. ^ "Технология Comfile". Comfile Technology, Inc. Архивировано из оригинала 17 января 2013 года . Проверено 13 января 2013 г.
  46. ^ "gnusb: USB-сенсорный блок с открытым исходным кодом" . Проверено 13 января 2013 г.
  47. Ссылки ​NetMedia, Inc. Архивировано из оригинала 23 мая 2013 года . Проверено 13 января 2013 г.
  48. ^ «Добро пожаловать в Oak Micros» . Дуб Микрос . Дуб Микрос. Архивировано из оригинала 25 октября 2012 г. Проверено 13 января 2013 г.
  49. ^ "ZBasic" . Проверено 13 января 2013 г.
  50. ^ "мойАВР". Лазер и Ко. Решения ГмбХ . Проверено 13 января 2013 г.
  51. ^ «Контроллер движения M3000 на чипе» . imshome.com . Шнайдер Электрик Движение США. Архивировано из оригинала 2 декабря 2009 г. Проверено 2 августа 2011 г.
  52. ^ "pAVR :: Обзор" . Открытые ядра . Проверено 19 сентября 2012 г.
  53. ^ «Ядро AVR :: Обзор» . Открытые ядра . Проверено 19 сентября 2012 г.
  54. ^ «Обзор клона Navré AVR (8-битный RISC)» . Открытые ядра . Проверено 19 сентября 2012 г.
  55. ^ «Обзор программного ядра AVR + интерфейсов» . Открытые ядра . Проверено 16 июня 2020 г.
  56. ^ "Лекция по процессору" . Открытые ядра . Проверено 16 февраля 2015 г.
  57. ^ "Микроконтроллер LGT8F88A FLASH" . ЛогикаЗеленые технологии. Архивировано из оригинала 29 августа 2017 г. Проверено 18 января 2019 г. ,клон ATmega88.
  58. ^ "Микроконтроллеры" [Микроконтроллеры] (на русском языке). Воронеж: ОАО «НИИЭТ». Архивировано из оригинала 22 августа 2017 года . Проверено 22 августа 2017 г.

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

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

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