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

Регистры ATtiny85

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

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

Блоки

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

АдресРегистрНазначениеБиты 7…0После сброса
0x23 (I/O 0x03)ADCSRBУправление АЦП, регистр BBIN ACME IPR — — ADTS2 ADTS1 ADTS00x00
0x24 (I/O 0x04)ADCРезультат преобразования АЦП16 бит0x0000
0x26 (I/O 0x06)ADCSRAУправление АЦП, регистр AADEN ADSC ADATE ADIF ADIE ADPS2 ADPS1 ADPS00x00
0x27 (I/O 0x07)ADMUXОпорное напряжение и вход АЦПREFS1 REFS0 ADLAR REFS2 MUX3 MUX2 MUX1 MUX00x00
0x28 (I/O 0x08)ACSRУправление и состояние компаратораACD ACBG ACO ACI ACIE — ACIS1 ACIS0—
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)USIBRБуфер данных USIданные0x00
0x31 (I/O 0x11)GPIOR0Регистр общего назначения 0данные—
0x32 (I/O 0x12)GPIOR1Регистр общего назначения 1данные—
0x33 (I/O 0x13)GPIOR2Регистр общего назначения 2данные—
0x34 (I/O 0x14)DIDR0Отключение цифровых входов АЦП— — ADC0D ADC2D ADC3D ADC1D AIN1D AIN0D0x00
0x35 (I/O 0x15)PCMSKМаска выводов PCINT— — PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT00x00
0x36 (I/O 0x16)PINBВходы порта B— — PINB5 PINB4 PINB3 PINB2 PINB1 PINB0—
0x37 (I/O 0x17)DDRBНаправление выводов порта B— — DDB5 DDB4 DDB3 DDB2 DDB1 DDB00x00
0x38 (I/O 0x18)PORTBВыходы и подтяжки порта B— — PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB00x00
0x3C (I/O 0x1C)EECRУправление EEPROM— — EEPM1 EEPM0 EERIE EEMPE EEPE EERE—
0x3D (I/O 0x1D)EEDRДанные EEPROMданные0x00
0x3E (I/O 0x1E)EEARАдрес EEPROM16 бит—
0x40 (I/O 0x20)PRRОтключение тактирования модулей— — — — PRTIM1 PRTIM0 PRUSI PRADC0x00
0x41 (I/O 0x21)WDTCRУправление сторожевым таймеромWDIF WDIE WDP3 WDCE WDE WDP2 WDP1 WDP0—
0x42 (I/O 0x22)DWDRДанные debugWIREданные0x00
0x43 (I/O 0x23)DTPS1Предделитель мёртвого времени таймера 1— — — — — — DTPS11 DTPS100x00
0x44 (I/O 0x24)DT1BМёртвое время канала B таймера 1DT1BH3 DT1BH2 DT1BH1 DT1BH0 DT1BL3 DT1BL2 DT1BL1 DT1BL00x00
0x45 (I/O 0x25)DT1AМёртвое время канала A таймера 1DT1AH3 DT1AH2 DT1AH1 DT1AH0 DT1AL3 DT1AL2 DT1AL1 DT1AL00x00
0x46 (I/O 0x26)CLKPRДелитель тактовой частотыCLKPCE — — — CLKPS3 CLKPS2 CLKPS1 CLKPS0—
0x47 (I/O 0x27)PLLCSRУправление PLLLSM — — — — PCKE PLLE PLOCK—
0x48 (I/O 0x28)OCR0BРегистр сравнения B таймера 0данные0x00
0x49 (I/O 0x29)OCR0AРегистр сравнения A таймера 0данные0x00
0x4A (I/O 0x2A)TCCR0AУправление таймером 0, регистр ACOM0A1 COM0A0 COM0B1 COM0B0 — — WGM01 WGM000x00
0x4B (I/O 0x2B)OCR1BРегистр сравнения B таймера 1данные0x00
0x4C (I/O 0x2C)GTCCRОбщее управление таймерамиTSM PWM1B COM1B1 COM1B0 FOC1B FOC1A PSR1 PSR00x00
0x4D (I/O 0x2D)OCR1CРегистр сравнения C таймера 1данные0xFF
0x4E (I/O 0x2E)OCR1AРегистр сравнения A таймера 1данные0x00
0x4F (I/O 0x2F)TCNT1Счётный регистр таймера 1данные0x00
0x50 (I/O 0x30)TCCR1Управление таймером 1CTC1 PWM1A COM1A1 COM1A0 CS13 CS12 CS11 CS100x00
0x51 (I/O 0x31)OSCCALКалибровка RC-генератораданные—
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Управление микроконтроллеромBODS PUD SE SM1 SM0 BODSE ISC01 ISC000x00
0x57 (I/O 0x37)SPMCSRСамопрограммирование (SPM)— — RSIG CTPB RFLB PGWRT PGERS SPMEN0x00
0x58 (I/O 0x38)TIFRФлаги прерываний таймера— OCF1A OCF1B OCF0A OCF0B TOV1 TOV0 —0x00
0x59 (I/O 0x39)TIMSKМаска прерываний таймера— OCIE1A OCIE1B OCIE0A OCIE0B TOIE1 TOIE0 —0x00
0x5A (I/O 0x3A)GIFRФлаги внешних прерываний— INTF0 PCIF — — — — —0x00
0x5B (I/O 0x3B)GIMSKРазрешение внешних прерываний— INT0 PCIE — — — — —0x00
0x5D (I/O 0x3D)SPУказатель стека16 бит—
0x5F (I/O 0x3F)SREGРегистр состоянияI T H S V N Z C0x00

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

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

В описании Microchip у ATtiny85 49 регистров периферии и ядра (16-битные — ADC, EEAR и SP — считаются одним регистром). 49 из них доступны командами IN и OUT, 20 — ещё и битовыми командами SBI и CBI.

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

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

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

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

Источники

  1. Microchip. Atmel. ATtiny25/45/85 datasheet (2586Q) — сводка регистров, диаграммы битов и значения после сброса
  2. Microchip ATtiny_DFP 3.4.278, описание ATtiny85 (ATDF) — регистры, битовые поля и их значения, лицензия Apache-2.0

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