Как начать программировать микроконтроллеры AVR с нуля. Какие инструменты нужны для программирования AVR. Как установить среду разработки и написать первую программу для AVR. Как прошить программу в микроконтроллер AVR. Какие проекты можно реализовать на AVR для начинающих.
Что такое микроконтроллеры AVR и почему их стоит изучать
Микроконтроллеры AVR — это популярное семейство 8-битных микроконтроллеров, разработанное компанией Atmel (сейчас входит в состав Microchip). AVR микроконтроллеры широко используются в электронных устройствах и системах управления благодаря следующим преимуществам:
- Высокая производительность при низком энергопотреблении
- Богатый набор периферийных устройств (таймеры, АЦП, интерфейсы и др.)
- Удобные инструменты разработки и обширная документация
- Низкая стоимость и доступность
- Возможность программирования на языке C
Изучение AVR микроконтроллеров позволит вам создавать различные электронные устройства — от простых светодиодных мигалок до сложных систем управления. Это отличная платформа для освоения микроконтроллеров и встраиваемых систем.

Необходимое оборудование и программное обеспечение для начала работы с AVR
Чтобы начать программировать AVR микроконтроллеры, вам потребуется следующее:
Аппаратное обеспечение:
- Отладочная плата с AVR микроконтроллером (например, Arduino Uno на ATmega328P)
- Программатор AVR (например, USBasp или AVR ISP)
- USB-кабель для подключения программатора к компьютеру
- Макетная плата и провода для прототипирования
- Базовые электронные компоненты (светодиоды, резисторы, кнопки и т.д.)
Программное обеспечение:
- Среда разработки Microchip Studio (бывшая Atmel Studio)
- Драйверы для программатора
- Компилятор AVR-GCC
- Утилита AVRDUDE для прошивки микроконтроллера
Это базовый набор, который позволит вам начать изучение AVR. По мере освоения вы сможете расширять его дополнительными компонентами и инструментами.
Установка и настройка среды разработки Microchip Studio
Microchip Studio (ранее Atmel Studio) — это интегрированная среда разработки (IDE) для микроконтроллеров AVR. Рассмотрим процесс ее установки и настройки:

- Скачайте последнюю версию Microchip Studio с официального сайта Microchip
- Запустите установщик и следуйте инструкциям мастера установки
- При выборе компонентов убедитесь, что выбраны AVR 8-bit MCU и AVR Toolchain
- После завершения установки запустите Microchip Studio
- Перейдите в Tools > Device Programming и выберите свой программатор и микроконтроллер
- Нажмите Apply, чтобы сохранить настройки
Теперь среда разработки готова к использованию. Рекомендуется также установить дополнительные библиотеки, например, AVR Libc для расширения возможностей программирования.
Создание первого проекта и написание простой программы для AVR
Давайте создадим простой проект для мигания светодиодом на отладочной плате AVR:
- В Microchip Studio выберите File > New > Project
- Выберите шаблон GCC C Executable Project и укажите имя проекта
- Выберите целевое устройство (например, ATmega328P)
- В файле main.c введите следующий код:
«`c
#include

Этот код заставит светодиод, подключенный к пину PB5, мигать с интервалом в 1 секунду. После написания кода выполните следующие шаги:
- Скомпилируйте проект, выбрав Build > Build Solution
- Подключите отладочную плату к программатору
- Выберите Tools > Device Programming и нажмите кнопку Program
Если все сделано правильно, вы увидите мигающий светодиод на вашей отладочной плате. Поздравляем с первой программой для AVR!
Основы работы с портами ввода-вывода в AVR микроконтроллерах
Порты ввода-вывода — это основной способ взаимодействия микроконтроллера с внешним миром. В AVR микроконтроллерах каждый порт представлен тремя регистрами:
- DDRx — регистр направления данных (0 — вход, 1 — выход)
- PORTx — регистр выходных данных
- PINx — регистр входных данных
Где x — буква порта (A, B, C, D и т.д.)
Пример настройки пина на выход и установки высокого уровня:
«`c DDRB |= (1 << PB5); // Настраиваем PB5 на выход PORTB |= (1 << PB5); // Устанавливаем высокий уровень на PB5 ```
Пример настройки пина на вход с подтягивающим резистором и чтение состояния:
«`c DDRB &= ~(1 << PB0); // Настраиваем PB0 на вход PORTB |= (1 << PB0); // Включаем подтягивающий резистор if (PINB & (1 << PB0)) { // Кнопка не нажата } else { // Кнопка нажата } ```
Освоение работы с портами ввода-вывода — ключевой навык в программировании микроконтроллеров AVR.

