Найти в Дзене
В мире ИТ 🌌

Все, что нужно знать о микроконтроллерах AVR

Оглавление

Постоянно растущее число разнообразных мобильных приложений - лучший показатель интереса к программированию. Сегодня любой, кто изучает компьютерную разработку, может создавать занимательные и полезные приложения для компьютеров, мобильных телефонов и планшетов. Это может быть что угодно: от прошивок до программного обеспечения для редактирования изображений (не говоря уже о само собой разумеющимся - об играх). Программирование уже давно не ограничивается только приложениями. Сегодня в сети можно найти обширные библиотеки кодов, написанных программистами-любителями, почти для всего, что подключено к сети или работает от батареи. Например, в микроволновой печи можно сменить программное обеспечение таймера, которое контролирует, как долго следует нагревать пищу. Можно с помощью программного обеспечения пультов дистанционного управления существенно расширить или полностью поменять их функционал. Самый яркий пример бытового программируемого устройства, с которым можно с удовольствием поэкспериментировать - робот-пылесос, который постоянно нуждается в обновлении программного обеспечения. Последнее контролирует, как пылесос перемещается, преодолевает препятствия и возвращается к своей зарядной станции. Если пользователь нашел какие-то недостатки и несовершенства в этих процессах, он может, не прибегая к помощи техподдержки, самостоятельно разработать и внедрить как программный патч, так и дополнительный программируемый модуль. Не забудем и о любимых со времен СССР объектах модернизации: радиоприемниках и звонках на входную дверь.

Широко распространённые сегодня микроконтроллеры, микропроцессоры, одноплатные компьютеры, такие как Arduino, Atmega, Raspberry и многие, многие другие, - это решения, которые позволяют всем, от новичков до опытных программистов и любителей электроники, создавать программный код, который работает не только на экране мобильного телефона, планшета или компьютера, в виде игры, приложения, сервиса или утилиты. С помощью микроконтроллеров и микропроцессоров, как объединенных в некую среду - подобно Arduino - или просто оперируя паяльником (причем это достаточно простые операции), модельной платой и набором электронных компонентов, любой желающий может создавать свои собственные проекты бытовой, исследовательской и развлекательной электроники. В настоящее время можно собрать любой действующий проект: от простых световых датчиков и будильников до собственноручно спроектированных мобильных телефонов, радиоуправляемых автомобилей и квадрокоптеров. При этом, сегодня в России развернута сеть кванторуимов, в которых любой желающий может овладеть недостающими знаниями и навыками под руководством опытных преподавателей. Можно действовать и самостоятельно, изучая многочисленные интернет-порталы по программированию. Но тогда вам может не хватить: 1) опыта бесценного общения в кругу людей с близкими вам интересами; 2) возможности участия в конкурсах, фестивалях, квестах, соревнованиях по программируемой электронике; 3) перспективы влиться в крупный проект с разработанным вами концептом, проектом или моделью прорывного предложения в сфере электроники. История приводит нам много примеров, когда одиночка делает прорывное открытие, но до уровня успешного внедрения его всегда доводят как минимум двое - в этом факте вы убедитесь, когда прочтете статью, о этом вам расскажут материалы канала #В мире ИТ. В данной публикации, руководствуясь нашим девизом - "Просто о сложном" - мы начнем рассказ о всем том, о чем необходимо знать для понимания технологий, функционирующих в микроконтроллерах AVR и с их помощью.

-2

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

Блок-схема "Архитектура микроконтроллера AVR"
Блок-схема "Архитектура микроконтроллера AVR"

Означает ли это, что микроконтроллер - это всего лишь другое название #компьютера? Ответ - нет.

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

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

Источник: https://goo-gl.ru.com/3zF
Источник: https://goo-gl.ru.com/3zF

👨🏻‍🎓Историческая справка

