Микроконтроллеры AVR
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
Размер вспышки | Частота [МГц] | Упаковка | СРАМ | ЭСППЗУ |
---|---|---|---|---|
0,5–32 КБ | 1.6–20 | 6–32-контактный корпус | 32–3072 байта | 64–512 байт |
Серия ATtiny включает микроконтроллеры в небольших корпусах с ограниченным набором периферийных устройств. Однако улучшенная серия tinyAVR 0/1/2 (выпущенная в 2016 году) включает в себя:
- Периферийные устройства аналогичны или превосходят megaAVR серии 0
- Система событий
- Улучшенный набор инструкций AVRxt (улучшено время вызовов), аппаратное умножение
megaAVR – серия ATmega
Размер вспышки | Частота [МГц] | Упаковка | СРАМ | ЭСППЗУ |
---|---|---|---|---|
4–256 КБ | 1.6–20 | 28–100-контактный корпус | 256–16384 байт | 256–4096 байт |
Серия ATmega включает микроконтроллеры, которые обеспечивают расширенный набор команд (множественные инструкции и инструкции для работы с большей памятью программ), обширный набор периферийных устройств, солидный объем программной памяти, а также широкий набор доступных выводов. MegaAVR серии 0 (выпущенной в 2016 году) также имеет такие функциональные возможности, как:
- Система событий
- Новые периферийные устройства с расширенной функциональностью
- Улучшенный набор инструкций AVRxt (улучшено время вызовов)
AVR Dx . Семейство AVR Dx включает несколько серий микроконтроллеров, ориентированных на HCI , преобразование аналогового сигнала и функциональную безопасность.
Размер вспышки | Частота [МГц] | Упаковка | СРАМ | ЭСППЗУ | Год выпуска |
---|---|---|---|---|---|
16–128 КБ | 20–24 при 1,8–5,5 В | 14–64-контактный корпус | 4–16 КБ | 512 байт | 2020 |
Номера деталей имеют формат AVR ff D xpp , где ff — размер флэш-памяти, x — семейство, а pp — количество контактов. Пример: AVR128DA64 — 64-контактный разъем серии DA с флэш-памятью 128К. Все устройства семейства AVR Dx включают в себя:
- таймер асинхронного типа D, который может работать быстрее, чем процессор
- 12-битный АЦП
- 10-битный ЦАП
- Серия AVR DA (начало 2020 г.) — высокая плотность памяти делает эти микроконтроллеры хорошо подходящими как для проводных, так и для беспроводных функций с интенсивным использованием стека связи.
- Серия AVR DB (середина-конец 2020 г.) – унаследовала многие функции семейства DA, но добавила свои собственные:
- 2 или 3 встроенных операционных усилителя
- Многовольтный ввод-вывод (MVIO) на PORTC
- Поддерживает внешний высокочастотный кристалл.
- AVR DD-серия
- Флэш-память 16–64 КиБ
- 2–8 КиБ SRAM
- 14-32-контактный корпус
- внутренний генератор 24 МГц
- 7-23-канальный 12-битный дифференциальный аналого-цифровой преобразователь (АЦП), 130 кС/с,
- нет усилителей
- 1 аналоговый компаратор
- Два USART, один SPI, один двухрежимный TWI
- Поддержка ввода/вывода с несколькими напряжениями (MVIO) на 3 или 4 контактах порта C
- 4 ячейки настраиваемой пользовательской логики (CCL), 6 каналов системы событий
- AVR серии EA
- 8–64k вспышка
- 28–48-контактный корпус
- внутренний генератор 20 МГц
- 24-32-канальный 12-битный дифференциальный аналого-цифровой преобразователь (АЦП), 130 тыс. выборок/с
- Усилитель с программируемым усилением (PGA) с усилением до 16x
- 2 аналоговых компаратора
- Три USART, один SPI, один двухрежимный TWI
- нет входа/выхода с несколькими напряжениями (MVIO)
- 4 ячейки настраиваемой пользовательской логики (CCL), 6 каналов системы событий
КСМЕГА
Размер вспышки | Частота [МГц] | Упаковка | СРАМ | ЭСППЗУ | Год выпуска |
---|---|---|---|---|---|
16–256 КБ | 32 | 44–100-контактный корпус | 1–32 КБ | 512–2048 байт | — |
Серия ATxmega предлагает широкий выбор периферийных устройств и функций, таких как:
- Расширенные функции производительности, такие как 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 и призванная конкурировать с процессорами на базе ARM . Он имел 32-битный тракт данных, инструкции SIMD и DSP , а также другие функции обработки звука и видео. Набор команд был аналогичен другим ядрам RISC, но не был совместим с исходным AVR (как и с другими ядрами ARM). С тех пор поддержка AVR32 была прекращена в Linux, начиная с ядра 4.12; Поддержка компилятором архитектуры GCC никогда не была встроена в центральный репозиторий исходного кода компилятора и была доступна в основном в ответвлении, поддерживаемом поставщиком. На момент представления AVR32 компания Atmel уже была лицензиатом архитектуры ARM , причем микроконтроллеры ARM7 и ARM9 были выпущены до и одновременно с AVR32; позже Atmel сосредоточила большую часть усилий на разработке 32-битных чипов с ядрами ARM Cortex-M и Cortex-A .
Архитектура устройства
[ редактировать ]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 — идентификатор порта.
- DDR x : Регистр направления данных, настраивает контакты как входы или выходы.
- PORT x : Регистр выходного порта. Устанавливает выходное значение на контактах, настроенных как выходы. Включает или отключает подтягивающий резистор на контактах, настроенных как входы.
- PIN x : Входной регистр, используемый для чтения входного сигнала. На некоторых устройствах этот регистр можно использовать для переключения контактов: запись логической единицы в бит PIN x переключает соответствующий бит в PORT x независимо от установки бита DDR x . [10]
В более новых 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 сегодня конкурирует. Однако это не совсем регулярно:
- Указательные регистры 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]
Скорость микроконтроллера
[ редактировать ]Линия 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 обладают широким спектром функций:
- Многофункциональные двунаправленные порты ввода-вывода общего назначения с настраиваемыми встроенными подтягивающими резисторами.
- Несколько внутренних генераторов, включая 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 КБ не появляется на внешней шине, и доступ, например, к адресу 0100 16 будет обращаться к внутренней оперативной памяти, а не к внешней шине.
- В некоторых моделях серии XMega внешнее пространство данных было расширено для поддержки как SRAM, так и SDRAM. Кроме того, режимы адресации данных были расширены, чтобы обеспечить прямую адресацию до 16 МБ памяти данных.
- 8-битные и 16-битные таймеры
- Выход ШИМ (некоторые устройства имеют расширенное периферийное устройство ШИМ, которое включает в себя генератор мертвого времени)
- Захват входа, который записывает отметку времени, вызванную фронтом сигнала
- Аналоговый компаратор
- 10 или 12-битные аналого-цифровые преобразователи с мультиплексированием до 16 каналов.
- 12-битные цифро-аналоговые преобразователи
- Разнообразие последовательных интерфейсов, в том числе
- с I²C (TWI) Двухпроводной интерфейс, совместимый
- Синхронные/асинхронные последовательные периферийные устройства ( UART /USART) (используются с RS-232 , RS-485 и др.)
- Шина последовательного периферийного интерфейса (SPI)
- Универсальный последовательный интерфейс (USI): многоцелевой аппаратный коммуникационный модуль, который можно использовать для реализации SPI, [12] я 2 С [13] [14] или УАРТ [15] интерфейс.
- провалов напряжения Обнаружение
- Сторожевой таймер (WDT)
- Несколько энергосберегающих режимов сна
- освещения и управления двигателем ( специфичные для ШИМ ) Модели контроллеров
- CAN -контроллера Поддержка
- USB Поддержка -контроллера
- Ethernet Поддержка контроллера
- ЖК -контроллера Поддержка
- Низковольтные устройства, работающие до 1,8 В (до 0,7 В для деталей со встроенным повышающим преобразователем постоянного тока)
- устройства picoPower
- Контроллеры DMA и периферийная связь «системы событий».
- Поддержка быстрой криптографии для AES и DES.
Интерфейсы программирования
[ редактировать ]Существует множество способов загрузки программного кода в чип AVR. Методы программирования чипов AVR варьируются от семейства AVR к семейству. Большинство описанных ниже методов используют строку RESET для входа в режим программирования. Чтобы избежать случайного перехода микросхемы в такой режим, рекомендуется подключить подтягивающий резистор между выводом RESET и положительным источником питания. [16]
Интернет-провайдер
[ редактировать ]Метод программирования внутрисистемного программирования (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
[ редактировать ]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:
- Атмел-ICE [28] это последняя версия адаптера. Он поддерживает интерфейсы JTAG, debugWire, aWire, SPI, TPI и PDI.
- JTAGICE 3 [29] — отладчик среднего класса семейства JTAGICE (JTAGICE mkIII). Он поддерживает интерфейсы JTAG, aWire, SPI и PDI.
- JTAGICE mkII [30] заменяет JTAGICE и имеет аналогичную цену. JTAGICE mkII подключается к ПК через USB и поддерживает как JTAG, так и новый интерфейс debugWIRE. Многочисленные сторонние клоны устройства Atmel JTAGICE mkII начали поставляться после того, как Atmel выпустила протокол связи. [31]
- АВР Дракон [32] является недорогой (около 50 долларов США) заменой JTAGICE mkII для определенных целевых компонентов. AVR Dragon обеспечивает внутрисистемное последовательное программирование, последовательное программирование высокого напряжения и параллельное программирование, а также эмуляцию JTAG или debugWIRE для деталей с программной памятью 32 КБ или меньше. Компания ATMEL изменила функцию отладки AVR Dragon с помощью последней прошивки AVR Studio 4 — AVR Studio 5, и теперь она поддерживает устройства с программной памятью более 32 КБ.
- Адаптер JTAGICE подключается к ПК через стандартный последовательный порт. [33] Хотя адаптер JTAGICE объявлен компанией Atmel « устаревшим », он по-прежнему поддерживается в AVR Studio и других инструментах.
JTAG также можно использовать для выполнения теста пограничного сканирования . [34] который проверяет электрические соединения между AVR и другими чипами с возможностью периферического сканирования в системе. Граничное сканирование хорошо подходит для производственной линии, а любителям, вероятно, лучше провести тестирование с помощью мультиметра или осциллографа.
Инструменты разработки и оценочные комплекты
[ редактировать ]Официальные инструменты разработки и оценочные комплекты 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 доступно несколько модулей расширения:
- 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/управления двигателем ATmega32M1/C1.
- STK525 — добавлена поддержка микроконтроллеров AT90USB в 64-контактных корпусах TQFP.
- STK526 — добавлена поддержка микроконтроллеров AT90USB в 32-контактных корпусах TQFP.
Стартовый комплект STK200
[ редактировать ]Стартовый комплект и система разработки STK200 имеют разъем DIP , в котором можно разместить чип AVR в 40-, 20- или 8-контактном корпусе. Плата имеет источник тактовой частоты 4 МГц, 8 светодиодов (LED), 8 кнопок ввода, порт RS-232 , разъем для SRAM объемом 32 КБ и множество общих входов/выходов. Чип можно запрограммировать с помощью ключа, подключенного к параллельному порту.
Чип | Размер вспышки | ЭСППЗУ | СРАМ | Частота [МГц] | Упаковка |
---|---|---|---|---|---|
АТ90С1200 | 1 КБ | 64 Б | 0 Б | 12 | ПДИП-20 |
АТ90С2313 | 2 КБ | 128 Б | 128 Б | 10 | ПДИП-20 |
АТ90С/LS2323 | 2 КБ | 128 Б | 128 Б | 10 | ПДИП-8 |
АТ90С/LS2343 | 2 КБ | 128 Б | 128 Б | 10 | ПДИП-8 |
АТ90С4414 | 4 КБ | 256 Б | 256 Б | 8 | ПДИП-40 |
АТ90С/LS4434 | 4 КБ | 256 Б | 256 Б | 8 | ПДИП-40 |
АТ90С8515 | 8 КБ | 512 Б | 512 Б | 8 | ПДИП-40 |
АТ90С/LS8535 | 8 КБ | 512 Б | 512 Б | 8 | ПДИП-40 |
Атмел-ICE
[ редактировать ]Atmel ICE — это поддерживаемый в настоящее время недорогой инструмент для программирования и отладки всех устройств AVR (в отличие от AVRISP/AVRISP mkII, Dragon и т. д., обсуждаемых ниже). Он подключается к ПК и получает питание от него через USB и поддерживает интерфейсы JTAG , PDI , aWire , debugWIRE , SPI , SWD , TPI и UPDI (унифицированный интерфейс программы и отладки Microchip).
ICE может программировать и отлаживать все AVR через интерфейс JTAG, а также программировать с дополнительными интерфейсами, поддерживаемыми каждым устройством:
- 8-битные устройства AVR XMEGA через 2-проводной интерфейс PDI
- 8-битные устройства megaAVR и tinyAVR через SPI для всех с поддержкой OCD (встроенный отладчик)
- 8-битные микроконтроллеры tinyAVR с поддержкой TPI
- 32-битные микроконтроллеры SAM Arm Cortex-M через SWD
Поддерживаются целевые диапазоны рабочего напряжения от 1,62 В до 5,5 В, а также следующие диапазоны тактовых импульсов:
- Поддерживает тактовые частоты JTAG и PDI от 32 кГц до 7,5 МГц.
- Поддерживает скорость передачи данных aWire от 7,5 кбит/с до 7 Мбит/с.
- Поддерживает скорость передачи данных debugWIRE от 4 кбит/с до 0,5 Мбит/с.
- Поддерживает тактовые частоты SPI от 8 кГц до 5 МГц.
- Поддерживает тактовые частоты SWD от 32 кГц до 2 МГц.
ICE поддерживается средой разработки Microchip Studio, а также интерфейсом командной строки (atprogram).
Atmel-ICE поддерживает ограниченную реализацию интерфейса шлюза данных (DGI), когда функции отладки и программирования не используются. Интерфейс шлюза данных — это интерфейс для потоковой передачи данных с целевого устройства на подключенный компьютер. Это полезное дополнение к модулю, позволяющее продемонстрировать функции приложения и помочь в отладке уровня приложения.
AVRISP и 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 все еще находится на складе у ряда дистрибьюторов. Также доступен ряд сторонних клонов.
АВР Дракон
[ редактировать ]Atmel Dragon — недорогой инструмент, который подключается к ПК через USB. Dragon может программировать все AVR через JTAG, HVP, PDI, [37] или ИКСП. 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]
Демонстрационная доска с бабочками
[ редактировать ]Очень популярная демонстрационная плата 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.
БОЧКА [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]
Использование
[ редактировать ]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] мерзости, [46] БазикХ , [47] Дуб Микрос, [48] микроконтроллеры ZX, [49] и мой AVR. [50] Существует также большое сообщество Arduino-совместимых плат, поддерживающих подобных пользователей.
Компания Schneider Electric раньше производила микросхему управления двигателем и движением M3000, включающую ядро Atmel AVR и усовершенствованный контроллер движения для использования в различных приложениях управления движением, но производство было прекращено. [51]
Клоны ПЛИС
[ редактировать ]С ростом популярности FPGA среди сообщества разработчиков программного обеспечения с открытым исходным кодом люди начали разрабатывать процессоры с открытым исходным кодом, совместимые с набором команд AVR. На веб-сайте OpenCores перечислены следующие основные проекты клонов AVR:
- паВР, [52] написанный на VHDL , направлен на создание самого быстрого и максимально функционального процессора AVR за счет реализации методов, отсутствующих в исходном процессоре AVR, таких как более глубокая конвейеризация.
- avr_core, [53] написанный на VHDL , представляет собой клон, максимально приближенный к ATmega103.
- Извини, [54] написан на Verilog , реализует все инструкции Classic Core и нацелен на высокую производительность и низкое использование ресурсов. Он не поддерживает прерывания .
- софтавркор, [55] написан на Verilog , реализует набор инструкций AVR до AVR5, поддерживает прерывания вместе с дополнительным автоматическим подтверждением прерывания, энергосбережение через спящий режим, а также некоторые периферийные интерфейсы и аппаратные ускорители (такие как UART , SPI , циклического избыточного кода блок расчета и системные таймеры ) . Эти периферийные устройства демонстрируют, как их можно подключить и настроить для этого ядра. В пакете также доступен полнофункциональный порт FreeRTOS в качестве примера использования ядра + периферийных устройств.
- Лекция по процессору проекта opencores [56] написанное на VHDL доктором Юргеном Зауэрманном, подробно объясняет, как спроектировать полную систему на базе AVR на кристалле (SoC).
Другие поставщики
[ редактировать ]Помимо чипов производства Atmel, клоны доступны от LogicGreen Technologies. [57] Эти детали не являются точными клонами — у них есть несколько функций, отсутствующих в чипах, «клонами» которых они являются, и более высокие максимальные тактовые частоты, но для программирования используется SWD ( Serial Wire Debug , вариант JTAG от ARM ) вместо ISP. , поэтому необходимо использовать разные инструменты программирования.
Микроконтроллеры, использующие архитектуру ATmega, производятся НИИЭТ в Воронеже , Россия, как часть интегральных схем серии 1887. Сюда входит ATmega128 под обозначением 1887ВЕ7Т ( русский : 1887ВЕ7Т ). [58]
Ссылки
[ редактировать ]- ^ С 1996 года NTH стал частью Норвежского университета науки и технологий (NTNU).
- ^ alfbogen.com блог
- ^ Jump up to: а б Архивировано в Ghostarchive и Wayback Machine : «История АВР» . youtube.com.
- ^ «Школа компьютерных наук и инженерии UNSW — общая информация об AVR» . Cse.unsw.edu.au. Архивировано из оригинала 23 июня 2012 г. Проверено 19 сентября 2012 г.
- ^ Знакомство с Atmel и микроконтроллером AVR. [ постоянная мертвая ссылка ]
- ^ «Встроенные системы и микроконтроллеры» (PDF) . Архивировано из оригинала (PDF) 24 декабря 2004 г. Проверено 1 октября 2018 г.
- ^ Jump up to: а б Миклебуст, Гауте. Совместная разработка микроконтроллера AVR и компилятора C (PDF) . Атмел Норвегия. CiteSeerX 10.1.1.63.1447 . Проверено 19 сентября 2012 г.
- ^ Пресс-релиз Atmel. «Микроконтроллеры Atmel AVR проданы 500 миллионами единиц» .
- ^ Интегральная схема программируемого системного уровня . Архивировано 27 ноября 2012 г. в Wayback Machine .
- ^ atmel.com
- ^ Микросхемы смарт-карт Atmel
- ^ «AVR319: Использование модуля USI для связи SPI» (PDF) . Атмел . 2004. Архивировано (PDF) из оригинала 17 июня 2012 г. Проверено 10 июня 2014 г.
- ^ «Atmel AVR310: Использование модуля USI в качестве I 2 C Master» (PDF) . Atmel . 2013. Архивировано (PDF) из оригинала 14 июля 2014 г. Проверено 10 июня 2014 г.
- ^ «AVR312: Использование модуля USI в качестве I 2 C раб» (PDF) . Atmel . 2005. Архивировано (PDF) из оригинала 14 июля 2014 г. Проверено 10 июня 2014 г.
- ^ «AVR307: полудуплексный UART с использованием модуля USI» (PDF) . Атмел . 2003. Архивировано (PDF) из оригинала 14 июля 2014 г. Проверено 10 июня 2014 г.
- ^ «Аспекты проектирования аппаратного обеспечения AVR» (PDF) (примечания по применению). Корпорация Атмел. Июнь 2015. с. 5. Архивировано (PDF) из оригинала 22 декабря 2014 г. Проверено 14 июня 2015 г.
Линия сброса имеет внутренний подтягивающий резистор, но если окружающая среда зашумлена, его может быть недостаточно, и поэтому сброс может происходить спорадически.
- ^ «Программист AVRDUDE» . Savannah.nongnu.org . Проверено 19 сентября 2012 г.
- ^ «Драйвер программирования PDI» (PDF) . Архивировано (PDF) из оригинала 25 марта 2020 г. Проверено 19 сентября 2012 г.
- ^ «GitHub — ElTangas/Jtag2updi: программное обеспечение UPDI-программатора для Arduino (предназначено для микроконтроллеров Tiny AVR-0/1/2, Mega AVR-0 и AVR-DA/DB)» . Гитхаб . 17 декабря 2021 г.
- ^ «pymcuprog — программист MCU на Python» . Гитхаб . Инструменты микрочипа PIC и AVR. 13 ноября 2022 г. Проверено 18 ноября 2022 г.
- ^ «HVSP_Описание» . Поддержка.atmel.no. Архивировано из оригинала 12 октября 2009 г. Проверено 19 сентября 2012 г.
- ^ «Загрузчик AVR с шифрованием DES» (PDF) . Архивировано (PDF) из оригинала 16 мая 2005 г. Проверено 19 сентября 2012 г.
- ^ «Загрузчик AVR с шифрованием AES» (PDF) . Проверено 19 сентября 2012 г.
- ^ «Загрузчик XMEGA» (PDF) . Проверено 19 сентября 2012 г.
- ^ «Загрузчик USB AVR» (PDF) . Архивировано (PDF) из оригинала 28 июня 2006 г. Проверено 19 сентября 2012 г.
- ^ «Самопрограммирующиеся флэш-микроконтроллеры Atmel» (PDF) . Проверено 12 марта 2020 г.
- ^ «Руководство по пониманию JTAG и предохранителей безопасности AVR» . Проверено 19 сентября 2012 г. [ постоянная мертвая ссылка ]
- ^ «Атмел-ICE — Корпорация Атмел» . Atmel.com . Проверено 11 сентября 2015 г.
- ^ «JTAGICE 3-Корпорация Atmel» . Atmel.com . Проверено 19 сентября 2012 г.
- ^ «АВР JTAGICE mkII» . Атмел . Архивировано из оригинала 15 февраля 2013 года . Проверено 13 января 2013 г.
- ^ «Протокол связи JTAGICE mkII» (PDF) . Архивировано (PDF) из оригинала 16 мая 2005 г. Проверено 19 сентября 2012 г.
- ^ «АВР Дракон» . Атмел . Проверено 13 января 2013 г.
- ^ «Руководство пользователя AVR JTAGICE mkII» (PDF) . microchip.com . Архивировано (PDF) из оригинала 02 июля 2017 г. Проверено 25 марта 2020 г.
- ^ Пресс-релиз JTAGICE, 2004 г. Архивировано 7 июля 2011 г. в Wayback Machine.
- ^ «СТК600» . Атмел . Архивировано из оригинала 15 февраля 2013 года . Проверено 13 января 2013 г.
- ^ «AVRISP mkII в разобранном виде» . Архивировано из оригинала 08.11.2014 . Проверено 8 ноября 2014 г.
- ^ «AVR1005: Начало работы с XMEGA, стр. 7» (PDF) . Атмел. Архивировано (PDF) из оригинала 07 октября 2009 г. Проверено 7 ноября 2011 г.
- ^ «Примечания к выпуску AVR Studio v4.18» . Проверено 19 сентября 2012 г.
- ^ «Технология ЭКРОС – Всадник Дракона» . Ecrostech.com. 2 марта 2008 г. Проверено 19 сентября 2012 г.
- ^ Страница продукта JTAGICE3
- ^ АВР ОДИН! Страница продукта
- ^ АВР Бабочка
- ^ «LUFA (ранее MyUSB)» . Четырехстенный шкаф . Проверено 19 сентября 2012 г.
- ^ см. на сайте avrffreaks.net . Полный список
- ^ «Комфайл Технологии» . Comfile Technology, Inc. Архивировано из оригинала 17 января 2013 года . Проверено 13 января 2013 г.
- ^ «gnusb: USB-сенсорный блок с открытым исходным кодом» . Проверено 13 января 2013 г.
- ^ «БазовыйX» . NetMedia, Inc. Архивировано из оригинала 23 мая 2013 года . Проверено 13 января 2013 г.
- ^ «Добро пожаловать в Oak Micros» . Дуб Микрос . Дуб Микрос. Архивировано из оригинала 25 октября 2012 г. Проверено 13 января 2013 г.
- ^ «ZBasic» . Проверено 13 января 2013 г.
- ^ «мойАВР» . Лазер и Ко. Решения ГмбХ . Проверено 13 января 2013 г.
- ^ «Контроллер движения М3000 на микросхеме» . imshome.com . Шнайдер Электрик Движение США. Архивировано из оригинала 2 декабря 2009 г. Проверено 2 августа 2011 г.
- ^ «pAVR::Обзор» . Открытые ядра . Проверено 19 сентября 2012 г.
- ^ «Ядро AVR :: Обзор» . Открытые ядра . Проверено 19 сентября 2012 г.
- ^ «Обзор клона Navré AVR (8-битный RISC)» . Открытые ядра . Проверено 19 сентября 2012 г.
- ^ «Обзор программного обеспечения AVR Core + интерфейсов» . Открытые ядра . Проверено 16 июня 2020 г.
- ^ «Лекция процессора» . Открытые ядра . Проверено 16 февраля 2015 г.
- ^ «Микроконтроллер LGT8F88A FLASH» . ЛогикаЗеленые технологии. Архивировано из оригинала 29 августа 2017 г. Проверено 18 января 2019 г. , клон ATmega88.
- ^ "Микроконтроллеры" [Microcontrollers] (in Russian). Voronezh: OAO "NIIET". Archived from the original on 22 August 2017 . Retrieved 22 August 2017 .
Дальнейшее чтение
[ редактировать ]- Уильямс, Эллиот (2014). Программирование AVR: учимся писать программное обеспечение для оборудования . Производитель Медиа. ISBN 978-1449355784 .
- Шмидт, Майк (2011). Arduino: Краткое руководство . Прагматичная книжная полка. ISBN 978-1-934356-66-1 .
- Маргуш, Тимоти С. (2011). Требуется некоторая сборка: программирование на языке ассемблера с помощью микроконтроллера AVR . ЦРК Пресс. ISBN 978-1439820643 .
- Мазиди, Мухаммед Али; Наими, Сармад; Наими, Сепер (2010). Микроконтроллер AVR и встроенные системы: использование ассемблера и C. Пирсон. ISBN 978-0138003319 .
Внешние ссылки
[ редактировать ]- Официальный сайт
- Официальное сообщество
- Схемы распиновки
- DIP-пакеты AVR: ATtiny44/45/84/85 , ATmega328P , ATmega644P , ATmega1284P
- AVR SMD-корпусы: ATmega328 , ATmega2560 , ATmega32U4
- Симуляторы