Программирование флеш памяти

Логотип AVR

Различные старые микроконтроллеры AVR: ATmega8 в 28-контактном узком двойном линейном пакете (DIP-28N). ATxmega128A1 в 100-контактном тонком четырехъядерном плоском пакете (TQFP-100). ATtiny45 в 8-контактном малом контурном пакете (SO-8).

ATmega328P в 28-контактный узкий двойной встроенный пакет (DIP-28N). Он обычно встречается на платах Arduino.

AVR-это семейство микроконтроллеров, разработанное с 1996 года компанией Atmel, приобретенное по технологии микрочипов в 2016 году. Это модифицированные 8-битные однокристальные микроконтроллеры Harvard architecture. AVR был одним из первых семейств микроконтроллеров. Использующих встроенную

флэш-память для хранения программ . В отличие от одноразового программируемого ПЗУ, EPROMили EEPROM, используемых другими микроконтроллерами того времени.

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

История

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

Atmel говорит. Что название AVR не является аббревиатурой и не означает ничего конкретного.

Создатели AVR не дают однозначного ответа относительно того. Что означает термин [3] Однако общепринято. Что AVR расшифровывается как lf и процессор RISC компании Vanguard.[4] Обратите внимание. Что использование

Оригинальный AVR MCU был разработан в местном доме ASIC в Тронхейме, Норвегия, который в то время назывался Nordic VLSI. А теперь Nordic Semiconductor, где Боген и Воллан работали в качестве студентов. Он был известен как µRISC (Micro RISC) [5 ] и был доступен в качестве кремниевого IP/строительного блока от Nordic VLSI.

[6] Когда технология была продана Atmel от Nordic VLSI, внутренняя архитектура была дополнительно разработана Богеном и Волланом в Atmel Norway. Дочерней компании Atmel. Разработчики тесно сотрудничали с авторами компиляторов в IAR Systems, чтобы гарантировать, что набор команд AVR обеспечивает эффективную работу компиляция языков высокого уровня.]

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

Полярность линии СБРОСА была противоположной (8051 имеет активный высокий СБРОС. В то время как AVR имеет активный низкий СБРОС), но в остальном вывод был идентичен.

8-битная архитектура микроконтроллера AVR была представлена в 1997 году. К 2003 году Atmel поставила 500 миллионов флэш-микроконтроллеров AVR[8]. Платформа Arduino, разработанная для простых электронных проектов. Была выпущена в 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 K SRAM, 512b EEPROM
    • Номера деталей формы AVRffDxpp. Где ff-размер вспышки. X-семейство. Pp-количество контактов
      • Пример: AVR128DA64 — 64-pin DA-series со вспышкой 128k

    • Асинхронный таймер типа D может работать быстрее. Чем процессор
    • 12-разрядный АЦП, 10-разрядный ЦАП
    • DA-серия (начало 2020 года)
      • интегрированные датчики для емкостного измерения касания (HCI)
      • 28-64-контакты
      • нет внешнего высокочастотного кристалла
    • DB-серия, очень похожая на DA (mid-late 2020)
      • Добавляет 2 или 3 на чипе opamps
      • Многополюсный IO (MVIO) на PORTC
      • Поддерживает внешний HF кристалл
    • Серия DD (еще не выпущена по состоянию на ноябрь 2020 года)
      • вспышка 16-64k
      • 14-32-контактный пакет
      • Поддержка MVIO на 3 или 4 контактах
  • XMEGA – серия ATxmega

    • программная память 16-384 КБ
    • 44-64-100-контактный пакет (А4, А3, А1)

    • 32-контактный пакет: XMEGA-E (XMEGA8E5)
    • Расширенные функции производительности. Такие как DMA,
    • Обширный набор периферийных устройств с АЦП
  • Специфичный для конкретного применения AVR

    • megaAVR со специальными функциями. Которых нет у других членов семейства AVR. Такими как жидкокристаллический контроллер, USB-контроллер. Продвинутый ШИМ, CAN и т. Д.
  • FPSLIC (AVR с ПЛИС)

    • FPGA от 5k до 40k вентилей
    • SRAM для программного кода AVR. В отличие от всех других AVR
    • Ядро AVR может работать на частоте до 50 МГц[9]
  • 32-битные AVR-устройства

    Основная статья: AVR32
    • В 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.

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

