Ножки микросхемы Atmel/Atmega 328P-PU в DIP-корпусе (классический длинный черный корпус с двумя рядами ножек по бокам) распределены так:
Список, отсортированный по номерам контактов, выглядит так:
Контакт |
Номер ножки |
Назначение |
Примечание |
PC6 |
1 |
PCINT14 / -RESET |
Programming, debug / Digital |
PD0 |
2 |
PCINT16 / RXD |
Digital |
PD1 |
3 |
PCINT17 / TXD |
Digital |
PD2 |
4 |
PCINT18 / INT0 |
Digital |
PD3 |
5 |
PCINT19 / OC2B / INT1 |
Digital |
PD4 |
6 |
PCINT20 / XCK / T0 |
Digital |
VCC |
7 |
Напряжение питания |
Power |
GND |
8 |
|
Ground |
PB6 |
9 |
PCINT6 / XTAL1 / TOSC1 |
Digital / Crystal, Osc |
PB7 |
10 |
PCINT7 / XTAL2 / TOSC2 |
Digital / Crystal, Osc |
PD5 |
11 |
PCINT21 / OC0B / T1 |
Digital |
PD6 |
12 |
PCINT22 / OC0A / AIN0 |
Digital / Analog |
PD7 |
13 |
PCINT23 / AIN1 |
Digital / Analog |
PB0 |
14 |
PCINT0 / CLKO / ICP1 |
Digital |
PB1 |
15 |
OC1A / PCINT1 |
Digital |
PB2 |
16 |
-SS / OC1B / PCINT2 |
Digital |
PB3 |
17 |
MOSI / OC2A / PCINT3 |
Digital |
PB4 |
18 |
MISO / PCINT4 |
Digital |
PB5 |
19 |
SCK/PCINT5 |
Digital |
AVCC |
20 |
Качественное питание для АЦП |
Power |
AREF |
21 |
Опорное напряжение для АЦП |
Analog |
GND |
22 |
|
Ground |
PC0 |
23 |
ADC0 / PCINT8 |
Analog / Digital |
PC1 |
24 |
ADC1 / PCINT9 |
Analog / Digital |
PC2 |
25 |
ADC2 / PCINT10 |
Analog / Digital |
PC3 |
26 |
ADC3 / PCINT11 |
Analog / Digital |
PC4 |
27 |
ADC4 / SDA / PCINT12 |
Analog / Digital |
PC5 |
28 |
ADC5 / SCL / PCINT13 |
Analog / Digital |
Список, отсортированный по наименованиям контактов, выглядит так:
Контакт |
Номер ножки |
Назначение |
Примечание |
PB0 |
14 |
PCINT0 / CLKO / ICP1 |
Digital |
PB1 |
15 |
OC1A / PCINT1 |
Digital |
PB2 |
16 |
-SS / OC1B / PCINT2 |
Digital |
PB3 |
17 |
MOSI / OC2A / PCINT3 |
Digital |
PB4 |
18 |
MISO / PCINT4 |
Digital |
PB5 |
19 |
SCK/PCINT5 |
Digital |
PB6 |
9 |
PCINT6 / XTAL1 / TOSC1 |
Digital / Crystal, Osc |
PB7 |
10 |
PCINT7 / XTAL2 / TOSC2 |
Digital / Crystal, Osc |
PC0 |
23 |
ADC0 / PCINT8 |
Analog / Digital |
PC1 |
24 |
ADC1 / PCINT9 |
Analog / Digital |
PC2 |
25 |
ADC2 / PCINT10 |
Analog / Digital |
PC3 |
26 |
ADC3 / PCINT11 |
Analog / Digital |
PC4 |
27 |
ADC4 / SDA / PCINT12 |
Analog / Digital |
PC5 |
28 |
ADC5 / SCL / PCINT13 |
Analog / Digital |
PC6 |
1 |
PCINT14 / -RESET |
Programming, debug / Digital |
PD0 |
2 |
PCINT16 / RXD |
Digital |
PD1 |
3 |
PCINT17 / TXD |
Digital |
PD2 |
4 |
PCINT18 / INT0 |
Digital |
PD3 |
5 |
PCINT19 / OC2B / INT1 |
Digital |
PD4 |
6 |
PCINT20 / XCK / T0 |
Digital |
PD5 |
11 |
PCINT21 / OC0B / T1 |
Digital |
PD6 |
12 |
PCINT22 / OC0A / AIN0 |
Digital / Analog |
PD7 |
13 |
PCINT23 / AIN1 |
Digital / Analog |
AREF |
21 |
Опорное напряжение для АЦП |
Analog |
VCC |
7 |
Напряжение питания |
Power |
AVCC |
20 |
Качественное питание для АЦП |
Power |
GND |
8 |
|
Ground |
GND |
22 |
|
Ground |
В этом списке сразу видно, что микросхема имеет три порта B, C и D. Причем порт C отличается тем, что он 7-ми разрядный, в то время как порты B и D 8-ми разрядные.
Итого, имеется 8 + 8 + 7 = 23 ножки, принадлежащих трем портам. Почему же на сигнальные выводы Arduino UNO отведено всего 20 пинов? Куда делись 3 пина? А вот куда:
- Ножка PC6 никуда не делась, просто она вынесена в контактную группу Power и отвечает за сброс контроллера (работает в режиме -RESET).
- Ножки PB6 и PB7 используются в режимах XTAL1 и XTAL2 и подключены к внешнему кварцевому резонатору.
Итого, на Arduino UNO реально доступно 20 пинов:
- На порту B - 6 бит
- На порту C - 6 бит
- На порту D - 8 бит
Из них ножки PD0 и PD1 при включении и начальной инициализации Arduino используются в качестве COM-порта, Adrduino пытается определить наличие сигнала на этих пинах, чтобы при необходимости переключиться в режим прошивания. Поэтому данне пины не следует использовать в тех сигнальных линиях самодельных устройств, которые должны работать сразу после включения.