Перейти к содержанию

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

Схема корпуса

Вид сверху. Выберите периферию — её выводы подсветятся на схеме, а в списке ниже останутся только её сигналы. Наведите курсор на вывод, чтобы увидеть все его функции. Расположение выводов сверено с рисунками и таблицами даташитов.

Распиновка ATmega64M1, ATmega32M1, ATmega16M1 в корпусе TQFP32, QFN32, вид сверхуATmega64M1/32M1/16M1TQFP32, QFN32вид сверхуPD2 — вывод 1: PCINT18, PSCIN2, OC1A, MISO_A1PD2PD3 — вывод 2: PCINT19, TXD, TXLIN, OC0A, SS, MOSI_A2PD3PC1 — вывод 3: PCINT9, PSCIN1, OC1B, SS_A3PC1VCC — вывод 44VCCGND — вывод 55GNDPC2 — вывод 6: PCINT10, T0, TXCAN6PC2PC3 — вывод 7: PCINT11, T1, RXCAN, ICP1B7PC3PB0 — вывод 8: PCINT0, MISO, PSCOUT2A8PB0PB1 — вывод 9: PCINT1, MOSI, PSCOUT2B9PB1PE1 — вывод 10: PCINT25, OC0B, XTAL110PE1PE2 — вывод 11: PCINT26, ADC0, XTAL211PE2PD4 — вывод 12: PCINT20, ADC1, RXD, RXLIN, ICP1A, SCK_A12PD4PD5 — вывод 13: ADC2, ACMP2, PCINT2113PD5PD6 — вывод 14: ADC3, ACMPN2, INT0, PCINT2214PD6PD7 — вывод 15: ACMP0, PCINT2315PD7PB2 — вывод 16: ADC5, INT1, ACMPN0, PCINT216PB2PC4 — вывод 17: ADC8, ACMPN3, AMP1-, PCINT1217PC4PC5 — вывод 18: ADC9, ACMP3, AMP1+, PCINT1318PC5AVCC — вывод 1919AVCCAGND — вывод 2020AGNDAREF — вывод 2121AREFPC6 — вывод 22: ADC10, ACMP1, PCINT1422PC6PB3 — вывод 23: AMP0-, PCINT323PB3PB4 — вывод 24: AMP0+, PCINT424PB4PC7 — вывод 25: D2A, AMP2+, PCINT1525PC7PB5 — вывод 26: ADC6, INT2, ACMPN1, AMP2-, PCINT526PB5PB6 — вывод 27: ADC7, PSCOUT1B, PCINT627PB6PB7 — вывод 28: ADC4, PSCOUT0B, SCK, PCINT728PB7PD0 — вывод 29: PCINT16, PSCOUT0A29PD0PC0 — вывод 30: PCINT8, INT3, PSCOUT1A30PC0PE0 — вывод 31: PCINT24, RESET, OCD31PE0PD1 — вывод 32: PCINT17, PSCIN0, CLKO32PD1
TQFP32 и QFN32
  • ввод-вывод
  • питание и земля
  • сброс и выбор загрузки
  • не подключён
  • выбранная периферия

Периферия и её выводы

На какие линии порта выходит каждый сигнал. У классических AVR функции закреплены за линиями: включённая периферия сама занимает свой вывод, но у ATmega64M1 есть исключения. Сигналы SPI можно перенести на другой набор выводов — его выбирает бит SPIPS регистра MCUCR; эти места даташит помечает суффиксом _A.

LIN/UART — контроллер шины LIN или UART

БлокСигналЛиния порта
LINUARTRXDPD4
RXLINPD4
TXDPD3
TXLINPD3

SPI — последовательный интерфейс SPI

БлокСигналЛиния порта
SPIMISOPB0
MISO_APD2
MOSIPB1
MOSI_APD3
SCKPB7
SCK_APD4
SSPD3
SS_APC1

Таймеры — выходы сравнения и ШИМ, входы счёта и захвата таймеров

БлокСигналЛиния порта
TC0OC0APD3
OC0BPE1
T0PC2
TC1ICP1APD4
ICP1BPC3
OC1APD2
OC1BPC1
T1PC3

PSC — контроллер силового каскада: выходы ШИМ и аварийные входы

БлокСигналЛиния порта
PSCPSCIN0PD1
PSCIN1PC1
PSCIN2PD2
PSCOUT0APD0
PSCOUT0BPB7
PSCOUT1APC0
PSCOUT1BPB6
PSCOUT2APB0
PSCOUT2BPB1

АЦП — аналого-цифровой преобразователь

