Микроконтроллеры
Справочник по микроконтроллерам: чем отличаются семейства, на что смотреть при выборе и как устроены ядро, память и периферия. Начинаем с AVR — семейства, на котором построены классические платы Arduino.
Микроконтроллер (МК) — микросхема, в которой на одном кристалле собраны процессорное ядро, флеш-память для программы, оперативная память и периферия: порты ввода-вывода, таймеры, АЦП, интерфейсы UART, I²C, SPI. Достаточно подать питание и прошить программу — и МК управляет двигателем, опрашивает датчики или обменивается данными с компьютером.
Семейства микроконтроллеров
| Семейство | Разрядность и ядро | Чем известно | Примеры |
|---|---|---|---|
| AVR (Microchip, ранее Atmel) | 8 бит, RISC-ядро AVR | простая архитектура, питание до 5,5 В, основа плат Arduino | ATmega328P, ATtiny85, AVR128DA48 |
| ARM Cortex-M (ST, NXP, Microchip, Nordic и другие) | 32 бита, ядра Cortex-M0+, M3, M4, M7, M33 | производительность, развитая периферия, DMA | STM32F103, STM32G431, nRF52840 |
| ESP32 (Espressif) | 32 бита, ядра Xtensa или RISC-V | встроенные Wi-Fi и Bluetooth | ESP32, ESP32-S3, ESP32-C3 |
| PIC (Microchip) | 8, 16 и 32 бита | широкий выбор корпусов и периферии | PIC16F, PIC18F, dsPIC33 |
| MSP430 (Texas Instruments) | 16 бит | сверхнизкое потребление | MSP430G2553, MSP430FR2433 |
| 8051 (MCS-51) | 8 бит | архитектура Intel 1980 года, до сих пор живёт в ядрах многих производителей | AT89S52, EFM8, CH552 |
| RP2040 (Raspberry Pi) | 32 бита, два ядра Cortex-M0+ | программируемые блоки ввода-вывода PIO | Raspberry Pi Pico |
Как выбрать микроконтроллер
- Периферия под задачу. Сколько нужно UART, I²C, SPI, каналов АЦП и ШИМ, нужен ли USB, CAN, Ethernet или радио. Это первое, что отсекает лишние варианты.
- Память. Объём флеш-памяти под программу и оперативной памяти под буферы. Программа на C с библиотеками растёт быстрее, чем кажется: берите запас в 1,5–2 раза.
- Питание и уровни. Питание 5 В упрощает сопряжение со старой логикой и даёт больший запас по помехам, 3,3 В и ниже — стандарт современных датчиков и модулей. Для батарейных устройств смотрите ток в режимах сна.
- Производительность. Обработка звука, цифровые фильтры и графика требуют 32-битного ядра, лучше с умножителем и FPU. Опрос кнопок и управление реле — нет.
- Инструменты и сообщество. Бесплатный компилятор, недорогой программатор, примеры и библиотеки экономят больше времени, чем разница в цене кристалла.
- Корпус и доступность. DIP и SOIC удобно паять вручную, QFN и BGA — нет. Проверьте наличие у поставщиков и наличие аналогов.
Что общего у всех микроконтроллеров
Программа для любого МК работает с одними и теми же понятиями: регистры периферии, порты ввода-вывода, прерывания, таймеры, тактирование, режимы пониженного потребления. Разберитесь с ними на одном семействе — и переход на другое займёт дни, а не месяцы. Как устроено ядро на уровне команд, показывает система команд AVR: 8-битный RISC-процессор с 32 регистрами общего назначения, который удобно изучать на ассемблере.
Обмен данными с датчиками, модулями и компьютером описан в разделе «Интерфейсы»: I²C, RS-232, RS-485 — с примерами кода для AVR. Схемотехника вокруг МК — подтягивающие резисторы, делители, усилители сигналов датчиков — в разделе «Теория».
Готовятся к публикации
ARM Cortex-M и STM32 · ESP32 · PIC · MSP430 · 8051 (MCS-51) · RP2040 · Отечественные микроконтроллеры
Частые вопросы
Чем микроконтроллер отличается от микропроцессора?
Микроконтроллер — законченный компьютер на одном кристалле: ядро, флеш-память программ, оперативная память и периферия (порты, таймеры, АЦП, UART, I²C, SPI). Микропроцессору для работы нужны внешняя память и микросхемы периферии, зато он быстрее и запускает операционные системы вроде Linux.
Какой микроконтроллер выбрать новичку?
Удобнее всего начать с AVR на плате Arduino Uno или Nano: простая архитектура, напряжение питания 5 В, огромное количество примеров. Следующий шаг — 32-битные ARM Cortex-M, например STM32, и ESP32, если нужен Wi-Fi. Принципы — порты, прерывания, таймеры, интерфейсы — у всех семейств общие.
Чем 8-битный микроконтроллер отличается от 32-битного?
Разрядностью арифметики и шин: 8-битный AVR складывает 32-битные числа за несколько команд, а Cortex-M — за одну. У 32-битных МК обычно больше частота, памяти и периферии, есть DMA. 8-битные проще и часто работают от 5 В — для простого управления их хватает с запасом.