BDTIC www.bdtic.com/ATMEL
•High Performance, Low Power AVR® 8-Bit Microcontroller
•Advanced RISC Architecture
–120 Powerful Instructions – Most Single Clock Cycle Execution
–32 x 8 General Purpose Working Registers
–Fully Static Operation
•Non-Volatile Program and Data Memories
–2/4/8K Bytes of In-System Programmable Program Memory Flash
•Endurance: 10,000 Write/Erase Cycles
–128/256/512 Bytes of In-System Programmable EEPROM
•Endurance: 100,000 Write/Erase Cycles
–128/256/512 Bytes of Internal SRAM
–Data retention: 20 years at 85°C / 100 years at 25°C
–Programming Lock for Self-Programming Flash & EEPROM Data Security
•Peripheral Features
–One 8-Bit and One 16-Bit Timer/Counter with Two PWM Channels, Each
–10-bit ADC
•8 Single-Ended Channels
•12 Differential ADC Channel Pairs with Programmable Gain (1x / 20x)
–Programmable Watchdog Timer with Separate On-chip Oscillator
–On-Chip Analog Comparator
–Universal Serial Interface
•Special Microcontroller Features
–debugWIRE On-chip Debug System
–In-System Programmable via SPI Port
–Internal and External Interrupt Sources: Pin Change Interrupt on 12 Pins
–Low Power Idle, ADC Noise Reduction, Standby and Power-Down Modes
–Enhanced Power-on Reset Circuit
–Programmable Brown-Out Detection Circuit
–Internal Calibrated Oscillator
–On-Chip Temperature Sensor
•I/O and Packages
–Available in 20-Pin QFN/MLF & 14-Pin SOIC and PDIP
–Twelve Programmable I/O Lines
•Operating Voltage:
–1.8 – 5.5V for ATtiny24V/44V/84V
–2.7 – 5.5V for ATtiny24/44/84
•Speed Grade
–ATtiny24V/44V/84V
•0 – 4 MHz @ 1.8 – 5.5V
•0 – 10 MHz @ 2.7 – 5.5V
–ATtiny24/44/84
•0 – 10 MHz @ 2.7 – 5.5V
•0 – 20 MHz @ 4.5 – 5.5V
•Industrial Temperature Range: -40°C to +85°C
•Low Power Consumption
–Active Mode (1 MHz System Clock): 300 µA @ 1.8V
–Power-down Mode: 0.1 µA @ 1.8V
8-bit
Microcontroller with 2/4/8K Bytes In-System Programmable Flash
ATtiny24/44/84
Preliminary
Summary
Rev. 8006GS–AVR–01/08
Figure 1-1. Pinout ATtiny24/44/84
PDIP/SOIC
|
|
VCC |
1 |
14 |
GND |
(PCINT8/XTAL1/CLKI) PB0 |
2 |
13 |
PA0 (ADC0/AREF/PCINT0) |
||
(PCINT9/XTAL2) PB1 |
3 |
12 |
PA1 (ADC1/AIN0/PCINT1) |
||
|
|
|
4 |
11 |
PA2 (ADC2/AIN1/PCINT2) |
(PCINT11/RESET/dW) |
PB3 |
||||
(PCINT10/INT0/OC0A/CKOUT) PB2 |
5 |
10 |
PA3 (ADC3/T0/PCINT3) |
||
(PCINT7/ICP/OC0B/ADC7) PA7 |
6 |
9 |
PA4 (ADC4/USCK/SCL/T1/PCINT4) |
||
(PCINT6/OC1A/SDA/MOSI/DI/ADC6) PA6 |
7 |
8 |
PA5 (ADC5/DO/MISO/OC1B/PCINT5) |
QFN/MLF
PA5 |
DNC |
DNC |
DNC |
PA6 |
Pin 16: PA6 (PCINT6/OC1A/SDA/MOSI/DI/ADC6)
Pin 20: PA5 (ADC5/DO/MISO/OC1B/PCINT5)
(ADC4/USCK/SCL/T1/PCINT4) PA4 1 (ADC3/T0/PCINT3) PA3 2 (ADC2/AIN1/PCINT2) PA2 3 (ADC1/AIN0/PCINT1) PA1 4 (ADC0/AREF/PCINT0) PA0 5
NOTE
Bottom pad should be soldered to ground. DNC: Do Not Connect
20 |
19 |
18 |
17 |
|
|
|
|
|
|
|
|
|
|
|
6 |
7 |
8 |
9 |
DNC |
DNC |
GND |
VCC |
16
DNC 10
15 PA7 (PCINT7/ICP/OC0B/ADC7)
14 PB2 (PCINT10/INT0/OC0A/CKOUT)
13 PB3 (PCINT11/RESET/dW)
12 PB1 (PCINT9/XTAL2)
11 PB0 (PCINT8/XTAL1/CLKI)
1.1.1VCC
Supply voltage.
1.1.2GND
Ground.
Port B is a 4-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The Port B output buffers have symmetrical drive characteristics with both high sink and source capability except PB3 which has the RESET capability. To use pin PB3 as an I/O pin, instead of RESET pin, program (‘0’) RSTDISBL fuse. As inputs, Port B pins that are externally pulled low will source current if the pull-up resistors are activated. The Port B pins are tri-stated when a reset condition becomes active, even if the clock is not running.
2 ATtiny24/44/84
8006GS–AVR–01/08
ATtiny24/44/84
Port B also serves the functions of various special features.
Reset input. A low level on this pin for longer than the minimum pulse length will generate a reset, even if the clock is not running and provided the reset pin has not been disabled. Shorter pulses are not guaranteed to generate a reset.
The reset pin can also be used as a (weak) I/O pin.
Port A is a 8-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The Port A output buffers have symmetrical drive characteristics with both high sink and source capability. As inputs, Port A pins that are externally pulled low will source current if the pull-up resistors are activated. The Port A pins are tri-stated when a reset condition becomes active, even if the clock is not running.
Port A has alternate functions as analog inputs for the ADC, analog comparator, timer/counter, SPI and pin change interrupt.
3
8006GS–AVR–01/08
The ATtiny24/44/84 is a low-power CMOS 8-bit microcontroller based on the AVR enhanced RISC architecture. By executing powerful instructions in a single clock cycle, the ATtiny24/44/84 achieves throughputs approaching 1 MIPS per MHz allowing the system designer to optimize power consumption versus processing speed.
Figure 2-1. |
Block Diagram |
|
|
|
VCC |
|
|
|
|
|
|
|
8-BIT DATABUS |
INTERNAL |
|
|
|
|
|
|
|
|
INTERNAL |
CALIBRATED |
|
|
|
OSCILLATOR |
OSCILLATOR |
GND |
|
|
|
|
|
PROGRAM |
STACK |
WATCHDOG |
TIMING AND |
|
COUNTER |
POINTER |
TIMER |
CONTROL |
|
PROGRAM |
|
MCU CONTROL |
|
|
SRAM |
REGISTER |
|
|
|
FLASH |
|
||
|
|
|
|
|
|
|
|
MCU STATUS |
|
|
INSTRUCTION |
GENERAL |
REGISTER |
|
|
REGISTER |
PURPOSE |
|
|
|
|
REGISTERS |
|
|
|
|
|
TIMER/ |
|
|
INSTRUCTION |
X |
COUNTER0 |
|
|
Y |
|
|
|
|
DECODER |
Z |
|
|
|
|
|
TIMER/ |
|
|
|
|
COUNTER1 |
|
|
CONTROL |
ALU |
|
|
|
LINES |
|
|
|
|
|
|
|
|
|
|
STATUS |
|
|
|
|
REGISTER |
|
|
|
|
|
INTERRUPT |
|
|
|
|
UNIT |
|
|
PROGRAMMING |
ISP INTERFACE |
EEPROM |
OSCILLATORS |
|
LOGIC |
|||
|
|
|
|
+ - |
ANALOG COMPARATOR |
DATA REGISTER |
|
DATA DIR. |
|
|
ADC |
|
DATA REGISTER |
|
DATA DIR. |
|
||||||||||||||||||||||||||||
|
|
|
PORT A |
REG.PORT A |
|
|
|
|
|
PORT B |
|
REG.PORT B |
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
PORT A DRIVERS |
|
|
|
|
|
|
|
|
PORT B DRIVERS |
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PA7-PA0 |
PB3-PB0 |
The AVR core combines a rich instruction set with 32 general purpose working registers. All 32 registers are directly connected to the Arithmetic Logic Unit (ALU), allowing two independent registers to be accessed in one single instruction executed in one clock cycle. The resulting architecture is more code efficient while achieving throughputs up to ten times faster than conventional CISC microcontrollers.
4 ATtiny24/44/84
8006GS–AVR–01/08
ATtiny24/44/84
The ATtiny24/44/84 provides the following features: 2/4/8K byte of In-System Programmable Flash, 128/256/512 bytes EEPROM, 128/256/512 bytes SRAM, 12 general purpose I/O lines, 32 general purpose working registers, a 8-bit Timer/Counter with two PWM channels, a 16-bit timer/counter with two PWM channels, Internal and External Interrupts, a 8-channel 10-bit ADC, programmable gain stage (1x, 20x) for 12 differential ADC channel pairs, a programmable Watchdog Timer with internal Oscillator, internal calibrated oscillator, and four software selectable power saving modes. Idle mode stops the CPU while allowing the SRAM, Timer/Counter, ADC, Analog Comparator, and Interrupt system to continue functioning. ADC Noise Reduction mode minimizes switching noise during ADC conversions by stopping the CPU and all I/O modules except the ADC. In Power-down mode registers keep their contents and all chip functions are disbaled until the next interrupt or hardware reset. In Standby mode, the crystal/resonator oscillator is running while the rest of the device is sleeping, allowing very fast start-up combined with low power consumption.
The device is manufactured using Atmel’s high density non-volatile memory technology. The onchip ISP Flash allows the Program memory to be re-programmed in-system through an SPI serial interface, by a conventional non-volatile memory programmer or by an on-chip boot code running on the AVR core.
The ATtiny24/44/84 AVR is supported with a full suite of program and system development tools including: C Compilers, Macro Assemblers, Program Debugger/Simulators and Evaluation kits.
5
8006GS–AVR–01/08
A comprehensive set of drivers, application notes, data sheets and descriptions on development tools are available for download at http://www.atmel.com/avr.
This documentation contains simple code examples that briefly show how to use various parts of the device. These code examples assume that the part specific header file is included before compilation. Be aware that not all C compiler vendors include bit definitions in the header files and interrupt handling in C is compiler dependent. Please confirm with the C compiler documentation for more details.
For I/O Registers located in the extended I/O map, “IN”, “OUT”, “SBIS”, “SBIC”, “CBI”, and “SBI” instructions must be replaced with instructions that allow access to extended I/O. Typically, this means “LDS” and “STS” combined with “SBRS”, “SBRC”, “SBR”, and “CBR”. Note that not all AVR devices include an extended I/O map.
Reliability Qualification results show that the projected data retention failure rate is much less than 1 PPM over 20 years at 85°C or 100 years at 25°C.
Typical values contained in this datasheet are based on simulations and characterization of other AVR microcontrollers manufactured on the same process technology. Min and Max values will be available after the device is characterized.
6 ATtiny24/44/84
8006GS–AVR–01/08
ATtiny24/44/84
4. |
Register Summary |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Address |
Name |
Bit 7 |
Bit 6 |
Bit 5 |
Bit 4 |
Bit 3 |
Bit 2 |
Bit 1 |
Bit 0 |
Page |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0x3F (0x5F) |
SREG |
I |
T |
H |
S |
V |
N |
Z |
C |
|
|
|
0x3E (0x5E) |
SPH |
– |
– |
– |
– |
– |
– |
SP9 |
SP8 |
|
|
|
0x3D (0x5D) |
SPL |
SP7 |
SP6 |
SP5 |
SP4 |
SP3 |
SP2 |
SP1 |
SP0 |
|
|
|
0x3C (0x5C) |
OCR0B |
|
|
Timer/Counter0 – Output Compare Register B |
|
|
|
||||
|
0x3B (0x5B) |
GIMSK |
– |
INT0 |
PCIE1 |
PCIE0 |
– |
– |
– |
– |
|
|
|
0x3A (0x5A |
GIFR |
– |
INTF0 |
PCIF1 |
PCIF0 |
– |
– |
– |
– |
|
|
|
0x39 |
(0x59) |
TIMSK0 |
– |
– |
– |
– |
– |
OCIE0B |
OCIE0A |
TOIE0 |
|
|
0x38 |
(0x58) |
TIFR0 |
|
– |
– |
– |
– |
OCF0B |
OCF0A |
TOV0 |
|
|
0x37 |
(0x57) |
SPMCSR |
– |
– |
– |
CTPB |
RFLB |
PGWRT |
PGERS |
SPMEN |
|
|
0x36 |
(0x56) |
OCR0A |
|
|
Timer/Counter0 – Output Compare Register A |
|
|
|
|||
|
0x35 |
(0x55) |
MCUCR |
BODS |
PUD |
SE |
SM1 |
SM0 |
BODSE |
ISC01 |
ISC00 |
|
|
0x34 |
(0x54) |
MCUSR |
– |
– |
– |
– |
WDRF |
BORF |
EXTRF |
PORF |
|
|
0x33 |
(0x53) |
TCCR0B |
FOC0A |
FOC0B |
– |
– |
WGM02 |
CS02 |
CS01 |
CS00 |
|
|
0x32 |
(0x52) |
TCNT0 |
|
|
|
Timer/Counter0 |
|
|
|
|
|
|
0x31 |
(0x51) |
OSCCAL |
CAL7 |
CAL6 |
CAL5 |
CAL4 |
CAL3 |
CAL2 |
CAL1 |
CAL0 |
|
|
0x30 |
(0x50) |
TCCR0A |
COM0A1 |
COM0A0 |
COM0B1 |
COM0B0 |
– |
|
WGM01 |
WGM00 |
|
|
0x2F |
(0x4F) |
TCCR1A |
COM1A1 |
COM1A0 |
COM1B1 |
COM1B0 |
– |
|
WGM11 |
WGM10 |
|
|
0x2E |
(0x4E) |
TCCR1B |
ICNC1 |
ICES1 |
– |
WGM13 |
WGM12 |
CS12 |
CS11 |
CS10 |
|
|
0x2D |
(0x4D) |
TCNT1H |
|
|
Timer/Counter1 – Counter Register High Byte |
|
|
|
|||
|
0x2C |
(0x4C) |
TCNT1L |
|
|
Timer/Counter1 – Counter Register Low Byte |
|
|
|
|||
|
0x2B |
(0x4B) |
OCR1AH |
|
|
Timer/Counter1 – Compare Register A High Byte |
|
|
|
|||
|
0x2A |
(0x4A) |
OCR1AL |
|
|
Timer/Counter1 – Compare Register A Low Byte |
|
|
|
|||
|
0x29 |
(0x49) |
OCR1BH |
|
|
Timer/Counter1 – Compare Register B High Byte |
|
|
|
|||
|
0x28 |
(0x48) |
OCR1BL |
|
|
Timer/Counter1 – Compare Register B Low Byte |
|
|
|
|||
|
0x27 |
(0x47) |
DWDR |
|
|
|
DWDR[7:0] |
|
|
|
|
|
|
0x26 |
(0x46) |
CLKPR |
CLKPCE |
– |
– |
– |
CLKPS3 |
CLKPS2 |
CLKPS1 |
CLKPS0 |
|
|
0x25 |
(0x45) |
ICR1H |
|
|
Timer/Counter1 - Input Capture Register High Byte |
|
|
|
|||
|
0x24 |
(0x44) |
ICR1L |
|
|
Timer/Counter1 - Input Capture Register Low Byte |
|
|
|
|||
|
0x23 |
(0x43) |
GTCCR |
TSM |
– |
– |
– |
– |
– |
– |
PSR10 |
|
|
0x22 |
(0x42) |
TCCR1C |
FOC1A |
FOC1B |
– |
– |
– |
– |
– |
– |
|
|
0x21 |
(0x41) |
WDTCSR |
WDIF |
WDIE |
WDP3 |
WDCE |
WDE |
WDP2 |
WDP1 |
WDP0 |
|
|
0x20 |
(0x40) |
PCMSK1 |
– |
– |
– |
– |
PCINT11 |
PCINT10 |
PCINT9 |
PCINT8 |
|
|
0x1F (0x3F) |
EEARH |
– |
– |
– |
– |
– |
– |
– |
EEAR8 |
|
|
|
0x1E (0x3E) |
EEARL |
EEAR7 |
EEAR6 |
EEAR5 |
EEAR4 |
EEAR3 |
EEAR2 |
EEAR1 |
EEAR0 |
|
|
|
0x1D (0x3D) |
EEDR |
|
|
|
EEPROM Data Register |
|
|
|
|
||
|
0x1C (0x3C) |
EECR |
– |
– |
EEPM1 |
EEPM0 |
EERIE |
EEMPE |
EEPE |
EERE |
|
|
|
0x1B (0x3B) |
PORTA |
PORTA7 |
PORTA6 |
PORTA5 |
PORTA4 |
PORTA3 |
PORTA2 |
PORTA1 |
PORTA0 |
|
|
|
0x1A (0x3A) |
DDRA |
DDA7 |
DDA6 |
DDA5 |
DDA4 |
DDA3 |
DDA2 |
DDA1 |
DDA0 |
|
|
|
0x19 |
(0x39) |
PINA |
PINA7 |
PINA6 |
PINA5 |
PINA4 |
PINA3 |
PINA2 |
PINA1 |
PINA0 |
|
|
0x18 |
(0x38) |
PORTB |
– |
– |
– |
– |
PORTB3 |
PORTB2 |
PORTB1 |
PORTB0 |
|
|
0x17 |
(0x37) |
DDRB |
– |
– |
– |
– |
DDB3 |
DDB2 |
DDB1 |
DDB0 |
|
|
0x16 |
(0x36) |
PINB |
– |
– |
– |
– |
PINB3 |
PINB2 |
PINB1 |
PINB0 |
|
|
0x15 |
(0x35) |
GPIOR2 |
|
|
|
General Purpose I/O Register 2 |
|
|
|
|
|
|
0x14 |
(0x34) |
GPIOR1 |
|
|
|
General Purpose I/O Register 1 |
|
|
|
|
|
|
0x13 |
(0x33) |
GPIOR0 |
|
|
|
General Purpose I/O Register 0 |
|
|
|
|
|
|
0x12 |
(0x32) |
PCMSK0 |
PCINT7 |
PCINT6 |
PCINT5 |
PCINT4 |
PCINT3 |
PCINT2 |
PCINT1 |
PCINT0 |
|
|
0x11 (0x31)) |
Reserved |
|
|
|
|
– |
|
|
|
|
|
|
0x10 |
(0x30) |
USIBR |
|
|
|
USI Buffer Register |
|
|
|
|
|
|
0x0F |
(0x2F) |
USIDR |
|
|
|
USI Data Register |
|
|
|
|
|
|
0x0E |
(0x2E) |
USISR |
USISIF |
USIOIF |
USIPF |
USIDC |
USICNT3 |
USICNT2 |
USICNT1 |
USICNT0 |
|
|
0x0D (0x2D) |
USICR |
USISIE |
USIOIE |
USIWM1 |
USIWM0 |
USICS1 |
USICS0 |
USICLK |
USITC |
|
|
|
0x0C (0x2C) |
TIMSK1 |
– |
– |
ICIE1 |
– |
– |
OCIE1B |
OCIE1A |
TOIE1 |
|
|
|
0x0B (0x2B) |
TIFR1 |
– |
– |
ICF1 |
– |
– |
OCF1B |
OCF1A |
TOV1 |
|
|
|
0x0A (0x2A) |
Reserved |
|
|
|
|
– |
|
|
|
|
|
|
0x09 |
(0x29) |
Reserved |
|
|
|
|
– |
|
|
|
|
|
0x08 |
(0x28) |
ACSR |
ACD |
ACBG |
ACO |
ACI |
ACIE |
ACIC |
ACIS1 |
ACIS0 |
|
|
0x07 |
(0x27) |
ADMUX |
REFS1 |
REFS0 |
MUX5 |
MUX4 |
MUX3 |
MUX2 |
MUX1 |
MUX0 |
|
|
0x06 |
(0x26) |
ADCSRA |
ADEN |
ADSC |
ADATE |
ADIF |
ADIE |
ADPS2 |
ADPS1 |
ADPS0 |
|
|
0x05 |
(0x25) |
ADCH |
|
|
|
ADC Data Register High Byte |
|
|
|
|
|
|
0x04 |
(0x24) |
ADCL |
|
|
|
ADC Data Register Low Byte |
|
|
|
|
|
|
0x03 |
(0x23) |
ADCSRB |
BIN |
ACME |
– |
ADLAR |
– |
ADTS2 |
ADTS1 |
ADTS0 |
|
|
0x02 |
(0x22) |
Reserved |
|
|
|
|
– |
|
|
|
|
|
0x01 |
(0x21) |
DIDR0 |
ADC7D |
ADC6D |
ADC5D |
ADC4D |
ADC3D |
ADC2D |
ADC1D |
ADC0D |
|
|
0x00 |
(0x20) |
PRR |
– |
– |
– |
– |
PRTIM1 |
PRTIM0 |
PRUSI |
PRADC |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7
8006GS–AVR–01/08
Note:
8
1.For compatibility with future devices, reserved bits should be written to zero if accessed. Reserved I/O memory addresses should never be written.
2.I/O Registers within the address range 0x00 - 0x1F are directly bit-accessible using the SBI and CBI instructions. In these registers, the value of single bits can be checked by using the SBIS and SBIC instructions.
3.Some of the Status Flags are cleared by writing a logical one to them. Note that, unlike most other AVRs, the CBI and SBI instructions will only operation the specified bit, and can therefore be used on registers containing such Status Flags. The CBI and SBI instructions work with registers 0x00 to 0x1F only.
ATtiny24/44/84
8006GS–AVR–01/08