БлокСигналЛиния порта
ADCADC0PE2
ADC1PD4
ADC2PD5
ADC3PD6
ADC4PB7
ADC5PB2
ADC6PB5
ADC7PB6
ADC8PC4
ADC9PC5
ADC10PC6
AMP0-PB3
AMP0+PB4
AMP1-PC4
AMP1+PC5
AMP2-PB5
AMP2+PC7

ЦАП — цифро-аналоговый преобразователь

БлокСигналЛиния порта
DACD2APC7

Компаратор — аналоговый компаратор

БлокСигналЛиния порта
ACACMP0PD7
ACMP1PC6
ACMP2PD5
ACMP3PC5
ACMPN0PB2
ACMPN1PB5
ACMPN2PD6
ACMPN3PC4

Прерывания — внешние прерывания INT и PCINT

БлокСигналЛиния порта
EXINTINT0PD6
INT1PB2
INT2PB5
INT3PC0
PCINT0PB0
PCINT1PB1
PCINT2PB2
PCINT3PB3
PCINT4PB4
PCINT5PB5
PCINT6PB6
PCINT7PB7
PCINT8PC0
PCINT9PC1
PCINT10PC2
PCINT11PC3
PCINT12PC4
PCINT13PC5
PCINT14PC6
PCINT15PC7
PCINT16PD0
PCINT17PD1
PCINT18PD2
PCINT19PD3
PCINT20PD4
PCINT21PD5
PCINT22PD6
PCINT23PD7
PCINT24PE0
PCINT25PE1
PCINT26PE2

Тактирование — кварцевый генератор, вход и выход тактового сигнала

БлокСигналЛиния порта
CPUCLKOPD1
XTAL1PE1
XTAL2PE2

debugWIRE — отладка по выводу RESET

БлокСигналЛиния порта
DWOCDPE0

CAN — контроллер шины CAN

БлокСигналЛиния порта
CANRXCANPC3
TXCANPC2

Таблица выводов

Номера выводов в каждом корпусе и функции линий. Обычный режим порта — вход, выход, вход с подтяжкой — есть у каждой линии ввода-вывода, в таблице перечислены только альтернативные функции. Функции сверены с даташитом: те, которых нет в описании Microchip, добавлены по даташиту.

TQFP32, QFN32ИмяТипФункции
1PD2ввод-выводPCINT18, PSCIN2, OC1A, MISO_A
2PD3ввод-выводPCINT19, TXD, TXLIN, OC0A, SS, MOSI_A
3PC1ввод-выводPCINT9, PSCIN1, OC1B, SS_A
4VCCпитание—
5GNDпитание—
6PC2ввод-выводPCINT10, T0, TXCAN
7PC3ввод-выводPCINT11, T1, RXCAN, ICP1B
8PB0ввод-выводPCINT0, MISO, PSCOUT2A
9PB1ввод-выводPCINT1, MOSI, PSCOUT2B
10PE1ввод-выводPCINT25, OC0B, XTAL1
11PE2ввод-выводPCINT26, ADC0, XTAL2
12PD4ввод-выводPCINT20, ADC1, RXD, RXLIN, ICP1A, SCK_A
13PD5ввод-выводADC2, ACMP2, PCINT21
14PD6ввод-выводADC3, ACMPN2, INT0, PCINT22
15PD7ввод-выводACMP0, PCINT23
16PB2ввод-выводADC5, INT1, ACMPN0, PCINT2
17PC4ввод-выводADC8, ACMPN3, AMP1-, PCINT12
18PC5ввод-выводADC9, ACMP3, AMP1+, PCINT13
19AVCCпитание—
20AGNDпитание—
21AREFпитание—
22PC6ввод-выводADC10, ACMP1, PCINT14
23PB3ввод-выводAMP0-, PCINT3
24PB4ввод-выводAMP0+, PCINT4
25PC7ввод-выводD2A, AMP2+, PCINT15
26PB5ввод-выводADC6, INT2, ACMPN1, AMP2-, PCINT5
27PB6ввод-выводADC7, PSCOUT1B, PCINT6
28PB7ввод-выводADC4, PSCOUT0B, SCK, PCINT7
29PD0ввод-выводPCINT16, PSCOUT0A
30PC0ввод-выводPCINT8, INT3, PSCOUT1A
31PE0ввод-выводPCINT24, RESET, OCD
32PD1ввод-выводPCINT17, PSCIN0, CLKO

Питание и служебные выводы

Выводы, которые не являются линиями порта. Номиналы блокировочных конденсаторов и фильтра питания АЦП — в разделе о питании даташита.

ИмяВыводыНазначение
VCCTQFP32: 4напряжение питания
GNDTQFP32: 5общий провод
AVCCTQFP32: 19питание АЦП и части линий порта; подключают к VCC, даже если АЦП не используется, при работе АЦП — через фильтр нижних частот
AGNDTQFP32: 20общий провод
AREFTQFP32: 21вход опорного напряжения АЦП