Flash, 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-устройства.

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

Фактическая SRAM запускается после этих разделов регистра по адресу 006016 или в устройствах с 16.

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

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

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

Порты GPIO

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

  • DDRx: Регистр направления данных. Настраивает контакты как входы или выходы.
  • ПОРТx: Регистр выходного порта. Устанавливает выходное значение на выводах. Сконфигурированных как выходы. Включает или отключает подтягивающий резистор на контактах. Сконфигурированных в качестве входов.
  • ВЫВОДx: Входной регистр. Используемый для считывания входного сигнала. На некоторых устройствах этот регистр может использоваться для переключения контактов: запись логического бита в бит PINx переключает соответствующий бит в портуx, независимо от установки бита DDR x.[10]

Более новые ATtiny AVR. Такие как ATtiny817 и его братья и сестры. Имеют свои регистры управления портами несколько по-другому определенные. xmegaAVR имеет дополнительные регистры для конфигураций push/pull. Totem-pole и pullup.

EEPROM

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

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

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

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

Обратите внимание. Что стирание и запись могут выполняться отдельно во многих случаях. Байт за байтом. Что также может помочь продлить срок службы. Когда биты должны быть установлены только на все 1s (стирание) или выборочно очищены до 0s (запись).

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

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

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

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

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

  • Указательные регистры X, Y и Z имеют разные возможности адресации.
  • Места регистрации R0 — R15 имеют более ограниченные возможности адресации. Чем места регистрации R16-R31.
  • Порты ввода-вывода от 0 до 31 могут быть битными. В отличие от портов ввода-вывода от 32 до 63.
  • CLR (clear all bits to zero) влияет на флаги. В то время как SER (set all bits to one) не влияет. Даже если они являются дополнительными инструкциями. (CLR является псевдо-op для EOR R. R; в то время как SER является сокращением для LDI R,$FF. Арифметические операции. Такие как EOR. Изменяют флаги. В то время как перемещения/загрузки/магазины/ветви. Такие как LDI. Не изменяют.)
  • Доступ к данным только для чтения. Хранящимся в программной памяти (flash). Требует специальных инструкций LPM; в противном случае шина flash зарезервирована для памяти инструкций.

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

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

Скорость MCU

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

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

Разработка

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-битные D/A преобразователи
  • Различные последовательные интерфейсы. В том числе
    • Совместимый с I2C двухпроводной интерфейс (TWI)
    • Синхронные/асинхронные последовательные периферийные устройства (UART/USART) (используются с RS-232, RS-485и другими)
    • Последовательная шина периферийного интерфейса (SPI)
    • Универсальный последовательный интерфейс (USI): универсальный аппаратный коммуникационный модуль. Который может быть использован для реализации интерфейса SPI,[12] I2C[13][14] или UART[15].
  • Обнаружение браунаута
  • Сторожевой таймер (WDT)
  • Несколько энергосберегающих спящих режимов
  • Модели контроллеров управления освещением и двигателем (ШИМ-специфичные)
  • Поддержка CAN контроллера
  • Поддержка USB-контроллера
    • Правильное полноскоростное (12 Мбит/с) аппаратное и концентраторное управление со встроенным AVR.
    • Также в свободном доступе низкоскоростные (1,5 Мбит/с) (HID) эмуляции bitbanging программного обеспечения
  • Поддержка контроллера Ethernet
  • Поддержка жидкокристаллического контроллера
  • Низковольтные устройства. Работающие до 1,8 В (до 0,7 В для деталей со встроенным преобразователем постоянного тока)
  • Устройства picoPower
  • Контроллеры DMA и периферийная связь
  • Быстрая поддержка криптографии для AES и DES

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

Существует множество способов загрузки программного кода в AVR-чип. Методы программирования микросхем AVR варьируются от семейства AVR к семейству. Большинство методов. Описанных ниже. Используют линию СБРОСА для входа в режим программирования. Чтобы чип случайно не вошел в такой режим. Рекомендуется подключить подтягивающий резистор между выводом СБРОСА и положительным источником питания.]

ISP

6 — и 10-контактный ISP схемы заголовков

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

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

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

PDI

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

UPDI

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

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

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

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

