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

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

Для того, чтобы прошить микроконтроллер, вам потребуются следующие элементы:

Аппаратное обеспечение

1. Компьютер с ОС Windows (в этом руководстве будет использоваться ОС Windows)

2. Программист (в этом руководстве будет использоваться USBasp)

3. Плата разработки (печатная плата, которая поддерживает чип микроконтроллера для его работы)

Программное обеспечение

1. USB-драйвер

2. ВинАВР

3. Приложение IDE для AVR (в этом руководстве будет использоваться Atmel Studio 7)

Оборудование

Компьютер
Если вы живете в 20 веке, вы должны знать, что такое компьютер. Если нет, то вы можете легко это сделать в Google. О, убедитесь, что на вашем ПК установлена ​​ОС Windows (операционная система), так как это руководство будет работать в Windows.

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

Доска для разработки
Доска для разработки — это, по сути, инструмент, который позволяет вашему микроконтроллеру взаимодействовать с программатором. Согласно моим выводам, макетную плату также можно назвать минимальной системой или целевой платой. Причина, по которой она называется минимальной системой, состоит в том, что это система, которая позволяет микроконтроллерам работать в минимальном режиме. Что имеется в виду под минимальным? Мы вернемся к этому позже. А пока просто помните, что макетная плата/целевая плата/минимальная система подключает ваш микроконтроллер к вашему программатору. Кстати, вот мой:

Программное обеспечение

Драйвер USBasp
Драйвер необходим для того, чтобы ваш компьютер мог распознавать USBasp. Если он не установлен, ваш компьютер не сможет распознать ваш программатор (USBasp), что сделает программирование в MCU невозможным.

Вот ссылка на драйвер USBasp, который я использовал, или вы можете найти его в Google:

https://www.fischl.de/usbasp/

Загрузите драйвер и сохраните его в любом удобном для вас месте. Попробуйте вставить USBasp в порт USB, затем, чтобы проверить, распознает ли его теперь компьютер, зайдите в Диспетчер устройств.

Вы увидите, что в разделе «Другие устройства» рядом с USBasp есть небольшое желтое предупреждение. Это означает, что драйвер еще не установлен. Далее нам нужно установить драйвер.

Если драйвер был успешно установлен, вы увидите, что предупреждение исчезло.

Если драйвер не был успешно установлен, обычно вы все равно увидите предупреждающий символ на символе USBasp, чтобы решить эту проблему, попробуйте переустановить драйвер, в большинстве случаев это будет основной причиной. Другой причиной может быть повреждение USBasp, поэтому вам может понадобиться новый, но это случается редко.

Теперь ваш компьютер распознал USBasp, мы в основном готовы к программированию MCU. Но нам нужно программное обеспечение, которое могло бы запускать и компилировать код C. Программное обеспечение, которое мы собираемся использовать в этом руководстве, называется AVR Studio 7. AVR Studio — это IDE (интегрированная среда разработки), созданная в соответствии с требованиями AVR. AVR Studio можно скачать бесплатно здесь.

Сам AVR Studio 7 нужно настроить так, чтобы он распознавал USBasp. Для получения информации о том, как настроить вещи в AVR Studio, проверьте следующее.

WinAVR
WinAVR — это средство разработки программного обеспечения для микропроцессоров Atmel. WinAVR можно было скачать бесплатно здесь. WinAVR включает компилятор GNU GCC для C++ и C, Блокнот программиста, MFile и AVRdude. GNU GCC может звучать пугающе, но это просто компилятор для нашего кода C. Чтобы получить более интуитивное представление о том, как программировать MCU, рекомендуется начать программирование с помощью блокнота программиста. Учебник по этому вопросу будет доступен здесь.

AVRdude
AVRdude — это программа для загрузки и загрузки программы во встроенную память микроконтроллеров AVR с использованием метода внутрисистемного программирования (ISP). Он может программировать Flash или EEPROM. AVRdude необходим, если вы хотите запрограммировать микроконтроллер AVR. Чтобы проверить, был ли установлен AVRdude, перейдите в командную строку, затем введите «avrdude», если на экране появится список команд AVRdude, значит, он установлен.

Интеграция Atmel Studio 7 с USBasp и WinAVR

Внутри WinAVR есть пара программных инструментов, которые взаимодействуют друг с другом, чтобы наш код C можно было запрограммировать в микросхемы AVR. Это взаимодействие между этими инструментами называется набором инструментов, просто подумайте об этом как о цепочке, где один конец связан с другим. С точки зрения непрофессионала, вот как наш код может оказаться в UC:

1. Откройте Atmel Studio 7.

2. Напишите программу на C.

3. Скомпилируйте с помощью компилятора GNU GCC.

4. Создайте шестнадцатеричный файл.

5. Командуем AVRdude для прошивки нашей программы в микроконтроллер.

6. Микроконтроллер выполняет шестнадцатеричный файл внутри своей флэш-памяти.

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

Вот так, народ! Мы готовы запрограммировать несколько крутых вещей в наш MCU! Ознакомьтесь со следующей частью, чтобы начать нашу самую первую программу!

Терминология
Сводка новых слов или сокращений в этом руководстве.

Flash/Program
Запишите код в наш MCU

MCU/uC
Аббревиатура микроконтроллера, MCU расшифровывается как блок микроконтроллера.

IDE
Расшифровывается как интегрированная среда разработки. Это программное приложение, которое предоставляет программисту возможность разработки программного обеспечения. (взято из Википедии https://en.wikipedia.org/wiki/Integrated_development_environment)

USBasp
Один из программистов микроконтроллера AVR.

Плата для разработки/минимальная система/целевая плата
Эти три слова относятся к одному и тому же, а именно к плате, которую мы использовали для подготовки нашего микроконтроллера перед прошивкой нашей программы.

WinAVR
Набор программных средств, созданных для программирования микроконтроллеров Atmel. Два важных элемента, включенных в состав WinAVR:
- Компилятор GNU GCC: компилятор C
- AVRdude: программа для управления содержимым микроконтроллера AVR с использованием внутрисистемного программирования (ISP)

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