Микроконтроллеры AVR - AVR microcontrollers

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

AVR это семья микроконтроллеры разработан с 1996 г. Атмель, приобретенный Технология микрочипов в 2016 году. Это модифицированная архитектура Гарварда 8 бит RISC однокристальные микроконтроллеры. AVR был одним из первых семейств микроконтроллеров, которые использовали на кристалле флэш-память для хранения программ, в отличие от одноразовое программируемое ПЗУ, EPROM, или EEPROM использовались другими микроконтроллерами в то время.

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

История

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

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

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

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

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

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

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

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

AVR обычно подразделяются на следующие:

  • tinyAVR - серия ATtiny
    • 0,5–32 КБ программной памяти
    • 6–32-выводный корпус
    • Ограниченный набор периферийных устройств
    • Детали tinyAVR 0/1/2-серии, с 2016 г.
      • Периферийные устройства равны или превосходят megaAVR 0-серии
      • Система событий
      • Улучшенный набор инструкций AVRxt, аппаратное умножение
  • megaAVR - серия ATmega
    • 4–256 КБ программной памяти
    • 28–100-контактный корпус
    • Расширенный набор инструкций (инструкции умножения и инструкции для работы с более крупными программными памятью)
    • Обширный набор периферийных устройств '
    • Запчасти megaAVR 0 с 2016 года
      • Новые периферийные устройства с расширенной функциональностью
      • Система событий
      • Улучшенный набор инструкций AVRxt
  • AVR Dx - сосредоточено на HCI и преобразование аналогового сигнала
    • 16–128 Кб памяти программ
    • 24 МГц при 1,8-5,5 В
    • 14-64-контактный
    • 4-16 Кбайт SRAM, 512b EEPROM
    • Номера деталей в форме AVRffDxpp, где ff - размер флэш-памяти, x - семейство, pp - количество контактов.
      • Пример: AVR128DA64 - серия DA с 64 контактами с флэш-памятью 128k
    • Асинхронный таймер типа D может работать быстрее, чем процессор
    • 12-битный АЦП, 10-битный ЦАП
    • DA-серия (начало 2020 г.)
      • встроенные датчики для емкостного сенсорного измерения (HCI )
      • 28-64-контактный
      • нет внешнего высокочастотного кристалла
    • DB-серия, очень похожая на DA (середина-конец 2020 г.)
      • Добавляет 2 или 3 операционных усилителя на кристалле
      • MultiVoltage IO (MVIO) на PORTC
      • Поддерживает внешний кристалл HF
    • DD-серия (по состоянию на ноябрь 2020 года еще не выпущена)
      • 16-64k вспышка
      • 14-32-контактный корпус
      • Поддержка MVIO на 3 или 4 контакта
  • XMEGA - серия ATxmega
    • 16–384 КБ программной памяти
    • 44–64–100-контактный корпус (A4, A3, A1)
    • 32-контактный корпус: XMEGA-E (XMEGA8E5)
    • Расширенные функции производительности, такие как DMA, «Система событий» и поддержка криптографии.
    • Обширный набор периферийных устройств с АЦП
  • AVR для конкретного приложения
    • MegaAVR со специальными функциями, которых нет у других членов семейства AVR, такими как ЖК-контроллер, USB контроллер, расширенный ШИМ, CAN и т. д.
  • FPSLIC (AVR с FPGA)
    • FPGA От 5 до 40 тысяч ворот
    • SRAM для программного кода AVR, в отличие от всех других AVR
    • Ядро AVR может работать на частоте до 50 МГц[9]
  • 32-битные AVR
    • В 2006 году Atmel выпустила микроконтроллеры на базе 32-битной AVR32 архитектура. Это была совершенно другая архитектура, не связанная с 8-битным AVR, предназначенная для конкуренции с РУКА на базе процессоров. У него был 32-битный путь к данным, SIMD и DSP инструкции, а также другие функции обработки аудио и видео. Набор команд был аналогичен другим ядрам RISC, но он не был совместим с исходным AVR (ни с одним из различных ядер ARM). С тех пор поддержка AVR32 в Linux была прекращена с версии ядра 4.12; Поддержка компилятором архитектуры в GCC никогда не поддерживалась в центральном репозитории исходного кода компилятора и была доступна в основном в вилке, поддерживаемой поставщиком. В то время, когда был представлен AVR32, Atmel уже был лицензиатом ARM архитектура, с обоими ARM7 и ARM9 микроконтроллеры, выпущенные до и одновременно с AVR32; позже Atmel сосредоточил свои усилия на разработке 32-битных чипов с ARM Cortex-M и Cortex-A ядра.

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

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

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