Высоковольтное параллельное программирование (HVPP) считается

Загрузчик

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

ROM

Серии AT90SC AVR доступны с фабричным mask-ROM. А не flash для памяти программы.[24] Из-за большой предварительной стоимости и минимального количества заказа mask-ROM является экономически эффективным только для высокопроизводительных запусков.

aWire

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

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

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

debugWIRE

debugWIRE-это решение Atmel для обеспечения встроенных возможностей отладки через один вывод микроконтроллера. Это особенно полезно для деталей с меньшим количеством контактов. Которые не могут обеспечить четыре JTAGICE mkII. MkIII и AVR Dragon поддерживают debugWIRE. debugWIRE был разработан после оригинального выпуска JTAGICE. И теперь его поддерживают клоны.

JTAG

Функция Joint Test Action Group (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 выпустила протокол связи.]
  4. AVR Dragon[30]-это недорогая (примерно 50 долларов) замена JTAGICE mkII для некоторых целевых деталей. AVR Dragon обеспечивает внутрисистемное последовательное программирование. Высоковольтное последовательное программирование и параллельное программирование. А также эмуляцию JTAG или debugWIRE для деталей с 32 КБ программной памяти или меньше. ATMEL изменила функцию отладки AVR Dragon на последнюю прошивку AVR Studio 4 — AVR Studio 5 и теперь поддерживает устройства с объемом памяти более 32 КБ.
  5. Адаптер JTAGICE взаимодействует с ПК через стандартный последовательный порт.[31] Хотя адаптер JTAGICE был объявлен Atmel окончательным сроком службы

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

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

Совет по развитию Atmel STK500

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

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

Starter kit and development system STK600-это обновление STK500[33]. STK600 использует базовую плату. Плату маршрутизации сигналов и целевую плату.

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

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

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

STK600 позволяет осуществлять внутрисистемное программирование с ПК через USB. Оставляя порт RS-232 доступным для целевого микроконтроллера. 4-контактный заголовок на STK600 с надписью Сигналы RS-232 подключаются к выводам RX. TXи RTS на разъеме DB-9.

STK500 starter kit

Стартовый комплект STK500 и система разработки имеют ISP и высоковольтное программирование (HVP) для всех устройств AVR. Как напрямую. Так и через платы расширения. Доска приспособлена с гнездами погружения для всех AVR имеющихся в пакетах ПОГРУЖЕНИЯ.

Модули расширения 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 starter kit and development system имеет DIP-разъем, в котором может размещаться AVR-чип в 40 -, 20-или 8-контактном корпусе. Плата имеет тактовый источник 4 МГц, 8 светодиодов (LED)s, 8 кнопок ввода, порт RS-232, разъем для 32k SRAM и множество общих входов/выходов. Чип может быть запрограммирован с помощью ключа. Подключенного к параллельному порту.

Поддерживаемые микроконтроллеры (в соответствии с руководством пользователя)
Чип Размер вспышки EEPROM SRAM Частота
[МГц]
Пакет
AT90S1200 64 0 12 PDIP-20
AT90S2313 128 128 10 PDIP-20
AT90S/LS2323 128 128 10 PDIP-8
AT90S/LS2343 128 128 10 PDIP-8
AT90S4414 4k 256 256 8 PDIP-40
AT90S/LS4434 4k 256 256 8 PDIP-40
AT90S8515 512 512 8 PDIP-40
AT90S/LS8535 512 512 8 PDIP-40

AVRISP и AVRISP mkII

AVRISP mkII

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

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

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

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

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

AVR Dragon

