AI Interactive Datasheet ATtiny104
AVR · tinyAVR

ATtiny104 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.

PORTA I/O Port

PINAInput Pins, Port A

Address
0x00
Reset
0x00
Access
read/write
  1. 7PINA7
  2. 6PINA6
  3. 5PINA5
  4. 4PINA4
  5. 3PINA3
  6. 2PINA2
  7. 1PINA1
  8. 0PINA0

DDRAData Direction Register, Port A

Address
0x01
Reset
0x00
Access
read/write
  1. 7DDA7
  2. 6DDA6
  3. 5DDA5
  4. 4DDA4
  5. 3DDA3
  6. 2DDA2
  7. 1DDA1
  8. 0DDA0

PORTAPort A Data register

Address
0x02
Reset
0x00
Access
read/write
  1. 7PORTA7
  2. 6PORTA6
  3. 5PORTA5
  4. 4PORTA4
  5. 3PORTA3
  6. 2PORTA2
  7. 1PORTA1
  8. 0PORTA0

PUEAPull-up Enable Control Register for PORTA

Address
0x03
Reset
0x00
Access
read/write
  1. 7PUEA7
  2. 6PUEA6
  3. 5PUEA5
  4. 4PUEA4
  5. 3PUEA3
  6. 2PUEA2
  7. 1PUEA1
  8. 0PUEA0

PORTCRPort Control Register

Address
0x16
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1–
  8. 0BBMA
1 field
FieldBitsWhat it does
BBMA0Break-Before-Make Mode Enable for PORTA

PORTB I/O Port

PINBInput Pins, Port B

Address
0x04
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3PINB3
  6. 2PINB2
  7. 1PINB1
  8. 0PINB0

DDRBData Direction Register, Port B

Address
0x05
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3DDB3
  6. 2DDB2
  7. 1DDB1
  8. 0DDB0

PORTBPort B Data register

Address
0x06
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3PORTB3
  6. 2PORTB2
  7. 1PORTB1
  8. 0PORTB0

PUEBPull-up Enable Control Register for PORTB

Address
0x07
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3PUEB3
  6. 2PUEB2
  7. 1PUEB1
  8. 0PUEB0

PORTCRPort Control Register

Address
0x16
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1BBMB
  8. 0–
1 field
FieldBitsWhat it does
BBMB1Break-Before-Make Mode Enable for PORTB

USART USART

UDRUSART I/O Data Register

Address
0x08
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1–
  8. 0–

UBRRUSART Baud Rate Register Bytes

Address
0x09
Reset
0x0000
Access
read/write
Size
16-bit

UCSRDUSART Control and Status Register D

Address
0x0B
Reset
0x00
Access
read/write
  1. 7RXSIE
  2. 6RXS
  3. 5SFDE
  4. 4–
  5. 3–
  6. 2–
  7. 1–
  8. 0–
3 fields
FieldBitsWhat it does
RXSIE7USART RX Start Interrupt Enable
RXS6USART RX Start Flag
SFDE5Start frame detection enable

UCSRCUSART Control and Status Register C

Address
0x0C
Reset
0x00
Access
read/write
  1. 7UMSEL1
  2. 6UMSEL0
  3. 5UPM1
  4. 4UPM0
  5. 3USBS
  6. 2UCSZ1
  7. 1UCSZ0
  8. 0UCPOL
5 fields
FieldBitsWhat it does
UMSEL7:6USART Mode Select
  • 0 Asynchronous Operation
  • 1 Synchronous Operation
UPM5:4Parity Mode Bits
  • 0 Disabled
  • 1 Reserved
  • 2 Enabled, Even Parity
  • 3 Enabled, Odd Parity
USBS3Stop Bit Select
  • 0 1-bit
  • 1 2-bit
UCSZ2:1Character Size
UCPOL0Clock Polarity

UCSRBUSART Control and Status Register B

Address
0x0D
Reset
0x00
Access
read/write
  1. 7RXCIE
  2. 6TXCIE
  3. 5UDRIE
  4. 4RXEN
  5. 3TXEN
  6. 2UCSZ2
  7. 1RXB8
  8. 0TXB8
