AVR-микроконтроллеры
AVR — семейство микроконтроллеров Microchip, раньше Atmel. Это не плата, а именно микросхема: внутри находятся процессорное ядро, память, порты ввода-вывода, таймеры, ADC и интерфейсы связи.
В статье используется конкретный пример — ATmega328P-PU в корпусе DIP-28. Такой микроконтроллер знаком по Arduino Uno Rev3, но голая микросхема и плата Arduino — разные уровни устройства.

ATmega328P — классический 8-битный AVR с 32 КБ Flash, 2 КБ SRAM и 1 КБ EEPROM. Он удобен для понимания внутреннего устройства микроконтроллера, но требует внимательного отношения к памяти, питанию, тактированию и распиновке.
Что это за контроллер
ATmega328P может работать без платы Arduino, если добавить питание, тактовую цепь при необходимости, цепь сброса, программатор и нужную обвязку. В этом случае разработчик сам отвечает за электрическую схему и способ прошивки.
Для робототехники AVR интересен тем, что хорошо показывает базовые принципы микроконтроллеров: порт состоит из битов, таймер считает такты, ADC измеряет напряжение относительно опоры, а память действительно ограничена. Это полезно и школьнику, который уже вырос из готовых блоков, и студенту, который хочет понимать, что скрывает Arduino API.
Преимущества и недостатки
| Сторона | Что это значит для проекта |
|---|---|
| Простая архитектура | Легко проследить связь между выводом, регистром, таймером и программой. |
| Малое энергопотребление | Можно строить автономные датчики и небольшие узлы при грамотной настройке сна. |
| Хорошая учебная база | ATmega328P часто используется в примерах, книгах и учебных стендах. |
| Мало памяти | 2 КБ SRAM ограничивают журналы, строки, буферы и сложные библиотеки. |
| 8-битное ядро | Тяжёлая математика и высокие частоты управления быстрее упираются в ресурсы. |
| Нужно читать datasheet | При работе без Arduino плата уже не защищает от ошибок в питании и обвязке. |
Для новых серийных изделий обязательно проверяют актуальный статус компонента у производителя. ATmega328P остаётся важным учебным и ремонтным компонентом, но его не стоит выбирать по привычке без сравнения с более современными микроконтроллерами.
Распиновка ATmega328P-PU
В корпусе DIP-28 у микросхемы 28 выводов. Часть выводов может работать как обычные GPIO, часть имеет дополнительные функции: UART, SPI, I²C/TWI, входы ADC, внешние прерывания и выводы таймеров.

Распиновку нужно сверять именно для своего корпуса. У TQFP/QFN-версий может быть больше доступных аналоговых каналов, а у платы Arduino к выводам микросхемы добавляются собственные обозначения вроде D13 и A0.
Мощностные и функциональные характеристики ATmega328P
| Параметр | Значение |
|---|---|
| Архитектура | 8-битный AVR RISC |
| Диапазон питания микроконтроллера | 1,8-5,5 В, допустимая частота зависит от напряжения |
| Максимальная частота | до 20 МГц при подходящем питании |
| Flash | 32 КБ |
| SRAM | 2 КБ |
| EEPROM | 1 КБ |
| GPIO | до 23 программируемых линий ввода-вывода |
| Таймеры | два 8-битных и один 16-битный таймер/счётчик |
| ADC | 10-битный, число каналов зависит от корпуса |
| Интерфейсы | USART, SPI, TWI/I²C |
Абсолютные максимумы в datasheet не являются нормальным рабочим режимом. Если вывод способен пережить некоторый ток в предельной таблице, это не значит, что так нужно питать нагрузку. Светодиоды требуют резистора, реле и моторы — ключей или драйверов.
Память и ограничения
Flash хранит программу, SRAM — рабочие переменные и стек, EEPROM — небольшие сохраняемые настройки. На ATmega328P именно SRAM чаще становится неожиданной проблемой: строковые сообщения, массив измерений, буфер обмена и вложенные вызовы делят всего 2 КБ.
В проекте робота стоит заранее оценивать память: какие данные хранятся постоянно, какие буферы нужны во время обмена, сколько места оставлено стеку. Компилятор показывает статически занятый объём, но не всегда показывает худший случай работы стека и динамических буферов.
Совместимые языки и IDE
| Инструмент | Когда использовать |
|---|---|
| Arduino IDE / Arduino CLI | Если ATmega328P стоит на Arduino-совместимой плате и нужен быстрый учебный старт. |
| avr-gcc | Для разработки на C/C++ ближе к микроконтроллеру и без лишнего слоя Arduino. |
| Microchip Studio | Удобен в Windows для AVR-проектов, отладки и работы с программаторами. |
| MPLAB X IDE | Подходит, если в разделе уже используются инструменты Microchip. |
| Ассемблер AVR | Нужен редко, но полезен для понимания ядра и предельно точных фрагментов. |
Выбор языка зависит от цели занятия. Для первого робота удобнее Arduino C++. Для изучения регистров и архитектуры полезен C с datasheet. Ассемблер обычно оставляют для специальных лабораторных работ.
Где AVR особенно полезен
AVR хорош там, где важна прозрачность: можно увидеть, какой бит отвечает за вывод, почему таймер имеет предел, как закончилась SRAM и что делает EEPROM. Это делает микроконтроллер сильным учебным объектом.
Для более сложного робота AVR может стать тесным. Если нужны Wi-Fi, Bluetooth, несколько быстрых интерфейсов, аппаратная отладка с точками останова или большая оперативная память, стоит сравнить ESP32 или STM32.
Практика
Распределите память учебной программы ATmega328P: 600 байт глобальных переменных, буфер измерений 512 байт и буфер связи 256 байт. Посчитайте занятый объём SRAM и оставшийся запас из 2 КБ. Затем объясните, почему весь остаток нельзя заранее отдать ещё одному массиву.
Правильный расчёт даёт 1368 байт занято и 680 байт формального остатка. В выводе должны быть упомянуты стек, локальные переменные и временные данные библиотек.
Проверьте себя
- Чем ATmega328P отличается от платы Arduino Uno Rev3?
- Почему корпус микросхемы влияет на доступные выводы и ADC-каналы?
- Какие данные хранят Flash, SRAM и EEPROM?
- Почему 2 КБ SRAM требуют предварительного расчёта?
- Почему двигатель нельзя питать напрямую от вывода AVR?
Сначала ответьте без подсказки. Ответ можно считать полным, если вы:
- формулируете основную мысль своими словами;
- называете важные условия, ограничения или меры безопасности;
- для схемы, кода или расчёта показываете ход решения и ожидаемый результат.
Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.
Словарь статьи
- AVR — семейство микроконтроллеров с одноимённой архитектурой ядра.
- Flash — энергонезависимая память программы.
- SRAM — рабочая память, содержимое которой теряется при выключении питания.
- EEPROM — энергонезависимая память для небольших изменяемых данных.
- Datasheet — техническое описание конкретной микросхемы от производителя.