Atmel Dragon-это недорогой инструмент. Который подключается к ПК через USB. Дракон может программировать все AVR через JTAG, HVP. PDI,[35] или ICSP. Дракон также позволяет отлаживать все AVR через JTAG. PDI или debugWIRE; предыдущее ограничение на устройства с 32 КБ или менее программной памяти было удалено в AVR Studio 4.18. Дракон имеет небольшую прототипную область, которая может вместить 8, 28 или 40-контактный AVR. Включая соединения с силовыми и программирующими контактами. Нет места для каких-либо дополнительных схем. Хотя это может быть обеспечено сторонним продуктом под названием [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 позволяет выполнять отладку с использованием только одного пин-кода (Reset pin). Что позволяет отлаживать приложения. Работающие на микроконтроллерах с низким количеством пин-кодов.

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

JTAGICE3

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

АВР ОДИН!

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

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

Atmel ATmega169 в 64-pad MLF пакете на задней панели платы Atmel AVR Butterfly board

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

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

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

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

AT90USBKey

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

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

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

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

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

Комплект RAVEN поддерживает беспроводную разработку с использованием чипсетов Atmel IEEE 802.15.4, ZigBee и других беспроводных стеков. Он напоминает пару беспроводных более мощных карт Butterfly. Плюс беспроводной USB-ключ; и стоит примерно столько же (менее $ US100). Все эти платы поддерживают разработку на основе JTAG.

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

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

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

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

Atmel AVR ATmega328 28-pin DIP на плате Arduino Duemilanove

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

AVRs были использованы в различных автомобильных применениях как системы безопасности. Безопасности. Силовой установки и зрелищности. Компания Atmel недавно выпустила новое издание Некоторые текущие использования находятся в BMW. Daimler-Chrysler и TRW.

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

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

Многие компании производят платы микроконтроллеров на основе AVR. Предназначенные для использования любителями. Роботостроителями. Экспериментаторами и небольшими разработчиками систем, включая: Cubloc,[43] gnusb,[44]BasicX,[45] Oak Micros,[46] ZX микроконтроллеры,[47] и myAVR.

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

Клоны ПЛИС

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

  • pAVR, написанный на VHDL, нацелен на создание самого быстрого и максимально функционального AVR-процессора путем реализации методов. Не найденных в оригинальном AVR-процессоре. Таких как более глубокая конвейеризация.
  • avr_core,[51] написанный на VHDL, является клоном. Направленным на то. Чтобы быть как можно ближе к ATmega103.
  • Navré,[52] написанный на Verilog, реализует все классические основные инструкции и нацелен на высокую производительность и низкое использование ресурсов. Он не поддерживает прерывания.
  • softavrcore, написанная на Verilog, реализует инструкцию AVR, настроенную на AVR5 . Поддерживает прерывания и некоторые интерфейсы (такие как UART, SPI и таймеры). Демонстрирующие. Как внешние периферийные устройства подключаются к этому ядру и настраиваются для него.
  • Лекция opencores project CPU[54], написанная на VHDL доктором Юргеном Зауэрманом. Подробно объясняет. Как спроектировать полную систему на базе AVR на чипе (SoC).

Другие производители

В дополнение к чипам. Производимым компанией Atmel. Доступны клоны LogicGreen Technologies.[55] Эти части не являются точными клонами — они имеют несколько функций. Не найденных в чипах. Из которых они являются

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

  1. ^
  2. ^ alfbogen.com блог
  3. ^ b . youtube.com.
  4. ^ . Cse.unsw.edu.au… Архивирован с оригинала 2012-06-23. Извлечено 2012-09-19.
  5. ^ Введение в Atmel и микроконтроллер AVR
  6. ^ (PDF). Архивировано из оригинала (PDF) в 2004-12-24 годах. Извлечено 2018-10-01.
  7. ^ b Миклебуст. Гаут. (PDF). Atmel Норвегия. CiteSeerX 10.1.1.63.1447. Извлечено 2012-09-19.
  8. ^ Пресс-релиз Atmel. .
  9. ^ Полевая программируемая интегральная схема системного уровня , Архивированная 2012-11-27 на машине Wayback
  10. ^ atmel.com
  11. ^ Микросхемы смарт-карт Atmel
  12. ^ (PDF). Atmel, 2004 . Проверено 10 июня 2014года .
  13. ^ 2C (PDF). Atmel, 2013 . Проверено 10 июня 2014года .
  14. ^ 2C (PDF). Atmel, 2005 . Проверено 10 июня 2014года .
  15. ^ (PDF). Atmel, 2003 . Проверено 10 июня 2014года .
  16. ^ (PDF) (примечание к приложению). Корпорация Июнь 2015. стр. 5 . Извлечено 14 июня 2015года . Линия сброса имеет внутренний подтягивающий резистор. Но если окружающая среда зашумлена. Его может быть недостаточно. И поэтому сброс может происходить спорадически.
  17. ^ . Savannah.nongnu.org… Извлечено 2012-09-19.
  18. ^ (PDF). Извлечено 2012-09-19.
  19. ^ . Support.atmel.no. Архивирован с оригинала на 2009-10-12 годы. Извлечено 2012-09-19.
  20. ^ (PDF). Извлечено 2012-09-19.
  21. ^ (PDF). Извлечено 2012-09-19.
  22. ^ (PDF). Извлечено 2012-09-19.
  23. ^ (PDF). Извлечено 2012-09-19.
  24. ^ (PDF). Получено 12 марта 2020года .
  25. ^ . Извлечено 2012-09-19.
  26. ^ . Atmel.com. Проверено 2015-09-11.
  27. ^ . Atmel.com. Извлечено 2012-09-19.
  28. ^ . Атмель. Архивировано с оригинала 15 февраля 2013года . Проверено 13 января 2013года .
  29. ^ (PDF). Извлечено 2012-09-19.
  30. ^ . Атмель. Проверено 13 января 2013года .
  31. ^ (PDF). microchip.com. Извлечено 25 марта 2020года .
  32. ^ Пресс-релиз JTAGICE, 2004 г. Архивирован 2011-07-07 на Wayback Machine
  33. ^ . Атмель. Архивирован с оригинала 15 февраля 2013года . Проверено 13 января 2013года .
  34. ^ . Архивирован с оригинала 2014-11-08. Проверено 2014-11-08.
  35. ^ (PDF). Atmel. Извлечено 7 ноября 2011года .
  36. ^ . Извлечено 2012-09-19.
  37. ^ . Ecrostech.com2008-03-02 . Извлечено 2012-09-19.
  38. ^ Страница продукта JTAGICE3
  39. ^ АВР ОДИН! Страница Продукта
  40. ^ AVR Butterfly
  41. ^ . Четырехстенная Кабинка. Извлечено 2012-09-19.
  42. ^ Видишь avrffreaks.net для полного списка.
  43. ^ . Comfile Technology, Inc. Проверено 13 января 2013года .
  44. ^ . Проверено 13 января 2013года .
  45. ^ . NetMedia, Inc. Архивирован с оригинала 23 мая 2013года . Проверено 13 января 2013года .
  46. ^ . Дуб Микрос. Дуб Микрос. Архивирован с оригинала на 2012-10-25. Проверено 13 января 2013года .
  47. ^ . Проверено 13 января 2013года .
  48. ^ . Laser & Co. Solutions GmbH. Проверено 13 января 2013года .
  49. ^ . imshome.com. Schneider Electric Motion USA. Архивирован с оригинала на 2009-12-02гг. Проверено 2011-08-02.
  50. ^ . Открытыемагазины . Извлечено 2012-09-19.
  51. ^ . Открытыемагазины . Извлечено 2012-09-19.
  52. ^ . OpenCores. Извлечено 2012-09-19.
  53. ^ . OpenCores. Получено 2020-06-16.
  54. ^ . Открытыемагазины . Проверено 2015-02-16.
  55. ^ . LogicGreen Technologies. Архивировано с оригинала на 2017-08-29. Извлечено 2019-01-18, клон ATmega88.
  56. ^ [Microcontrollers] (in Russian). Воронеж: ОАО Архивирован с оригинала 22 августа 2017года . Извлечено 22 августа 2017года .

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

  • AVR Programming: Learning to Write Software for Hardware; Elliot Williams; Maker Media; 474 страницы; 2014; ISBN 978-1449355784
  • Arduino: Краткое руководство по началуработы ; Maik Schmidt; Pragmatic Bookshelf; 276 страниц; 2011; ISBN 978-1-934356-66-1.
  • Требуется некоторая сборка: Программирование на ассемблере с помощью микроконтроллера AVR; Timothy S Margush; CRC Press; 643 страницы; 2011; ISBN 978-1439820643
  • AVR Microcontroller and Embedded Systems: Using Assembly and C; Muhammad Ali Mazidi. Sarmad Naimi. Sepehr Naimi; Pearson; 792 страницы; 2010; ISBN 978-0138003319.

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

На Викискладе есть носители информации, связанные с Atmel AVR.
Официальный Сайт
Официальное сообщество
Схемы распиновки