ATmega88, ATmega88A, ATmega88P и ATmega88PA
8-битные микроконтроллеры AVR серии megaAVR с 8 КБ флеш-памяти и частотой до 20 МГц в корпусах PDIP28, TQFP32, QFN32, QFN28, UFBGA32. Распиновка с функциями выводов, сверенными с даташитом, заказные номера, фьюзы с завода и векторы прерываний — по описаниям Microchip.
Обновлено данные Microchip, ATmega_DFP 3.6.299
- Ядро
- AVR, 8 бит
- Флеш-память
- 8 КБ
- ОЗУ
- 1 КБ
- EEPROM
- 512 байт
- Частота
- до 20 МГц
- Питание
- 1,8–5,5 В
- Температура
- −40…+105 °C
- Линии ввода-вывода
- 23
- Корпуса
- PDIP28, TQFP32, QFN32, QFN28, UFBGA32
- Программирование
- ISP, HVPP, debugWIRE
Схема корпуса
Вид сверху. Выберите периферию — её выводы подсветятся на схемах, а в списке ниже останутся только её сигналы. Наведите курсор на вывод, чтобы увидеть все его функции. Расположение выводов сверено с рисунками и таблицами даташитов.
- ввод-вывод
- питание и земля
- сброс и выбор загрузки
- не подключён
- выбранная периферия
Не нарисован корпус UFBGA32 (ATmega88A и ATmega88PA): расположение выводов этого корпуса не удалось сверить с даташитом автоматически. Номера выводов — в таблице ниже; перед разводкой платы сверьте их с рисунком в даташите.
Периферия и её выводы
На какие линии порта выходит каждый сигнал. У классических AVR функции закреплены за линиями: включённая периферия сама занимает свой вывод, выбирать другой, как у STM32, нельзя.
USART — синхронно-асинхронный приёмопередатчик
| Блок | Сигнал | Линия порта |
|---|---|---|
| USART0 | RXD | PD0 |
| TXD | PD1 | |
| XCK | PD4 |
SPI — последовательный интерфейс SPI
| Блок | Сигнал | Линия порта |
|---|---|---|
| SPI | MISO | PB4 |
| MOSI | PB3 | |
| SCK | PB5 | |
| SS | PB2 |
TWI (I²C) — двухпроводной интерфейс, совместимый с I²C
| Блок | Сигнал | Линия порта |
|---|---|---|
| TWI | SCL | PC5 |
| SDA | PC4 |
Таймеры — выходы сравнения и ШИМ, входы счёта и захвата таймеров
| Блок | Сигнал | Линия порта |
|---|---|---|
| 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 |
АЦП — аналого-цифровой преобразователь
| Блок | Сигнал | Линия порта |
|---|---|---|
| ADC | ADC0 | PC0 |
| ADC1 | PC1 | |
| ADC2 | PC2 | |
| ADC3 | PC3 | |
| ADC4 | PC4 | |
| ADC5 | PC5 |
Компаратор — аналоговый компаратор
| Блок | Сигнал | Линия порта |
|---|---|---|
| AC | 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 |
Тактирование — кварцевый генератор, вход и выход тактового сигнала
| Блок | Сигнал | Линия порта |
|---|---|---|
| CPU | CLKO | PB0 |
| XTAL1 | PB6 | |
| XTAL2 | PB7 |
Таблица выводов
Номера выводов в каждом корпусе и функции линий. Обычный режим порта — вход, выход, вход с подтяжкой — есть у каждой линии ввода-вывода, в таблице перечислены только альтернативные функции. Функции сверены с даташитом.
| PDIP28 | TQFP32, QFN32 | QFN28 | UFBGA32* | Имя | Тип | Функции |
|---|---|---|---|---|---|---|
| 1 | 29 | 25 | A3 | PC6 | ввод-вывод | RESET, PCINT14 |
| 2 | 30 | 26 | B3 | PD0 | ввод-вывод | RXD, PCINT16 |
| 3 | 31 | 27 | A2 | PD1 | ввод-вывод | TXD, PCINT17 |
| 4 | 32 | 28 | A1 | PD2 | ввод-вывод | INT0, PCINT18 |
| 5 | 1 | 1 | B1 | PD3 | ввод-вывод | PCINT19, OC2B, INT1 |
| 6 | 2 | 2 | B2 | PD4 | ввод-вывод | PCINT20, XCK, T0 |
| 7 | 4, 6 | 3 | — | VCC | питание | — |
| 8, 22 | 3, 5, 21 | 4, 18 | C1, C6 | GND | питание | — |
| 9 | 7 | 5 | E1 | PB6 | ввод-вывод | PCINT6, XTAL1, TOSC1 |
| 10 | 8 | 6 | F1 | PB7 | ввод-вывод | PCINT7, XTAL2, TOSC2 |
| 11 | 9 | 7 | F2 | PD5 | ввод-вывод | PCINT21, OC0B, T1 |
| 12 | 10 | 8 | E2 | PD6 | ввод-вывод | PCINT22, OC0A, AIN0 |
| 13 | 11 | 9 | F3 | PD7 | ввод-вывод | PCINT23, AIN1 |
| 14 | 12 | 10 | E3 | PB0 | ввод-вывод | PCINT0, CLKO, ICP1 |
| 15 | 13 | 11 | F4 | PB1 | ввод-вывод | PCINT1, OC1A |
| 16 | 14 | 12 | E4 | PB2 | ввод-вывод | PCINT2, SS, OC1B |
| 17 | 15 | 13 | F5 | PB3 | ввод-вывод | PCINT3, OC2A, MOSI |
| 18 | 16 | 14 | F6 | PB4 | ввод-вывод | PCINT4, MISO |
| 19 | 17 | 15 | E6 | PB5 | ввод-вывод | SCK, PCINT5 |
| 20 | 18 | 16 | E5 | AVCC | питание | — |
| 21 | 20 | 17 | D5 | AREF | питание | — |
| 23 | 23 | 19 | B6 | PC0 | ввод-вывод | ADC0, PCINT8 |
| 24 | 24 | 20 | A6 | PC1 | ввод-вывод | ADC1, PCINT9 |
| 25 | 25 | 21 | A5 | PC2 | ввод-вывод | ADC2, PCINT10 |
| 26 | 26 | 22 | B5 | PC3 | ввод-вывод | ADC3, PCINT11 |
| 27 | 27 | 23 | A4 | PC4 | ввод-вывод | ADC4, SDA, PCINT12 |
| 28 | 28 | 24 | B4 | PC5 | ввод-вывод | ADC5, SCL, PCINT13 |
| — | 19 | — | D6 | ADC6 | служебный | ADC6 |
| — | 22 | — | C5 | ADC7 | служебный | ADC7 |
| — | — | — | D1, D2 | VDD | питание | — |
* Расположение выводов этого корпуса не подтверждено проверкой по даташиту: перед разводкой платы сверьтесь с рисунком в даташите.
Питание и служебные выводы
Выводы, которые не являются линиями порта. Номиналы блокировочных конденсаторов и фильтра питания АЦП — в разделе о питании даташита.
| Имя | Выводы | Назначение |
|---|---|---|
| VCC | PDIP28: 7; TQFP32: 4, 6; QFN28: 3 | напряжение питания |
| GND | PDIP28: 8, 22; TQFP32: 3, 5, 21; QFN28: 4, 18; UFBGA32: C1, C6 | общий провод |
| AVCC | PDIP28: 20; TQFP32: 18; QFN28: 16; UFBGA32: E5 | питание АЦП и части линий порта; подключают к VCC, даже если АЦП не используется, при работе АЦП — через фильтр нижних частот |
| AREF | PDIP28: 21; TQFP32: 20; QFN28: 17; UFBGA32: D5 | вход опорного напряжения АЦП |
| ADC6 | TQFP32: 19; UFBGA32: D6 | аналоговый вход АЦП без цифровой функции |
| ADC7 | TQFP32: 22; UFBGA32: C5 | аналоговый вход АЦП без цифровой функции |
| VDD | UFBGA32: D1, D2 | напряжение питания |
Исполнения
ATmega88, ATmega88A, ATmega88P и ATmega88PA — микроконтроллеры с общей распиновкой: в общих корпусах выводы расположены одинаково. Различия — в таблице. Частота и питание — классы скорости из заказных номеров: предельная частота и диапазон питания. Многие модели работают на предельной частоте не во всём диапазоне — зависимость показывает график Speed Grades в даташите. Сигнатура — три байта, по которым программатор узнаёт микроконтроллер, в последнем столбце — его обозначение для ключа -p программы avrdude.
| Микроконтроллер | Флеш | ОЗУ | EEPROM | Частота и питание | Сигнатура | avrdude |
|---|---|---|---|---|---|---|
| ATmega88 | 8 КБ | 1 КБ | 512 байт | 10 МГц, 1,8–5,5 В; 20 МГц, 2,7–5,5 В | 1E 93 0A | m88 |
| ATmega88A | 8 КБ | 1 КБ | 512 байт | 20 МГц, 1,8–5,5 В | 1E 93 0A | m88a |
| ATmega88P | 8 КБ | 1 КБ | 512 байт | 10 МГц, 1,8–5,5 В; 20 МГц, 2,7–5,5 В | 1E 93 0F | m88p |
| ATmega88PA | 8 КБ | 1 КБ | 512 байт | 20 МГц, 1,8–5,5 В | 1E 93 0F | m88pa |
Заказные номера
Номера для заказа из описания Microchip с корпусом, предельной частотой, диапазонами питания и рабочей температуры.
| Номер | Корпус | Частота | Питание | Температура |
|---|---|---|---|---|
| ATmega88V-10AU | TQFP32 | до 10 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega88V-10MU | QFN32 | до 10 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega88V-10PU | PDIP28 | до 10 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega88-20AU | TQFP32 | до 20 МГц | 2,7–5,5 В | −40…+85 °C |
| ATmega88-20MU | QFN32 | до 20 МГц | 2,7–5,5 В | −40…+85 °C |
| ATmega88-20PU | PDIP28 | до 20 МГц | 2,7–5,5 В | −40…+85 °C |
| ATmega88A-AU | TQFP32 | до 20 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega88A-CCU | UFBGA32 | до 20 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega88A-MMH | QFN28 | до 20 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega88A-MU | QFN32 | до 20 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega88A-PU | PDIP28 | до 20 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega88PV-10AU | TQFP32 | до 10 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega88PV-10MU | QFN32 | до 10 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega88PV-10PU | PDIP28 | до 10 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega88P-20AU | TQFP32 | до 20 МГц | 2,7–5,5 В | −40…+85 °C |
| ATmega88P-20MU | QFN32 | до 20 МГц | 2,7–5,5 В | −40…+85 °C |
| ATmega88P-20PU | PDIP28 | до 20 МГц | 2,7–5,5 В | −40…+85 °C |
| ATmega88PA-AU | TQFP32 | до 20 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega88PA-CCU | UFBGA32 | до 20 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega88PA-MMH | QFN28 | до 20 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega88PA-MU | QFN32 | до 20 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega88PA-PU | PDIP28 | до 20 МГц | 1,8–5,5 В | −40…+85 °C |
| ATmega88PA-AN | TQFP32 | до 20 МГц | 1,8–5,5 В | −40…+105 °C |
| ATmega88PA-MMN | QFN28 | до 20 МГц | 1,8–5,5 В | −40…+105 °C |
| ATmega88PA-MN | QFN32 | до 20 МГц | 1,8–5,5 В | −40…+105 °C |
| ATmega88PA-PN | PDIP28 | до 20 МГц | 1,8–5,5 В | −40…+105 °C |
Фьюзы с завода
Значения фьюзов, с которыми микроконтроллер приходит с завода, и источник тактового сигнала, который они выбирают. В скобках — имя байта в avrdude. Расшифровку каждого бита, другие режимы и готовую команду avrdude даёт калькулятор фьюзов AVR.
| Микроконтроллер | LOW (lfuse) | HIGH (hfuse) | EXTENDED (efuse) | Тактирование | Калькулятор |
|---|---|---|---|---|---|
| ATmega88 | 0x62 | 0xDF | 0xF9 | Внутренний RC-генератор 8 МГц, делитель на 8 (CKDIV8) — 1 МГц | открыть |
| ATmega88A | 0x62 | 0xDF | 0xF9 | Внутренний RC-генератор 8 МГц, делитель на 8 (CKDIV8) — 1 МГц | открыть |
| ATmega88P | 0x62 | 0xDF | 0xF9 | Внутренний RC-генератор 8 МГц, делитель на 8 (CKDIV8) — 1 МГц | открыть |
| ATmega88PA | 0x62 | 0xDF | 0xF9 | Внутренний RC-генератор 8 МГц, делитель на 8 (CKDIV8) — 1 МГц | открыть |
Векторы прерываний
Таблица векторов ATmega88: номер, как в даташите (сброс — первый), имя вектора по описанию 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 | SPI_STC | SPI: передача завершена |
| 19 | USART_RX | USART: приём завершён |
| 20 | USART_UDRE | USART: регистр данных пуст |
| 21 | USART_TX | USART: передача завершена |
| 22 | ADC | АЦП: преобразование завершено |
| 23 | EE_READY | EEPROM готова к записи |
| 24 | ANALOG_COMP | аналоговый компаратор |
| 25 | TWI | TWI (I²C) |
| 26 | SPM_Ready | готовность к записи флеш-памяти (SPM) |
Совместимые по выводам
Микроконтроллеры, у которых в том же корпусе на тех же местах стоят те же выводы. Распиновка совпадает полностью, но периферия, память, регистры и фьюзы могут отличаться: перед заменой сверьте даташиты.
- ATmega48, ATmega48A, ATmega48P и ATmega48PA — PDIP28, TQFP32, QFN32, QFN28
- ATmega168, ATmega168A, ATmega168P и ATmega168PA — PDIP28, TQFP32, QFN32, QFN28
- ATmega8 и ATmega8A (статья) — PDIP28, TQFP32, QFN32
- ATmega328P и ATmega328 (статья) — PDIP28, TQFP32, QFN32, QFN28
Частые вопросы
Чем отличаются ATmega88, ATmega88A, ATmega88P и ATmega88PA?
Память одинаковая: 8 КБ флеш, 1 КБ ОЗУ и 512 байт EEPROM. Классы скорости по заказным номерам: ATmega88 — 10 МГц, 1,8–5,5 В или 20 МГц, 2,7–5,5 В; ATmega88A — 20 МГц, 1,8–5,5 В; ATmega88P — 10 МГц, 1,8–5,5 В или 20 МГц, 2,7–5,5 В; ATmega88PA — 20 МГц, 1,8–5,5 В. Сигнатуры: ATmega88 — 1E 93 0A, ATmega88A — 1E 93 0A, ATmega88P — 1E 93 0F, ATmega88PA — 1E 93 0F. В общих корпусах расположение выводов и их функции одинаковые.
Какие фьюзы у ATmega88 с завода?
LOW 0x62, HIGH 0xDF, EXTENDED 0xF9 — тактирование: внутренний RC-генератор 8 МГц, делитель на 8 (CKDIV8) — 1 МГц. Расшифровку каждого бита и команду avrdude для своих значений даёт калькулятор фьюзов AVR.
Сколько линий ввода-вывода у ATmega88?
23 линии: PB0–PB7, PC0–PC6, PD0–PD7. У каждой есть альтернативные функции периферии — они перечислены в таблице выводов.
Как прошить ATmega88?
Через ISP-программатор: MOSI — PB3 (вывод 17 в PDIP28), MISO — PB4 (вывод 18 в PDIP28), SCK — PB5 (вывод 19 в PDIP28), RESET — PC6 (вывод 1 в PDIP28), плюс питание и общий провод. В avrdude микроконтроллер выбирается ключом -p m88. Другие интерфейсы ATmega88: HVPP — высоковольтное параллельное программирование, debugWIRE — отладка по выводу RESET.
В каких корпусах выпускается ATmega88?
PDIP28; TQFP32 и QFN32; QFN28 (только ATmega88A, ATmega88P и ATmega88PA); UFBGA32 (только ATmega88A и ATmega88PA). Через точку с запятой — корпуса с разной распиновкой, внутри группы она одинаковая. Полный список заказных номеров с диапазонами температуры и питания — в разделе «Заказные номера».
Источники
Корпуса, выводы, память, заказные номера, фьюзы, сигнатуры и векторы прерываний — из файлов описания устройств (ATDF) в паках Microchip ATmega_DFP 3.6.299 от 22 января 2026 г., лицензия Apache 2.0. Данные преобразованы в таблицы и схемы корпусов; тексты и рисунки — GAW. Лицензии и источники данных.
Функции и расположение выводов сверены с даташитом ATmega48A/PA/88A/PA/168A/PA/328/P (DS40002061B). Для ATmega88 и ATmega88P использован даташит исполнения с теми же выводами: функции выводов в описании Microchip у них одинаковые.
Калькуляторы и статьи
- Фьюзы 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