- •Features
- •Pin Configurations
- •Overview
- •Block Diagram
- •Pin Descriptions
- •Port A (PA7..PA0)
- •Port B (PB7..PB0)
- •Port C (PC7..PC0)
- •Port D (PD7..PD0)
- •Port E (PE7..PE0)
- •Port F (PF7..PF0)
- •Port G (PG4..PG0)
- •RESET
- •XTAL1
- •XTAL2
- •AVCC
- •AREF
- •AVR CPU Core
- •Introduction
- •Architectural Overview
- •Status Register
- •Stack Pointer
- •Interrupt Response Time
- •SRAM Data Memory
- •Data Memory Access Times
- •EEPROM Data Memory
- •EEPROM Read/Write Access
- •I/O Memory
- •Overview
- •ATmega103 Compatibility
- •Address Latch Requirements
- •Pull-up and Bus-keeper
- •Timing
- •XMEM Register Description
- •Using all 64KB Locations of External Memory
- •Clock Systems and their Distribution
- •CPU Clock – clkCPU
- •I/O Clock – clkI/O
- •Flash Clock – clkFLASH
- •ADC Clock – clkADC
- •Clock Sources
- •Crystal Oscillator
- •External RC Oscillator
- •External Clock
- •Timer/Counter Oscillator
- •Idle Mode
- •Power-down Mode
- •Power-save Mode
- •Standby Mode
- •Extended Standby Mode
- •Analog to Digital Converter
- •Analog Comparator
- •Brown-out Detector
- •Internal Voltage Reference
- •Watchdog Timer
- •Port Pins
- •System Control and Reset
- •Resetting the AVR
- •Reset Sources
- •Power-on Reset
- •External Reset
- •Brown-out Detection
- •Watchdog Reset
- •Watchdog Timer
- •Timed Sequences for Changing the Configuration of the Watch Dog Timer
- •Safety Level 0
- •Safety Level 1
- •Safety Level 2
- •Interrupts
- •I/O-Ports
- •Introduction
- •Configuring the Pin
- •Reading the Pin Value
- •Alternate Port Functions
- •Alternate Functions of Port A
- •Alternate Functions of Port B
- •Alternate Functions of Port C
- •Alternate Functions of Port D
- •Alternate Functions of Port E
- •Alternate Functions of Port F
- •Alternate Functions of Port G
- •Port A Data Register – PORTA
- •Port B Data Register – PORTB
- •Port C Data Register – PORTC
- •Port D Data Register – PORTD
- •Port E Data Register – PORTE
- •Port F Data Register – PORTF
- •Port G Data Register – PORTG
- •External Interrupts
- •8-bit Timer/Counter0 with PWM and Asynchronous Operation
- •Overview
- •Registers
- •Definitions
- •Counter Unit
- •Output Compare Unit
- •Force Output Compare
- •Modes of Operation
- •Normal Mode
- •Fast PWM Mode
- •Phase Correct PWM Mode
- •Timer/Counter Prescaler
- •16-bit Timer/Counter (Timer/Counter1 and Timer/Counter3)
- •Overview
- •Registers
- •Definitions
- •Compatibility
- •Counter Unit
- •Input Capture Unit
- •Input Capture Trigger Source
- •Noise Canceler
- •Using the Input Capture Unit
- •Output Compare Units
- •Force Output Compare
- •Modes of Operation
- •Normal Mode
- •Fast PWM Mode
- •Phase Correct PWM Mode
- •16-bit Timer/Counter Register Description
- •Internal Clock Source
- •Prescaler Reset
- •External Clock Source
- •8-bit Timer/Counter2 with PWM
- •Overview
- •Registers
- •Definitions
- •Counter Unit
- •Output Compare Unit
- •Force Output Compare
- •Modes of Operation
- •Normal Mode
- •Fast PWM Mode
- •Phase Correct PWM Mode
- •Overview
- •Description
- •Timing Example
- •Slave Mode
- •Master Mode
- •SPI Control Register – SPCR
- •SPI Status Register – SPSR
- •SPI Data Register – SPDR
- •Data Modes
- •USART
- •Dual USART
- •Overview
- •AVR USART vs. AVR UART – Compatibility
- •Clock Generation
- •External Clock
- •Synchronous Clock Operation
- •Frame Formats
- •Parity Bit Calculation
- •USART Initialization
- •Sending Frames with 5 to 8 Data Bit
- •Sending Frames with 9 Data Bit
- •Parity Generator
- •Disabling the Transmitter
- •Receiving Frames with 5 to 8 Data Bits
- •Receiving Frames with 9 Data Bits
- •Receiver Error Flags
- •Parity Checker
- •Disabling the Receiver
- •Flushing the Receive Buffer
- •Asynchronous Data Recovery
- •Using MPCM
- •Two-wire Serial Interface
- •Features
- •TWI Terminology
- •Electrical Interconnection
- •Transferring Bits
- •START and STOP Conditions
- •Address Packet Format
- •Data Packet Format
- •Multi-master Bus Systems, Arbitration and Synchronization
- •Overview of the TWI Module
- •Scl and SDA Pins
- •Bit Rate Generator Unit
- •Bus Interface Unit
- •Address Match Unit
- •Control Unit
- •TWI Register Description
- •TWI Bit Rate Register – TWBR
- •TWI Control Register – TWCR
- •TWI Status Register – TWSR
- •TWI Data Register – TWDR
- •Using the TWI
- •Transmission Modes
- •Master Transmitter Mode
- •Master Receiver Mode
- •Slave Receiver Mode
- •Slave Transmitter Mode
- •Miscellaneous States
- •Analog Comparator
- •Analog Comparator Multiplexed Input
- •Analog to Digital Converter
- •Features
- •Operation
- •Starting a Conversion
- •Differential Gain Channels
- •ADC Input Channels
- •ADC Voltage Reference
- •ADC Noise Canceler
- •Analog Input Circuitry
- •ADC Accuracy Definitions
- •ADC Conversion Result
- •ADLAR = 0:
- •ADLAR = 1:
- •Features
- •Overview
- •Test Access Port – TAP
- •TAP Controller
- •PRIVATE0; $8
- •PRIVATE1; $9
- •PRIVATE2; $A
- •PRIVATE3; $B
- •Bibliography
- •Features
- •System Overview
- •Data Registers
- •Bypass Register
- •Device Identification Register
- •Reset Register
- •Boundary-scan Chain
- •EXTEST; $0
- •IDCODE; $1
- •SAMPLE_PRELOAD; $2
- •AVR_RESET; $C
- •BYPASS; $F
- •Boundary-scan Chain
- •Scanning the Digital Port Pins
- •Scanning the RESET Pin
- •Scanning the Clock Pins
- •Scanning the ADC
- •Boot Loader Features
- •Application Section
- •Boot Loader Section – BLS
- •Boot Loader Lock Bits
- •Performing a Page Write
- •Using the SPM Interrupt
- •Setting the Boot Loader Lock Bits by SPM
- •Reading the Fuse and Lock Bits from Software
- •Preventing Flash Corruption
- •Simple Assembly Code Example for a Boot Loader
- •Fuse Bits
- •Latching of Fuses
- •Signature Bytes
- •Calibration Byte
- •Signal Names
- •Parallel Programming
- •Enter Programming Mode
- •Chip Erase
- •Programming the Flash
- •Programming the EEPROM
- •Reading the Flash
- •Reading the EEPROM
- •Programming the Lock Bits
- •Reading the Signature Bytes
- •Reading the Calibration Byte
- •Serial Downloading
- •Data Polling Flash
- •Data Polling EEPROM
- •AVR_RESET ($C)
- •PROG_ENABLE ($4)
- •PROG_COMMANDS ($5)
- •PROG_PAGELOAD ($6)
- •PROG_PAGEREAD ($7)
- •Data Registers
- •Reset Register
- •Programming Enable Register
- •Virtual Flash Page Read Register
- •Programming Algorithm
- •Entering Programming Mode
- •Leaving Programming Mode
- •Performing Chip Erase
- •Programming the Flash
- •Reading the Flash
- •Programming the EEPROM
- •Reading the EEPROM
- •Programming the Fuses
- •Programming the Lock Bits
- •Reading the Signature Bytes
- •Reading the Calibration Byte
- •Electrical Characteristics
- •Absolute Maximum Ratings*
- •DC Characteristics
- •External Clock Drive Waveforms
- •External Clock Drive
- •2-wire Serial Interface Characteristics
- •ADC Characteristics - Preliminary Data
- •External Data Memory Timing
- •Ordering Information
- •Packaging Information
8-bit Timer/Counter2 with PWM
Timer/Counter2 is a general purpose, single channel, 8-bit Timer/Counter module. The main features are:
•Single Channel Counter
•Clear Timer on Compare Match (Auto Reload)
•Glitch-free, Phase Correct Pulse width Modulator (PWM)
•Frequency Generator
•External Event Counter
•10-bit Clock Prescaler
•Overflow and Compare Match Interrupt Sources (TOV2 and OCF2)
Overview |
A simplified block diagram of the 8-bit Timer/Counter is shown in Figure 60. For the |
|
actual placement of I/O pins, refer to “Pin Configurations” on page 2. CPU accessible |
|
I/O registers, including I/O bits and I/O pins, are shown in bold. The device-specific I/O |
|
register and bit locations are listed in the “8-bit Timer/Counter Register Description” on |
|
page 151. |
|
Figure 60. 8-Bit Timer/Counter Block Diagram |
DATABUS
|
TCCRn |
|
|
count |
|
|
TOVn |
|
|
|
|
clear |
Control Logic |
|
(Int.Req.) |
direction |
Clock Select |
|
|
clkTn |
|
||
|
|
Edge |
Tn |
|
|
Detector |
|
|
|
|
|
BOTTOM |
TOP |
|
|
Timer/Counter |
|
( From Prescaler ) |
|
|
|
|
|
TCNTn |
= 0xFF |
|
|
= 0 |
|
OCn |
|
|
|
|
|
|
|
|
(Int.Req.) |
= |
|
Waveform |
OCn |
|
Generation |
||
|
|
|
OCRn
Registers |
The Timer/Counter (TCNT2) and Output Compare Register (OCR2) are 8-bit registers. |
|
Interrupt request (abbreviated to Int.Req. in the figure) signals are all visible in the Timer |
|
Interrupt Flag Register (TIFR). All interrupts are individually masked with the Timer |
|
Interrupt Mask register (TIMSK). TIFR and TIMSK are not shown in the figure since |
|
these registers are shared by other timer units. |
|
The Timer/Counter can be clocked internally, via the prescaler, or by an external clock |
|
source on the T2 pin. The Clock Select logic block controls which clock source and edge |
|
the Timer/Counter uses to increment (or decrement) its value. The Timer/Counter is |
140 ATmega128(L)
2467B–09/01
ATmega128(L)
inactive when no clock source is selected. The output from the clock select logic is
|
referred to as the timer clock (clkT2). |
|
|
The double buffered Output Compare Register (OCR2) is compared with the |
|
|
Timer/Counter value at all times. The result of the compare can be used by the wave- |
|
|
form generator to generate a PWM or variable frequency output on the Output Compare |
|
|
Pin (OC2). See “Output Compare Unit” on page 142. for details. The compare match |
|
|
event will also set the compare flag (OCF2) which can be used to generate an output |
|
|
compare interrupt request. |
|
Definitions |
Many register and bit references in this document are written in general form. A lower |
|
|
case “n” replaces the Timer/Counter number, in this case 2. However, when using the |
|
|
register or bit defines in a program, the precise form must be used (i.e., TCNT2 for |
|
|
accessing Timer/Counter2 counter value and so on). |
|
|
The definitions in Table 63 are also used extensively throughout the document. |
|
|
Table 63. Definitions |
|
|
|
|
|
BOTTOM |
The counter reaches the BOTTOM when it becomes 0x00 |
|
MAX |
The counter reaches its MAXimum when it becomes 0xFF (decimal 255). |
|
TOP |
The counter reaches the TOP when it becomes equal to the highest |
|
|
value in the count sequence. The TOP value can be assigned to be the |
|
|
fixed value 0xFF (MAX) or the value stored in the OCR2 register. The |
|
|
assignment is dependent on the mode of operation. |
|
|
|
Timer/Counter Clock
Sources
Counter Unit
The Timer/Counter can be clocked by an internal or an external clock source. The clock source is selected by the clock select logic which is controlled by the clock select
(CS22:0) bits located in the Timer/Counter control register (TCCR2). For details on clock sources and prescaler, see “Timer/Counter3, Timer/Counter2, and Timer/Counter1 Prescalers” on page 138.
The main part of the 8-bit Timer/Counter is the programmable bidirectional counter unit. Figure 61 shows a block diagram of the counter and its surroundings.
Figure 61. Counter Unit Block Diagram |
|
|
||
|
|
|
TOVn |
|
DATA BUS |
|
|
(Int.Req.) |
|
|
|
|
Clock Select |
|
|
count |
|
Edge |
Tn |
|
|
|
Detector |
|
|
clear |
|
|
|
TCNTn |
|
clkTn |
|
|
direction |
Control Logic |
|
||
|
|
|
|
|
|
|
|
( From Prescaler ) |
|
|
bottom |
top |
|
Signal description (internal signals):
count Increment or decrement TCNT2 by 1.
direction Select between increment and decrement.
141
2467B–09/01