AVR micro - это запатентованная линия Atmel Corporation. Компания была приобретена Microchip Technology в 2016 году. Но в целом линейка AVR, семейство микроконтроллеров Atmel, которое включает в себя широкий спектр 8-битных микроконтроллеров, была разработана в 1996 году корпорацией Atmel. Архитектура RISC-ядра для AVR была разработана Альфом Богеном и Вегардом Волланом (вполне в духе Гарри Поттера), двумя студентами Norwegian University of Science and Technology (NTNU) из норвежского города Тронхейма. Альф-Эгиль Боген даже написал диссертацию под названием «Высокоскоростные аналого-цифровые преобразователи в CMOS в 1992 году». Микроконтроллер AVR был разработан на базе норвежской компании ASIC города Тронхейма, в то время называемой Nordic VLSI, а ныне Nordic Semiconductor, где Боген и Воллан проходили практику (вспомните, что мы писали выше об одиночках 🤩, правильный ответ - прорывы совершаются как минимум парочкой энтузиастов. Поэтому - бегом в кванториум). А. Боген и В. Воллан стали основателями дочерней компании Atmel Corporation в Норвегии, продав свою разработку компании Atmel под наименованием μRISC (Micro RISC). AT90S8515 был первым микроконтроллером, основанным на архитектуре AVR, однако первым микроконтроллером, появившимся на коммерческом рынке, стал AT90S1200 в 1997 году.

Микроконтроллеры AT90S8515  и AT90S1200
Микроконтроллеры AT90S8515 и AT90S1200

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

Микроконтроллеры семейства AVR можно разделить на следующие группы:

  • ATxmega: очень мощные процессоры с DMA и т. п.
  • ATmega: большой контроллер AVR с флеш-памятью объемом до 256 Кб в корпусах, оснащенных контактами в количестве от 28 до 100, со встроенным аппаратным усилителем.
  • ATtiny: меньший контроллер AVR с флеш-памятью до 16 Кб в корпусах, оснащенных контактами в количестве от 6 до 32.
  • AT90USB: ATmega со встроенным USB-контроллером.
  • AT90CAN: ATmega с контроллером CAN.
  • Особые типы: некоторые специальные модели, например B. для управления зарядными устройствами, ЖК-дисплеями, а также для управления двигателями или освещением.
  • AT90S: устаревшие модели, "классические" AVR.
  • Наименованием AVR32 Atmel обозначает микропроцессоры с 32-битной RISC-архитектурой с DSP и развитой функциональностью - SIMD. Несмотря на внешнюю схожесть названий и логотипов, у этих двух архитектур мало общего технически.

Итого три линейки: от небольшого ATtiny с ограниченным набором функций до больших моделей ATmega и AT90 со специальными функциями.

Все микроконтроллеры AVR от Microchip (кроме AVR32) имеют номенклатуру ATmega. Компания придерживается следующей схемы именования контроллера на примере ATmega48PA-AU. Название состоит из пяти частей:

  • Серия (в примере: «АТмега»).
  • Число во второй степени (в примере: 4), указывающее размер флэш-памяти в килобайтах (Кб).
  • Еще одно числовое обозначение размером до трех цифр (в примере: 8). Определяет дополнительные функции и количество портов ввода / вывода.
  • Буквенное обозначение размером до двух букв (в примере: PA), обозначающее версию контроллера и энергосберегающую архитектуру.
  • Дефис и еще две буквы, обозначающие дизайн (в примере: AU).
Две буквы после дефиса предоставляют информацию о дизайне.
Две буквы после дефиса предоставляют информацию о дизайне.

Нумерация модулей ATtiny гораздо более запутанная, чем в серии ATmega. Как и в случае с ATmega, первая цифра указывает размер флэш-памяти.

Сравним некоторые из упомянутых выше серий микроконтроллеров AVR:

Сравнение серий микроконтроллеров AVR
Сравнение серий микроконтроллеров AVR

🛅Особенности микроконтроллеров AVR

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

-8

AVR - это 8-битный микроконтроллер, принадлежащий к семейству компьютеров с сокращенным набором команд (RISC). В общих чертах архитектура процессоров RISC представляет собой такой набор команд компьютера, который ориентирован не только на их количественное сокращение, но также на упрощение и увеличение скорости работы. Другой тип категоризации архитектур процессоров - это CISC (компьютеры со сложным набором команд).