8 fields
FieldBitsWhat it does
RXCIE7RX Complete Interrupt Enable
TXCIE6TX Complete Interrupt Enable
UDRIE5USART Data register Empty Interrupt Enable
RXEN4Receiver Enable
TXEN3Transmitter Enable
UCSZ22Character Size
RXB81Receive Data Bit 8
TXB80Transmit Data Bit 8

UCSRAUSART Control and Status Register A

Address
0x0E
Reset
0x00
Access
read/write
  1. 7RXC
  2. 6TXC
  3. 5UDRE
  4. 4FE
  5. 3DOR
  6. 2UPE
  7. 1U2X
  8. 0MPCM
8 fields
FieldBitsWhat it does
RXC7USART Receive Complete
TXC6USART Transmit Complete
UDRE5USART Data Register Empty
FE4Framing Error
DOR3Data Overrun
UPE2Parity Error
U2X1Double the USART transmission speed
MPCM0Multi-processor Communication Mode

EXINT External Interrupts

PCMSK0Pin Change Mask Register 0

Address
0x0F
Reset
0x00
Access
read/write
  1. 7PCINT7
  2. 6PCINT6
  3. 5PCINT5
  4. 4PCINT4
  5. 3PCINT3
  6. 2PCINT2
  7. 1PCINT1
  8. 0PCINT0
8 fields
FieldBitsWhat it does
PCINT77Pin Change Enable Mask 0 Bit 7
PCINT66Pin Change Enable Mask 0 Bit 6
PCINT55Pin Change Enable Mask 0 Bit 5
PCINT44Pin Change Enable Mask 0 Bit 4
PCINT33Pin Change Enable Mask 0 Bit 3
PCINT22Pin Change Enable Mask 0 Bit 2
PCINT11Pin Change Enable Mask 0 Bit 1
PCINT00Pin Change Enable Mask 0 Bit 0

PCMSK1Pin Change Mask Register 1

Address
0x10
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3PCINT11
  6. 2PCINT10
  7. 1PCINT9
  8. 0PCINT8
4 fields
FieldBitsWhat it does
PCINT113Pin Change Enable Mask 1 Bit 3
PCINT102Pin Change Enable Mask 1 Bit 2
PCINT91Pin Change Enable Mask 1 Bit 1
PCINT80Pin Change Enable Mask 1 Bit 0

PCIFRPin Change Interrupt Flag Register

Address
0x11
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1PCIF1
  8. 0PCIF0
2 fields
FieldBitsWhat it does
PCIF11Pin Change Interrupt Flag 1
PCIF00Pin Change Interrupt Flag 0

PCICRPin Change Interrupt Control Register

Address
0x12
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1PCIE1
  8. 0PCIE0
2 fields
FieldBitsWhat it does
PCIE11Pin Change Interrupt Enable 1
PCIE00Pin Change Interrupt Enable 0

EIMSKExternal Interrupt Mask register

Address
0x13
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1–
  8. 0INT0
1 field
FieldBitsWhat it does
INT00External Interrupt Request 0 Enable

EIFRExternal Interrupt Flag register

Address
0x14
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1–
  8. 0INTF0
1 field
FieldBitsWhat it does
INTF00External Interrupt Flag 0

EICRAExternal Interrupt Control Register A

Address
0x15
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1ISC01
  8. 0ISC00
2 fields
FieldBitsWhat it does
ISC011Interrupt Sense Control 0 Bit 1
ISC000Interrupt Sense Control 0 Bit 0

AC Analog Comparator

DIDR0

Address
0x17
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1AIN1D
  8. 0AIN0D
2 fields
FieldBitsWhat it does
AIN1D1AIN1 Digital Input Disable
AIN0D0AIN0 Digital Input Disable

ACSRBAnalog Comparator Control And Status Register B

Address
0x1E
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1ACOE
  8. 0ACPMUX
2 fields
FieldBitsWhat it does
ACOE1Analog Comparator Output Enable
ACPMUX0Analog Comparator positive input selection bit

ACSRAAnalog Comparator Control And Status Register A

Address
0x1F
Reset
0x00
Access
read/write
  1. 7ACD
  2. 6ACBG
  3. 5ACO
  4. 4ACI
  5. 3ACIE
  6. 2ACIC
  7. 1ACIS1
  8. 0ACIS0
7 fields
FieldBitsWhat it does
ACD7Analog Comparator Disable
ACBG6Analog Comparator Bandgap enable
ACO5Analog Compare Output
ACI4Analog Comparator Interrupt Flag
ACIE3Analog Comparator Interrupt Enable
ACIC2Analog Comparator Input Capture Enable
ACIS1:0Analog Comparator Interrupt Mode Select bits
  • 0 Interrupt on Toggle
  • 1 Reserved
  • 2 Interrupt on Falling Edge
  • 3 Interrupt on Rising Edge

ADC Analog-to-Digital Converter

DIDR0Digital Input Disable Register

Address
0x17
Reset
0x00
Access
read/write
  1. 7ADC7D
  2. 6ADC6D
  3. 5ADC5D
  4. 4ADC4D
  5. 3ADC3D
  6. 2ADC2D
  7. 1ADC1D
  8. 0ADC0D
8 fields
FieldBitsWhat it does
ADC7D7ADC7 Digital Input Disable
ADC6D6ADC6 Digital Input Disable
ADC5D5ADC5 Digital Input Disable
ADC4D4ADC4 Digital Input Disable
ADC3D3ADC3 Digital Input Disable
ADC2D2ADC2 Digital Input Disable
ADC1D1ADC1 Digital Input Disable
ADC0D0ADC0 Digital Input Disable

ADCLADC Data Register Low

Address
0x19
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1–
  8. 0–

ADCHADC Data Register High

Address
0x1A
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1–
  8. 0–

ADMUXThe ADC multiplexer Selection Register

Address
0x1B
Reset
0x00
Access
read/write
  1. 7REFS1
  2. 6REFS0
  3. 5–
  4. 4–
  5. 3–
  6. 2MUX2
  7. 1MUX1
  8. 0MUX0
2 fields
FieldBitsWhat it does
REFS7:6Analog Reference voltage Selection Bits
  • 0 Vcc
  • 1 Internal 1.1V Reference
  • 2 Internal 2.2V Reference
  • 3 Internal 4.3V Reference
MUX2:0Analog Channel Selection Bits
  • 0 ADC0
  • 1 ADC1
  • 2 ADC2
  • 3 ADC3
  • 4 ADC4
  • 5 ADC5
  • 6 ADC6
  • 7 ADC7

ADCSRBThe ADC Control and Status register B

Address
0x1C
Reset
0x00
Access
read/write
  1. 7ADLAR
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2ADTS2
  7. 1ADTS1
  8. 0ADTS0
2 fields
FieldBitsWhat it does
ADLAR7Left Adjustment for ADC Result Readout
ADTS2:0ADC Auto Trigger Source bits
  • 0 Free Running mode
  • 1 Analog Comparator
  • 2 External Interrupt Request 0
  • 3 Timer/Counter0 Compare Match A
  • 4 Timer/Counter0 Overflow
  • 5 Timer/Counter0 Compare Match B
  • 6 Pin Change Interrupt 0 Request
  • 7 Timer/Counter0 Capture Event

ADCSRAThe ADC Control and Status register A

Address
0x1D
Reset
0x00
Access
read/write
  1. 7ADEN
  2. 6ADSC
  3. 5ADATE
  4. 4ADIF
  5. 3ADIE
  6. 2ADPS2
  7. 1ADPS1
  8. 0ADPS0
6 fields
FieldBitsWhat it does
ADEN7ADC Enable
ADSC6ADC Start Conversion
ADATE5ADC Auto Trigger Enable
ADIF4ADC Interrupt Flag
ADIE3ADC Interrupt Enable
ADPS2:0ADC Prescaler Select Bits
  • 0 2
  • 1 2
  • 2 4
  • 3 8
  • 4 16
  • 5 32
  • 6 64
  • 7 128

TC0 Timer/Counter, 16-bit

ICR0Input Capture Register Bytes

Address
0x22 I/O 0x02
Reset
0x0000
Access
read/write
Size
16-bit

OCR0BTimer/Counter0 Output Compare Register B

Address
0x24 I/O 0x04
Reset
0x0000
Access
read/write
Size
16-bit

OCR0ATimer/Counter 0 Output Compare Register A

