Регистры ATtiny13A
ATtiny13A управляется 34 регистрами ввода-вывода: все они лежат в области ввода-вывода (адреса 0x20–0x5F) и доступны командами IN и OUT. Ниже — все регистры по адресам и страницы блоков с описанием каждого бита и конструктором значения.
Данные: описание ATtiny13A из пакета Microchip ATtiny_DFP 3.4.278 (Apache-2.0), сверено со сводкой регистров даташита DS40002307A.
Блоки
- АЦПADCSRB, ADC, ADCSRA, ADMUX, DIDR0
- Аналоговый компараторADCSRB, ACSR, DIDR0
- EEPROMEECR, EEDR, EEAR
- Ядро и системные регистрыWDTCR, PRR, CLKPR, DWDR, BODCR, OSCCAL, MCUSR, MCUCR, SPMCSR, SPL, SREG
- Порты ввода-выводаPINB, DDRB, PORTB
- Внешние прерыванияPCMSK, MCUCR, GIFR, GIMSK
- Таймер-счётчик 0 (8 бит)GTCCR, OCR0B, TCCR0A, TCNT0, TCCR0B, OCR0A, TIFR0, TIMSK0
Все регистры по адресам
| Адрес | Регистр | Назначение | Биты 7…0 | После сброса |
|---|---|---|---|---|
| 0x23 (I/O 0x03) | ADCSRB | Управление АЦП, регистр B | — ACME — — — ADTS2 ADTS1 ADTS0 | 0x00 |
| 0x24 (I/O 0x04) | ADC | Результат преобразования АЦП | 16 бит | 0x0000 |
| 0x26 (I/O 0x06) | ADCSRA | Управление АЦП, регистр A | ADEN ADSC ADATE ADIF ADIE ADPS2 ADPS1 ADPS0 | 0x00 |
| 0x27 (I/O 0x07) | ADMUX | Опорное напряжение и вход АЦП | — REFS0 ADLAR — — — MUX1 MUX0 | 0x00 |
| 0x28 (I/O 0x08) | ACSR | Управление и состояние компаратора | ACD ACBG ACO ACI ACIE — ACIS1 ACIS0 | — |
| 0x34 (I/O 0x14) | DIDR0 | Отключение цифровых входов АЦП | — — ADC0D ADC2D ADC3D ADC1D AIN1D AIN0D | 0x00 |
| 0x35 (I/O 0x15) | PCMSK | Маска выводов PCINT | — — PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0 | 0x00 |
| 0x36 (I/O 0x16) | PINB | Входы порта B | — — PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 | — |
| 0x37 (I/O 0x17) | DDRB | Направление выводов порта B | — — DDB5 DDB4 DDB3 DDB2 DDB1 DDB0 | 0x00 |
| 0x38 (I/O 0x18) | PORTB | Выходы и подтяжки порта B | — — PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 | 0x00 |
| 0x3C (I/O 0x1C) | EECR | Управление EEPROM | — — EEPM1 EEPM0 EERIE EEMWE / EEMPE EEWE / EEPE EERE | — |
| 0x3D (I/O 0x1D) | EEDR | Данные EEPROM | данные | — |
| 0x3E (I/O 0x1E) | EEAR | Адрес EEPROM | данные | — |
| 0x41 (I/O 0x21) | WDTCR | Управление сторожевым таймером | WDTIF WDTIE WDP3 WDCE WDE WDP2 WDP1 WDP0 | — |
| 0x45 (I/O 0x25) | PRR | Отключение тактирования модулей | — — — — — — PRTIM0 PRADC | 0x00 |
| 0x46 (I/O 0x26) | CLKPR | Делитель тактовой частоты | CLKPCE — — — CLKPS3 CLKPS2 CLKPS1 CLKPS0 | — |
| 0x48 (I/O 0x28) | GTCCR | Общее управление таймерами | TSM — — — — — — PSR10 | 0x00 |
| 0x49 (I/O 0x29) | OCR0B | Регистр сравнения B таймера 0 | данные | 0x00 |
| 0x4E (I/O 0x2E) | DWDR | Данные debugWIRE | данные | 0x00 |
| 0x4F (I/O 0x2F) | TCCR0A | Управление таймером 0, регистр A | COM0A1 COM0A0 COM0B1 COM0B0 — — WGM01 WGM00 | 0x00 |
| 0x50 (I/O 0x30) | BODCR | Отключение BOD на время сна | — — — — — — BODS BODSE | 0x00 |
| 0x51 (I/O 0x31) | OSCCAL | Калибровка RC-генератора | данные | — |
| 0x52 (I/O 0x32) | TCNT0 | Счётный регистр таймера 0 | данные | 0x00 |
| 0x53 (I/O 0x33) | TCCR0B | Управление таймером 0, регистр B | FOC0A FOC0B — — WGM02 CS02 CS01 CS00 | 0x00 |
| 0x54 (I/O 0x34) | MCUSR | Причина сброса | — — — — WDRF BORF EXTRF PORF | — |
| 0x55 (I/O 0x35) | MCUCR | Управление микроконтроллером | — PUD SE SM1 SM0 — ISC01 ISC00 | 0x00 |
| 0x56 (I/O 0x36) | OCR0A | Регистр сравнения A таймера 0 | данные | 0x00 |
| 0x57 (I/O 0x37) | SPMCSR | Самопрограммирование (SPM) | — — — CTPB RFLB PGWRT PGERS SPMEN / SELFPRGEN | 0x00 |
| 0x58 (I/O 0x38) | TIFR0 | Флаги прерываний таймера 0 | — — — — OCF0B OCF0A TOV0 — | 0x00 |
| 0x59 (I/O 0x39) | TIMSK0 | Маска прерываний таймера 0 | — — — — OCIE0B OCIE0A TOIE0 — | 0x00 |
| 0x5A (I/O 0x3A) | GIFR | Флаги внешних прерываний | — INTF0 PCIF — — — — — | 0x00 |
| 0x5B (I/O 0x3B) | GIMSK | Разрешение внешних прерываний | — INT0 PCIE — — — — — | 0x00 |
| 0x5D (I/O 0x3D) | SPL | Указатель стека | данные | 0x9F |
| 0x5F (I/O 0x3F) | SREG | Регистр состояния | I T H S V N Z C | 0x00 |
Частые вопросы
Сколько регистров ввода-вывода у ATtiny13A?
В описании Microchip у ATtiny13A 34 регистра периферии и ядра (16-битные — ADC — считаются одним регистром). 34 из них доступны командами IN и OUT, 13 — ещё и битовыми командами SBI и CBI.
Чем адрес регистра в области ввода-вывода отличается от адреса в памяти?
Регистры с адресами 0x20–0x5F в пространстве данных доступны и как область ввода-вывода с адресами 0x00–0x3F: IN и OUT принимают именно этот адрес, на 0x20 меньше. Регистры выше 0x5F (расширенная область) читаются и пишутся только командами LDS, STS, LD и ST.
Где описаны биты регистров ATtiny13A?
На страницах блоков: ADC, AC, EEPROM, CPU, порты, EXINT и TC0. У каждого бита — номер, имя из avr/io.h, назначение, доступ и значение после сброса по даташиту DS40002307A.
Источники
- Microchip. ATtiny13A Data Sheet (DS40002307A) — сводка регистров, диаграммы битов и значения после сброса
- Microchip ATtiny_DFP 3.4.278, описание ATtiny13A (ATDF) — регистры, битовые поля и их значения, лицензия Apache-2.0
Нашли ошибку в регистрах?