ATmega328PB
8-битный микроконтроллер AVR серии megaAVR с 32 КБ флеш-памяти и частотой до 20 МГц в корпусах TQFP32, VQFN32. Распиновка с функциями выводов, сверенными с даташитом, заказные номера, фьюзы с завода и векторы прерываний — по описаниям Microchip.
Обновлено данные Microchip, ATmega_DFP 3.6.299
- Ядро
- AVR, 8 бит
- Флеш-память
- 32 КБ
- ОЗУ
- 2 КБ
- EEPROM
- 1 КБ
- Частота
- до 20 МГц
- Питание
- 1,8–5,5 В
- Температура
- −40…+105 °C
- Линии ввода-вывода
- 27
- Корпуса
- TQFP32, VQFN32
- Программирование
- ISP, HVPP, debugWIRE
Схема корпуса
Вид сверху. Выберите периферию — её выводы подсветятся на схеме, а в списке ниже останутся только её сигналы. Наведите курсор на вывод, чтобы увидеть все его функции. Расположение выводов сверено с рисунками и таблицами даташитов.
- ввод-вывод
- питание и земля
- сброс и выбор загрузки
- не подключён
- выбранная периферия
Периферия и её выводы
На какие линии порта выходит каждый сигнал. У классических AVR функции закреплены за линиями: включённая периферия сама занимает свой вывод, выбирать другой, как у STM32, нельзя.
USART — синхронно-асинхронный приёмопередатчик
| Блок | Сигнал | Линия порта |
|---|---|---|
| USART0 | RXD0 | PD0 |
| TXD0 | PD1 | |
| XCK0 | PD4 | |
| USART1 | RXD1 | PB4 |
| TXD1 | PB3 | |
| XCK1 | PB5 |
SPI — последовательный интерфейс SPI
| Блок | Сигнал | Линия порта |
|---|---|---|
| SPI0 | MISO0 | PB4 |
| MOSI0 | PB3 | |
| SCK0 | PB5 | |
| SS0 | PB2 | |
| SPI1 | MISO1 | PC0 |
| MOSI1 | PE3 | |
| SCK1 | PC1 | |
| SS1 | PE2 |
TWI (I²C) — двухпроводной интерфейс, совместимый с I²C
| Блок | Сигнал | Линия порта |
|---|---|---|
| TWI0 | SCL0 | PC5 |
| SDA0 | PC4 | |
| TWI1 | SCL1 | PE1 |
| SDA1 | PE0 |
Таймеры — выходы сравнения и ШИМ, входы счёта и захвата таймеров
| Блок | Сигнал | Линия порта |
|---|---|---|
| TC0 | OC0A | PD6 |
| OC0B | PD5 | |
| T0 | PD4 | |
| TC1 | ICP1 | PB0 |
| OC1A | PB1 | |
| OC1B | PB2 | |
| T1 | PD5 | |
| TC2 | OC2A | PB3 |
| OC2B | PD3 | |
| TOSC1 | PB6 | |
| TOSC2 | PB7 | |
| TC3 | ICP3 | PE2 |
| OC3A | PD0 | |
| OC3B | PD2 | |
| T3 | PE3 | |
| TC4 | ICP4 | PE0 |
| OC4A | PD1 | |
| OC4B | PD2 | |
| T4 | PE1 |
АЦП — аналого-цифровой преобразователь
| Блок | Сигнал | Линия порта |
|---|---|---|
| ADC | ADC0 | PC0 |
| ADC1 | PC1 | |
| ADC2 | PC2 | |
| ADC3 | PC3 | |
| ADC4 | PC4 | |
| ADC5 | PC5 | |
| ADC6 | PE2 | |
| ADC7 | PE3 |
Компаратор — аналоговый компаратор
| Блок | Сигнал | Линия порта |
|---|---|---|
| AC | ACO | PE0 |
| AIN0 | PD6 | |
| AIN1 | PD7 |
Прерывания — внешние прерывания INT и PCINT
| Блок | Сигнал | Линия порта |
|---|---|---|
| EXINT | INT0 | PD2 |
| INT1 | PD3 | |
| 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 | |
| PCINT16 | PD0 | |
| PCINT17 | PD1 | |
| PCINT18 | PD2 | |
| PCINT19 | PD3 | |
| PCINT20 | PD4 | |
| PCINT21 | PD5 | |
| PCINT22 | PD6 | |
| PCINT23 | PD7 | |
| PCINT24 | PE0 | |
| PCINT25 | PE1 | |
| PCINT26 | PE2 | |
| PCINT27 | PE3 |
Тактирование — кварцевый генератор, вход и выход тактового сигнала
| Блок | Сигнал | Линия порта |
|---|---|---|
| CPU | CLKO | PB0 |
| XTAL1 | PB6 | |
| XTAL2 | PB7 |
PTC — сенсорный контроллер: линии X и Y
| Блок | Сигнал | Линия порта |
|---|---|---|
| PTC | X00 | PD0 |
| X01 | PD1 | |
| X02 | PD2 | |
| X03 | PD3 | |
| X04 | PD4 | |
| X05 | PD5 | |
| X06 | PD6 | |
| X07 | PD7 | |
| X08 | PE0 | |
| X09 | PE1 | |
| X10 | PB0 | |
| X11 | PB1 | |
| X12 | PB2 | |
| X13 | PB3 | |
| X14 | PB4 | |
| X15 | PB5 | |
| Y00 | PC0 | |
| Y01 | PC1 | |
| Y02 | PC2 | |
| Y03 | PC3 | |
| Y04 | PC4 | |
| Y05 | PC5 | |
| Y06 | PE2 | |
| Y07 | PE3 | |
| Y08 | PD0 | |
| Y09 | PD1 | |
| Y10 | PD2 | |
| Y11 | PD3 | |
| Y12 | PD4 | |
| Y13 | PD5 | |
| Y14 | PD6 | |
| Y15 | PD7 | |
| Y16 | PE0 | |
| Y17 | PE1 | |
| Y18 | PB0 | |
| Y19 | PB1 | |
| Y20 | PB2 | |
| Y21 | PB3 | |
| Y22 | PB4 | |
| Y23 | PB5 |
Таблица выводов
Номера выводов в каждом корпусе и функции линий. Обычный режим порта — вход, выход, вход с подтяжкой — есть у каждой линии ввода-вывода, в таблице перечислены только альтернативные функции. Функции сверены с даташитом: те, которых нет в описании Microchip, добавлены по даташиту.
| TQFP32, VQFN32 | Имя | Тип | Функции |
|---|---|---|---|
| 1 | PD3 | ввод-вывод | OC2B, INT1, PCINT19, X03, Y11 |
| 2 | PD4 | ввод-вывод | XCK0, T0, PCINT20, X04, Y12 |
| 3 | PE0 | ввод-вывод | SDA1, ICP4, ACO, PCINT24, X08, Y16 |
| 4 | VCC | питание | — |
| 5, 21 | GND | питание | — |
| 6 | PE1 | ввод-вывод | SCL1, T4, PCINT25, X09, Y17 |
| 7 | PB6 | ввод-вывод | XTAL1, TOSC1, PCINT6 |
| 8 | PB7 | ввод-вывод | XTAL2, TOSC2, PCINT7 |
| 9 | PD5 | ввод-вывод | OC0B, T1, PCINT21, X05, Y13 |
| 10 | PD6 | ввод-вывод | OC0A, AIN0, PCINT22, X06, Y14 |
| 11 | PD7 | ввод-вывод | AIN1, PCINT23, X07, Y15 |
| 12 | PB0 | ввод-вывод | ICP1, CLKO, PCINT0, X10, Y18 |
| 13 | PB1 | ввод-вывод | OC1A, PCINT1, X11, Y19 |
| 14 | PB2 | ввод-вывод | SS0, OC1B, PCINT2, X12, Y20 |
| 15 | PB3 | ввод-вывод | MOSI0, TXD1, OC2A, PCINT3, X13, Y21 |
| 16 | PB4 | ввод-вывод | MISO0, RXD1, PCINT4, X14, Y22 |
| 17 | PB5 | ввод-вывод | XCK1, SCK0, PCINT5, X15, Y23 |
| 18 | AVCC | питание | — |
| 19 | PE2 | ввод-вывод | ADC6, ICP3, SS1, PCINT26, Y06 |
| 20 | AREF | питание | — |
| 22 | PE3 | ввод-вывод | ADC7, T3, MOSI1, PCINT27, Y07 |
| 23 | PC0 | ввод-вывод | ADC0, MISO1, PCINT8, Y00 |
| 24 | PC1 | ввод-вывод | ADC1, SCK1, PCINT9, Y01 |
| 25 | PC2 | ввод-вывод | ADC2, PCINT10, Y02 |
| 26 | PC3 | ввод-вывод | ADC3, PCINT11, Y03 |
| 27 | PC4 | ввод-вывод | ADC4, SDA0, PCINT12, Y04 |
| 28 | PC5 | ввод-вывод | ADC5, SCL0, PCINT13, Y05 |
| 29 | PC6 | ввод-вывод | RESET, PCINT14 |
| 30 | PD0 | ввод-вывод | OC3A, RXD0, PCINT16, X00, Y08 |
| 31 | PD1 | ввод-вывод | OC4A, TXD0, PCINT17, X01, Y09 |
| 32 | PD2 | ввод-вывод | INT0, OC3B, OC4B, PCINT18, X02, Y10 |
Питание и служебные выводы
Выводы, которые не являются линиями порта. Номиналы блокировочных конденсаторов и фильтра питания АЦП — в разделе о питании даташита.
| Имя | Выводы | Назначение |
|---|---|---|
| VCC | TQFP32: 4 | напряжение питания |
| GND | TQFP32: 5, 21 | общий провод |
| AVCC | TQFP32: 18 | питание АЦП и части линий порта; подключают к VCC, даже если АЦП не используется, при работе АЦП — через фильтр нижних частот |
| AREF | TQFP32: 20 | вход опорного напряжения АЦП |
Исполнения
Память, частота и сигнатура ATmega328PB по описанию Microchip. Частота и питание — классы скорости из заказных номеров: предельная частота и диапазон питания. Многие модели работают на предельной частоте не во всём диапазоне — зависимость показывает график Speed Grades в даташите. Сигнатура — три байта, по которым программатор узнаёт микроконтроллер, в последнем столбце — его обозначение для ключа -p программы avrdude.
| Микроконтроллер | Флеш | ОЗУ | EEPROM | Частота и питание | Сигнатура | avrdude |
|---|---|---|---|---|---|---|
| ATmega328PB | 32 КБ | 2 КБ | 1 КБ | 20 МГц, 1,8–5,5 В | 1E 95 16 | m328pb |
Заказные номера
Номера для заказа из описания Microchip с корпусом, предельной частотой, диапазонами питания и рабочей температуры.
| Номер | Корпус | Частота | Питание | Температура |
|---|---|---|---|---|
| ATmega328PB-AU | TQFP32 | до 20 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega328PB-MU | VQFN32 | до 20 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega328PB-AN | TQFP32 | до 20 МГц | 1,8–5,5 В | −40…+105 °C |
| ATmega328PB-MN | VQFN32 | до 20 МГц | 1,8–5,5 В | −40…+105 °C |
Фьюзы с завода
Значения фьюзов, с которыми микроконтроллер приходит с завода, и источник тактового сигнала, который они выбирают. В скобках — имя байта в avrdude. Расшифровку каждого бита, другие режимы и готовую команду avrdude даёт калькулятор фьюзов AVR.
| Микроконтроллер | LOW (lfuse) | HIGH (hfuse) | EXTENDED (efuse) | Тактирование | Калькулятор |
|---|---|---|---|---|---|
| ATmega328PB | 0x62 | 0xD9 | 0xF7 | Внутренний RC-генератор 8 МГц, делитель на 8 (CKDIV8) — 1 МГц | открыть |
Векторы прерываний
Таблица векторов ATmega328PB: номер, как в даташите (сброс — первый), имя вектора по описанию Microchip и источник прерывания. Обработчик в avr-gcc объявляют макросом ISR() с именем вектора из avr/io.h — обычно это имя из таблицы с суффиксом _vect, например ISR(INT0_vect).
| № | Вектор | Источник |
|---|---|---|
| 1 | RESET | сброс: включение питания, вывод RESET, BOD, сторожевой таймер |
| 2 | INT0 | внешнее прерывание INT0 |
| 3 | INT1 | внешнее прерывание INT1 |
| 4 | PCINT0 | изменение уровня на выводах группы PCINT0 |
| 5 | PCINT1 | изменение уровня на выводах группы PCINT1 |
| 6 | PCINT2 | изменение уровня на выводах группы PCINT2 |
| 7 | WDT | сторожевой таймер |
| 8 | TIMER2_COMPA | таймер 2: совпадение с OCR2A |
| 9 | TIMER2_COMPB | таймер 2: совпадение с OCR2B |
| 10 | TIMER2_OVF | таймер 2: переполнение |
| 11 | TIMER1_CAPT | таймер 1: захват |
| 12 | TIMER1_COMPA | таймер 1: совпадение с OCR1A |
| 13 | TIMER1_COMPB | таймер 1: совпадение с OCR1B |
| 14 | TIMER1_OVF | таймер 1: переполнение |
| 15 | TIMER0_COMPA | таймер 0: совпадение с OCR0A |
| 16 | TIMER0_COMPB | таймер 0: совпадение с OCR0B |
| 17 | TIMER0_OVF | таймер 0: переполнение |
| 18 | SPI0_STC | SPI Serial Transfer Complete |
| 19 | USART0_RX | USART0: приём завершён |
| 20 | USART0_UDRE | USART0: регистр данных пуст |
| 21 | USART0_TX | USART0: передача завершена |
| 22 | ADC | АЦП: преобразование завершено |
| 23 | EE_READY | EEPROM готова к записи |
| 24 | ANALOG_COMP | аналоговый компаратор |
| 25 | TWI0 | Two-wire Serial Interface |
| 26 | SPM_Ready | готовность к записи флеш-памяти (SPM) |
| 27 | USART0_START | USART0 Start frame detection |
| 28 | PCINT3 | изменение уровня на выводах группы PCINT3 |
| 29 | USART1_RX | USART1: приём завершён |
| 30 | USART1_UDRE | USART1: регистр данных пуст |
| 31 | USART1_TX | USART1: передача завершена |
| 32 | USART1_START | USART1 Start frame detection |
| 33 | TIMER3_CAPT | таймер 3: захват |
| 34 | TIMER3_COMPA | таймер 3: совпадение с OCR3A |
| 35 | TIMER3_COMPB | таймер 3: совпадение с OCR3B |
| 36 | TIMER3_OVF | таймер 3: переполнение |
| 37 | CFD | Clock failure detection interrupt |
| 38 | PTC_EOC | PTC End of conversion |
| 39 | PTC_WCOMP | PTC Window comparator mode |
| 40 | SPI1_STC | SPI1 Serial Transfer Complete |
| 41 | TWI1 | TWI Transfer Complete |
| 42 | TIMER4_CAPT | таймер 4: захват |
| 43 | TIMER4_COMPA | таймер 4: совпадение с OCR4A |
| 44 | TIMER4_COMPB | таймер 4: совпадение с OCR4B |
| 45 | TIMER4_OVF | таймер 4: переполнение |
Совместимые по выводам
Микроконтроллеры, у которых в том же корпусе на тех же местах стоят те же выводы. Распиновка совпадает полностью, но периферия, память, регистры и фьюзы могут отличаться: перед заменой сверьте даташиты.
- ATmega168PB, ATmega88PB и ATmega48PB — TQFP32, VQFN32
Частые вопросы
Какие фьюзы у ATmega328PB с завода?
LOW 0x62, HIGH 0xD9, EXTENDED 0xF7 — тактирование: внутренний RC-генератор 8 МГц, делитель на 8 (CKDIV8) — 1 МГц. Расшифровку каждого бита и команду avrdude для своих значений даёт калькулятор фьюзов AVR.
Сколько линий ввода-вывода у ATmega328PB?
27 линий: PB0–PB7, PC0–PC6, PD0–PD7, PE0–PE3. У каждой есть альтернативные функции периферии — они перечислены в таблице выводов.
В каких корпусах выпускается ATmega328PB?
TQFP32 и VQFN32. Распиновка у них одинаковая. Полный список заказных номеров с диапазонами температуры и питания — в разделе «Заказные номера».
Источники
Корпуса, выводы, память, заказные номера, фьюзы, сигнатуры и векторы прерываний — из файлов описания устройств (ATDF) в паках Microchip ATmega_DFP 3.6.299 от 22 января 2026 г., лицензия Apache 2.0. Данные преобразованы в таблицы и схемы корпусов; тексты и рисунки — GAW. Лицензии и источники данных.
Функции и расположение выводов сверены с даташитом ATmega328PB (DS40001906C). По даташиту исправлены ошибки описания Microchip: у ATmega328PB PCINT27 — на PE3, а не на PE2.
Калькуляторы и статьи
- Фьюзы AVRБиты фьюзов, заводские значения и avrdude
- Таймер AVR и STM32Предделитель, OCRnA, PSC и ARR под частоту
- Скорость UARTUBRR, BRR, TH1 и ошибка скорости
- Конденсаторы для кварцаC1 и C2 по CL, запас генерации, уход частоты
- Подтягивающие резисторы I²CДиапазон Rp по напряжению, скорости и ёмкости шины
- AVR ISP, UPDI и TPIISP 6 и 10 pin, USBasp, UPDI и TPI
- Система команд AVRВсе инструкции с флагами и тактами, адресация, примеры кода
- UARTКадр 8N1, скорость и допуск, TX и RX, уровни, USB–UART, AVR и STM32