Использование таймеров и прерываний в AVR проектах
Таймеры и прерывания — важные инструменты для создания точных по времени событий и реакции на внешние сигналы. Рассмотрим пример использования таймера для генерации прерывания каждую секунду:
«`c
#include
Этот код настраивает Timer1 для генерации прерывания каждую секунду. В обработчике прерывания увеличивается счетчик секунд. Использование таймеров и прерываний позволяет создавать более сложные и точные по времени проекты.
Работа с АЦП и ЦАП в микроконтроллерах AVR
Аналого-цифровой преобразователь (АЦП) позволяет измерять аналоговые сигналы, а цифро-аналоговый преобразователь (ЦАП) — генерировать их. Рассмотрим пример использования АЦП для измерения напряжения:
«`c
#include Этот код инициализирует АЦП и позволяет считывать значения с выбранного канала. АЦП широко используется для измерения различных физических величин с помощью датчиков. Управление сервоприводом — хороший пример практического применения AVR. Сервопривод управляется ШИМ-сигналом с периодом 20 мс и длительностью импульса от 1 до 2 мс. Рассмотрим пример кода для управления сервоприводом: «`c
#include Этот код инициализирует Timer1 для генерации ШИМ-сигнала и позволяет устанавливать угол поворота сервопривода. В основном цикле сервопривод поворачивается на углы 0°, 45°, 90°, 135° и 180° с паузой в 1 секунду между поворотами. Данная книга — это практический самоучитель по микроэлектронике и микроконтроллерам для начинающих конструкторов, а также для широкого круга инженеров, мастеров по ремонту электроники и всех желающих расширить свои знания в этой области. Вместе с этой книгой за шесть шагов читатель пройдет путь от «чайника», изучающего азы цифровой техники, до вполне готового специалиста, умеющего самостоятельно разрабатывать схемы любых устройств на микроконтроллерах и самостоятельно писать для них программы. На виртуальном диске, который служит дополнением к печатному изданию, размещены тексты всех программных примеров, рассмотренных в книге, и видеоуроки. В них вы можете увидеть все этапы разработки, отладки, прошивки и опробования программ. Приводится подробный справочник по микроконтроллерам AVR, ссылки на инсталляционные пакеты инструментальных программ: AVR Studio, НР Info Tech, GСС, РопуРrog, Khazama AVR Ргоgramme, FUSE-калькулятор.Создание проекта управления сервоприводом на базе AVR
от азов программирования до создания практических устройств. 2-е изд.+ виртуальный диск с видеокурсами»
Изучив принципы передачи цифровых сигналов и базовые элементы цифровой логики, читатель получит основные понятия об архитектуре микропроцессорной системы. Затем читатель подробно изучит возможности семейства микроконтроллеров AVR, и далее основы схемотехники и конструирования микроэлектронных устройств. Обучение программированию для микроконтроллеров ведется на примере двух самых популярных языков: языке Ассемблера и языке СИ. Читатель научится составлять программы, транслировать, отлаживать, прошивать их в память микроконтроллера, и правильно опробовать их в работе. Для широкого круга читателей-радиолюбителей, начинающих конструкторов, студентов технических ВУЗов и техникумов.
Автор | Белов А.В. |
Название | Микроконтроллеры AVR: от азов программирования до создания практических устройств. 2-е изд.+ виртуальный дискс видеокурсами |
ISBN | 978-5-94387-982-1 , 978-5-94387-874-9 |
Год издания | 2017 |
Формат | 70*100 1/16 |
Количество страниц | 544 |
Переплет/обложка | обложка |
Издательство | «Наука и Техника» |
Издательство | Наука и Техника |
Формат | 70×100/16 (165×233 мм) |
Переплет/обложка | мягкая обложка |
Год издания | 2017 |
ISBN | 978-5-94387-982-1 |
Автор | Белов А.![]() |
Похожие товары
1 260 руб
Книга: Брайан Хуанг, Дерек Ранберг «Arduino для изобретателей. Обучение электронике на 10 занимательных проектах»
1 212 руб
Книга «Электроника: логические микросхемы, усилители и датчики для начинающих»
653 руб
Книга: Шустов М.А. «Основы силовой электроники, 2-е изд.»
РВК
Авторизация
Для совершения этого действия необходимо
авторизоваться в проекте
Спасибо
Интеллектуальный партнер
+14
Я знаю клуб
ChipEnable
http://chipenable. ru/
Описание
Клуб посвященный электронике, микроконтроллерам и embedded программированию для начинающих.
Программирование микроконтроллеров AVR на Си в среде IAR Embedded Workbench, WinAvr, CodeVision.
С автором ожно связаться через социальные сети: vk.com/id10186935
Проекты клуба
Модуль приемника ИК сигналов на ATtiny
Указатель поворотов
AVR USB программатор на FT232
Самый дешевый двухканальный USB осциллограф в галактике
Робот своими руками. ИК бампер
Миниатюрный USBASP
Заметные персоны
Павел Бобков
Модуль приемника ИК сигналов
Предлагаю вам несложное устройство, позволяющее управлять нагрузками с помощью инфракрасного пульта дистанционного управления. Устройство рассчитано на пульты работающие по протоколу фирмы NEC. Я бы сделал его более универсальным, но у меня не было под рукой других пультов. Схема устройства предельно проста и при наличии деталей собирается за один вечер.
Схема
Работу по декодированию ИК сигналов выполняет микроконтроллер ATtiny13. Он тактируется от внутреннего генератора частотой 128 кГц, что сделано для уменьшения энергопотребления. При программировании прошивки нужно выставить соответствующие fuse биты и отключить бит делителя тактовой частоты, иначе устройство не заработает. Значения fuse битов приведены на картинке ниже.
Для приема ИК сигналов используется микросхема фирмы Vishay — TSOP4836. Она рассчитана на несущую частоту ИК сигнала — 38 кГц. Согласно описанию, имеет хорошие характеристики — низкое потребление и устойчивую работу в присутствии помех, как то излучение люминесцентных ламп и постоянных источников света. Естественно, вместо этой микросхемы можно применить ИК приемник другой фирмы. Главное, чтобы он был рассчитан на ту же несущую частоту.
Для управления нагрузками задействованы 3 вывода микроконтроллера. Каждый из выводов можно назначать на произвольную кнопку ИК пульта. Назначенные кнопки сохраняются во внутренней памяти микроконтроллера и не меняют своего значения после выключения питания.
На данной схеме управляемые выводы просто подключены к контактным площадкам. Это сделано для того, чтобы не привязываться к каким-то конкретным типам нагрузок. Поскольку выходы у микроконтроллера «слабенькие», напрямую к плате можно подключить разве что светодиоды, для мощных нагрузок требуется согласующая плата. В зависимости от приложения, это может быть плата с транзисторными ключами, реле, симисторами и т.д.
Для индикации режима работы устройства, используется один светодиод. Он загорается, когда устройство переходит в режим программирования и гаснет в режиме нормальной работы.
Устройство питается от 5-и вольтового источника питания.
Программирование кнопок
Для назначения управляющих кнопок существует режим программирования. Устройство переводится в этот режим следующим образом.
Нажимаем и удерживаем любую кнопку пульта в течении нескольких секунд. Когда заморгает светодиод, отпускаем кнопку и ждем несколько секунд. Если в течении этого времени кнопки пульта не будут нажиматься и удерживаться, устройство перейдет в режим программирования. При этом индикатор перестает моргать, а начинает светиться постоянно. Если эти условия не будут соблюдены, устройство выключит светодиод и снова перейдет в режим приема команд.
Когда устройство перешло в режим программирования все выходы выключатся. Назначение управляющих кнопок в этом режиме осуществляется в следующем порядке:
1-е нажатие — 1-й выход
2-е нажатие — 2-й выход
3-е нажатие — 3-й выход
После назначения третьей кнопки устройство погасит светодиод и перейдет в нормальный режим работы.
Файлы
Учебное пособие по AVRдля начинающих — Учебное пособие по AVR Atmel
Эта серия учебных пособий разработана специально для начинающих. Если вы новичок и хотите поиграть с крутыми электронными вещами, то вы найдете это очень полезным. Эта серия руководств по AVR для начинающих охватывает всю информацию о микроконтроллерах. Я также сосредоточусь на проектах, и вместе мы будем делать различные проекты, используя концепции. Кроме того, я попытаюсь объяснить о различных типах проблем, с которыми обычно сталкиваются, когда вы новичок. Просто оставайтесь и получайте удовольствие. 9
- Отладочная плата AVR
- Микроконтроллер Atmega16
- Программатор USB-ASP
- ЖК-модуль 16×2
- Jumper Wire
AVR Development Board
16×2 LCD
USB ASP Programmer
Atmega 16
Перемычка
Поскольку большинство микроконтроллеров запрограммировано на языке C, я бы посоветовал вам иметь некоторые базовые знания языка программирования C . Если вы понятия не имеете о языке C, пожалуйста, изучите его до Loop, а затем возвращайтесь. Кроме того, я бы порекомендовал узнать о базовом преобразовании чисел (из шестнадцатеричных-десятичных-двоичных) для лучшего понимания статей.
Чтобы дать общее представление о микроконтроллере, микроконтроллер рассматривается как КОМПЬЮТЕР НА ЧИПЕ . Это означает, что все периферийные устройства и микропроцессор интегрированы в сам чип. Эти устройства включают память, таймер/счетчик, порты ввода-вывода, аналого-цифровой преобразователь. Микроконтроллеры обычно предназначены только для конкретной задачи. Масштаб и применение микроконтроллеров невообразимы. Вы можете найти их в микроволновых печах, автомобилях, телевизорах и т. д. Как и компьютер, микроконтроллер может выполнять набор инструкций в виде программы. Язык программирования, который я буду использовать – C. 9.0003
Atmega, 16-контактная схема
AVR Atmega 16 Микроконтроллер с низким энергопотреблением и высокой производительностью. Atmega 16 может работать на максимальной частоте 16 МГц. с помощью внешнего кварцевого генератора. Максимальная внутренняя частота у него составляет 8 МГц. У него 16Кб флэш-памяти, поэтому он и называется Atmega 16. Интересно, сколько памяти должно быть у Atmega 32? Atmega 16 — микроконтроллер с 40 выводами. 32 различных линии ввода/вывода разделены на 4 разных порта, а именно порт A, порт B, порт C и порт D. Некоторые контакты мультиплексированы и могут выполнять более одной функции. Например, PD2 (вывод-16) вместе с выводом ввода-вывода также является выводом прерывания. Я расскажу о функции каждого контакта в следующем уроке. На данный момент контакт 10 предназначен для Vcc, контакт 11 — для заземления, контакты 12 и 13 — для внешнего кварцевого генератора, а контакт 9 — для внешнего кварцевого генератора.используется для сброса микроконтроллера Atmega 16. Еще один небольшой факт о микроконтроллере AVR – это положение Ground и Vcc. Если кто-то по ошибке подключит эту микросхему напротив того, как это должно быть, положение Vcc и Ground останется прежним, и из-за этого микроконтроллер AVR не будет поврежден (я знаю, это круто).
AVR — это семейство микроконтроллеров, разработанное Atmel в начале 1996 года, к которому относятся многие микроконтроллеры. У них схожая внутренняя архитектура, и из-за схожей архитектуры у них также есть похожие программы. Atmega 16 — микроконтроллер семейства AVR. Некоторые другие микроконтроллеры включают Atmega 32, Atmega 328, Atmega 8 и т. д.
Почему все это важно знать?Это важно, потому что в следующей серии уроков по AVR для начинающих я покажу вам, как контролировать и использовать каждый контакт. Все это важно знать для сопряжения различных датчиков, устройств ввода-вывода, последовательных устройств и т. д. Из следующего руководства я бы порекомендовал вам, ребята, установить программное обеспечение — Atmel Studio 6.0 (среда, которую мы собираемся программировать) , Proteus (симулятор).
Краткое руководство по программированию Pololu AVR
Просмотр документа на нескольких страницах.
Вы также можете просмотреть этот документ в формате PDF для печати.
- 1. Обзор
- 2. Перед программированием
- 3. Программирование в Windows с помощью Microchip Studio
- 3.1. Установка необходимых компонентов
- 3.2. Настройка вашего программатора
- 3.3. Компиляция примера программы
- 3.4. Программирование с помощью AVRDUDE
- 4. Программирование в Linux
- 4.1. Настройка вашего программатора в Linux
- 4.2. Установка необходимых компонентов
- 4.3. Установка библиотеки Pololu AVR C/C++ в Linux
- 4.4. Компиляция примера программы в Linux
- 5. Начало работы с macOS
- 5.1. Настройка вашего программатора для macOS
- 5.2. Установка необходимых компонентов
- 5.3. Установка библиотеки Pololu AVR C/C++ в macOS
- 5.4. Компиляция примера программы в macOS
1.

