ATmega64M1, ATmega32M1 и ATmega16M1
8-битные микроконтроллеры AVR серии megaAVR с 64, 32 и 16 КБ флеш-памяти и частотой до 16 МГц в корпусах TQFP32, QFN32. Распиновка с функциями выводов, сверенными с даташитом, заказные номера, фьюзы с завода и векторы прерываний — по описаниям Microchip.
Обновлено данные Microchip, ATmega_DFP 3.6.299
- Ядро
- AVR, 8 бит
- Флеш-память
- 16, 32 и 64 КБ
- ОЗУ
- 1, 2 и 4 КБ
- EEPROM
- 512 байт, 1 КБ и 2 КБ
- Частота
- до 16 МГц
- Питание
- 2,7–5,5 В
- Температура
- −40…+85 °C
- Линии ввода-вывода
- 27
- Корпуса
- TQFP32, QFN32
- Программирование
- ISP, HVPP, debugWIRE
Схема корпуса
Вид сверху. Выберите периферию — её выводы подсветятся на схеме, а в списке ниже останутся только её сигналы. Наведите курсор на вывод, чтобы увидеть все его функции. Расположение выводов сверено с рисунками и таблицами даташитов.
- ввод-вывод
- питание и земля
- сброс и выбор загрузки
- не подключён
- выбранная периферия
Периферия и её выводы
На какие линии порта выходит каждый сигнал. У классических AVR функции закреплены за линиями: включённая периферия сама занимает свой вывод, но у ATmega64M1 есть исключения. Сигналы SPI можно перенести на другой набор выводов — его выбирает бит SPIPS регистра MCUCR; эти места даташит помечает суффиксом _A.
LIN/UART — контроллер шины LIN или UART
| Блок | Сигнал | Линия порта |
|---|---|---|
| LINUART | RXD | PD4 |
| RXLIN | PD4 | |
| TXD | PD3 | |
| TXLIN | PD3 |
SPI — последовательный интерфейс SPI
| Блок | Сигнал | Линия порта |
|---|---|---|
| SPI | MISO | PB0 |
| MISO_A | PD2 | |
| MOSI | PB1 | |
| MOSI_A | PD3 | |
| SCK | PB7 | |
| SCK_A | PD4 | |
| SS | PD3 | |
| SS_A | PC1 |
Таймеры — выходы сравнения и ШИМ, входы счёта и захвата таймеров
| Блок | Сигнал | Линия порта |
|---|---|---|
| TC0 | OC0A | PD3 |
| OC0B | PE1 | |
| T0 | PC2 | |
| TC1 | ICP1A | PD4 |
| ICP1B | PC3 | |
| OC1A | PD2 | |
| OC1B | PC1 | |
| T1 | PC3 |
PSC — контроллер силового каскада: выходы ШИМ и аварийные входы
| Блок | Сигнал | Линия порта |
|---|---|---|
| PSC | PSCIN0 | PD1 |
| PSCIN1 | PC1 | |
| PSCIN2 | PD2 | |
| PSCOUT0A | PD0 | |
| PSCOUT0B | PB7 | |
| PSCOUT1A | PC0 | |
| PSCOUT1B | PB6 | |
| PSCOUT2A | PB0 | |
| PSCOUT2B | PB1 |
АЦП — аналого-цифровой преобразователь
| Блок | Сигнал | Линия порта |
|---|---|---|
| ADC | ADC0 | PE2 |
| ADC1 | PD4 | |
| ADC2 | PD5 | |
| ADC3 | PD6 | |
| ADC4 | PB7 | |
| ADC5 | PB2 | |
| ADC6 | PB5 | |
| ADC7 | PB6 | |
| ADC8 | PC4 | |
| ADC9 | PC5 | |
| ADC10 | PC6 | |
| AMP0- | PB3 | |
| AMP0+ | PB4 | |
| AMP1- | PC4 | |
| AMP1+ | PC5 | |
| AMP2- | PB5 | |
| AMP2+ | PC7 |
ЦАП — цифро-аналоговый преобразователь
| Блок | Сигнал | Линия порта |
|---|---|---|
| DAC | D2A | PC7 |
Компаратор — аналоговый компаратор
| Блок | Сигнал | Линия порта |
|---|---|---|
| AC | ACMP0 | PD7 |
| ACMP1 | PC6 | |
| ACMP2 | PD5 | |
| ACMP3 | PC5 | |
| ACMPN0 | PB2 | |
| ACMPN1 | PB5 | |
| ACMPN2 | PD6 | |
| ACMPN3 | PC4 |
Прерывания — внешние прерывания INT и PCINT
| Блок | Сигнал | Линия порта |
|---|---|---|
| EXINT | INT0 | PD6 |
| INT1 | PB2 | |
| INT2 | PB5 | |
| INT3 | PC0 | |
| PCINT0 | PB0 | |
| PCINT1 | PB1 | |
| PCINT2 | PB2 | |
| PCINT3 | PB3 | |
| PCINT4 | PB4 | |
| PCINT5 | PB5 | |
| PCINT6 | PB6 | |
| PCINT7 | PB7 | |
| PCINT8 | PC0 | |
| PCINT9 | PC1 | |
| PCINT10 | PC2 | |
| PCINT11 | PC3 | |
| PCINT12 | PC4 | |
| PCINT13 | PC5 | |
| PCINT14 | PC6 | |
| PCINT15 | PC7 | |
| PCINT16 | PD0 | |
| PCINT17 | PD1 | |
| PCINT18 | PD2 | |
| PCINT19 | PD3 | |
| PCINT20 | PD4 | |
| PCINT21 | PD5 | |
| PCINT22 | PD6 | |
| PCINT23 | PD7 | |
| PCINT24 | PE0 | |
| PCINT25 | PE1 | |
| PCINT26 | PE2 |
Тактирование — кварцевый генератор, вход и выход тактового сигнала
| Блок | Сигнал | Линия порта |
|---|---|---|
| CPU | CLKO | PD1 |
| XTAL1 | PE1 | |
| XTAL2 | PE2 |
debugWIRE — отладка по выводу RESET
| Блок | Сигнал | Линия порта |
|---|---|---|
| DW | OCD | PE0 |
CAN — контроллер шины CAN
| Блок | Сигнал | Линия порта |
|---|---|---|
| CAN | RXCAN | PC3 |
| TXCAN | PC2 |
Таблица выводов
Номера выводов в каждом корпусе и функции линий. Обычный режим порта — вход, выход, вход с подтяжкой — есть у каждой линии ввода-вывода, в таблице перечислены только альтернативные функции. Функции сверены с даташитом: те, которых нет в описании Microchip, добавлены по даташиту.
| TQFP32, QFN32 | Имя | Тип | Функции |
|---|---|---|---|
| 1 | PD2 | ввод-вывод | PCINT18, PSCIN2, OC1A, MISO_A |
| 2 | PD3 | ввод-вывод | PCINT19, TXD, TXLIN, OC0A, SS, MOSI_A |
| 3 | PC1 | ввод-вывод | PCINT9, PSCIN1, OC1B, SS_A |
| 4 | VCC | питание | — |
| 5 | GND | питание | — |
| 6 | PC2 | ввод-вывод | PCINT10, T0, TXCAN |
| 7 | PC3 | ввод-вывод | PCINT11, T1, RXCAN, ICP1B |
| 8 | PB0 | ввод-вывод | PCINT0, MISO, PSCOUT2A |
| 9 | PB1 | ввод-вывод | PCINT1, MOSI, PSCOUT2B |
| 10 | PE1 | ввод-вывод | PCINT25, OC0B, XTAL1 |
| 11 | PE2 | ввод-вывод | PCINT26, ADC0, XTAL2 |
| 12 | PD4 | ввод-вывод | PCINT20, ADC1, RXD, RXLIN, ICP1A, SCK_A |
| 13 | PD5 | ввод-вывод | ADC2, ACMP2, PCINT21 |
| 14 | PD6 | ввод-вывод | ADC3, ACMPN2, INT0, PCINT22 |
| 15 | PD7 | ввод-вывод | ACMP0, PCINT23 |
| 16 | PB2 | ввод-вывод | ADC5, INT1, ACMPN0, PCINT2 |
| 17 | PC4 | ввод-вывод | ADC8, ACMPN3, AMP1-, PCINT12 |
| 18 | PC5 | ввод-вывод | ADC9, ACMP3, AMP1+, PCINT13 |
| 19 | AVCC | питание | — |
| 20 | AGND | питание | — |
| 21 | AREF | питание | — |
| 22 | PC6 | ввод-вывод | ADC10, ACMP1, PCINT14 |
| 23 | PB3 | ввод-вывод | AMP0-, PCINT3 |
| 24 | PB4 | ввод-вывод | AMP0+, PCINT4 |
| 25 | PC7 | ввод-вывод | D2A, AMP2+, PCINT15 |
| 26 | PB5 | ввод-вывод | ADC6, INT2, ACMPN1, AMP2-, PCINT5 |
| 27 | PB6 | ввод-вывод | ADC7, PSCOUT1B, PCINT6 |
| 28 | PB7 | ввод-вывод | ADC4, PSCOUT0B, SCK, PCINT7 |
| 29 | PD0 | ввод-вывод | PCINT16, PSCOUT0A |
| 30 | PC0 | ввод-вывод | PCINT8, INT3, PSCOUT1A |
| 31 | PE0 | ввод-вывод | PCINT24, RESET, OCD |
| 32 | PD1 | ввод-вывод | PCINT17, PSCIN0, CLKO |
Питание и служебные выводы
Выводы, которые не являются линиями порта. Номиналы блокировочных конденсаторов и фильтра питания АЦП — в разделе о питании даташита.
| Имя | Выводы | Назначение |
|---|---|---|
| VCC | TQFP32: 4 | напряжение питания |
| GND | TQFP32: 5 | общий провод |
| AVCC | TQFP32: 19 | питание АЦП и части линий порта; подключают к VCC, даже если АЦП не используется, при работе АЦП — через фильтр нижних частот |
| AGND | TQFP32: 20 | общий провод |
| AREF | TQFP32: 21 | вход опорного напряжения АЦП |
Исполнения
ATmega64M1, ATmega32M1 и ATmega16M1 — микроконтроллеры с общей распиновкой: в общих корпусах выводы расположены одинаково. Различия — в таблице. Частота и питание — классы скорости из заказных номеров: предельная частота и диапазон питания. Многие модели работают на предельной частоте не во всём диапазоне — зависимость показывает график Speed Grades в даташите. Сигнатура — три байта, по которым программатор узнаёт микроконтроллер, в последнем столбце — его обозначение для ключа -p программы avrdude.
| Микроконтроллер | Флеш | ОЗУ | EEPROM | Частота и питание | Сигнатура | avrdude |
|---|---|---|---|---|---|---|
| ATmega64M1 | 64 КБ | 4 КБ | 2 КБ | 16 МГц, 2,7–5,5 В | 1E 96 84 | m64m1 |
| ATmega32M1 | 32 КБ | 2 КБ | 1 КБ | 16 МГц, 2,7–5,5 В | 1E 95 84 | m32m1 |
| ATmega16M1 | 16 КБ | 1 КБ | 512 байт | 16 МГц, 2,7–5,5 В | 1E 94 84 | m16m1 |
Заказные номера
Номера для заказа из описания Microchip с корпусом, предельной частотой, диапазонами питания и рабочей температуры.
| Номер | Корпус | Частота | Питание | Температура |
|---|---|---|---|---|
| ATmega64M1-AU | TQFP32 | до 16 МГц | 2,7–5,5 В | −40…+85 °C |
| ATmega64M1-MU | QFN32 | до 16 МГц | 2,7–5,5 В | −40…+85 °C |
| ATmega32M1-AU | TQFP32 | до 16 МГц | 2,7–5,5 В | −40…+85 °C |
| ATmega32M1-MU | QFN32 | до 16 МГц | 2,7–5,5 В | −40…+85 °C |
| ATmega16M1-AU | TQFP32 | до 16 МГц | 2,7–5,5 В | −40…+85 °C |
| ATmega16M1-MU | QFN32 | до 16 МГц | 2,7–5,5 В | −40…+85 °C |
Фьюзы с завода
Значения фьюзов, с которыми микроконтроллер приходит с завода, и источник тактового сигнала, который они выбирают. В скобках — имя байта в avrdude. Расшифровку каждого бита, другие режимы и готовую команду avrdude даёт калькулятор фьюзов AVR.
| Микроконтроллер | LOW (lfuse) | HIGH (hfuse) | EXTENDED (efuse) | Тактирование | Калькулятор |
|---|---|---|---|---|---|
| ATmega64M1 | 0x62 | 0xD9 | 0xFF | Внутренний RC-генератор 8 МГц, делитель на 8 (CKDIV8) — 1 МГц | открыть |
| ATmega32M1 | 0x62 | 0xD9 | 0xFF | Внутренний RC-генератор 8 МГц, делитель на 8 (CKDIV8) — 1 МГц | открыть |
| ATmega16M1 | 0x62 | 0xD9 | 0xFF | Внутренний RC-генератор 8 МГц, делитель на 8 (CKDIV8) — 1 МГц | открыть |
Векторы прерываний
Таблица векторов ATmega64M1: номер, как в даташите (сброс — первый), имя вектора по описанию Microchip и источник прерывания. Обработчик в avr-gcc объявляют макросом ISR() с именем вектора из avr/io.h — обычно это имя из таблицы с суффиксом _vect, например ISR(INT0_vect).
| № | Вектор | Источник |
|---|---|---|
| 1 | RESET | сброс: включение питания, вывод RESET, BOD, сторожевой таймер |
| 2 | ANACOMP0 | Analog Comparator 0 |
| 3 | ANACOMP1 | Analog Comparator 1 |
| 4 | ANACOMP2 | Analog Comparator 2 |
| 5 | ANACOMP3 | Analog Comparator 3 |
| 6 | PSC_FAULT | PSC Fault |
| 7 | PSC_EC | PSC End of Cycle |
| 8 | INT0 | внешнее прерывание INT0 |
| 9 | INT1 | внешнее прерывание INT1 |
| 10 | INT2 | внешнее прерывание INT2 |
| 11 | INT3 | внешнее прерывание INT3 |
| 12 | TIMER1_CAPT | таймер 1: захват |
| 13 | TIMER1_COMPA | таймер 1: совпадение с OCR1A |
| 14 | TIMER1_COMPB | таймер 1: совпадение с OCR1B |
| 15 | TIMER1_OVF | таймер 1: переполнение |
| 16 | TIMER0_COMPA | таймер 0: совпадение с OCR0A |
| 17 | TIMER0_COMPB | таймер 0: совпадение с OCR0B |
| 18 | TIMER0_OVF | таймер 0: переполнение |
| 19 | CAN_INT | CAN MOB, Burst, General Errors |
| 20 | CAN_TOVF | CAN Timer Overflow |
| 21 | LIN_TC | LIN Transfer Complete |
| 22 | LIN_ERR | LIN Error |
| 23 | PCINT0 | изменение уровня на выводах группы PCINT0 |
| 24 | PCINT1 | изменение уровня на выводах группы PCINT1 |
| 25 | PCINT2 | изменение уровня на выводах группы PCINT2 |
| 26 | PCINT3 | изменение уровня на выводах группы PCINT3 |
| 27 | SPI_STC | SPI: передача завершена |
| 28 | ADC | АЦП: преобразование завершено |
| 29 | WDT | сторожевой таймер |
| 30 | EE_READY | EEPROM готова к записи |
| 31 | SPM_READY | готовность к записи флеш-памяти (SPM) |
Частые вопросы
Чем отличаются ATmega64M1, ATmega32M1 и ATmega16M1?
Объём памяти: ATmega64M1 — 64 КБ флеш, 4 КБ ОЗУ, 2 КБ EEPROM; ATmega32M1 — 32 КБ флеш, 2 КБ ОЗУ, 1 КБ EEPROM; ATmega16M1 — 16 КБ флеш, 1 КБ ОЗУ, 512 байт EEPROM. Сигнатуры разные: avrdude сверяет сигнатуру с типом, указанным ключом -p, и не станет прошивать другой микроконтроллер без ключа -F. В общих корпусах расположение выводов и их функции одинаковые.
Какие фьюзы у ATmega64M1 с завода?
LOW 0x62, HIGH 0xD9, EXTENDED 0xFF — тактирование: внутренний RC-генератор 8 МГц, делитель на 8 (CKDIV8) — 1 МГц. Расшифровку каждого бита и команду avrdude для своих значений даёт калькулятор фьюзов AVR.
Сколько линий ввода-вывода у ATmega64M1?
27 линий: PB0–PB7, PC0–PC7, PD0–PD7, PE0–PE2. У каждой есть альтернативные функции периферии — они перечислены в таблице выводов.
Как прошить ATmega64M1?
Через ISP-программатор: MOSI — PD3 (вывод 2 в TQFP32), MISO — PD2 (вывод 1 в TQFP32), SCK — PD4 (вывод 12 в TQFP32), RESET — PE0 (вывод 31 в TQFP32), плюс питание и общий провод. Это альтернативные выводы SPI — MOSI_A, MISO_A и SCK_A: по даташиту порт программирования всегда на них, а не на основных MOSI, MISO и SCK. В avrdude микроконтроллер выбирается ключом -p m64m1. Другие интерфейсы ATmega64M1: HVPP — высоковольтное параллельное программирование, debugWIRE — отладка по выводу RESET.
В каких корпусах выпускается ATmega64M1?
TQFP32 и QFN32. Распиновка у них одинаковая. Полный список заказных номеров с диапазонами температуры и питания — в разделе «Заказные номера».
Источники
Корпуса, выводы, память, заказные номера, фьюзы, сигнатуры и векторы прерываний — из файлов описания устройств (ATDF) в паках Microchip ATmega_DFP 3.6.299 от 22 января 2026 г., лицензия Apache 2.0. Данные преобразованы в таблицы и схемы корпусов; тексты и рисунки — GAW. Лицензии и источники данных.
Функции и расположение выводов сверены с даташитом ATmega16M1/32M1/64M1 (Atmel-8209F). По даташиту исправлены ошибки описания Microchip: у ATmega64M1, ATmega32M1 и ATmega16M1 RESET — на PE0, а не на PC6.
Калькуляторы и статьи
- Фьюзы AVRБиты фьюзов, заводские значения и avrdude
- Таймер AVR и STM32Предделитель, OCRnA, PSC и ARR под частоту
- Конденсаторы для кварцаC1 и C2 по CL, запас генерации, уход частоты
- AVR ISP, UPDI и TPIISP 6 и 10 pin, USBasp, UPDI и TPI
- Система команд AVRВсе инструкции с флагами и тактами, адресация, примеры кода
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR