ATtiny84 registers
All 55 registers by peripheral, at their data-space address (the I/O address IN and OUT use is shown beside it), with their reset value and every bit.
CPU CPU Registers
PRRPower Reduction Register
- Address
0x20 I/O 0x00
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3PRTIM1
- 2PRTIM0
- 1PRUSI
- 0PRADC
4 fields
| Field | Bits | What it does |
|---|
| PRTIM1 | 3 | Power Reduction Timer/Counter1 |
| PRTIM0 | 2 | Power Reduction Timer/Counter0 |
| PRUSI | 1 | Power Reduction USI |
| PRADC | 0 | Power Reduction ADC |
GPIOR0General Purpose I/O Register 0
- Address
0x33 I/O 0x13
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2–
- 1–
- 0–
GPIOR1General Purpose I/O Register 1
- Address
0x34 I/O 0x14
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2–
- 1–
- 0–
GPIOR2General Purpose I/O Register 2
- Address
0x35 I/O 0x15
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2–
- 1–
- 0–
CLKPRClock Prescale Register
- Address
0x46 I/O 0x26
- Reset
0x00
- Access
- read/write
- 7CLKPCE
- 6–
- 5–
- 4–
- 3CLKPS3
- 2CLKPS2
- 1CLKPS1
- 0CLKPS0
2 fields
| Field | Bits | What it does |
|---|
| CLKPCE | 7 | Clock Prescaler Change Enable |
| CLKPS | 3:0 | Clock Prescaler Select Bits0 11 22 43 84 165 326 647 1288 256
|
OSCCALOscillator Calibration Value
- Address
0x51 I/O 0x31
- Reset
0x00
- Access
- read/write
- 7OSCCAL7
- 6OSCCAL6
- 5OSCCAL5
- 4OSCCAL4
- 3OSCCAL3
- 2OSCCAL2
- 1OSCCAL1
- 0OSCCAL0
1 field
| Field | Bits | What it does |
|---|
| OSCCAL | 7:0 | Oscillator Calibration |
MCUSRMCU Status Register
- Address
0x54 I/O 0x34
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3WDRF
- 2BORF
- 1EXTRF
- 0PORF
4 fields
| Field | Bits | What it does |
|---|
| WDRF | 3 | Watchdog Reset Flag |
| BORF | 2 | Brown-out Reset Flag |
| EXTRF | 1 | External Reset Flag |
| PORF | 0 | Power-on reset flag |
MCUCRMCU Control Register
- Address
0x55 I/O 0x35
- Reset
0x00
- Access
- read/write
- 7–
- 6PUD
- 5SE
- 4SM1
- 3SM0
- 2–
- 1–
- 0–
3 fields
| Field | Bits | What it does |
|---|
| PUD | 6 | Pull-up Disable |
| SE | 5 | Sleep Enable |
| SM | 4:3 | Sleep Mode Select Bits0 Idle1 ADC Noise Reduction (If Available)2 Power Down3 Standby
|
SPStack Pointer
- Address
0x5D I/O 0x3D
- Reset
0x025F
- Access
- read/write
- Size
- 16-bit
SREGStatus Register
- Address
0x5F I/O 0x3F
- Reset
0x00
- Access
- read/write
- 7I
- 6T
- 5H
- 4S
- 3V
- 2N
- 1Z
- 0C
8 fields
| Field | Bits | What it does |
|---|
| I | 7 | Global Interrupt Enable |
| T | 6 | Bit Copy Storage |
| H | 5 | Half Carry Flag |
| S | 4 | Sign Bit |
| V | 3 | Two's Complement Overflow Flag |
| N | 2 | Negative Flag |
| Z | 1 | Zero Flag |
| C | 0 | Carry Flag |
AC Analog Comparator
DIDR0
- Address
0x21 I/O 0x01
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2–
- 1ADC1D
- 0ADC0D
2 fields
| Field | Bits | What it does |
|---|
| ADC1D | 1 | ADC 1 Digital input buffer disable |
| ADC0D | 0 | ADC 0 Digital input buffer disable |
ADCSRBADC Control and Status Register B
- Address
0x23 I/O 0x03
- Reset
0x00
- Access
- read/write
- 7–
- 6ACME
- 5–
- 4–
- 3–
- 2–
- 1–
- 0–
1 field
| Field | Bits | What it does |
|---|
| ACME | 6 | Analog Comparator Multiplexer Enable |
ACSRAnalog Comparator Control And Status Register
- Address
0x28 I/O 0x08
- Reset
0x00
- Access
- read/write
- 7ACD
- 6ACBG
- 5ACO
- 4ACI
- 3ACIE
- 2ACIC
- 1ACIS1
- 0ACIS0
7 fields
| Field | Bits | What it does |
|---|
| ACD | 7 | Analog Comparator Disable |
| ACBG | 6 | Analog Comparator Bandgap Select |
| ACO | 5 | Analog Compare Output |
| ACI | 4 | Analog Comparator Interrupt Flag |
| ACIE | 3 | Analog Comparator Interrupt Enable |
| ACIC | 2 | Analog Comparator Input Capture Enable |
| ACIS | 1:0 | Analog Comparator Interrupt Mode Select bits0 Interrupt on Toggle1 Reserved2 Interrupt on Falling Edge3 Interrupt on Rising Edge
|
ADC Analog-to-Digital Converter
DIDR0Digital Input Disable Register 0
- Address
0x21 I/O 0x01
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2–
- 1–
- 0–
ADCSRBADC Control and Status Register B
- Address
0x23 I/O 0x03
- Reset
0x00
- Access
- read/write
- 7BIN
- 6–
- 5–
- 4ADLAR
- 3–
- 2ADTS2
- 1ADTS1
- 0ADTS0
3 fields
| Field | Bits | What it does |
|---|
| BIN | 7 | Bipolar Input Mode |
| ADLAR | 4 | ADC Left Adjust Result |
| ADTS | 2:0 | ADC Auto Trigger Source bits0 Free Running mode1 Analog Comparator2 External Interrupt Request 03 Timer/Counter0 Compare Match A4 Timer/Counter0 Overflow5 Timer/Counter1 Compare Match B6 Timer/Counter1 Overflow7 Timer/Counter1 Capture Event
|
ADCADC Data Register Bytes
- Address
0x24 I/O 0x04
- Reset
0x0000
- Access
- read/write
- Size
- 16-bit
ADCSRAADC Control and Status Register A
- Address
0x26 I/O 0x06
- Reset
0x00
- Access
- read/write
- 7ADEN
- 6ADSC
- 5ADATE
- 4ADIF
- 3ADIE
- 2ADPS2
- 1ADPS1
- 0ADPS0
6 fields
| Field | Bits | What it does |
|---|
| ADEN | 7 | ADC Enable |
| ADSC | 6 | ADC Start Conversion |
| ADATE | 5 | ADC Auto Trigger Enable |
| ADIF | 4 | ADC Interrupt Flag |
| ADIE | 3 | ADC Interrupt Enable |
| ADPS | 2:0 | ADC Prescaler Select Bits0 21 22 43 84 165 326 647 128
|
ADMUXADC Multiplexer Selection Register
- Address
0x27 I/O 0x07
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2–
- 1–
- 0–
TC1 Timer/Counter, 16-bit
TIFR1Timer/Counter Interrupt Flag register
- Address
0x2B I/O 0x0B
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5ICF1
- 4–
- 3–
- 2OCF1B
- 1OCF1A
- 0TOV1
4 fields
| Field | Bits | What it does |
|---|
| ICF1 | 5 | Timer/Counter1 Input Capture Flag |
| OCF1B | 2 | Timer/Counter1 Output Compare B Match Flag |
| OCF1A | 1 | Timer/Counter1 Output Compare A Match Flag |
| TOV1 | 0 | Timer/Counter1 Overflow Flag |
TIMSK1Timer/Counter1 Interrupt Mask Register
- Address
0x2C I/O 0x0C
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5ICIE1
- 4–
- 3–
- 2OCIE1B
- 1OCIE1A
- 0TOIE1
4 fields
| Field | Bits | What it does |
|---|
| ICIE1 | 5 | Timer/Counter1 Input Capture Interrupt Enable |
| OCIE1B | 2 | Timer/Counter1 Output Compare B Match Interrupt Enable |
| OCIE1A | 1 | Timer/Counter1 Output Compare A Match Interrupt Enable |
| TOIE1 | 0 | Timer/Counter1 Overflow Interrupt Enable |
TCCR1CTimer/Counter1 Control Register C
- Address
0x42 I/O 0x22
- Reset
0x00
- Access
- read/write
- 7FOC1A
- 6FOC1B
- 5–
- 4–
- 3–
- 2–
- 1–
- 0–
2 fields
| Field | Bits | What it does |
|---|
| FOC1A | 7 | Force Output Compare for Channel A |
| FOC1B | 6 | Force Output Compare for Channel B |
ICR1Timer/Counter1 Input Capture Register Bytes
- Address
0x44 I/O 0x24
- Reset
0x0000
- Access
- read/write
- Size
- 16-bit
OCR1BTimer/Counter1 Output Compare Register B Bytes
- Address
0x48 I/O 0x28
- Reset
0x0000
- Access
- read/write
- Size
- 16-bit
OCR1ATimer/Counter1 Output Compare Register A Bytes
- Address
0x4A I/O 0x2A
- Reset
0x0000
- Access
- read/write
- Size
- 16-bit
TCNT1Timer/Counter1 Bytes
- Address
0x4C I/O 0x2C
- Reset
0x0000
- Access
- read/write
- Size
- 16-bit
TCCR1BTimer/Counter1 Control Register B
- Address
0x4E I/O 0x2E
- Reset
0x00
- Access
- read/write
- 7ICNC1
- 6ICES1
- 5–
- 4WGM11
- 3WGM10
- 2CS12
- 1CS11
- 0CS10
4 fields
| Field | Bits | What it does |
|---|
| ICNC1 | 7 | Input Capture 1 Noise Canceler |
| ICES1 | 6 | Input Capture 1 Edge Select |
| WGM1 | 4:3 | Waveform Generation Mode Bits |
| CS1 | 2:0 | Clock Select1 bits0 No Clock Source (Stopped)1 Running, No Prescaling2 Running, CLK/83 Running, CLK/644 Running, CLK/2565 Running, CLK/10246 Running, ExtClk Tn Falling Edge7 Running, ExtClk Tn Rising Edge
|
TCCR1ATimer/Counter1 Control Register A
- Address
0x4F I/O 0x2F
- Reset
0x00
- Access
- read/write
- 7COM1A1
- 6COM1A0
- 5COM1B1
- 4COM1B0
- 3–
- 2–
- 1WGM11
- 0WGM10
3 fields
| Field | Bits | What it does |
|---|
| COM1A | 7:6 | Compare Output Mode 1A, bits |
| COM1B | 5:4 | Compare Output Mode 1B, bits |
| WGM1 | 1:0 | Pulse Width Modulator Select Bits |
USI Universal Serial Interface
USICRUSI Control Register
- Address
0x2D I/O 0x0D
- Reset
0x00
- Access
- read/write
- 7USISIE
- 6USIOIE
- 5USIWM1
- 4USIWM0
- 3USICS1
- 2USICS0
- 1USICLK
- 0USITC
6 fields
| Field | Bits | What it does |
|---|
| USISIE | 7 | Start Condition Interrupt Enable |
| USIOIE | 6 | Counter Overflow Interrupt Enable |
| USIWM | 5:4 | USI Wire Mode Bits0 Normal Operation1 Three-Wire Mode2 Two-Wire Mode3 Two-Wire Mode Held Low
|
| USICS | 3:2 | USI Clock Source Select Bits |
| USICLK | 1 | Clock Strobe |
| USITC | 0 | Toggle Clock Port Pin |
USISRUSI Status Register
- Address
0x2E I/O 0x0E
- Reset
0x00
- Access
- read/write
- 7USISIF
- 6USIOIF
- 5USIPF
- 4USIDC
- 3USICNT3
- 2USICNT2
- 1USICNT1
- 0USICNT0
5 fields
| Field | Bits | What it does |
|---|
| USISIF | 7 | Start Condition Interrupt Flag |
| USIOIF | 6 | Counter Overflow Interrupt Flag |
| USIPF | 5 | Stop Condition Flag |
| USIDC | 4 | Data Output Collision |
| USICNT | 3:0 | USI Counter Value Bits |
USIDRUSI Data Register
- Address
0x2F I/O 0x0F
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2–
- 1–
- 0–
USIBRUSI Buffer Register
- Address
0x30 I/O 0x10
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2–
- 1–
- 0–
EXINT External Interrupts
PCMSK0Pin Change Enable Mask 0
- Address
0x32 I/O 0x12
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2–
- 1–
- 0–
PCMSK1Pin Change Enable Mask 1
- Address
0x40 I/O 0x20
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2–
- 1–
- 0–
MCUCRMCU Control Register
- Address
0x55 I/O 0x35
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2–
- 1ISC01
- 0ISC00
2 fields
| Field | Bits | What it does |
|---|
| ISC01 | 1 | Interrupt Sense Control 0 Bit 1 |
| ISC00 | 0 | Interrupt Sense Control 0 Bit 00 Low Level of INTX1 Any Logical Change of INTX2 Falling Edge of INTX3 Rising Edge of INTX
|
GIFRGeneral Interrupt Flag register
- Address
0x5A I/O 0x3A
- Reset
0x00
- Access
- read/write
- 7–
- 6INTF0
- 5PCIF1
- 4PCIF0
- 3–
- 2–
- 1–
- 0–
2 fields
| Field | Bits | What it does |
|---|
| INTF0 | 6 | External Interrupt Flag 0 |
| PCIF | 5:4 | Pin Change Interrupt Flags |
GIMSKGeneral Interrupt Mask Register
- Address
0x5B I/O 0x3B
- Reset
0x00
- Access
- read/write
- 7–
- 6INT0
- 5PCIE1
- 4PCIE0
- 3–
- 2–
- 1–
- 0–
2 fields
| Field | Bits | What it does |
|---|
| INT0 | 6 | External Interrupt Request 0 Enable |
| PCIE | 5:4 | Pin Change Interrupt Enables |
PORTB I/O Port
PINBInput Pins, Port B
- Address
0x36 I/O 0x16
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3PINB3
- 2PINB2
- 1PINB1
- 0PINB0
DDRBData Direction Register, Port B
- Address
0x37 I/O 0x17
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3DDB3
- 2DDB2
- 1DDB1
- 0DDB0
PORTBData Register, Port B
- Address
0x38 I/O 0x18
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3PORTB3
- 2PORTB2
- 1PORTB1
- 0PORTB0
PORTA I/O Port
PINAPort A Input Pins
- Address
0x39 I/O 0x19
- Reset
0x00
- Access
- read/write
- 7PINA7
- 6PINA6
- 5PINA5
- 4PINA4
- 3PINA3
- 2PINA2
- 1PINA1
- 0PINA0
DDRAPort A Data Direction Register
- Address
0x3A I/O 0x1A
- Reset
0x00
- Access
- read/write
- 7DDA7
- 6DDA6
- 5DDA5
- 4DDA4
- 3DDA3
- 2DDA2
- 1DDA1
- 0DDA0
PORTAPort A Data Register
- Address
0x3B I/O 0x1B
- Reset
0x00
- Access
- read/write
- 7PORTA7
- 6PORTA6
- 5PORTA5
- 4PORTA4
- 3PORTA3
- 2PORTA2
- 1PORTA1
- 0PORTA0
EEPROM EEPROM
EECREEPROM Control Register
- Address
0x3C I/O 0x1C
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5EEPM1
- 4EEPM0
- 3EERIE
- 2EEMPE
- 1EEPE
- 0EERE
5 fields
| Field | Bits | What it does |
|---|
| EEPM | 5:4 | EEPROM Programming Mode Bits0 Erase and Write in one operation1 Erase Only2 Write Only
|
| EERIE | 3 | EEPROM Ready Interrupt Enable |
| EEMPE | 2 | EEPROM Master Write Enable |
| EEPE | 1 | EEPROM Write Enable |
| EERE | 0 | EEPROM Read Enable |
EEDREEPROM Data Register
- Address
0x3D I/O 0x1D
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2–
- 1–
- 0–
EEAREEPROM Address Register Bytes
- Address
0x3E I/O 0x1E
- Reset
0x0000
- Access
- read/write
- Size
- 16-bit
WDT Watchdog Timer
WDTCSRWatchdog Timer Control Register
- Address
0x41 I/O 0x21
- Reset
0x00
- Access
- read/write
- 7WDIF
- 6WDIE
- 5WDP5
- 4WDCE
- 3WDE
- 2WDP2
- 1WDP1
- 0WDP0
5 fields
| Field | Bits | What it does |
|---|
| WDIF | 7 | Watchdog Timeout Interrupt Flag |
| WDIE | 6 | Watchdog Timeout Interrupt Enable |
| WDP | 5,2,1,0 | Watchdog Timer Prescaler Bits0 Oscillator Cycles 2K1 Oscillator Cycles 4K2 Oscillator Cycles 8K3 Oscillator Cycles 16K4 Oscillator Cycles 32K5 Oscillator Cycles 64K6 Oscillator Cycles 128K7 Oscillator Cycles 256K8 Oscillator Cycles 512K9 Oscillator Cycles 1024K
|
| WDCE | 4 | Watchdog Change Enable |
| WDE | 3 | Watch Dog Enable |
TC0 Timer/Counter, 8-bit
GTCCRGeneral Timer/Counter Control Register
- Address
0x43 I/O 0x23
- Reset
0x00
- Access
- read/write
- 7TSM
- 6–
- 5–
- 4–
- 3–
- 2–
- 1–
- 0PSR10
2 fields
| Field | Bits | What it does |
|---|
| TSM | 7 | Timer/Counter Synchronization Mode |
| PSR10 | 0 | Prescaler Reset Timer/CounterN |
TCCR0ATimer/Counter Control Register A
- Address
0x50 I/O 0x30
- Reset
0x00
- Access
- read/write
- 7COM0A1
- 6COM0A0
- 5COM0B1
- 4COM0B0
- 3–
- 2–
- 1WGM01
- 0WGM00
3 fields
| Field | Bits | What it does |
|---|
| COM0A | 7:6 | Compare Match Output A Mode bits |
| COM0B | 5:4 | Compare Match Output B Mode bits |
| WGM0 | 1:0 | Waveform Generation Mode bits |
TCNT0Timer/Counter0
- Address
0x52 I/O 0x32
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2–
- 1–
- 0–
TCCR0BTimer/Counter Control Register B
- Address
0x53 I/O 0x33
- Reset
0x00
- Access
- read/write
- 7FOC0A
- 6FOC0B
- 5–
- 4–
- 3WGM02
- 2CS02
- 1CS01
- 0CS00
4 fields
| Field | Bits | What it does |
|---|
| FOC0A | 7 | Force Output Compare A |
| FOC0B | 6 | Force Output Compare B |
| WGM02 | 3 | Waveform Generation Mode bit 2 |
| CS0 | 2:0 | Clock Select bits0 No Clock Source (Stopped)1 Running, No Prescaling2 Running, CLK/83 Running, CLK/644 Running, CLK/2565 Running, CLK/10246 Running, ExtClk Tn Falling Edge7 Running, ExtClk Tn Rising Edge
|
OCR0ATimer/Counter0 Output Compare Register A
- Address
0x56 I/O 0x36
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2–
- 1–
- 0–
TIFR0Timer/Counter0 Interrupt Flag Register
- Address
0x58 I/O 0x38
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2OCF0B
- 1OCF0A
- 0TOV0
3 fields
| Field | Bits | What it does |
|---|
| OCF0B | 2 | Timer/Counter0 Output Compare Flag B |
| OCF0A | 1 | Timer/Counter0 Output Compare Flag A |
| TOV0 | 0 | Timer/Counter0 Overflow Flag |
TIMSK0Timer/Counter Interrupt Mask Register
- Address
0x59 I/O 0x39
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2OCIE0B
- 1OCIE0A
- 0TOIE0
3 fields
| Field | Bits | What it does |
|---|
| OCIE0B | 2 | Timer/Counter0 Output Compare Match B Interrupt Enable |
| OCIE0A | 1 | Timer/Counter0 Output Compare Match A Interrupt Enable |
| TOIE0 | 0 | Timer/Counter0 Overflow Interrupt Enable |
OCR0BTimer/Counter0 Output Compare Register B
- Address
0x5C I/O 0x3C
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4–
- 3–
- 2–
- 1–
- 0–
BOOT_LOAD Bootloader
SPMCSRStore Program Memory Control Register
- Address
0x57 I/O 0x37
- Reset
0x00
- Access
- read/write
- 7–
- 6–
- 5–
- 4CTPB
- 3RFLB
- 2PGWRT
- 1PGERS
- 0SPMEN
5 fields
| Field | Bits | What it does |
|---|
| CTPB | 4 | Clear temporary page buffer |
| RFLB | 3 | Read fuse and lock bits |
| PGWRT | 2 | Page Write |
| PGERS | 1 | Page Erase |
| SPMEN | 0 | Store Program Memory Enable |