Это руководство представляет собой набор руководств по началу программирования микроконтроллера AVR на контроллере робота Orangutan или роботе 3pi под управлением Windows, Linux или Mac OS X. Это руководство в основном предназначено для людей. которые хотят использовать программатор Pololu USB AVR Programmer и библиотеку Pololu AVR C/C++.
- Если вы хотите использовать другой программатор, это руководство все равно будет вам полезно, но некоторые шаги к вам не применимы.
- Если вы хотите запрограммировать AVR, который не установлен на роботе Orangutan или 3pi, это руководство все равно будет вам полезно, но обратите внимание, что библиотека Pololu AVR C/C++ работает только на определенных AVR в семействе ATmega.
- Если вы хотите запрограммировать AVR, который не установлен на роботе Orangutan или 3pi, и не заинтересованы в библиотеке Pololu AVR C/C++, мы рекомендуем прочитать учебные пособия в Руководстве пользователя программатора Pololu USB AVR вместо этого руководства.
- Это руководство делает , а не относятся к Arduino IDE; есть отдельное руководство по программированию орангутанов и робота 3pi из среды Arduino.
- В этом руководстве , а не рассматривается старая среда разработки AVR Studio 4; есть отдельное руководство по программированию орангутанов и робота 3pi из AVR Studio 4.
2. Перед программированием
Подключите питание
Перед программированием вашего AVR вам необходимо подключить питание . Пожалуйста, обратитесь к руководству пользователя вашего конкретного устройства для получения информации о том, как выбрать подходящий блок питания и к каким контактам его подключить. Если на вашем устройстве есть кнопка питания, вам нужно будет нажать ее, чтобы включить питание ресивера.
Примечание: Если вы приобрели аккумуляторы для своего устройства, вам следует полностью зарядить их перед первым использованием. Вы никогда не должны пытаться программировать свое устройство, если его батареи разряжены или разряжены. Потеря питания во время программирования может привести к необратимому отключению вашего AVR.
Попробуйте предварительно загруженную демонстрационную программу
Робот 3pi, Orangutan SVP, Orangutan SV-xx8 и Orangutan LV-xx8 поставляются с предварительно загруженными демонстрационными программами , которые демонстрируют различные функции. Перед программированием рекомендуем использовать эти демонстрационные программы, чтобы ознакомиться с некоторыми функциями вашего устройства, а также убедиться, что устройство работает.
3. Программирование в Windows с помощью Microchip Studio
Для программирования AVR в Windows мы рекомендуем использовать Microchip Studio для AVR и SAM Devices , интегрированную среду разработки (IDE) от Microchip.
Примечание: Orangutan X2 не работает со встроенным ПО для программирования AVR ISP в Microchip Studio. Эти инструкции покажут вам, как с помощью Microchip Studio скомпилировать файл . hex, а затем загрузить его в X2 с помощью AVRDUDE, входящего в состав WinAVR.
3.1. Установка необходимых компонентов
В качестве первого шага для программирования AVR в Windows мы рекомендуем загрузить и установить соответствующую версию Microchip Studio, интегрированной среды разработки (IDE) от Microchip.
Если вы используете Windows 7 или более позднюю версию, мы рекомендуем Microchip Studio 7.0 , поскольку это последняя версия, поддерживаемая установщиками библиотеки Pololu AVR C/C++.
Если вы используете Windows Vista, мы рекомендуем Atmel Studio 6.2 (доступно здесь), поскольку Microchip Studio 7.0 не поддерживает Windows Vista.
После установки и работы Microchip Studio загрузите и установите пакет разработки Pololu AVR (~ 11 МБ exe) . Пакет разработки Pololu AVR содержит следующие компоненты:
- Библиотека Pololu AVR C/C++, которая предоставляет функции для взаимодействия с оборудованием вашего робота Orangutan или 3pi.
- Pololu USB AVR Programmer.
- драйверов Orangutan SVP.
Когда вы запускаете программу установки Pololu AVR Development Bundle, она спросит вас, какие компоненты установить. Если вы не уверены, какие из них вам понадобятся, можно установить их все.
Установщик Pololu AVR C/C++ Library спросит вас, в какие наборы инструментов AVR вы хотите установить библиотеку: .
Если флажок для вашей версии Atmel Studio или версии Microchip Studio неактивен, значит программе установки не удалось найти эту IDE, и вам следует попробовать переустановить или восстановить ее. Вы должны оставить этот флажок установленным, чтобы библиотека могла установить свои файлы в набор инструментов AVR.
Обратите внимание, что Microchip Studio 7.0 отображается в этом установщике как Atmel Studio 7.0. Если вы хотите использовать Microchip Studio 7.0, убедитесь, что установлен флажок Atmel Studio 7.0.
Во время установки Windows спросит, хотите ли вы установить драйверы. Нажмите «Установить».
Если у вас есть Orangutan X2 , вам также необходимо установить наши драйверы CP2102.
3.2. Настройка вашего программатора
Этот раздел не относится к Орангутанг X2 .
Теперь, когда вы установили драйверы, пришло время подключить программатор Pololu USB AVR Programmer или Orangutan SVP к USB-порту вашего компьютера, убедиться, что драйверы работают, и настроить Microchip Studio для использования программатора. Для краткости мы будем просто говорить «программатор» в этом разделе для обозначения либо программатора Pololu USB AVR, либо вспомогательного процессора Orangutan SVP, который служит программатором.
Если вы используете Windows Vista, Windows 7 или более позднюю версию Windows , ваш компьютер должен автоматически установить необходимые драйвера при подключении программатора.
Если вы используете Windows XP , вам нужно будет выполнить следующие шаги всякий раз, когда вы подключаете новый программатор:
- Подключите программатор к USB-порту вашего компьютера.
Программатор на самом деле представляет собой три устройства в одном, поэтому ваш компьютер XP обнаружит все эти три новых устройства и трижды отобразит «Мастер поиска нового оборудования». Каждый раз, когда появляется окно «Мастер нового оборудования», выполните шаги 2–5.
- При отображении «Мастера нового оборудования» выберите «Нет, не в этот раз» и нажмите «Далее».
- На втором экране «Мастера поиска нового оборудования» выберите «Установить программное обеспечение автоматически» и нажмите «Далее».
- Windows XP снова предупредит вас о том, что драйвер не тестировался корпорацией Майкрософт, и порекомендует остановить установку. Нажмите «Все равно продолжить».
- После завершения работы «Мастера нового оборудования» нажмите «Готово». После этого появится еще один мастер.
Вы увидите в общей сложности три мастера при подключении программатора. Выполните шаги 4–7 для каждого мастера.
Если вы используете Windows XP и у вас возникают проблемы с установкой драйверов последовательного порта, убедитесь, что вы выполнили обновление до Service Pack 3.
После установки драйверов перейдите в Диспетчер устройств вашего компьютера и разверните список «Порты (COM и LPT)». Если вы используете программатор Pololu USB AVR Programmer, вы должны увидеть два COM-порта: «Порт программирования программатора USB AVR Pololu» и «Последовательный порт TTL программатора USB AVR Pololu». Если вы используете Orangutan SVP, вы должны увидеть три COM-порта: «Pololu Orangutan SVP Programmer», «Pololu Orangutan SVP USB Communication Port» и «Pololu Orangutan SVP TTL Serial Port». В скобках после этих имен вы увидите имя порта (например, «COM3» или «COM4»).
Кроме того, если вы используете программатор Pololu USB AVR, должен быть список «USB-устройства Pololu» с записью для программатора.
Windows 8 Device Manager, показывающий Pololu USB AVR Programmer |
---|
9024. |
COM-порты в диспетчере устройств могут называться «USB Serial Device» вместо описательного имени, как показано на снимках экрана выше. Это может произойти, если вы используете Windows 10 или более позднюю версию и подключили программатор к компьютеру перед установкой для него наших драйверов. В этом случае Windows настроит ваш программатор с помощью usbser.inf, драйвера от Microsoft, поставляемого с Windows 10 и более поздними версиями, и в качестве имени для каждого порта будет отображаться «USB Serial Device». Порты можно будет использовать, но их будет трудно отличить друг от друга из-за общего имени, отображаемого в диспетчере устройств. Мы рекомендуем исправить имена в диспетчере устройств, щелкнув правой кнопкой мыши каждую запись «Последовательное USB-устройство», выбрав «Обновить программное обеспечение драйвера…», а затем выбрав «Автоматический поиск обновленного программного обеспечения драйвера». Windows должна найти уже установленные драйверы, которые содержат правильное имя порта.
Далее вам необходимо настроить Microchip Studio для использования программатора. Откройте Microchip Studio, убедитесь, что ваш программатор подключен к компьютеру через USB, а затем выберите Add target… в меню Tools . В качестве инструмента выберите «STK500». В качестве последовательного порта выберите COM-порт, назначенный программному порту программатора. Наконец, нажмите Применить .
3.3. Компиляция программы-примера
Следующим шагом является компиляция программы-примера в Microchip Studio и загрузка ее на вашего робота Orangutan или 3pi. Откройте Microchip Studio и создайте новый проект, выбрав New > Project… в меню File .
В диалоговом окне «Новый проект» выберите Установлено , чтобы просмотреть установленные шаблоны. Разверните категорию C/C++ и выберите Pololu , чтобы просмотреть список шаблонов, установленных программой установки Pololu AVR C/C++ Library. Если категории Pololu нет, убедитесь, что у вас установлена библиотека Pololu AVR C/C++, и попробуйте перезапустить Microchip Studio. Выберите шаблон, соответствующий вашему устройству. Будьте осторожны, чтобы выбрать правильный; если вы не уверены, какая модель микроконтроллера AVR установлена на вашем устройстве, вы можете узнать это, проверив свой счет, проверив историю заказов Pololu или прочитав надпись на самом AVR.
- Все роботы 3pi, поставляемые Pololu с июня 2009 г., начиная с серийного номера 0J5840, имеют ATmega328P.
- Все Orangutan X2, поставляемые Pololu с 25 октября 2010 г., имеют ATmega1284P.
Также рекомендуется снять флажок Создать каталог для решения , чтобы немного упростить структуру каталогов.
После того, как вы нажмете OK , Microchip Studio создаст новый проект из шаблона и откроет его:
Проект будет содержать простой пример кода, демонстрирующий основные функции платы, такие как мигание светодиода, воспроизведение некоторых нот на зуммере и отображение чисел на ЖК-дисплее. Вызываемые функции определены в библиотеке Pololu AVR C/C++. Вы можете найти дополнительную информацию о них в Руководстве пользователя библиотеки Pololu AVR C/C++ и прочитать их исходный код, просмотрев каталог, в котором вы установили библиотеку.
Вы можете построить/скомпилировать проект, выбрав Build > Build Solution или нажав F7 . Если на этом этапе вы получаете сообщение об ошибке, и вы вообще не изменяли пример программы или конфигурацию проекта, то, вероятно, библиотека Pololu AVR C/C++ была установлена неправильно, и вам следует попробовать установить ее еще раз. Если сборка прошла успешно, то вывод сборки, показанный на вкладке «Вывод» внизу, должен заканчиваться так:
... Построить удалось. ========== Сборка: 1 выполнена успешно или обновлена, 0 неудачно, 0 пропущено ==========
Если ваш вывод выглядит именно так, значит, вы успешно скомпилировали свой проект в HEX-файл, который можно найти в каталоге проекта. Пришло время запрограммировать этот HEX-файл на ваш AVR, используя программатор Pololu USB AVR Programmer или встроенный программатор на Orangutan SVP или Orangutan X2.
Перед программированием убедитесь, что ваше устройство включено и ваш программатор подключен к компьютеру через USB. Если вы используете программатор Pololu USB AVR, вам необходимо подключить программатор к устройству с помощью прилагаемого 6-контактного кабеля ISP. Если вы программируете устройство, такое как Baby Orangutan B, которое не имеет защитного штекерного разъема, обеспечивающего правильную ориентацию кабеля, будьте осторожны, чтобы совместить стрелку, указывающую на контакт 1 на кабеле, со стрелкой на устройстве.
Пользователи Orangutan X2: Программное обеспечение для программирования AVR в Microchip Studio несовместимо с Orangutan X2, поэтому мы рекомендуем использовать AVRDUDE, как описано в Разделе 3.4, вместо того, чтобы пытаться следовать приведенным ниже инструкциям.
Для программирования просто зайдите в Microchip Studio и нажмите клавишу F5 . В качестве альтернативы вы можете запрограммировать, выбрав либо Продолжить , либо Запустить без отладки в меню Отладка .
Если программирование не удалось: Если вы получили сообщение об ошибке после попытки программирования, нажмите View > Available Microchip Tools , чтобы открыть окно «Доступные инструменты». Убедитесь, что в списке есть один и только один STK500 и убедитесь, что номер COM-порта совпадает с номером COM-порта вашего программатора, который отображается в Диспетчере устройств. Если вы используете программатор Pololu USB AVR Programmer, см. раздел «Устранение неполадок» в руководстве пользователя программатора. Если вы используете Orangutan SVP, убедитесь, что у вас установлена прошивка версии 1.03 или выше (см. раздел «Обновление прошивки» в руководстве пользователя). Если вы используете Orangutan X2, см. примечание выше.
Если программирование прошло успешно, вы сможете увидеть программу, работающую на вашем устройстве. Красный пользовательский светодиод на устройстве должен мигать. Если на вашем устройстве есть зуммер, он должен воспроизводить ноты при каждом запуске устройства. Если ваше устройство оснащено ЖК-дисплеем, оно должно отображать число на ЖК-дисплее, но вам, возможно, придется отрегулировать потенциометр контрастности, чтобы увидеть его.
Если вы хотите получить доступ к расширенным функциям программатора или вам нужен интерфейс, обеспечивающий дополнительную обратную связь при успешном программировании, вы можете использовать диалоговое окно Device Programming в Microchip Studio.
Совет: Если вы используете несколько программаторов, но никогда не подключаете к компьютеру более одного за раз, вы можете настроить их всех на один и тот же COM-порт, чтобы программирование с помощью клавиши F5 в Microchip Studio не выполнялось. всегда работать. Вы можете изменить номер COM-порта, назначенный устройству, перейдя в Диспетчер устройств, дважды щелкнув COM-порт, а затем нажав кнопку «Дополнительно…» на вкладке «Настройки порта».
3.4. Программирование с помощью AVRDUDE
После того, как вы скомпилировали HEX-файл, вы можете загрузить его на свой AVR с помощью Microchip Studio, как описано в разделе 3.3, или с помощью отдельной утилиты командной строки с именем AVRDUDE. Эта утилита бесплатна и входит в пакет WinAVR.
Сначала вам нужно найти HEX-файл. Если вы скомпилировали его с помощью Microchip Studio, он должен иметь расширение «.hex» и находиться в папке вашего проекта Microchip Studio в подпапке с именем Debug или Release. Откройте командную строку и перейдите в эту папку. Затем, чтобы запрограммировать ваш AVR, вы должны ввести что-то вроде этого:
avrdude -p m328p -P COM6 -c avrispv2 -U flash:w:test.hex
- Аргумент, следующий за -p , представляет собой номер детали AVR. Для орангутана или робота 3pi номер детали должен быть m328p, m1284p, m324p, m644p, m168 или m48.
- Аргумент, следующий за -P , является именем порта.
Вы можете определить имя порта программирования вашего устройства, заглянув в список «Порты (COM и LPT)» диспетчера устройств.
- Аргумент после -c — это протокол программиста, который должен быть равен avrispv2 .
- Опция -U используется для записи, чтения или проверки флэш-памяти, EEPROM, предохранителей или битов блокировки. В этом примере мы используем -U для записи test.hex во флэш-память.
Более подробную информацию см. в документации AVRDUDE.
Примечание для пользователей Orangutan SVP и X2: AVRDUDE имеет неверные настройки задержки стирания микросхемы для ATmega324P, ATmega644P, ATmega1284P. Это означает, что когда вы пытаетесь запрограммировать, операция стирания займет больше времени, чем ожидает AVRDUDE, и AVRDUDE интерпретирует это как ошибку. Обходной путь — найти файл конфигурации AVRDUDE, avrdude.conf
и увеличьте задержку стирания чипа для m324p/m644p/m1284p до 55000. Файл находится в папке
C:\WinAVR-20100110\bin
по умолчанию в Windows.
4. Программирование в Linux
4.1. Настройка программатора в Linux
Для использования программатора Pololu USB AVR Programmer или Orangutan SVP в Linux установка драйвера не требуется.
Когда вы подключаете свой программатор или Orangutan SVP к компьютеру с Linux, драйвер cdc_acm ядра Linux должен автоматически обнаружить его и создать два или три устройства с последовательным портом. Если у вас нет других подключенных устройств, использующих тот же драйвер, имя порта программирования должно быть /dev/ttyACM0 . Вы можете увидеть, какие виртуальные COM-порты у вас есть, набрав ls /dev/ttyACM*
в терминале.
4.2. Установка необходимых компонентов
Для программирования AVR в Linux вам потребуются бесплатный компилятор avr-gcc, avr-libc, AVRDUDE и другие сопутствующие инструменты. Пользователи Ubuntu могут получить необходимое программное обеспечение, выполнив:
sudo apt-get install gcc-avr avr-libc avrdude
Пользователи других дистрибутивов Linux должны установить все соответствующие пакеты, связанные с AVR, доступные в диспетчере пакетов их дистрибутива.
4.3. Установка библиотеки Pololu AVR C/C++ в Linux
Библиотеку Pololu AVR C/C++ можно загрузить в виде файла .zip из раздела «Инструкции по загрузке» руководства пользователя библиотеки. В командной строке Linux введите команду
unzip libpololu-avr-yymmdd.zip
, где yymmdd
заменяется версией загруженной библиотеки. Он будет распакован в папку с именем libpololu-avr
.
Чтобы установить библиотеку, откройте командную строку Linux, перейдите к libpololu-avr
и введите sudo make install
. Это скопирует файлы объектов библиотеки (.a) и файлы заголовков (.h) в соответствующие подкаталоги avr. Чтобы увидеть, куда именно они будут скопированы, вы можете набрать make show_prefix
.
4.4. Компиляция примера программы в Linux
Простая демонстрационная программа находится в каталоге libpololu-avr/examples/atmegaXXX/simple-test/
, где atmegaXXX — процессор на вашей плате.
Откройте окно терминала и перейдите в этот каталог. Вы должны иметь возможность скомпилировать пример с предоставленным Makefile, набрав make
в командной строке. Это создаст файл с именем test.hex
, который готов для прошивки на ваш AVR, и вывод на ваш терминал должен выглядеть примерно так:
Компиляция тестовой программы под Linux. |
---|
Если make завершен успешно, подключите программатор (или Orangutan SVP) к компьютеру и целевому устройству и включите питание целевого устройства. Если вы используете программатор Pololu USB AVR, зеленый светодиод USB должен гореть, красный светодиод должен быть выключен, а желтый светодиод должен мигать, показывая, что программатор готов. Тип создайте программу
для загрузки программы на Orangutan или 3pi. Если ваш программатор установлен на порт, отличный от /dev/ttyACM0
, вам придется отредактировать Makefile и ввести правильный порт.
Программирование орангутана с помощью avrdude под Linux. |
---|
Если ваш контроллер был успешно запрограммирован и вы не используете детеныша орангутанга, вы должны услышать короткую мелодию, см. сообщение «Привет!» на ЖКИ (если он есть и контрастность выставлена правильно), а светодиоды на плате должны мигать. Если вы используете Baby Orangutan, вы просто увидите мигание красного светодиода пользователя.
Примечание для пользователей Orangutan SVP и X2: AVRDUDE имеет неверные настройки задержки стирания чипа для ATmega324P, ATmega644P, ATmega1284P. Это означает, что когда вы пытаетесь запрограммировать, операция стирания займет больше времени, чем ожидает AVRDUDE, и AVRDUDE интерпретирует это как ошибку. Обходной путь заключается в том, чтобы найти файл конфигурации AVRDUDE, avrdude.conf
, и увеличить задержку стирания чипа для m324p/m644p/m1284p до 55000. Файл находится в /etc/
. в линуксе.
5. Начало работы с macOS
5.1. Настройка вашего программатора для macOS
Если вы используете Pololu USB AVR Programmer , вам может потребоваться обновить прошивку вашего программатора, чтобы он работал с macOS. Инструкции см. в разделе «Поддержка встроенного ПО для Mac OS X» руководства пользователя Pololu USB AVR Programmer User’s Guide.
Совместимость с Mac OS X: мы подтвердили, что программист и старший вице-президент Orangutan работают с Mac OS X 10.7, и мы можем помочь в сложных технических вопросах, но большинство наших сотрудников технической поддержки не используют Mac, поэтому базовая поддержка для Mac ОС Х ограничена.
Чтобы проверить настройки, подключите программатор или Orangutan SVP к USB-порту вашего Mac. Нажмите «Отмена», если появится следующее диалоговое окно:
В окне терминала введите ls /dev/tty.usb*
и нажмите Enter. Вы должны увидеть 1-3 новых записи вида tty.usbmodem<номер> (например,
/dev/tty.usbmodem00022331
). Эти записи представляют собой виртуальные последовательные порты, созданные программистом или старшим вице-президентом Orangutan.
Запись с наименьшим номером является портом программирования, и позже вам нужно будет передать его имя в качестве параметра в AVRDUDE.
5.2. Установка необходимых компонентов
Для программирования AVR в macOS вам потребуется бесплатный компилятор avr-gcc, avr-libc, AVRDUDE и другие сопутствующие инструменты.
Чтобы получить эти инструменты, мы рекомендуем сначала установить Homebrew. Затем выполните следующие команды для установки AVRDUDE и homebrew-avr:
варить установить avrdude xcode-выбрать --установить кран для заваривания osx-cross/avr варить установить avr-gcc
5.3. Установка библиотеки Pololu AVR C/C++ в macOS
Библиотеку Pololu AVR C/C++ можно загрузить в виде файла . zip из раздела «Инструкции по загрузке» руководства пользователя библиотеки. Используйте утилиту архивации Mac, чтобы извлечь файл .zip на рабочий стол или в любое другое удобное место. Он будет распакован в папку с именем
libpololu-avr
.
Чтобы установить библиотеку, откройте сеанс терминала, перейдите к libpololu-avr
и введите sudo make install
. Это скопирует файлы объектов библиотеки (.a) и файлов заголовков (.h) в соответствующие подкаталоги вашей цепочки инструментов AVR. Чтобы увидеть, куда именно они будут скопированы, вы можете набрать make show_prefix
.
5.4. Компиляция примера программы в macOS
Простая демонстрационная программа находится в каталоге libpololu-avr/examples/atmegaXXX/simple-test/
, где atmegaXXX — процессор на вашей плате.
Откройте окно терминала и перейдите в этот каталог. Вы должны иметь возможность скомпилировать пример с предоставленным Makefile, набрав make
в командной строке. Это создаст файл с именем
test.hex
, который готов к прошивке на ваш AVR.
Теперь подключите программатор к вашему Mac и роботу Orangutan или 3pi и включите питание устройства. Если вы используете программатор Pololu USB AVR, зеленый светодиод USB должен гореть, а желтый светодиод должен мигать, показывая, что программатор готов.
Откройте Makefile в текстовом редакторе. Вам нужно будет изменить переменную PORT, чтобы она ссылалась на порт программирования вашего программатора, как указано в Разделе 5.1 (например, /dev/tty.usbmodem00022331
).
Чтобы загрузить пример программы на ваше устройство, введите make program
. Через несколько секунд вы должны увидеть вывод AVRDUDE, который выглядит примерно так:
avrdude: устройство AVR инициализировано и готово к принятию инструкций. Чтение | ################################################### | 100% 0,01 с avrdude: Подпись устройства = 0x1e950ф avrdude: ВНИМАНИЕ: была указана флэш-память, будет выполнен цикл стирания Чтобы отключить эту функцию, укажите параметр -D.avrdude: стирание чипа avrdude: чтение входного файла "test.hex" avrdude: входной файл test.hex автоматически определяется как Intel Hex avrdude: запись flash (3392 байта): Написание | ################################################### | 100% 0,88 с avrdude: записано 3392 байта флэш-памяти avrdude: проверка флэш-памяти на test.hex: avrdude: загрузить данные флэш-памяти из входного файла test.hex: avrdude: входной файл test.hex автоматически определяется как Intel Hex avrdude: входной файл test.hex содержит 3392 байта avrdude: чтение данных встроенной флэш-памяти: Чтение | ################################################### | 100% 0,72 с avrdude: проверка... avrdude: проверено 3392 байта флэш-памяти avrdude: safemode: Предохранители в порядке avrdude сделано. Спасибо.
Если ваш контроллер был успешно запрограммирован и вы не используете детеныша орангутанга, вы должны услышать короткую мелодию, см. сообщение «Привет!» на ЖКИ (если он есть и контрастность выставлена правильно), а светодиоды на плате должны мигать.