Address
0x26 I/O 0x06
Reset
0x0000
Access
read/write
Size
16-bit

TCNT0Timer/Counter0

Address
0x28 I/O 0x08
Reset
0x0000
Access
read/write
Size
16-bit

TIFR0Overflow Interrupt Enable

Address
0x2A I/O 0x0A
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5ICF0
  4. 4–
  5. 3–
  6. 2OCF0B
  7. 1OCF0A
  8. 0TOV0
4 fields
FieldBitsWhat it does
ICF05Input Capture Flag
OCF0B2Timer Output Compare Flag 0B
OCF0A1Timer Output Compare Flag 0A
TOV00Timer Overflow Flag

TIMSK0Timer Interrupt Mask Register 0

Address
0x2B I/O 0x0B
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5ICIE0
  4. 4–
  5. 3–
  6. 2OCIE0B
  7. 1OCIE0A
  8. 0TOIE0
4 fields
FieldBitsWhat it does
ICIE05Input Capture Interrupt Enable
OCIE0B2Output Compare B Match Interrupt Enable
OCIE0A1Output Compare A Match Interrupt Enable
TOIE00Overflow Interrupt Enable

TCCR0CTimer/Counter 0 Control Register C

Address
0x2C I/O 0x0C
Reset
0x00
Access
read/write
  1. 7FOC0A
  2. 6FOC0B
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1–
  8. 0–
2 fields
FieldBitsWhat it does
FOC0A7Force Output Compare for Channel A
FOC0B6Force Output Compare for Channel B

TCCR0BTimer/Counter 0 Control Register B

Address
0x2D I/O 0x0D
Reset
0x00
Access
read/write
  1. 7ICNC0
  2. 6ICES0
  3. 5–
  4. 4WGM01
  5. 3WGM00
  6. 2CS02
  7. 1CS01
  8. 0CS00
4 fields
FieldBitsWhat it does
ICNC07Input Capture Noise Canceler
ICES06Input Capture Edge Select
WGM04:3Waveform Generation Mode
CS02:0Clock Select
  • 0 No Clock Source (Stopped)
  • 1 Running, No Prescaling
  • 2 Running, CLK/8
  • 3 Running, CLK/64
  • 4 Running, CLK/256
  • 5 Running, CLK/1024
  • 6 Running, ExtClk Tn Falling Edge
  • 7 Running, ExtClk Tn Rising Edge

TCCR0ATimer/Counter 0 Control Register A

Address
0x2E I/O 0x0E
Reset
0x00
Access
read/write
  1. 7COM0A1
  2. 6COM0A0
  3. 5COM0B1
  4. 4COM0B0
  5. 3–
  6. 2–
  7. 1WGM01
  8. 0WGM00
3 fields
FieldBitsWhat it does
COM0A7:6Compare Output Mode for Channel A bits
COM0B5:4Compare Output Mode for Channel B bits
WGM01:0Waveform Generation Mode

GTCCRGeneral Timer/Counter Control Register

Address
0x2F I/O 0x0F
Reset
0x00
Access
read/write
  1. 7TSM
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1REMAP
  8. 0PSR
3 fields
FieldBitsWhat it does
TSM7Timer Synchronization Mode
REMAP1Remap Bit for 14 pin part only
PSR0Prescaler Reset

WDT Watchdog Timer

WDTCSRWatchdog Timer Control and Status Register

Address
0x31 I/O 0x11
Reset
0x00
Access
read/write
  1. 7WDIF
  2. 6WDIE
  3. 5WDP5
  4. 4–
  5. 3WDE
  6. 2WDP2
  7. 1WDP1
  8. 0WDP0
4 fields
FieldBitsWhat it does
WDIF7Watchdog Timer Interrupt Flag
WDIE6Watchdog Timer Interrupt Enable
WDP5,2,1,0Watchdog Timer Prescaler Bits
  • 0 Oscillator Cycles 2K
  • 1 Oscillator Cycles 4K
  • 2 Oscillator Cycles 8K
  • 3 Oscillator Cycles 16K
  • 4 Oscillator Cycles 32K
  • 5 Oscillator Cycles 64K
  • 6 Oscillator Cycles 128K
  • 7 Oscillator Cycles 256K
  • 8 Oscillator Cycles 512K
  • 9 Oscillator Cycles 1024K
WDE3Watch Dog Enable

CPU CPU Registers

NVMCSRNon-Volatile Memory Control and Status Register

Address
0x32 I/O 0x12
Reset
0x00
Access
read/write
  1. 7NVMBSY
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1–
  8. 0–
1 field
FieldBitsWhat it does
NVMBSY7Non-Volatile Memory Busy

NVMCMDNon-Volatile Memory Command

Address
0x33 I/O 0x13
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1–
  8. 0–

VLMCSRVcc Level Monitoring Control and Status Register

Address
0x34 I/O 0x14
Reset
0x00
Access
read/write
  1. 7VLMF
  2. 6VLMIE
  3. 5–
  4. 4–
  5. 3–
  6. 2VLM2
  7. 1VLM1
  8. 0VLM0
3 fields
FieldBitsWhat it does
VLMF7VLM Flag
VLMIE6VLM Interrupt Enable
VLM2:0Trigger Level of Voltage Level Monitor bits

PRRPower Reduction Register

Address
0x35 I/O 0x15
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2PRUSART
  7. 1PRADC
  8. 0PRTIM0
3 fields
FieldBitsWhat it does
PRUSART2Power Reduction USART
PRADC1Power Reduction ADC
PRTIM00Power Reduction Timer/Counter0

CLKPSRClock Prescale Register

Address
0x36 I/O 0x16
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3CLKPS3
  6. 2CLKPS2
  7. 1CLKPS1
  8. 0CLKPS0
1 field
FieldBitsWhat it does
CLKPS3:0Clock Prescaler Select Bits
  • 0 1
  • 1 2
  • 2 4
  • 3 8
  • 4 16
  • 5 32
  • 6 64
  • 7 128
  • 8 256

CLKMSRClock Main Settings Register

Address
0x37 I/O 0x17
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1CLKMS1
  8. 0CLKMS0
1 field
FieldBitsWhat it does
CLKMS1:0Clock Main Select Bits

OSCCALOscillator Calibration Value

Address
0x39 I/O 0x19
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3–
  6. 2–
  7. 1–
  8. 0–

SMCRSleep Mode Control Register

Address
0x3A I/O 0x1A
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3SM2
  6. 2SM1
  7. 1SM0
  8. 0SE
2 fields
FieldBitsWhat it does
SM3:1Sleep Mode Select Bits
  • 0 Idle
  • 1 ADC Noise Reduction
  • 2 Power Down
  • 3 Reserved
  • 4 Standby
  • 5 Reserved
  • 6 Reserved
  • 7 Reserved
SE0Sleep Enable

RSTFLRReset Flag Register

Address
0x3B I/O 0x1B
Reset
0x00
Access
read/write
  1. 7–
  2. 6–
  3. 5–
  4. 4–
  5. 3WDRF
  6. 2–
  7. 1EXTRF
  8. 0PORF
3 fields
FieldBitsWhat it does
WDRF3Watchdog Reset Flag
EXTRF1External Reset Flag
PORF0Power-on Reset Flag

CCPConfiguration Change Protection

Address
0x3C I/O 0x1C
Reset
0x00
Access
read/write
  1. 7CCP7
  2. 6CCP6
  3. 5CCP5
  4. 4CCP4
  5. 3CCP3
  6. 2CCP2
  7. 1CCP1
  8. 0CCP0
1 field
FieldBitsWhat it does
CCP7:0CCP signature
  • 216 IO Register Protection
  • 231 SPM Instruction Protection

SPStack Pointer

Address
0x3D I/O 0x1D
Reset
0x005F
Access
read/write
Size
16-bit

SREGStatus Register

Address
0x3F I/O 0x1F
Reset
0x00
Access
read/write
  1. 7I
  2. 6T
  3. 5H
  4. 4S
  5. 3V
  6. 2N
  7. 1Z
  8. 0C
8 fields
FieldBitsWhat it does
I7Global Interrupt Enable
T6Bit Copy Storage
H5Half Carry Flag
S4Sign Bit
V3Two's Complement Overflow Flag
N2Negative Flag
Z1Zero Flag
C0Carry Flag