- •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
ATmega128(L)
Standby Mode
asynchronous timer should be considered undefined after wake-up in Power-save Mode if AS0 is 0.
This sleep mode basically halts all clocks except clkASY, allowing operation only of asynchronous modules, including Timer/Counter0 if clocked asynchronously.
When the SM2..0 bits are 110 and an external crystal/resonator clock option is selected, the SLEEP instruction makes the MCU enter Standby Mode. This mode is identical to Power-down with the exception that the oscillator is kept running. From Standby Mode, the device wakes up in 6 clock cycles.
Extended Standby Mode |
When the SM2..0 bits are 111 and an external crystal/resonator clock option is selected, |
|||||||||||||||
|
|
|
|
the SLEEP instruction makes the MCU enter Extended Standby Mode. This mode is |
||||||||||||
|
|
|
|
identical to Power-save Mode with the exception that the oscillator is kept running. From |
||||||||||||
|
|
|
|
Extended Standby Mode, the device wakes up in 6 clock cycles. |
|
|
|
|||||||||
Table 18. Active Clock Domains and Wake Up Sources in the Different Sleep Modes |
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Active Clock Domains |
|
Oscillators |
|
|
Wake Up Sources |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Main Clock |
Timer |
|
TWI |
|
|
|
SPM/ |
|
|
Sleep |
|
|
|
|
|
|
Source |
Osc |
|
Address |
|
Timer 0 |
|
EEPROM |
|
Other |
Mode |
clkCPU |
clkFLASH |
clkIO |
clkADC |
|
clkASY |
Enabled |
Enabled |
INT7:0 |
Match |
|
|
Ready |
ADC |
I/O |
|
Idle |
|
|
X |
X |
|
X |
X |
X(2) |
X |
X |
|
X |
|
X |
X |
X |
ADC |
|
|
|
|
|
|
|
X(2) |
X(3) |
|
|
|
|
|
|
|
Noise |
|
|
|
X |
|
X |
X |
X |
|
X |
|
X |
X |
|
||
Reduction |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Power |
|
|
|
|
|
|
|
|
X(3) |
X |
|
|
|
|
|
|
Down |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Power |
|
|
|
|
|
X(2) |
|
X(2) |
X(3) |
X |
|
X(2) |
|
|
|
|
Save |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Standby(1) |
|
|
|
|
|
|
X |
|
X(3) |
X |
|
|
|
|
|
|
Extended |
|
|
|
|
|
X(2) |
X |
X(2) |
X(3) |
X |
|
X(2) |
|
|
|
|
Standby(1) |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Notes: 1. |
External Crystal or resonator selected as clock source |
|
|
|
|
|
|
|
|
2.If AS0 bit in ASSR is set
3.Only INT3:0 or level interrupt INT7:4
43
2467B–09/01
Minimizing Power
Consumption
There are several issues to consider when trying to minimize the power consumption in an AVR controlled system. In general, sleep modes should be used as much as possible, and the sleep mode should be selected so that as few as possible of the device’s functions are operating. All functions not needed should be disabled. In particular, the following modules may need special consideration when trying to achieve the lowest possible power consumption.
Analog to Digital Converter |
If enabled, the ADC will be enabled in all sleep modes. To save power, the ADC should |
|
be disabled before entering any sleep mode. When the ADC is turned off and on again, |
|
the next conversion will be an extended conversion. Refer to “Analog to Digital Con- |
|
verter” on page 221 for details on ADC operation. |
Analog Comparator |
When entering Idle Mode, the Analog Comparator should be disabled if not used. When |
|
entering ADC Noise Reduction Mode, the Analog Comparator should be disabled. In the |
|
other sleep modes, the Analog Comparator is automatically disabled. However, if the |
|
Analog Comparator is set up to use the Internal Voltage Reference as input, the Analog |
|
Comparator should be disabled in all sleep modes. Otherwise, the Internal Voltage Ref- |
|
erence will be enabled, independent of sleep mode. Refer to “Analog Comparator” on |
|
page 218 for details on how to configure the Analog Comparator. |
Brown-out Detector |
If the Brown-out Detector is not needed in the application, this module should be turned |
|
off. If the Brown-out Detector is enabled by the BODEN fuse, it will be enabled in all |
|
sleep modes, and hence, always consume power. In the deeper sleep modes, this will |
|
contribute significantly to the total current consumption. Refer to “Brown-out Detector” |
|
on page 44 for details on how to configure the Brown-out Detector. |
Internal Voltage Reference |
The Internal Voltage Reference will be enabled when needed by the Brown-out detec- |
|
tor, the Analog Comparator or the ADC. If these modules are disabled as described in |
|
the sections above, the internal voltage reference will be disabled and it will not be con- |
|
suming power. When turned on again, the user must allow the reference to start up |
|
before the output is used. If the reference is kept on in sleep mode, the output can be |
|
used immediately. Refer to “Internal Voltage Reference” on page 49 for details on the |
|
start-up time. |
Watchdog Timer |
If the Watchdog Timer is not needed in the application, this module should be turned off. |
|
If the Watchdog Timer is enabled, it will be enabled in all sleep modes, and hence, |
|
always consume power. In the deeper sleep modes, this will contribute significantly to |
|
the total current consumption. Refer to “Watchdog Timer” on page 50 for details on how |
|
to configure the Watchdog Timer. |
Port Pins |
When entering a sleep mode, all port pins should be configured to use minimum power. |
|
The most important thing is then to ensure that no pins drive resistive loads. In sleep |
|
modes where the both the I/O clock (clkI/O) and the ADC clock (clkADC) are stopped, the |
|
input buffers of the device will be disabled. This ensures that no power is consumed by |
|
the input logic when not needed. In some cases, the input logic is needed for detecting |
|
wake-up conditions, and it will then be enabled. Refer to the section “Digital Input |
|
Enable and Sleep Modes” on page 65 for details on which pins are enabled. If the input |
|
buffer is enabled and the input signal is left floating or have an analog signal level close |
|
to VCC/2, the input buffer will use excessive power. |
44 ATmega128(L)
2467B–09/01