Обозначение "8-битный" означает, что микроконтроллер может передавать и принимать данные, не превышающие 8-битный размер. Микроконтроллер также оснащен 8-битными регистрами ввода / вывода. Контроллеры семейства AVR имеют архитектуру на основе регистров, что означает, что оба операнда операции и результат операции сохраняются в регистре. Ниже на рисунке показан пример выполнения логической операции ИЛИ между двумя входными регистрами и сохранения значения в выходном регистре.

Блок-схема выполнения операции ИЛИ между двумя входными регистрами и сохранения значения в выходном регистре. Источник: https://goo-gl.ru.com/3zJ
Блок-схема выполнения операции ИЛИ между двумя входными регистрами и сохранения значения в выходном регистре. Источник: https://goo-gl.ru.com/3zJ

ЦПУ (CPU) принимает значения одного из двух входных регистров INPUT-1 и INPUT-2, выполняет логическую операцию и сохраняет значение в регистре OUTPUT. Все это происходит за один цикл.

🛅Архитектура AVR

Микроконтроллеры AVR включают в себя ядро ​​AVR (микропроцессор), программную память (Flash-ROM) (пространство для программ) - центральный процессор и флэш-память небольшой емкости объединены в одну микросхему, SRAM (пространство данных), энергонезависимая память EEPROM (пространство данных резервного копирования) и различные периферийные устройства в одном корпусе. Каждое периферийное устройства обрабатывает связанный с ней регистр. В некоторых моделях есть возможность добавить внешнюю параллельную шину, чтобы обеспечить память для дополнительных данных, кода или устройств отображения. Все они имеют последовательные интерфейсы, которые можно использовать для подключения последовательных EEPROM или Flash-ROM процессоров. Среди встроенных функций можно отметить аналого-цифровые преобразователи, мультиплексоры, счетчики, UART / USART , TWI, ISP, SPI, встроенный генератор, драйверы ЖК-дисплея, компараторы напряжения, регистры широтно-импульсной модуляции и многое другое. Периферийные устройства, существующие в семействе микроконтроллеров AVR:

  • Память EEPROM (управляется как устройство).
  • 8- и 16-битные таймеры с «сравнением совпадения» (прерывание при достижении выбранного значения) и режимом ШИМ .
  • Асинхронный последовательный интерфейс UART (rxd, txd).
  • Синхронный последовательный интерфейс SPI (miso, mosi, sck, SS).
  • Последовательный интерфейс TWI (совместим с I 2 C (2 провода))
  • Последовательный интерфейс 1-Wire (1 провод)
  • Порты ввода / вывода (PIO) со встроенными подтягивающими резисторами .
  • Внутренний генератор
  • Отдельный генератор для часов RTC
  • 10-битный аналого-цифровой преобразователь
  • Аналоговый компаратор

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

Микроконтроллеры AVR основаны на усовершенствованной архитектуре RISC и состоят из 32 x 8-битных рабочих регистров общего назначения. В течение одного тактового цикла AVR может принимать входные данные из двух регистров общего назначения и помещать их в ALU для выполнения запрошенной операции, а также передавать результат обратно в произвольный регистр. ALU может выполнять арифметические и логические операции. Операции могут выполняться между любыми регистрами и могут храниться в любом из них.

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

Двоичный программный код выполняется непосредственно из флэш-памяти и в результате, особенно в версиях для низких напряжений питания (ниже 3,3 В), ядро ​​процессора имеет сравнительно низкие максимальные тактовые частоты, в основном менее 10 МГц. Поскольку частота соответствует IPS почти 1:1, максимум составляет 10 MIPS. Не все регистры имеют одинаковый объем производительности. Типы Tiny в очень маленьком корпусе SOT23-6 (ATtiny4, ATtiny5, ATtiny9 и ATtiny10) имеют всего 16 регистров.

