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

Регистры ATtiny2313A

ATtiny2313A управляется 56 регистрами ввода-вывода: все они лежат в области ввода-вывода (адреса 0x20–0x5F) и доступны командами IN и OUT. Ниже — все регистры по адресам и страницы блоков с описанием каждого бита и конструктором значения.

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

Блоки

Все регистры по адресам

АдресРегистрНазначениеБиты 7…0После сброса
0x21 (I/O 0x01)DIDRОтключение цифровых входов компаратора— — — — — — AIN1D AIN0D0x00
0x22 (I/O 0x02)UBRRHСкорость USART, старшие биты— — — — UBRRH11 UBRRH10 UBRRH9 UBRRH8—
0x23 (I/O 0x03)UCSRCФормат кадра USARTundefined, регистр CUMSEL1 UMSEL0 UPM1 UPM0 USBS UCSZ1 UCSZ0 UCPOL0x06
0x24 (I/O 0x04)PCMSK1Маска выводов группы 1 (PCINT)— — — — — PCINT10 PCINT9 PCINT80x00
0x25 (I/O 0x05)PCMSK2Маска выводов группы 2 (PCINT)— PCINT17 PCINT16 PCINT15 PCINT14 PCINT13 PCINT12 PCINT110x00
0x26 (I/O 0x06)PRRОтключение тактирования модулей— — — — PRTIM1 PRTIM0 PRUSI PRUSART0x00
0x27 (I/O 0x07)BODCRОтключение BOD на время сна— — — — — — BPDS / BODS BPDSE / BODSE0x00
0x28 (I/O 0x08)ACSRУправление и состояние компаратораACD ACBG ACO ACI ACIE ACIC ACIS1 ACIS0—
0x29 (I/O 0x09)UBRRLСкорость USART, младший байтданные—
0x2A (I/O 0x0A)UCSRBУправление USARTundefined, регистр BRXCIE TXCIE UDRIE RXEN TXEN UCSZ2 RXB8 TXB80x00
0x2B (I/O 0x0B)UCSRAСостояние USARTundefined, регистр ARXC TXC UDRE FE DOR UPE U2X MPCM0x20
0x2C (I/O 0x0C)UDRДанные USARTundefinedданные0x00
0x2D (I/O 0x0D)USICRУправление USIUSISIE USIOIE USIWM1 USIWM0 USICS1 USICS0 USICLK USITC0x00
0x2E (I/O 0x0E)USISRСостояние USIUSISIF USIOIF USIPF USIDC USICNT3 USICNT2 USICNT1 USICNT00x00
0x2F (I/O 0x0F)USIDRДанные USI (сдвиговый регистр)данные0x00
0x30 (I/O 0x10)PINDВходы порта D— PIND6 PIND5 PIND4 PIND3 PIND2 PIND1 PIND0—
0x31 (I/O 0x11)DDRDНаправление выводов порта D— DDD6 DDD5 DDD4 DDD3 DDD2 DDD1 DDD00x00
0x32 (I/O 0x12)PORTDВыходы и подтяжки порта D— PORTD6 PORTD5 PORTD4 PORTD3 PORTD2 PORTD1 PORTD00x00
0x33 (I/O 0x13)GPIOR0Регистр общего назначения 0данные0x00
0x34 (I/O 0x14)GPIOR1Регистр общего назначения 1данные0x00
0x35 (I/O 0x15)GPIOR2Регистр общего назначения 2данные0x00
0x36 (I/O 0x16)PINBВходы порта BPINB7 PINB6 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0—
0x37 (I/O 0x17)DDRBНаправление выводов порта BDDB7 DDB6 DDB5 DDB4 DDB3 DDB2 DDB1 DDB00x00
0x38 (I/O 0x18)PORTBВыходы и подтяжки порта BPORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB00x00
0x39 (I/O 0x19)PINAВходы порта A— — — — — PINA2 PINA1 PINA0—
0x3A (I/O 0x1A)DDRAНаправление выводов порта A— — — — — DDA2 DDA1 DDA00x00
0x3B (I/O 0x1B)PORTAВыходы и подтяжки порта A— — — — — PORTA2 PORTA1 PORTA00x00
0x3C (I/O 0x1C)EECRУправление EEPROM— — EEPM1 EEPM0 EERIE EEMPE EEPE EERE—
0x3D (I/O 0x1D)EEDRДанные EEPROMданные0x00
0x3E (I/O 0x1E)EEARАдрес EEPROMданные—
0x40 (I/O 0x20)PCMSK0Маска выводов группы 0 (PCINT)PCINT7 PCINT6 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT00x00
0x41 (I/O 0x21)WDTCRУправление сторожевым таймеромWDIF WDIE WDP3 WDCE WDE WDP2 WDP1 WDP0—
0x42 (I/O 0x22)TCCR1CУправление таймером 1, регистр CFOC1A FOC1B — — — — — —0x00
0x43 (I/O 0x23)GTCCRОбщее управление таймерами— — — — — — — PSR100x00
0x44 (I/O 0x24)ICR1Регистр захвата таймера 116 бит0x0000
0x46 (I/O 0x26)CLKPRДелитель тактовой частотыCLKPCE — — — CLKPS3 CLKPS2 CLKPS1 CLKPS0—
0x48 (I/O 0x28)OCR1BРегистр сравнения B таймера 116 бит0x0000
0x4A (I/O 0x2A)OCR1AРегистр сравнения A таймера 116 бит0x0000
0x4C (I/O 0x2C)TCNT1Счётный регистр таймера 116 бит0x0000
0x4E (I/O 0x2E)TCCR1BУправление таймером 1, регистр BICNC1 ICES1 — WGM13 WGM12 CS12 CS11 CS100x00
0x4F (I/O 0x2F)TCCR1AУправление таймером 1, регистр ACOM1A1 COM1A0 COM1B1 COM1B0 — — WGM11 WGM100x00
0x50 (I/O 0x30)TCCR0AУправление таймером 0, регистр ACOM0A1 COM0A0 COM0B1 COM0B0 — — WGM01 WGM000x00
0x51 (I/O 0x31)OSCCALКалибровка RC-генератора— CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0—
0x52 (I/O 0x32)TCNT0Счётный регистр таймера 0данные0x00
0x53 (I/O 0x33)TCCR0BУправление таймером 0, регистр BFOC0A FOC0B — — WGM02 CS02 CS01 CS000x00
0x54 (I/O 0x34)MCUSRПричина сброса— — — — WDRF BORF EXTRF PORF—
0x55 (I/O 0x35)MCUCRУправление микроконтроллеромPUD SM1 SE SM0 ISC11 ISC10 ISC01 ISC000x00
0x56 (I/O 0x36)OCR0AРегистр сравнения A таймера 0данные0x00
0x57 (I/O 0x37)SPMCSRСамопрограммирование (SPM)— — RSIG CTPB RFLB PGWRT PGERS SPMEN0x00
0x58 (I/O 0x38)TIFRФлаги прерываний таймераTOV1 OCF1A OCF1B — ICF1 OCF0B TOV0 OCF0A0x00
0x59 (I/O 0x39)TIMSKМаска прерываний таймераTOIE1 OCIE1A OCIE1B — ICIE1 OCIE0B TOIE0 OCIE0A0x00
0x5A (I/O 0x3A)GIFRФлаги внешних прерыванийINTF1 INTF0 PCIF0 PCIF2 PCIF1 — — —0x00
0x5B (I/O 0x3B)GIMSKРазрешение внешних прерыванийINT1 INT0 PCIE0 PCIE2 PCIE1 — — —0x00
0x5C (I/O 0x3C)OCR0BРегистр сравнения B таймера 0данные0x00
0x5D (I/O 0x3D)SPLУказатель стекаSP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0—
0x5F (I/O 0x3F)SREGРегистр состоянияI T H S V N Z C0x00

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

Сколько регистров ввода-вывода у ATtiny2313A?

В описании Microchip у ATtiny2313A 56 регистров периферии и ядра (16-битные — ICR1, OCR1B и OCR1A — считаются одним регистром). 56 из них доступны командами IN и OUT, 30 — ещё и битовыми командами SBI и CBI.

Чем адрес регистра в области ввода-вывода отличается от адреса в памяти?

Регистры с адресами 0x20–0x5F в пространстве данных доступны и как область ввода-вывода с адресами 0x00–0x3F: IN и OUT принимают именно этот адрес, на 0x20 меньше. Регистры выше 0x5F (расширенная область) читаются и пишутся только командами LDS, STS, LD и ST.

Где описаны биты регистров ATtiny2313A?

На страницах блоков: порты, TC0, TC1, USART, AC, EEPROM, USI, EXINT и CPU. У каждого бита — номер, имя из avr/io.h, назначение, доступ и значение после сброса по даташиту 8246B.

Источники

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

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