Программные инструкции хранятся в энергонезависимый флэш-память. Хотя MCU 8-битные, каждая инструкция занимает одно или два 16-битных слова.

Размер программной памяти обычно указывается в названии самого устройства (например, линия ATmega64x имеет 64 КБ флэш-памяти, а линия ATmega32x - 32 КБ).

Программная память вне кристалла не предусмотрена; весь код, выполняемый ядром AVR, должен находиться во встроенной флэш-памяти. Однако это ограничение не распространяется на микросхемы AT94 FPSLIC AVR / FPGA.

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

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

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

Atmel ATxmega128A1 в 100-контактном разъеме TQFP пакет

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

В вариантах tinyAVR и megaAVR архитектуры AVR рабочие регистры отображаются как первые 32 адреса памяти (000016–001F16), за которым следуют 64 регистра ввода / вывода (002016–005F16). В устройствах с большим количеством периферийных устройств за этими регистрами следуют 160 регистров расширенного ввода-вывода, которые доступны только как ввод-вывод с отображением памяти (006016–00FF16).

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

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

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

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

Порты GPIO

Каждый GPIO порт на крошечном или мега AVR управляет до восьми контактов и управляется тремя 8-битными регистрами: DDRИкс, ПОРТИкс и PIN-кодИкс, где Икс это идентификатор порта.

  • DDRИкс: Регистр направления данных, конфигурирует контакты как входы или выходы.
  • ПОРТИкс: Регистр выходного порта. Устанавливает выходное значение на выводах, настроенных как выходы. Включает или отключает подтягивающий резистор на выводах, настроенных как входы.
  • ШТЫРЬИкс: Входной регистр, используемый для чтения входного сигнала. На некоторых устройствах этот регистр можно использовать для переключения контактов: записи логической единицы в PIN-код.Икс bit переключает соответствующий бит в PORTИкс, независимо от настройки DDRИкс немного.[10]

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

EEPROM

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

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

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

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

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

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

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

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

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

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

  • Регистры указателя X, Y и Z имеют возможности адресации, которые отличаются друг от друга.
  • регистр Ячейки с R0 по R15 имеют более ограниченные возможности адресации, чем ячейки с R16 по R31 регистров.
  • Порты ввода-вывода от 0 до 31 могут иметь битовую адресацию, в отличие от портов ввода-вывода с 32 по 63.
  • CLR (очистить все биты до нуля) влияет на флаги, в то время как SER (установить все биты в один) нет, даже если они являются дополнительными инструкциями. (CLR является псевдооперацией для EOR R, R; в то время как SER - это сокращение от LDI R, $ FF. Арифметические операции, такие как флаги изменения EOR, а перемещение / загрузка / сохранение / переходы, такие как LDI, - нет.)
  • Доступ только для чтения к данным, хранящимся в программной памяти (флэш-памяти), требует специальных инструкций LPM; в противном случае шина флэш-памяти зарезервирована для памяти команд.

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

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

Скорость MCU