❗Таким образом, ядро AVR имеет следующие характеристики:

  • гарвардская 8-битная RISC-архитектура. Это позволяет выполнять программу с точностью до одного MIPS на МГц, т.е. один миллион инструкций в секунду и МГц;
  • 32 регистра вычислений, разделенных на 2 подмножества;
  • регистры с r0 по r15 не позволяют работать с немедленными значениями;
  • и регистры с r16 по r31 позволяют это;
  • набор от 90 до 135 инструкций (в зависимости от компонента);
  • большинство инструкций (кроме инструкций перехода или доступа к памяти) выполняются за один цикл работы процессора. Архитектура AVR реализует конвейер, который позволяет выполнять одну инструкцию за такт. Таким образом, ядро ​​AVR достигает примерно 1 Mips / MHz;
  • ядро AVR оптимизировано для выполнения кода, созданного компилятором языка C;
  • ядро AVR имеет три 16-битных указателя X, Y и Z, отображенных в 8-битные регистры с r26 по r31 (X = r26 + r27, Y = r28 + r29 и Z = r30 + r31). Эти три указателя позволяют выполнять различные типы индексации (непрямой, косвенный со смещением) с предварительным или пост-инкрементом или без него;
  • периферийные устройства доступны в адресном пространстве, размещенном между регистрами и SRAM (доступным среди прочего с помощью инструкций ld и st ), есть и более оптимальные пути доступа к периферийным устройствам;
  • регистры с r0 по r31 отображаются в пространство RAM (адреса от 0 до 31), что позволяет получить к ним доступ через X, Y и Z;
  • связи многочисленны и позволяют реализовать все сценарии;
  • набор инструкций спроектирован таким образом, что, хотя ядро ​​8-битное, очень легко выполнять вычисления на 16, 24 или 32 битах (и т. д.);
  • в зависимости от комплектующих устанавливается аппаратный усилитель (2 цикла);
  • большинство компонентов AVR полностью статичны, то есть не существует нижнего предела тактовой частоты, необходимого для правильной работы;
  • компоненты AVR имеют в среднем около пятнадцати прерываний (в зависимости от встроенных периферийных устройств) с фиксированным приоритетом;
  • ядро AVR имеет 16-битный указатель стека (для компонентов, оснащенных SRAM (95% компонентов)).
Блок-схема архитектуры памяти в AVR. Источник:  https://goo-gl.ru.com/3zK
Блок-схема архитектуры памяти в AVR. Источник: https://goo-gl.ru.com/3zK

Программная память (Flash-ROM)

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

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

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

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

Адресное пространство данных состоит из файла регистра, регистров ввода-вывода и SRAM.

Хотя размер флэш-памяти (программной памяти) указывается непосредственно в названии, размер RAM и EEPROM можно только косвенно вывести из этого числа, в результате чего обычно компоненты с большой флэш-памятью также имеют больше RAM и EEPROM, чем меньшие. Примерные размеры:

Размер памяти AVR
Размер памяти AVR

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

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

В большинстве вариантов архитектуры AVR рабочие регистры отображаются в первые 32 адреса памяти ( 0x 0000-0x001F), за которыми следуют 64 регистра ввода-вывода (0x0020-0x005F).

Фактическая SRAM начинается после этих регистров (адрес 0x0060). Пространство регистров ввода-вывода может быть больше на некоторых более сложных устройствах, поэтому используется часть SRAM.

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

EEPROM

Почти все микроконтроллеры AVR имеют внутреннюю «Electrically Erasable Programmable Read Only Memory» (EEPROM, дословно - электрически стираемую программируемую постоянную память для чтения) для полупостоянного хранения данных: как и флэш-память, EEPROM сохраняет данные при отключении питания.

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

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

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

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

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

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

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

  • Регистры указателя X, Y и Z имеют разные варианты адресации.
  • Ячейки регистров с R0 по R15 имеют разные варианты адресации, отличающиеся от ячеек регистров с R16 по R31.
  • Возможности адресации портов ввода-вывода с 0 по 31 отличаются от возможностей адресации портов ввода-вывода с 32 по 63.
  • CLR влияет на флаги, в отличие от SER, хотя это точные обратные утверждения. CLR устанавливает все биты в ноль, а SER устанавливает все биты в единицу.

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

В основном регулярный набор инструкций делает программирование с помощью компиляторов C (или даже Ada) довольно простым.

Скорость

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

Поскольку все операции с регистрами R0-R31 используют один цикл, AVR может достигать 1 MIPS (миллиона инструкций в секунду) на МГц. Загрузка и сохранение в память и из памяти занимает 2 цикла, разветвление занимает три цикла.

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

