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

Порты ввода-вывода ATtiny2313A: регистры и биты

Каждым портом управляют три регистра: DDRx задаёт направление вывода (1 — выход), PORTx — уровень на выходе, а у входа включает подтяжку к питанию, PINx читает уровни на выводах. Запись единицы в бит PINx переключает соответствующий бит PORTx.

Данные: описание ATtiny2313A из пакета Microchip ATtiny_DFP 3.4.278 (Apache-2.0), сверено со сводкой регистров даташита 8246B.

Регистры блока

РегистрАдресНазначениеПосле сброса
PIND0x30 (I/O 0x10)Входы порта D—
DDRD0x31 (I/O 0x11)Направление выводов порта D0x00
PORTD0x32 (I/O 0x12)Выходы и подтяжки порта D0x00
PINB0x36 (I/O 0x16)Входы порта B—
DDRB0x37 (I/O 0x17)Направление выводов порта B0x00
PORTB0x38 (I/O 0x18)Выходы и подтяжки порта B0x00
PINA0x39 (I/O 0x19)Входы порта A—
DDRA0x3A (I/O 0x1A)Направление выводов порта A0x00
PORTA0x3B (I/O 0x1B)Выходы и подтяжки порта A0x00

Состояния вывода

Что делает вывод Pxn при разных битах DDxn и PORTxn и общем бите PUD в MCUCR (PUD = 1 выключает подтяжки всех портов). Таблица 10-1 даташита 8246B.

DDxnPORTxnPUDВыводПодтяжкаСостояние
00Xвходнетвысокий импеданс (Hi-Z)
010входдавывод отдаёт ток, если снаружи его тянут к земле
011входнетвысокий импеданс (Hi-Z)
10Xвыходнетнизкий уровень (вывод принимает ток)
11Xвыходнетвысокий уровень (вывод отдаёт ток)

PIND — входы порта D

Адрес 0x30 (I/O 0x10), 8 бит.

Бит76543210
Имя—PIND6PIND5PIND4PIND3PIND2PIND1PIND0
ДоступRR/WR/WR/WR/WR/WR/WR/W
После сбросаN/AN/AN/AN/AN/AN/AN/AN/A

Бит n отвечает за вывод PDn: PD6, PD5, PD4, PD3, PD2, PD1, PD0.

DDRD — направление выводов порта D

Адрес 0x31 (I/O 0x11), 8 бит, после сброса 0x00.

Бит76543210
Имя—DDD6DDD5DDD4DDD3DDD2DDD1DDD0
ДоступRR/WR/WR/WR/WR/WR/WR/W
После сброса00000000

Бит n отвечает за вывод PDn: PD6, PD5, PD4, PD3, PD2, PD1, PD0.

PORTD — выходы и подтяжки порта D

Адрес 0x32 (I/O 0x12), 8 бит, после сброса 0x00.

Бит76543210
Имя—PORTD6PORTD5PORTD4PORTD3PORTD2PORTD1PORTD0
ДоступRR/WR/WR/WR/WR/WR/WR/W
После сброса00000000

Бит n отвечает за вывод PDn: PD6, PD5, PD4, PD3, PD2, PD1, PD0.

PINB — входы порта B

Адрес 0x36 (I/O 0x16), 8 бит.

Бит76543210
ИмяPINB7PINB6PINB5PINB4PINB3PINB2PINB1PINB0
ДоступR/WR/WR/WR/WR/WR/WR/WR/W
После сбросаN/AN/AN/AN/AN/AN/AN/AN/A

Бит n отвечает за вывод PBn: PB7, PB6, PB5, PB4, PB3, PB2, PB1, PB0.

DDRB — направление выводов порта B

Адрес 0x37 (I/O 0x17), 8 бит, после сброса 0x00.

Бит76543210
ИмяDDB7DDB6DDB5DDB4DDB3DDB2DDB1DDB0
ДоступR/WR/WR/WR/WR/WR/WR/WR/W
После сброса00000000

Бит n отвечает за вывод PBn: PB7, PB6, PB5, PB4, PB3, PB2, PB1, PB0.

PORTB — выходы и подтяжки порта B

Адрес 0x38 (I/O 0x18), 8 бит, после сброса 0x00.

Бит76543210
ИмяPORTB7PORTB6PORTB5PORTB4PORTB3PORTB2PORTB1PORTB0
ДоступR/WR/WR/WR/WR/WR/WR/WR/W
После сброса00000000

Бит n отвечает за вывод PBn: PB7, PB6, PB5, PB4, PB3, PB2, PB1, PB0.

PINA — входы порта A

Адрес 0x39 (I/O 0x19), 8 бит.

Бит76543210
Имя—————PINA2PINA1PINA0
ДоступRRRRRR/WR/WR/W
После сбросаN/AN/AN/AN/AN/AN/AN/AN/A

Бит n отвечает за вывод PAn: PA2, PA1, PA0.

DDRA — направление выводов порта A

Адрес 0x3A (I/O 0x1A), 8 бит, после сброса 0x00.

Бит76543210
Имя—————DDA2DDA1DDA0
ДоступRRRRRR/WR/WR/W
После сброса00000000

Бит n отвечает за вывод PAn: PA2, PA1, PA0.

PORTA — выходы и подтяжки порта A

Адрес 0x3B (I/O 0x1B), 8 бит, после сброса 0x00.

Бит76543210
Имя—————PORTA2PORTA1PORTA0
ДоступRRRRRR/WR/WR/W
После сброса00000000

Бит n отвечает за вывод PAn: PA2, PA1, PA0.

Частые вопросы

Какими командами ассемблера обращаться к регистрам порты ATtiny2313A?

Командами IN и OUT доступны PIND (0x10), DDRD (0x11), PORTD (0x12), PINB (0x16), DDRB (0x17), PORTB (0x18), PINA (0x19), DDRA (0x1A) и PORTA (0x1B); из них PIND, DDRD, PORTD, PINB, DDRB, PORTB, PINA, DDRA и PORTA — ещё и командами SBI, CBI, SBIS и SBIC для отдельных битов. В программе на C разницы нет: компилятор сам выбирает команду по адресу из avr/io.h.

Какие значения у регистров порты после сброса?

Все регистры блока, для которых даташит 8246B приводит значение после сброса (DDRD, PORTD, DDRB, PORTB, DDRA и PORTA), после сброса равны нулю.

Источники

  1. Microchip. Atmel. ATtiny2313A/4313 datasheet (8246B) — сводка регистров, диаграммы битов и значения после сброса
  2. Microchip ATtiny_DFP 3.4.278, описание ATtiny2313A (ATDF) — регистры, битовые поля и их значения, лицензия Apache-2.0

Нашли ошибку в регистрах?

Другие регистры ATtiny2313A

Калькуляторы и статьи