Линия 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 предлагают широкий спектр функций:

  • Многофункциональные двунаправленные порты ввода-вывода общего назначения с настраиваемыми встроенными подтягивающие резисторы
  • Несколько внутренних генераторов, включая RC-генератор без внешних частей
  • Внутренняя самопрограммируемая инструкция флэш-память до 256 КБ (384 КБ на XMega)
    • Программируется внутри системы используя последовательные / параллельные собственные низковольтные интерфейсы или JTAG
    • Дополнительная секция загрузочного кода с независимыми битами блокировки для защиты
  • Поддержка отладки на кристалле (OCD) через JTAG или debugWIRE на большинстве устройств
    • Сигналы JTAG (TMS, TDI, TDO и TCK) мультиплексируются на GPIO. Эти контакты могут быть настроены для работы как JTAG или GPIO в зависимости от настройки бита предохранителя, который можно запрограммировать через ISP или HVSP. По умолчанию AVR с JTAG идут с включенным интерфейсом JTAG.
    • debugWIRE использует вывод / RESET в качестве двунаправленного канала связи для доступа к встроенным схемам отладки. Он присутствует на устройствах с меньшим количеством выводов, так как требует только один вывод.
  • Внутренние данные EEPROM до 4 КБ
  • Внутренний SRAM до 16 КБ (32 КБ на XMega)
  • Внешнее пространство для данных с прямым порядком байтов 64 КБ на некоторых моделях, включая Mega8515 и Mega162.
    • Внешнее пространство данных накладывается на внутреннее пространство данных, так что полное адресное пространство 64 КБ не отображается на внешней шине и обращается, например, к адрес 010016 будет обращаться к внутренней ОЗУ, а не к внешней шине.
    • В некоторых устройствах серии XMega внешнее пространство данных было расширено для поддержки как SRAM, так и SDRAM. Кроме того, режимы адресации данных были расширены, что позволяет напрямую адресовать до 16 МБ памяти данных.
  • 8-битные и 16-битные таймеры
    • ШИМ выход (некоторые устройства имеют расширенную периферию ШИМ, которая включает в себя генератор мертвого времени)
    • Входной захват которые записывают метку времени, вызванную фронтом сигнала
  • Аналоговый компаратор
  • 10 или 12 бит Аналого-цифровые преобразователи, с мультиплексированием до 16 каналов
  • 12 бит ЦАП
  • Разнообразные последовательные интерфейсы, включая
    • I²C совместимый двухпроводной интерфейс (TWI)
    • Синхронная / асинхронная последовательная периферия (UART / USART) (используется с RS-232, RS-485, и больше)
    • Шина последовательного периферийного интерфейса (SPI)
    • Универсальный последовательный интерфейс (USI): многоцелевой аппаратный коммуникационный модуль, который можно использовать для реализации SPI,[12] я2C[13][14] или UART[15] интерфейс.
  • Отключение обнаружение
  • Сторожевой таймер (WDT)
  • Несколько энергосберегающих спящих режимов
  • Освещение и управление двигателем (ШИМ -специфические) модели контроллеров
  • МОЧЬ поддержка контроллера
  • USB поддержка контроллера
    • Правильный полноскоростной (12 Мбит / с) аппаратный контроллер и концентратор со встроенным AVR.
    • Также в свободном доступе низкоскоростной (1,5 Мбит / с) (Скрытый ) битбэнг программные эмуляции
  • Ethernet поддержка контроллера
  • ЖК-дисплей поддержка контроллера
  • Низковольтные устройства с напряжением до 1,8 В (до 0,7 В для деталей со встроенным преобразователем постоянного тока в постоянный)
  • устройства picoPower
  • DMA контроллеры и периферийная связь «системы событий».
  • Поддержка быстрой криптографии для AES и DES

Программные интерфейсы

Есть много способов загрузить программный код в микросхему AVR. Способы программирования микросхем AVR варьируются от семейства к семейству AVR. В большинстве описанных ниже методов используется СБРОС НАСТРОЕК строка для входа в режим программирования. Чтобы микросхема случайно не перешла в такой режим, рекомендуется подключить подтягивающий резистор между СБРОС НАСТРОЕК штифт и положительный источник питания.[16]

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

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

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

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

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

PDI

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

UPDI