Микроконтроллер оснащен системой ICP (внутрисхемное программирование), также называемой ISP (внутрисистемное программирование), которая обеспечивает возможность записи и чтения во встроенную Flash-ROM и EEPROM через последовательный интерфейс.

6-пиновый или 10-пиновый соединительный разъем ISP. Источник: https://goo-gl.ru.com/3zL
6-пиновый или 10-пиновый соединительный разъем ISP. Источник: https://goo-gl.ru.com/3zL

Наиболее распространенным языком программирования, который используется для микроконтроллеров AVR, является язык C. Также могут использоваться BASIC, Pascal и Assembly. Чаще всего используется процедурный C, поскольку он быстро кодируется и не является символическим машинным языком, который трудно освоить и запомнить. Набор команд процессора микроконтроллера AVR изначально разрабатывался с учетом особенностей языка C. Atmel также предлагает пользователям бесплатное программное обеспечение AVR Studio для отладки и написания программ. AVR Studio также может имитировать работу программы. Итоговый программный код может быть передан в микроконтроллер с помощью эмулятора JTAG.

Сегодня существует большое количество бесплатных инструментов разработки, таких как инструменты GNU, портированные для кросс-компиляции AVR WinAVR или avr-gcc, AVR-LibC.

Официальные средства разработки для AVR от Atmel:

  • STK600 starter kit
  • STK500 starter kit
  • STK200 starter kit
  • AVRISP and AVRISP mkII
  • AVR Dragon
  • USBasp - USB
  • JTAGICE mkI
  • JTAGICE mkII
  • JTAGICE3
  • ATMEL-ICE
  • AVR ONE!
  • Butterfly demonstration board
  • AT90USBKey
  • Raven wireless kit

Также существует много сторонних средств, особенно любительских.

Общий обзор компиляторов AVR и производителей
Общий обзор компиляторов AVR и производителей

Существуют также, что довольно необычно для микроконтроллеров, проприетарные компиляторы BASIC BASCOM и LunaAVR .

Поддерживаемые языки
Поддерживаемые языки

Среда Microsoft Windows AVRstudio, предоставляемая Atmel, в сочетании с WinAVR (версия avr-gcc для win32) позволяет программировать на языке C бесплатно и без каких-либо ограничений.

Для AVR удобно использовать также компилятор Pascal (E-LAB Pascal-scm), он применяет синтаксис, близкий к Turbo Pascal.

Программные среды FreeBSD, GNU-Linux или MacOS X, avr-gcc (компилятор C) и uisp, avrdude позволяют создавать программы для микроконтроллеров AVR. Также существует адаптация libc 1.

Представлены также бесплатные продукты, но с ограничением до 4Ko для разработки на C, Pascal или Basic 2. Они объединяют ряд библиотек для упрощения кодирования приложений, а также полные аппаратные среды для создания прототипов.

На рынке есть много программаторов, интерфейсных инструментов, позволяющих прошивать программную память (Atmel STK-200, 300, 400, 500, 600 или другие), а также множество решений в интернете, позволяющих выполнить процедуру полностью самостоятельно.

Доступны три типа интерфейса: ISP для прошивки только памяти, интерфейсы, JTAG и DebugWIRE (in) (отладка по сети), используемые для прошивки и отладки непосредственно из AVRStudio. Интерфейс ISP присутствует на всех микроконтроллерах Atmel, наличие интерфейсов JTAG и DebugWire зависит от линейки микроконтроллеров.

Для управления микроконтроллером AVR достаточно подключить заземление и выводы Vcc к потенциалам 0 и 5 В (например) и поставить подтягивающий резистор на вывод сброса (сопротивление 10 кОм). между контактом сброса и vcc). Если компонент не имеет внутреннего генератора или если требуется точная частота, то необходимо добавить внешний генератор (в основном кварцевый).

Платы разработки

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

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