Исполнения

ATmega64M1, ATmega32M1 и ATmega16M1 — микроконтроллеры с общей распиновкой: в общих корпусах выводы расположены одинаково. Различия — в таблице. Частота и питание — классы скорости из заказных номеров: предельная частота и диапазон питания. Многие модели работают на предельной частоте не во всём диапазоне — зависимость показывает график Speed Grades в даташите. Сигнатура — три байта, по которым программатор узнаёт микроконтроллер, в последнем столбце — его обозначение для ключа -p программы avrdude.

МикроконтроллерФлешОЗУEEPROMЧастота и питаниеСигнатураavrdude
ATmega64M164 КБ4 КБ2 КБ16 МГц, 2,7–5,5 В1E 96 84m64m1
ATmega32M132 КБ2 КБ1 КБ16 МГц, 2,7–5,5 В1E 95 84m32m1
ATmega16M116 КБ1 КБ512 байт16 МГц, 2,7–5,5 В1E 94 84m16m1

Заказные номера

Номера для заказа из описания Microchip с корпусом, предельной частотой, диапазонами питания и рабочей температуры.

НомерКорпусЧастотаПитаниеТемпература
ATmega64M1-AUTQFP32до 16 МГц2,7–5,5 В−40…+85 °C
ATmega64M1-MUQFN32до 16 МГц2,7–5,5 В−40…+85 °C
ATmega32M1-AUTQFP32до 16 МГц2,7–5,5 В−40…+85 °C
ATmega32M1-MUQFN32до 16 МГц2,7–5,5 В−40…+85 °C
ATmega16M1-AUTQFP32до 16 МГц2,7–5,5 В−40…+85 °C
ATmega16M1-MUQFN32до 16 МГц2,7–5,5 В−40…+85 °C

Фьюзы с завода

Значения фьюзов, с которыми микроконтроллер приходит с завода, и источник тактового сигнала, который они выбирают. В скобках — имя байта в avrdude. Расшифровку каждого бита, другие режимы и готовую команду avrdude даёт калькулятор фьюзов AVR.

МикроконтроллерLOW (lfuse)HIGH (hfuse)EXTENDED (efuse)ТактированиеКалькулятор
ATmega64M10x620xD90xFFВнутренний RC-генератор 8 МГц, делитель на 8 (CKDIV8) — 1 МГцоткрыть
ATmega32M10x620xD90xFFВнутренний RC-генератор 8 МГц, делитель на 8 (CKDIV8) — 1 МГцоткрыть
ATmega16M10x620xD90xFFВнутренний RC-генератор 8 МГц, делитель на 8 (CKDIV8) — 1 МГцоткрыть

Векторы прерываний

Таблица векторов ATmega64M1: номер, как в даташите (сброс — первый), имя вектора по описанию Microchip и источник прерывания. Обработчик в avr-gcc объявляют макросом ISR() с именем вектора из avr/io.h — обычно это имя из таблицы с суффиксом _vect, например ISR(INT0_vect).

№ВекторИсточник
1RESETсброс: включение питания, вывод RESET, BOD, сторожевой таймер
2ANACOMP0Analog Comparator 0
3ANACOMP1Analog Comparator 1
4ANACOMP2Analog Comparator 2
5ANACOMP3Analog Comparator 3
6PSC_FAULTPSC Fault
7PSC_ECPSC End of Cycle
8INT0внешнее прерывание INT0
9INT1внешнее прерывание INT1
10INT2внешнее прерывание INT2
11INT3внешнее прерывание INT3
12TIMER1_CAPTтаймер 1: захват
13TIMER1_COMPAтаймер 1: совпадение с OCR1A
14TIMER1_COMPBтаймер 1: совпадение с OCR1B
15TIMER1_OVFтаймер 1: переполнение
16TIMER0_COMPAтаймер 0: совпадение с OCR0A
17TIMER0_COMPBтаймер 0: совпадение с OCR0B
18TIMER0_OVFтаймер 0: переполнение
19CAN_INTCAN MOB, Burst, General Errors
20CAN_TOVFCAN Timer Overflow
21LIN_TCLIN Transfer Complete
22LIN_ERRLIN Error
23PCINT0изменение уровня на выводах группы PCINT0
24PCINT1изменение уровня на выводах группы PCINT1
25PCINT2изменение уровня на выводах группы PCINT2
26PCINT3изменение уровня на выводах группы PCINT3
27SPI_STCSPI: передача завершена
28ADCАЦП: преобразование завершено
29WDTсторожевой таймер
30EE_READYEEPROM готова к записи
31SPM_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.