Унифицированный интерфейс программы и отладки (UPDI) - это однопроводной интерфейс для внешнего программирования и отладки на кристалле новых устройств ATtiny и ATmega.

Высоковольтный серийный

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

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

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

Загрузчик

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

ПЗУ

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

провод

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

Отладочные интерфейсы

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

debugWIRE

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

JTAG

Совместная группа действий по тестированию (JTAG ) обеспечивает доступ к функциям отладки на кристалле, когда микросхема работает в целевой системе.[25] JTAG позволяет получать доступ к внутренней памяти и регистрам, устанавливать точки останова в коде и выполнять пошаговое выполнение для наблюдения за поведением системы.

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

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

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

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

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

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

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

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

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

Целевые доски имеют ЗИФ розетки для 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 доступно несколько модулей расширения:

  • STK501 - Добавлена ​​поддержка микроконтроллеров в 64-контактных корпусах TQFP.
  • STK502 - Добавлена ​​поддержка ЖК-AVR в 64-контактных корпусах TQFP.
  • STK503 - Добавлена ​​поддержка микроконтроллеров в 100-контактных корпусах TQFP.
  • STK504 - Добавляет поддержку ЖК-AVR в 100-контактных корпусах TQFP.
  • STK505 - Добавлена ​​поддержка 14- и 20-контактных AVR.
  • STK520 - Добавлена ​​поддержка 14-, 20- и 32-контактных микроконтроллеров из семейств AT90PWM и ATmega.
  • STK524 - Добавлена ​​поддержка семейства 32-контактных CAN / LIN / Motor Control ATmega32M1 / C1.
  • STK525 - Добавлена ​​поддержка микроконтроллеров AT90USB в 64-контактных корпусах TQFP.
  • STK526 - Добавлена ​​поддержка микроконтроллеров AT90USB в 32-контактных корпусах TQFP.

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

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

Поддерживаемые микроконтроллеры (согласно инструкции)
ЧипРазмер вспышкиEEPROMSRAMЧастота
[МГц]
Пакет
AT90S120064012ПДИП-20
AT90S23132k12812810ПДИП-20
AT90S / LS23232k12812810ПДИП-8
AT90S / LS23432k12812810PDIP-8
AT90S44144k2562568ПДИП-40
AT90S / LS44344k2562568ПДИП-40
AT90S85158k5125128ПДИП-40
AT90S / LS85358k5125128ПДИП-40

AVRISP и AVRISP mkII

AVRISP MKII

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

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

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

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

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

AVR Dragon

AVR Dragon с Кабель для программирования ISP и прилагается, синий / зеленоватый Разъем ZIF

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

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 позволяет выполнять отладку, используя только один вывод (вывод сброса), что позволяет отлаживать приложения, работающие на микроконтроллерах с низким числом выводов.

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

JTAGICE3

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

AVR ONE!

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

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

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

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

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

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

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

AT90USBKey

Эта небольшая плата, размером примерно в половину визитной карточки, стоит немного дороже, чем AVR Butterfly. Он включает AT90USB1287 с USB на ходу (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[41] сторонний свободное программное обеспечение (Лицензия MIT ) Стек протоколов USB для USBKey и других 8-битных USB AVR.

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

Комплект RAVEN поддерживает беспроводную разработку с использованием Atmel's 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.[42]

Использует

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

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

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

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

Многие компании производят платы микроконтроллеров на базе AVR, предназначенные для любителей, строителей роботов, экспериментаторов и разработчиков небольших систем, включая Cubloc,[43] гнусб,[44] BasicX,[45] Дуб Микрос,[46] Микроконтроллеры ZX,[47] и myAVR.[48] Также есть большое сообщество Платы, совместимые с Arduino поддержка похожих пользователей.

Schneider Electric использовался для производства M3000 Motor and Motion Control Chip, включающего Atmel AVR Core и усовершенствованный контроллер движения для использования в различных приложениях управления движением, но это было прекращено.[49]

Клоны FPGA

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

  • ПАВР,[50] написано в VHDL, направлена ​​на создание самого быстрого и максимально функционального процессора AVR за счет реализации методов, отсутствующих в исходном процессоре AVR, таких как более глубокая конвейерная обработка.
  • avr_core,[51] написано в VHDL, является клоном, максимально приближенным к ATmega103.
  • Навре,[52] написано в Verilog, реализует все Классическое ядро инструкции и нацелен на высокую производительность и низкое использование ресурсов. Он не поддерживает прерывания.
  • Проект opencores Лекция по процессору[53] написано в VHDL Доктор Юрген Зауэрманн подробно объясняет, как спроектировать полную систему на основе AVR на чипе (SoC).

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

В дополнение к чипам, производимым Atmel, клоны доступны от LogicGreen Technologies.[54] Эти части не являются точными клонами - у них есть несколько функций, которых нет в чипах, которые они «клоны», и более высокие максимальные тактовые частоты, но для программирования используется SWD вместо ISP, поэтому необходимо использовать другие инструменты программирования.

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

использованная литература

  1. ^ С 1996 года NTH стал частью Норвежский университет науки и технологий (NTNU)
  2. ^ alfbogen.com блог
  3. ^ а б «История АВР». youtube.com.
  4. ^ "Школа компьютерных наук и инженерии UNSW - 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. ^ а б Myklebust, Gaute. «Совместная разработка микроконтроллера AVR и компилятора C» (PDF). Атмель Норвегия. CiteSeerX  10.1.1.63.1447. Получено 2012-09-19.
  8. ^ Пресс-релиз Atmel. "Микроконтроллер Atmel AVR отгружен 500 миллионов единиц".
  9. ^ Программируемая интегральная схема системного уровня В архиве 2012-11-27 в Wayback Machine
  10. ^ atmel.com
  11. ^ Микросхемы смарт-карт Atmel
  12. ^ «AVR319: Использование модуля USI для связи SPI» (PDF). Атмель. 2004. Получено 10 июн 2014.
  13. ^ "Atmel AVR310: Использование модуля USI в качестве I2C Мастер " (PDF). Атмель. 2013. Получено 10 июн 2014.
  14. ^ "AVR312: Использование модуля USI в качестве I2C раб " (PDF). Атмель. 2005. Получено 10 июн 2014.
  15. ^ «AVR307: полудуплексный UART с использованием модуля USI» (PDF). Атмель. 2003. Получено 10 июн 2014.
  16. ^ «Рекомендации по проектированию оборудования AVR» (PDF) (примечание по применению). Корпорация Атмель. Июнь 2015. с. 5. Получено 14 июн 2015. Линия сброса имеет внутренний подтягивающий резистор, но в шумной среде его может быть недостаточно, и сброс может происходить спорадически.
  17. ^ "Программист AVRDUDE". Savannah.nongnu.org. Получено 2012-09-19.
  18. ^ "Драйвер программирования PDI" (PDF). Получено 2012-09-19.
  19. ^ «HVSP_Description». Support.atmel.no. Архивировано из оригинал на 2009-10-12. Получено 2012-09-19.
  20. ^ "Зашифрованный DES загрузчик AVR" (PDF). Получено 2012-09-19.
  21. ^ «Зашифрованный AES загрузчик AVR» (PDF). Получено 2012-09-19.
  22. ^ «Загрузчик XMEGA» (PDF). Получено 2012-09-19.
  23. ^ "USB-загрузчик AVR" (PDF). Получено 2012-09-19.
  24. ^ "Самопрограммируемые флэш-микроконтроллеры Atmel" (PDF). Получено 12 марта 2020.
  25. ^ «Руководство по пониманию JTAG и предохранителей на AVR». Получено 2012-09-19.
  26. ^ «Атмель-ДВС - Корпорация Атмель». Atmel.com. Получено 2015-09-11.
  27. ^ "JTAGICE 3- Atmel Corporation". Atmel.com. Получено 2012-09-19.
  28. ^ "AVR JTAGICE mkII". Атмель. Архивировано из оригинал 15 февраля 2013 г.. Получено 13 января 2013.
  29. ^ "Протокол связи JTAGICE mkII" (PDF). Получено 2012-09-19.
  30. ^ «АВР Дракон». Атмель. Получено 13 января 2013.
  31. ^ "Руководство пользователя AVR JTAGICE mkII" (PDF). microchip.com. Получено 25 марта 2020.
  32. ^ Пресс-релиз JTAGICE, 2004. В архиве 2011-07-07 на Wayback Machine
  33. ^ «СТК600». Атмель. Архивировано из оригинал 15 февраля 2013 г.. Получено 13 января 2013.
  34. ^ "AVRISP mkII в разобранном виде". Архивировано из оригинал на 2014-11-08. Получено 2014-11-08.
  35. ^ «AVR1005: Начало работы с XMEGA, стр. 7» (PDF). Атмель. Получено 7 ноября 2011.
  36. ^ «Примечания к выпуску AVR Studio v4.18». Получено 2012-09-19.
  37. ^ «ECROS Technology - Dragon Rider». Ecrostech.com. 2008-03-02. Получено 2012-09-19.
  38. ^ Страница продукта JTAGICE3
  39. ^ AVR ONE! Страница продукта
  40. ^ AVR бабочка
  41. ^ "LUFA (ранее MyUSB)". Четырехстенная кабина. Получено 2012-09-19.
  42. ^ Увидеть avrffreaks.net для полного списка.
  43. ^ "Comfile Technology". Comfile Technology, Inc. Получено 13 января 2013.
  44. ^ "gnusb: USB-датчик с открытым исходным кодом". Получено 13 января 2013.
  45. ^ «BasicX». NetMedia, Inc. Архивировано с оригинал 23 мая 2013 г.. Получено 13 января 2013.
  46. ^ "Добро пожаловать в Oak Micros". Дуб Микрос. Дуб Micros. Архивировано из оригинал на 2012-10-25. Получено 13 января 2013.
  47. ^ "ZBasic". Получено 13 января 2013.
  48. ^ "myAVR". Laser & Co. Solutions GmbH. Получено 13 января 2013.
  49. ^ «Контроллер движений M3000 на микросхеме». imshome.com. Schneider Electric Motion США. Архивировано из оригинал на 2009-12-02. Получено 2011-08-02.
  50. ^ "pAVR :: Обзор". OpenCores. Получено 2012-09-19.
  51. ^ "AVR Core :: Обзор". OpenCores. Получено 2012-09-19.
  52. ^ "Обзор клона Navré AVR (8-битный RISC)". OpenCores. Получено 2012-09-19.
  53. ^ «Лекция ЦПУ». OpenCores. Получено 2015-02-16.
  54. ^ "Микроконтроллер FLASH LGT8F88A". LogicGreen Technologies. Архивировано из оригинал на 2017-08-29. Получено 2019-01-18, клон ATmega88.
  55. ^ «Микроконтроллеры» [Микроконтроллеры] (на русском языке). Воронеж: ОАО "НИИЭТ". Архивировано из оригинал 22 августа 2017 г.. Получено 22 августа 2017.

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

  • Программирование AVR: учимся писать программное обеспечение для оборудования; Эллиот Уильямс; Maker Media; 474 страницы; 2014; ISBN  978-1449355784
  • Arduino: краткое руководство; Майк Шмидт; Прагматическая книжная полка; 276 страниц; 2011; ISBN  978-1-934356-66-1.
  • Требуется некоторая сборка: программирование на языке ассемблера с помощью микроконтроллера AVR; Тимоти С. Маргуш; CRC Press; 643 страницы; 2011; ISBN  978-1439820643
  • Микроконтроллер AVR и встроенные системы: использование сборки и C; Мухаммад Али Мазиди, Сармад Наими, Сепехр Наими; Пирсон; 792 страницы; 2010; ISBN  978-0138003319.

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

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