Новички особенно ценят так называемые платы разработки или оценки, которые включают периферийные устройства (светодиоды, переключатели и т.д.) в дополнение к AVR. Atmel предлагает официальные платы (STK200, STK500, STK600), которые достаточно универсальны. Существуют отдельные платы для специальных типов микроконтроллера. Наиболее популярны:

  • Стартовый комплект 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 включают ISP и программирование высокого напряжения (HVP) для всех устройств AVR, напрямую или через платы расширения. Плата оснащена разъемами DIP для всех AVR, доступных в корпусах DIP.
  • STK200 имеют разъем DIP, на который можно установить микросхему AVR в 40-, 20- или 8-пиновом корпусе. Плата имеет 4 МГц-овый источник тактовых импульсов, 8 светоизлучающих диодов (СИД), 8 входных кнопок, RS-232 порт, разъем для 32k SRAM и многочисленные разъемы общего ввода / вывода. Микросхема может быть запрограммирована с помощью ключа, подключенного к параллельному порту.
  • AVRISP и AVRISP mkII - недорогие инструменты, позволяющие программировать всю линейку микроконтроллеров AVR через ICSP. AVRISP подключается к ПК через последовательный порт и получает питание от целевой системы. AVRISP позволяет использовать любую из «стандартных» распиновок ICSP, 10-пиновый или 6-пиновый разъем. AVRISP mkII подключается к ПК через USB и получает питание через USB. Светодиоды, видимые через полупрозрачный корпус, показывают состояние целевой мощности.
  • Atmel Dragon - подключается к ПК через USB. Dragon может программировать все AVR через JTAG, HVP, PDI или ICSP. Dragon также позволяет производить отладку всех AVR через JTAG, PDI или debugWire. У Dragon есть небольшая зона для прототипов, в которой можно разместить 8-, 28- или 40-контактный AVR, включая соединения с питанием и контактами программирования.
  • AVR Butterfly - это автономный компьютер с батарейным питанием, на котором установлен микроконтроллер Atmel AVR ATmega169V. Плата включает в себя ЖК-экран, джойстик, динамик, последовательный порт, часы реального времени (RTC), микросхему флэш-памяти, а также датчики температуры и напряжения. Более ранние версии AVR Butterfly также содержали фоторезистор CdS. AVR Butterfly поставляется с предустановленным программным обеспечением для демонстрации возможностей микроконтроллера. Заводская прошивка может прокручивать ваше имя, отображать показания датчиков и показывать время. AVR Butterfly также имеет пьезоэлектрический преобразователь, который можно использовать для воспроизведения звуков и музыки. AVR Butterfly демонстрирует управление с помощью ЖК-дисплея на 14-сегментном шести буквенно-цифровом дисплее. Процессор ATmega169 от Butterfly способен развивать скорость до 8 МГц, но программно установлен на 2 МГц, чтобы продлить срок службы батареи. Предустановленная программа загрузчика позволяет перепрограммировать плату через стандартный последовательный разъем RS-232.

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

💎Практическое применение микроконтроллеров AVR

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

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

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

Образование. Микроконтроллер ATmega128 чаще всего используется в образовательных целях.

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

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

Промышленные электронные системы. System Semiconductor, Inc. производит M3000 Motor and Motion Control, которая включает в себя ядро ​​Atmel AVR и Advanced Motion Controller.

Плата Arduino Uno с микроконтроллером ATmega328.
Плата Arduino Uno с микроконтроллером ATmega328.

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

Подведем итоги. Для тех, кто уже имеет опыт взаимодействия с микроконтроллерами AVR, возможно, ничего нового в статье нет. Прекрасно, особенно, если вы читаете этот абзац - значит, публикация получила достойную порцию вашего внимания. Надеемся, что те, кто только вступает на путь программирования микроконтроллеров и с помощью микроконтроллеров, или же уже прошел какой-то его отрезок, статью прочтут не только с интересом, но и с пользой. И, конечно, публикации и видео по теме программной разработки с применением микроконтроллеров на канале #вмиреит продолжатся. Следите за анонсами 🌀

-17

Микроконтроллер Atmega8

Искусственный интеллект: мифы и реальность

Новая Sony PlayStation 5 появится в ноябре

Новый процессор от Qualcomm поддерживает протокол 5G для бюджетных смартфонов

✋технологий будущего: реальность или иллюзия?

Системы контроля и управления доступом для коммерческого предприятия

-18