8/16-bit Atmel XMEGA A3U Microcontroller
ATxmega256A3U / ATxmega192A3U /
ATxmega128A3U / ATxmega64A3U
DATASHEET
Features
z
High-performance, low-power Atmel® AVR® XMEGA® 8/16-bit Microcontroller
z
Nonvolatile program and data memories
̶ 64K - 256KBytes of in-system self-programmable flash
̶ 4K - 8KBytes boot section
̶ 2K - 4KBytes EEPROM
̶ 4K - 16KBytes internal SRAM
Peripheral features
̶ Four-channel DMA controller
̶ Eight-channel event system
̶ Seven 16-bit timer/counters
z Four timer/counters with four output compare or input capture channels
z Three timer/counters with two output compare or input capture channels
z High resolution extension on all timer/counters
z Advanced waveform extension (AWeX) on one timer/counter
̶ One USB device interface
z USB 2.0 full speed (12Mbps) and low speed (1.5Mbps) device compliant
z 32 Endpoints with full configuration flexibility
̶ Seven USARTs with IrDA support for one USART
̶ Two two-wire interfaces with dual address match (I2C and SMBus compatible)
̶ Three serial peripheral interfaces (SPIs)
̶ AES and DES crypto engine
̶ CRC-16 (CRC-CCITT) and CRC-32 (IEEE® 802.3) generator
̶ 16-bit real time counter (RTC) with separate oscillator
̶ Two sixteen-channel, 12-bit, 2msps Analog to Digital Converters
̶ One two-channel, 12-bit, 1msps Digital to Analog Converter
̶ Four Analog Comparators with window compare function, and current
sources
̶ External interrupts on all general purpose I/O pins
̶ Programmable watchdog timer with separate on-chip ultra low power
oscillator
̶ QTouch® library support
z Capacitive touch buttons, sliders and wheels
z Special microcontroller features
̶ Power-on reset and programmable brown-out detection
̶ Internal and external clock options with PLL and prescaler
̶ Programmable multilevel interrupt controller
̶ Five sleep modes
z
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
̶
Programming and debug interfaces
z JTAG (IEEE 1149.1 compliant) interface, including boundary scan
z PDI (program and debug interface)
z
I/O and packages
̶ 50 Programmable I/O pins
̶ 64-lead TQFP
̶ 64-pad QFN
z
Operating voltage
̶ 1.6 – 3.6V
z
Operating frequency
̶ 0 – 12MHz from 1.6V
̶ 0 – 32MHz from 2.7V
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
2
1.
Ordering Information
Flash (bytes)
EEPROM
(bytes)
SRAM
(bytes)
256K + 8K
4K
16K
256K + 8K
4K
16K
192K + 8K
2K
16K
192K + 8K
2K
16K
ATxmega128A3U-AU
128K + 8K
2K
8K
ATxmega128A3U-AUR(4)
128K + 8K
2K
8K
ATxmega64A3U-AU
64K + 4K
2K
4K
64K + 4K
2K
4K
ATxmega256A3U-MH
256K + 8K
4K
16K
ATxmega256A3U-MHR(4)
256K + 8K
4K
16K
ATxmega192A3U-MH
192K + 8K
2K
16K
192K + 8K
2K
16K
ATxmega128A3U-MH
128K + 8K
2K
8K
ATxmega128A3U-MHR(4)
128K + 8K
2K
8K
ATxmega64A3U-MH
64K + 4K
2K
4K
64K + 4K
2K
4K
256K + 8K
4K
16K
256K + 8K
4K
16K
192K + 8K
2K
16K
192K + 8K
2K
16K
ATxmega128A3U-AN
128K + 8K
2K
8K
ATxmega128A3U-ANR(4)
128K + 8K
2K
8K
ATxmega64A3U-AN
64K + 4K
2K
4K
64K + 4K
2K
4K
ATxmega256A3U-MN
256K + 8K
4K
16K
ATxmega256A3U-MNR(4)
256K + 8K
4K
16K
ATxmega192A3U-MN
192K + 8K
2K
16K
192K + 8K
2K
16K
ATxmega128A3U-MN
128K + 8K
2K
8K
ATxmega128A3U-MNR(4)
128K + 8K
2K
8K
ATxmega64A3U-MN
64K + 4K
2K
4K
64K + 4K
2K
4K
Ordering code
ATxmega256A3U-AU
ATxmega256A3U-AUR
(4)
ATxmega192A3U-AU
ATxmega192A3U-AUR
(4)
Speed (MHz)
Power
supply
Package
(1)(2)(3)
Temp.
64A
ATxmega64A3U-AUR
(4)
32
ATxmega192A3U-MHR
(4)
1.6 - 3.6V
-40°C - 85°C
64M2
ATxmega64A3U-MHR
(4)
ATxmega256A3U-AN
ATxmega256A3U-ANR
(4)
ATxmega192A3U-AN
ATxmega192A3U-ANR
(4)
64A
ATxmega64A3U-ANR
(4)
32
ATxmega192A3U-MHR
(4)
1.6 - 3.6V
-40°C - 105°C
64M2
ATxmega64A3U-MNR
Notes:
1.
2.
(4)
This device can also be supplied in wafer form. Please contact your local Atmel sales office for detailed ordering information.
Pb-free packaging, complies to the European Directive for Restriction of Hazardous Substances (RoHS directive). Also Halide free and fully Green.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
3
3.
4.
For packaging information, see “Packaging information” on page 71.
Tape and Reel.
Package Type
64A
64-lead, 14 x 14mm body size, 1.0mm body thickness, 0.8mm lead pitch, thin profile plastic quad flat package (TQFP)
64M2
64-pad, 9 x 9 x 1.0mm body, lead pitch 0.50mm, 7.65mm exposed pad, quad flat no-lead package (QFN)
Typical Applications
Industrial control
Climate control
Low power battery applications
®
Factory automation
RF and ZigBee
Power tools
Building control
USB connectivity
HVAC
Board control
Sensor control
Utility metering
White goods
Optical
Medical applications
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
4
2.
Pinout/Block Diagram
Figure 2-1.
Block diagram and pinout.
Programming, debug, test
Power
Ground
External clock /Crystal pins
General Purpose I /O
PA2
PA1
PA0
AVCC
GND
PR1
PR0
RESET/PDI
PDI
PF7
PF6
VCC
GND
PF5
PF4
PF3
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
Digital function
Analog function /Oscillators
Port R
GND
14
VCC
15
PC0
16
1.
SRAM
DATA BUS
EVENT ROUTING NETWORK
18
19
20
21
22
23
24
25
26
27
28
PC2
PC3
PC4
PC5
PC6
PC7
GND
VCC
PD0
PD1
PD2
Port E
17
Port D
PC1
Port C
Note:
EEPROM
USART0
13
FLASH
48
PF2
47
PF1
46
PF0
45
VCC
44
GND
43
PE7
42
PE6
41
PE5
40
PE4
39
PE3
38
PE2
37
PE1
36
PE0
35
VCC
34
GND
33
PD7
Port F
32
PB7
JTAG
PD6
12
AC0:1
TC0:1
PB6
CPU
31
11
BUS
matrix
PD5
PB5
DAC
Internal
references
TOSC
10
ADC
DMA
Controller
30
PB4
AREF
Interrupt
Controller
PD4
9
Prog/Debug
Interface
TWI
PB3
OCD
29
8
Crypto /
CRC
PD3
PB2
Event System
Controller
AC0:1
SPI
7
Reset
Controller
USART0:1
PB1
Watchdog
Timer
TC0:1
6
Real Time
Counter
ADC
USB
PB0
Sleep
Controller
AREF
SPI
5
Power
Supervision
USART0:1
PA7
Watchdog
oscillator
TC0:1
4
Internal
oscillators
TWI
PA6
OSC/CLK
Control
SPI
3
USART0:1
PA5
DATA BUS
TC0:1
2
IRCOM
PA4
XOSC
Port A
1
Port B
PA3
For full details on pinout and alternate pin functions refer to “Pinout and Pin Functions” on page 59.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
5
3.
Overview
The Atmel AVR XMEGA is a family of low power, high performance, and peripheral rich 8/16-bit microcontrollers
based on the AVR enhanced RISC architecture. By executing instructions in a single clock cycle, the AVR
XMEGA device achieves throughputs CPU approaching one million instructions per second (MIPS) per
megahertz, allowing the system designer to optimize power consumption versus processing speed.
The AVR CPU 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 a
single instruction, executed in one clock cycle. The resulting architecture is more code efficient while achieving
throughputs many times faster than conventional single-accumulator or CISC based microcontrollers.
The AVR XMEGA A3U devices provide the following features: in-system programmable flash with read-whilewrite capabilities; internal EEPROM and SRAM; four-channel DMA controller, eight-channel event system and
programmable multilevel interrupt controller, 50 general purpose I/O lines, 16-bit real-time counter (RTC); seven
flexible, 16-bit timer/counters with compare and PWM channels; seven USARTs; two two-wire serial interfaces
(TWIs); one full speed USB 2.0 interface; three serial peripheral interfaces (SPIs); AES and DES cryptographic
engine; two 16-channel, 12-bit ADCs with programmable gain; one 2-channel 12-bit DAC; four analog
comparators (ACs) with window mode; programmable watchdog timer with separate internal oscillator; accurate
internal oscillators with PLL and prescaler; and programmable brown-out detection.
The program and debug interface (PDI), a fast, two-pin interface for programming and debugging, is available.
The devices also have an IEEE std. 1149.1 compliant JTAG interface, and this can also be used for boundary
scan, on-chip debug and programming.
The ATx devices have five software selectable power saving modes. The idle mode stops the CPU while
allowing the SRAM, DMA controller, event system, interrupt controller, and all peripherals to continue
functioning. The power-down mode saves the SRAM and register contents, but stops the oscillators, disabling
all other functions until the next TWI, USB resume, or pin-change interrupt, or reset. In power-save mode, the
asynchronous real-time counter continues to run, allowing the application to maintain a timer base while the rest
of the device is sleeping. In standby mode, the external crystal oscillator keeps running while the rest of the
device is sleeping. This allows very fast startup from the external crystal, combined with low power
consumption. In extended standby mode, both the main oscillator and the asynchronous timer continue to run.
To further reduce power consumption, the peripheral clock to each individual peripheral can optionally be
stopped in active mode and idle sleep mode.
Atmel offers a free QTouch library for embedding capacitive touch buttons, sliders and wheels functionality into
AVR microcontrollers.
The devices are manufactured using Atmel high-density, nonvolatile memory technology. The program flash
memory can be reprogrammed in-system through the PDI or JTAG interfaces. A boot loader running in the
device can use any interface to download the application program to the flash memory. The boot loader
software in the boot flash section will continue to run while the application flash section is updated, providing
true read-while-write operation. By combining an 8/16-bit RISC CPU with in-system, self-programmable flash,
the AVR XMEGA is a powerful microcontroller family that provides a highly flexible and cost effective solution for
many embedded applications.
All Atmel AVR XMEGA devices are supported with a full suite of program and system development tools,
including C compilers, macro assemblers, program debugger/simulators, programmers, and evaluation kits.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
6
3.1
Block Diagram
Figure 3-1.
XMEGA A3U block diagram.
PR[0..1]
Digital function
Programming, debug, test
Analog function
Oscillator/Crystal/Clock
XTAL1
General Purpose I/O
XTAL2
Oscillator
Circuits/
Clock
Generation
PORT R (2)
Real Time
Counter
DATA BUS
PA[0..7]
PORT A (8)
Watchdog
Timer
Event System
Controller
Oscillator
Control
DMA
Controller
ADCA
AREFA
Sleep
Controller
GND
RESET/
PDI_CLK
PDI
Prog/Debug
Controller
BUS Matrix
VCC
Power
Supervision
POR/BOD &
RESET
SRAM
ACA
Watchdog
Oscillator
PDI_DATA
Int. Refs.
AES
Tempref
JTAG
OCD
AREFB
PORT B
DES
Interrupt
Controller
CPU
ADCB
CRC
ACB
USARTF0
PORT B (8)
Flash
TCF0
EEPROM
DACB
IRCOM
PORT F (8)
NVM Controller
PF[0..7]
DATA BUS
PORT C (8)
PORT D (8)
SPIE
TWIE
TCE0:1
USARTE0:1
USB
SPID
TCD0:1
USARTD0:1
TWIC
SPIC
TCC0:1
EVENT ROUTING NETWORK
USARTC0:1
PB[0..7]/
JTAG
To Clock
Generator
PORT E (8)
TOSC1
TOSC2
PC[0..7]
PD[0..7]
PE[0..7]
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
7
4.
Resources
A comprehensive set of development tools, application notes and datasheets are available for download on
http://www.atmel.com/avr.
4.1
Recommended reading
z
Atmel AVR XMEGA AU manual
z
XMEGA application notes
This device data sheet only contains part specific information with a short description of each peripheral and
module. The XMEGA AU manual describes the modules and peripherals in depth. The XMEGA application
notes contain example code and show applied use of the modules and peripherals.
All documentations are available from www.atmel.com/avr.
5.
Capacitive touch sensing
The Atmel QTouch library provides a simple to use solution to realize touch sensitive interfaces on most Atmel
AVR microcontrollers. The patented charge-transfer signal acquisition offers robust sensing and includes fully
debounced reporting of touch keys and includes Adjacent Key Suppression® (AKS®) technology for
unambiguous detection of key events. The QTouch library includes support for the QTouch and QMatrix
acquisition methods.
Touch sensing can be added to any application by linking the appropriate Atmel QTouch library for the AVR
microcontroller. This is done by using a simple set of APIs to define the touch channels and sensors, and then
calling the touch sensing APIs to retrieve the channel information and determine the touch sensor states.
The QTouch library is FREE and downloadable from the Atmel website at the following location:
www.atmel.com/qtouchlibrary. For implementation details and other information, refer to the QTouch library
user guide - also available for download from the Atmel website.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
8
6.
AVR CPU
6.1
Features
6.2
z
8/16-bit, high-performance Atmel AVR RISC CPU
̶ 142 instructions
̶ Hardware multiplier
z
32x8-bit registers directly connected to the ALU
z
Stack in RAM
z
Stack pointer accessible in I/O memory space
z
Direct addressing of up to 16MB of program memory and 16MB of data memory
z
True 16/24-bit access to 16/24-bit I/O registers
z
Efficient support for 8-, 16-, and 32-bit arithmetic
z
Configuration change protection of system-critical features
Overview
All Atmel AVR XMEGA devices use the 8/16-bit AVR CPU. The main function of the CPU is to execute the code
and perform all calculations. The CPU is able to access memories, perform calculations, control peripherals,
and execute the program in the flash memory. Interrupt handling is described in a separate section, refer to
“Interrupts and Programmable Multilevel Interrupt Controller” on page 30.
6.3
Architectural Overview
In order to maximize performance and parallelism, the AVR CPU uses a Harvard architecture with separate
memories and buses for program and data. Instructions in the program memory are executed with single-level
pipelining. While one instruction is being executed, the next instruction is pre-fetched from the program memory.
This enables instructions to be executed on every clock cycle. For details of all AVR instructions, refer to
http://www.atmel.com/avr.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
9
Figure 6-1.
Block diagram of the AVR CPU architecture.
The arithmetic logic unit (ALU) supports arithmetic and logic operations between registers or between a
constant and a register. Single-register operations can also be executed in the ALU. After an arithmetic
operation, the status register is updated to reflect information about the result of the operation.
The ALU is directly connected to the fast-access register file. The 32 x 8-bit general purpose working registers
all have single clock cycle access time allowing single-cycle arithmetic logic unit (ALU) operation between
registers or between a register and an immediate. Six of the 32 registers can be used as three 16-bit address
pointers for program and data space addressing, enabling efficient address calculations.
The memory spaces are linear. The data memory space and the program memory space are two different
memory spaces.
The data memory space is divided into I/O registers, SRAM, and external RAM. In addition, the EEPROM can
be memory mapped in the data memory.
All I/O status and control registers reside in the lowest 4KB addresses of the data memory. This is referred to as
the I/O memory space. The lowest 64 addresses can be accessed directly, or as the data space locations from
0x00 to 0x3F. The rest is the extended I/O memory space, ranging from 0x0040 to 0x0FFF. I/O registers here
must be accessed as data space locations using load (LD/LDS/LDD) and store (ST/STS/STD) instructions.
The SRAM holds data. Code execution from SRAM is not supported. It can easily be accessed through the five
different addressing modes supported in the AVR architecture. The first SRAM address is 0x2000.
Data addresses 0x1000 to 0x1FFF are reserved for memory mapping of EEPROM.
The program memory is divided in two sections, the application program section and the boot program section.
Both sections have dedicated lock bits for write and read/write protection. The SPM instruction that is used for
self-programming of the application flash memory must reside in the boot program section. The application
section contains an application table section with separate lock bits for write and read/write protection. The
application table section can be used for safe storing of nonvolatile data in the program memory.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
10
6.4
ALU - Arithmetic Logic Unit
The arithmetic logic unit (ALU) supports arithmetic and logic operations between registers or between a
constant and a register. Single-register operations can also be executed. The ALU operates in direct connection
with all 32 general purpose registers. In a single clock cycle, arithmetic operations between general purpose
registers or between a register and an immediate are executed and the result is stored in the register file. After
an arithmetic or logic operation, the status register is updated to reflect information about the result of the
operation.
ALU operations are divided into three main categories – arithmetic, logical, and bit functions. Both 8- and 16-bit
arithmetic is supported, and the instruction set allows for efficient implementation of 32-bit aritmetic. The
hardware multiplier supports signed and unsigned multiplication and fractional format.
6.4.1
Hardware Multiplier
The multiplier is capable of multiplying two 8-bit numbers into a 16-bit result. The hardware multiplier supports
different variations of signed and unsigned integer and fractional numbers:
z
Multiplication of unsigned integers
z
Multiplication of signed integers
z
Multiplication of a signed integer with an unsigned integer
z
Multiplication of unsigned fractional numbers
z
Multiplication of signed fractional numbers
z
Multiplication of a signed fractional number with an unsigned one
A multiplication takes two CPU clock cycles.
6.5
Program Flow
After reset, the CPU starts to execute instructions from the lowest address in the flash programmemory ‘0.’ The
program counter (PC) addresses the next instruction to be fetched.
Program flow is provided by conditional and unconditional jump and call instructions capable of addressing the
whole address space directly. Most AVR instructions use a 16-bit word format, while a limited number use a 32bit format.
During interrupts and subroutine calls, the return address PC is stored on the stack. The stack is allocated in the
general data SRAM, and consequently the stack size is only limited by the total SRAM size and the usage of the
SRAM. After reset, the stack pointer (SP) points to the highest address in the internal SRAM. The SP is
read/write accessible in the I/O memory space, enabling easy implementation of multiple stacks or stack areas.
The data SRAM can easily be accessed through the five different addressing modes supported in the AVR
CPU.
6.6
Status Register
The status register (SREG) contains information about the result of the most recently executed arithmetic or
logic instruction. This information can be used for altering program flow in order to perform conditional
operations. Note that the status register is updated after all ALU operations, as specified in the instruction set
reference. This will in many cases remove the need for using the dedicated compare instructions, resulting in
faster and more compact code.
The status register is not automatically stored when entering an interrupt routine nor restored when returning
from an interrupt. This must be handled by software.
The status register is accessible in the I/O memory space.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
11
6.7
Stack and Stack Pointer
The stack is used for storing return addresses after interrupts and subroutine calls. It can also be used for
storing temporary data. The stack pointer (SP) register always points to the top of the stack. It is implemented
as two 8-bit registers that are accessible in the I/O memory space. Data are pushed and popped from the stack
using the PUSH and POP instructions. The stack grows from a higher memory location to a lower memory
location. This implies that pushing data onto the stack decreases the SP, and popping data off the stack
increases the SP. The SP is automatically loaded after reset, and the initial value is the highest address of the
internal SRAM. If the SP is changed, it must be set to point above address 0x2000, and it must be defined
before any subroutine calls are executed or before interrupts are enabled.
During interrupts or subroutine calls, the return address is automatically pushed on the stack. The return
address can be two or three bytes, depending on program memory size of the device. For devices with 128KB
or less of program memory, the return address is two bytes, and hence the stack pointer is
decremented/incremented by two. For devices with more than 128KB of program memory, the return address is
three bytes, and hence the SP is decremented/incremented by three. The return address is popped off the stack
when returning from interrupts using the RETI instruction, and from subroutine calls using the RET instruction.
The SP is decremented by one when data are pushed on the stack with the PUSH instruction, and incremented
by one when data is popped off the stack using the POP instruction.
To prevent corruption when updating the stack pointer from software, a write to SPL will automatically disable
interrupts for up to four instructions or until the next I/O memory write.
After reset the stack pointer is initialized to the highest address of the SRAM. See Figure 7-3 on page 16.
6.8
Register File
The register file consists of 32 x 8-bit general purpose working registers with single clock cycle access time. The
register file supports the following input/output schemes:
z
One 8-bit output operand and one 8-bit result input
z
Two 8-bit output operands and one 8-bit result input
z
Two 8-bit output operands and one 16-bit result input
z
One 16-bit output operand and one 16-bit result input
Six of the 32 registers can be used as three 16-bit address register pointers for data space addressing, enabling
efficient address calculations. One of these address pointers can also be used as an address pointer for lookup
tables in flash program memory.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
12
7.
Memories
7.1
Features
z
Flash program memory
̶ One linear address space
̶ In-system programmable
̶ Self-programming and boot loader support
̶ Application section for application code
̶ Application table section for application code or data storage
̶ Boot section for application code or boot loader code
̶ Separate read/write protection lock bits for all sections
̶ Built in fast CRC check of a selectable flash program memory section
Data memory
̶ One linear address space
̶ Single-cycle access from CPU
̶ SRAM
̶ EEPROM
z Byte and page accessible
z Optional memory mapping for direct load and store
̶ I/O memory
z Configuration and status registers for all peripherals and modules
z 16 bit-accessible general purpose registers for global variables or flags
̶ Bus arbitration
z Deterministic priority handling between CPU, DMA controller, and other bus masters
̶ Separate buses for SRAM, EEPROM and I/O memory
z Simultaneous bus access for CPU and DMA controller
z Production signature row memory for factory programmed data
̶ ID for each microcontroller device type
̶ Serial number for each device
̶ Calibration bytes for factory calibrated peripherals
z
z
7.2
User signature row
̶ One flash page in size
̶ Can be read and written from software
̶ Content is kept after chip erase
Overview
The Atmel AVR architecture has two main memory spaces, the program memory and the data memory.
Executable code can reside only in the program memory, while data can be stored in the program memory and
the data memory. The data memory includes the internal SRAM, and EEPROM for nonvolatile data storage. All
memory spaces are linear and require no memory bank switching. Nonvolatile memory (NVM) spaces can be
locked for further write and read/write operations. This prevents unrestricted access to the application software.
A separate memory section contains the fuse bytes. These are used for configuring important system functions,
and can only be written by an external programmer.
The available memory size configurations are shown in “Ordering Information” on page 3. In addition, each
device has a Flash memory signature row for calibration data, device identification, serial number etc.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
13
7.3
Flash Program Memory
The Atmel AVR XMEGA devices contain on-chip, in-system reprogrammable flash memory for program
storage. The flash memory can be accessed for read and write from an external programmer through the PDI or
from application software running in the device.
All AVR CPU instructions are 16 or 32 bits wide, and each flash location is 16 bits wide. The flash memory is
organized in two main sections, the application section and the boot loader section. The sizes of the different
sections are fixed, but device-dependent. These two sections have separate lock bits, and can have different
levels of protection. The store program memory (SPM) instruction, which is used to write to the flash from the
application software, will only operate when executed from the boot loader section.
The application section contains an application table section with separate lock settings. This enables safe
storage of nonvolatile data in the program memory.
Table 7-1.
Flash Program Memory (Hexadecimal address).
Word Address
ATxmega256A3U
ATxmega192A3U
ATxmega128A3U
ATxmega64A3U
0
0
0
0
Application Section
(256K/192K/128K/64K)
...
7.3.1
1EFFF
/
16FFF
/
37FF
/
77FF
1F000
/
17000
/
EFFF
/
7800
Application Table Section
1FFFF
/
17FFF
/
F000
/
7FFF
(8K/8K/8K/4K)
20000
/
18000
/
10000
/
8000
Boot Section
20FFF
/
18FFF
/
10FFF
/
87FF
(8K/8K/8K/4K)
Application Section
The Application section is the section of the flash that is used for storing the executable application code. The
protection level for the application section can be selected by the boot lock bits for this section. The application
section can not store any boot loader code since the SPM instruction cannot be executed from the application
section.
7.3.2
Application Table Section
The application table section is a part of the application section of the flash memory that can be used for storing
data. The size is identical to the boot loader section. The protection level for the application table section can be
selected by the boot lock bits for this section. The possibilities for different protection levels on the application
section and the application table section enable safe parameter storage in the program memory. If this section
is not used for data, application code can reside here.
7.3.3
Boot Loader Section
While the application section is used for storing the application code, the boot loader software must be located
in the boot loader section because the SPM instruction can only initiate programming when executing from this
section. The SPM instruction can access the entire flash, including the boot loader section itself. The protection
level for the boot loader section can be selected by the boot loader lock bits. If this section is not used for boot
loader software, application code can be stored here.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
14
7.3.4
Production Signature Row
The production signature row is a separate memory section for factory programmed data. It contains calibration
data for functions such as oscillators and analog modules. Some of the calibration values will be automatically
loaded to the corresponding module or peripheral unit during reset. Other values must be loaded from the
signature row and written to the corresponding peripheral registers from software. For details on calibration
conditions, refer to “Electrical Characteristics” on page 73.
The production signature row also contains an ID that identifies each microcontroller device type and a serial
number for each manufactured device. The serial number consists of the production lot number, wafer number,
and wafer coordinates for the device. The device ID for the available devices is shown in Table 7-2.
The production signature row cannot be written or erased, but it can be read from application software and
external programmers.
Table 7-2.
Device ID bytes for Atmel AVR XMEGA A3U devices.
Device
7.3.5
Device ID bytes
Byte 2
Byte 1
Byte 0
ATxmega64A3U
42
96
1E
ATxmega128A3U
42
97
1E
ATxmega192A3U
44
97
1E
ATxmega256A3U
42
98
1E
User Signature Row
The user signature row is a separate memory section that is fully accessible (read and write) from application
software and external programmers. It is one flash page in size, and is meant for static user parameter storage,
such as calibration data, custom serial number, identification numbers, random number seeds, etc. This section
is not erased by chip erase commands that erase the flash, and requires a dedicated erase command. This
ensures parameter storage during multiple program/erase operations and on-chip debug sessions.
7.4
Fuses and Lock bits
The fuses are used to configure important system functions, and can only be written from an external
programmer. The application software can read the fuses. The fuses are used to configure reset sources such
as brownout detector and watchdog, startup configuration, JTAG enable, and JTAG user ID.
The lock bits are used to set protection levels for the different flash sections (that is, if read and/or write access
should be blocked). Lock bits can be written by external programmers and application software, but only to
stricter protection levels. Chip erase is the only way to erase the lock bits. To ensure that flash contents are
protected even during chip erase, the lock bits are erased after the rest of the flash memory has been erased.
An unprogrammed fuse or lock bit will have the value one, while a programmed fuse or lock bit will have the
value zero.
Both fuses and lock bits are reprogrammable like the flash program memory.
7.5
Data Memory
The data memory contains the I/O memory, internal SRAM, optionally memory mapped EEPROM, and external
memory if available. The data memory is organized as one continuous memory section, see Table 7-3 on page
16. To simplify development, I/O Memory, EEPROM and SRAM will always have the same start addresses for
all Atmel AVR XMEGA devices.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
15
Table 7-3.
Byte Address
Data memory map (Hexadecimal address).
ATxmega192A3U
0
FFF
I/O Registers (4K)
1000
EEPROM (2K)
17FF
Byte Address
ATxmega128A3U
0
FFF
1000
17FF
RESERVED
2000
Internal
SRAM (16K)
5FFF
Byte Address
Byte Address
ATxmega64A3U
0
I/O Registers (4K)
FFF
1000
EEPROM (2K)
17FF
RESERVED
2000
3FFF
I/O Registers (4K)
EEPROM (2K)
RESERVED
Internal SRAM (8K)
2000
2FFF
Internal SRAM (4K)
ATxmega256A3U
0
FFF
1000
13FF
I/O Registers (4K)
EEPROM (4K)
RESERVED
2000
27FF
7.6
Internal
SRAM (16K)
EEPROM
XMEGA AU devices have EEPROM for nonvolatile data storage. It is either addressable in a separate data
space (default) or memory mapped and accessed in normal data space. The EEPROM supports both byte and
page access. Memory mapped EEPROM allows highly efficient EEPROM reading and EEPROM buffer loading.
When doing this, EEPROM is accessible using load and store instructions. Memory mapped EEPROM will
always start at hexadecimal address 0x1000.
7.7
I/O Memory
The status and configuration registers for peripherals and modules, including the CPU, are addressable through
I/O memory locations. All I/O locations can be accessed by the load (LD/LDS/LDD) and store (ST/STS/STD)
instructions, which are used to transfer data between the 32 registers in the register file and the I/O memory.
The IN and OUT instructions can address I/O memory locations in the range of 0x00 to 0x3F directly. In the
address range 0x00 - 0x1F, single-cycle instructions for manipulation and checking of individual bits are
available.
The I/O memory address for all peripherals and modules in XMEGA A3U is shown in the “Peripheral Module
Address Map” on page 64.
7.7.1
General Purpose I/O Registers
The lowest 16 I/O memory addresses are reserved as general purpose I/O registers. These registers can be
used for storing global variables and flags, as they are directly bit-accessible using the SBI, CBI, SBIS, and
SBIC instructions.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
16
7.8
Data Memory and Bus Arbitration
Since the data memory is organized as four separate sets of memories, the different bus masters (CPU, DMA
controller read and DMA controller write, etc.) can access different memory sections at the same time.
7.9
Memory Timing
Read and write access to the I/O memory takes one CPU clock cycle. A write to SRAM takes one cycle, and a
read from SRAM takes two cycles. For burst read (DMA), new data are available every cycle. EEPROM page
load (write) takes one cycle, and three cycles are required for read. For burst read, new data are available every
second cycle. Refer to the instruction summary for more details on instructions and instruction timing.
7.10
Device ID and Revision
Each device has a three-byte device ID. This ID identifies Atmel as the manufacturer of the device and the
device type. A separate register contains the revision number of the device.
7.11
JTAG Disable
It is possible to disable the JTAG interface from the application software. This will prevent all external JTAG
access to the device until the next device reset or until JTAG is enabled again from the application software. As
long as JTAG is disabled, the I/O pins required for JTAG can be used as normal I/O pins.
7.12
I/O Memory Protection
Some features in the device are regarded as critical for safety in some applications. Due to this, it is possible to
lock the I/O register related to the clock system, the event system, and the advanced waveform extensions. As
long as the lock is enabled, all related I/O registers are locked and they can not be written from the application
software. The lock registers themselves are protected by the configuration change protection mechanism.
7.13
Flash and EEPROM Page Size
The flash program memory and EEPROM data memory are organized in pages. The pages are word accessible
for the flash and byte accessible for the EEPROM.
Table 7-4 on page 17 shows the Flash Program Memory organization and Program Counter (PC) size. Flash
write and erase operations are performed on one page at a time, while reading the Flash is done one byte at a
time. For Flash access the Z-pointer (Z[m:n]) is used for addressing. The most significant bits in the address
(FPAGE) give the page number and the least significant address bits (FWORD) give the word in the page.
Table 7-4.
Devices
Number of words and pages in the flash.
PC size
bits
Flash size
Page Size
bytes
words
FWORD
FPAGE
Application
No of
pages
Size
Boot
Size
No of
pages
ATxmega64A3U
16
64K + 4K
128
Z[7:1]
Z[16:8]
64K
256
4K
16
ATxmega128A3U
17
128K + 8K
256
Z[8:1]
Z[17:9]
128K
256
8K
16
ATxmega192A3U
17
192K + 8K
256
Z[8:1]
Z[17:9]
192K
384
8K
16
ATxmega256A3U
18
256K + 8K
256
Z[8:1]
Z[18:9]
256K
512
8K
16
Table 7-5 on page 18 shows EEPROM memory organization for the Atmel AVR XMEGA A3U devices.
EEEPROM write and erase operations can be performed one page or one byte at a time, while reading the
EEPROM is done one byte at a time. For EEPROM access the NVM address register (ADDR[m:n]) is used for
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
17
addressing. The most significant bits in the address (E2PAGE) give the page number and the least significant
address bits (E2BYTE) give the byte in the page.
Table 7-5.
Devices
Number of bytes and pages in the EEPROM.
EEPROM
Page Size
E2BYTE
E2PAGE
No of Pages
Size
bytes
ATxmega64A3U
2K
32
ADDR[4:0]
ADDR[10:5]
64
ATxmega128A3U
2K
32
ADDR[4:0]
ADDR[10:5]
64
ATxmega192A3U
2K
32
ADDR[4:0]
ADDR[10:5]
64
ATxmega256A3U
4K
32
ADDR[4:0]
ADDR[11:5]
128
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
18
8.
DMAC – Direct Memory Access Controller
8.1
Features
8.2
z
Allows high speed data transfers with minimal CPU intervention
̶ from data memory to data memory
̶ from data memory to peripheral
̶ from peripheral to data memory
̶ from peripheral to peripheral
z
Four DMA channels with separate
̶ transfer triggers
̶ interrupt vectors
̶ addressing modes
z
Programmable channel priority
z
From 1 byte to 16MB of data in a single transaction
̶ Up to 64KB block transfers with repeat
̶ 1, 2, 4, or 8 byte burst transfers
z
Multiple addressing modes
̶ Static
̶ Incremental
̶ Decremental
z
Optional reload of source and destination addresses at the end of each
̶ Burst
̶ Block
̶ Transaction
z
Optional interrupt on end of transaction
z
Optional connection to CRC generator for CRC on DMA data
Overview
The four-channel direct memory access (DMA) controller can transfer data between memories and peripherals,
and thus offload these tasks from the CPU. It enables high data transfer rates with minimum CPU intervention,
and frees up CPU time. The four DMA channels enable up to four independent and parallel transfers.
The DMA controller can move data between SRAM and peripherals, between SRAM locations and directly
between peripheral registers. With access to all peripherals, the DMA controller can handle automatic transfer
of data to/from communication modules. The DMA controller can also read from memory mapped EEPROM.
Data transfers are done in continuous bursts of 1, 2, 4, or 8 bytes. They build block transfers of configurable size
from 1 byte to 64KB. A repeat counter can be used to repeat each block transfer for single transactions up to
16MB. Source and destination addressing can be static, incremental or decremental. Automatic reload of
source and/or destination addresses can be done after each burst or block transfer, or when a transaction is
complete. Application software, peripherals, and events can trigger DMA transfers.
The four DMA channels have individual configuration and control settings. This include source, destination,
transfer triggers, and transaction sizes. They have individual interrupt settings. Interrupt requests can be
generated when a transaction is complete or when the DMA controller detects an error on a DMA channel.
To allow for continuous transfers, two channels can be interlinked so that the second takes over the transfer
when the first is finished, and vice versa.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
19
9.
Event System
9.1
Features
9.2
z
System for direct peripheral-to-peripheral communication and signaling
z
Peripherals can directly send, receive, and react to peripheral events
̶ CPU and DMA controller independent operation
̶ 100% predictable signal timing
̶ Short and guaranteed response time
z
Eight event channels for up to eight different and parallel signal routing configurations
z
Events can be sent and/or used by most peripherals, clock system, and software
z
Additional functions include
̶ Quadrature decoders
̶ Digital filtering of I/O pin state
z
Works in active mode and idle sleep mode
Overview
The event system enables direct peripheral-to-peripheral communication and signaling. It allows a change in
one peripheral’s state to automatically trigger actions in other peripherals. It is designed to provide a predictable
system for short and predictable response times between peripherals. It allows for autonomous peripheral
control and interaction without the use of interrupts, CPU, or DMA controller resources, and is thus a powerful
tool for reducing the complexity, size and execution time of application code. It also allows for synchronized
timing of actions in several peripheral modules.
A change in a peripheral’s state is referred to as an event, and usually corresponds to the peripheral’s interrupt
conditions. Events can be directly passed to other peripherals using a dedicated routing network called the
event routing network. How events are routed and used by the peripherals is configured in software.
Figure 9-1 on page 21 shows a basic diagram of all connected peripherals. The event system can directly
connect together analog and digital converters, analog comparators, I/O port pins, the real-time counter,
timer/counters, IR communication module (IRCOM), and USB interface. It can also be used to trigger DMA
transactions (DMA controller). Events can also be generated from software and the peripheral clock.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
20
Figure 9-1.
Event system overview and connected peripherals.
CPU /
Software
DMA
Controller
Event Routing Network
ADC
AC
clkPER
Prescaler
Real Time
Counter
Event
System
Controller
Timer /
Counters
DAC
USB
Port pins
IRCOM
The event routing network consists of eight software-configurable multiplexers that control how events are
routed and used. These are called event channels, and allow for up to eight parallel event routing
configurations. The maximum routing latency is two peripheral clock cycles. The event system works in both
active mode and idle sleep mode.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
21
10.
System Clock and Clock options
10.1
Features
10.2
z
Fast start-up time
z
Safe run-time clock switching
z
Internal oscillators:
̶ 32MHz run-time calibrated and tuneable oscillator
̶ 2MHz run-time calibrated oscillator
̶ 32.768kHz calibrated oscillator
̶ 32kHz ultra low power (ULP) oscillator with 1kHz output
z
External clock options
̶ 0.4MHz - 16MHz crystal oscillator
̶ 32.768kHz crystal oscillator
̶ External clock
z
PLL with 20MHz - 128MHz output frequency
̶ Internal and external clock options and 1x to 31x multiplication
̶ Lock detector
z
Clock prescalers with 1x to 2048x division
z
Fast peripheral clocks running at two and four times the CPU clock
z
Automatic run-time calibration of internal oscillators
z
External oscillator and PLL lock failure detection with optional non-maskable interrupt
Overview
Atmel AVR XMEGA A3U devices have a flexible clock system supporting a large number of clock sources. It
incorporates both accurate internal oscillators and external crystal oscillator and resonator support. A highfrequency phase locked loop (PLL) and clock prescalers can be used to generate a wide range of clock
frequencies. A calibration feature (DFLL) is available, and can be used for automatic run-time calibration of the
internal oscillators to remove frequency drift over voltage and temperature. An oscillator failure monitor can be
enabled to issue a non-maskable interrupt and switch to the internal oscillator if the external oscillator or PLL
fails.
When a reset occurs, all clock sources except the 32kHz ultra low power oscillator are disabled. After reset, the
device will always start up running from the 2MHz internal oscillator. During normal operation, the system clock
source and prescalers can be changed from software at any time.
Figure 10-1 on page 23 presents the principal clock system in the XMEGA A3U family of devices. Not all of the
clocks need to be active at a given time. The clocks for the CPU and peripherals can be stopped using sleep
modes and power reduction registers, as described in “Power Management and Sleep Modes” on page 25.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
22
Figure 10-1.
The clock system, clock sources and clock distribution.
Real Time
Counter
Peripherals
RAM
AVR CPU
Non-Volatile
Memory
clkPER
clkPER2
clkCPU
clkPER4
USB
clkUSB
System Clock Prescalers
Brown-out
Detector
Prescaler
Watchdog
Timer
clkSYS
clkRTC
System Clock Multiplexer
(SCLKSEL)
RTCSRC
USBSRC
DIV32
DIV32
DIV32
PLL
PLLSRC
DIV4
XOSCSEL
32kHz
Int. ULP
32.768kHz
Int. OSC
32.768kHz
TOSC
32MHz
Int. Osc
2MHz
Int. Osc
XTAL2
XTAL1
TOSC2
TOSC1
10.3
0.4 – 16MHz
XTAL
Clock Sources
The clock sources are divided in two main groups: internal oscillators and external clock sources. Most of the
clock sources can be directly enabled and disabled from software, while others are automatically enabled or
disabled, depending on peripheral settings. After reset, the device starts up running from the 2MHz internal
oscillator. The other clock sources, DFLLs and PLL, are turned off by default.
The internal oscillators do not require any external components to run. For details on characteristics and
accuracy of the internal oscillators, refer to the device datasheet.
10.3.1 32kHz Ultra Low Power Internal Oscillator
This oscillator provides an approximate 32kHz clock. The 32kHz ultra low power (ULP) internal oscillator is a
very low power clock source, and it is not designed for high accuracy. The oscillator employs a built-in prescaler
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
23
that provides a 1kHz output. The oscillator is automatically enabled/disabled when it is used as clock source for
any part of the device. This oscillator can be selected as the clock source for the RTC.
10.3.2 32.768kHz Calibrated Internal Oscillator
This oscillator provides an approximate 32.768kHz clock. It is calibrated during production to provide a default
frequency close to its nominal frequency. The calibration register can also be written from software for run-time
calibration of the oscillator frequency. The oscillator employs a built-in prescaler, which provides both a
32.768kHz output and a 1.024kHz output.
10.3.3 32.768kHz Crystal Oscillator
A 32.768kHz crystal oscillator can be connected between the TOSC1 and TOSC2 pins and enables a dedicated
low frequency oscillator input circuit. A low power mode with reduced voltage swing on TOSC2 is available. This
oscillator can be used as a clock source for the system clock and RTC, and as the DFLL reference clock.
10.3.4 0.4 - 16MHz Crystal Oscillator
This oscillator can operate in four different modes optimized for different frequency ranges, all within 0.4 16MHz.
10.3.5 2MHz Run-time Calibrated Internal Oscillator
The 2MHz run-time calibrated internal oscillator is the default system clock source after reset. It is calibrated
during production to provide a default frequency close to its nominal frequency. A DFLL can be enabled for
automatic run-time calibration of the oscillator to compensate for temperature and voltage drift and optimize the
oscillator accuracy.
10.3.6 32MHz Run-time Calibrated Internal Oscillator
The 32MHz run-time calibrated internal oscillator is a high-frequency oscillator. It is calibrated during production
to provide a default frequency close to its nominal frequency. A digital frequency looked loop (DFLL) can be
enabled for automatic run-time calibration of the oscillator to compensate for temperature and voltage drift and
optimize the oscillator accuracy. This oscillator can also be adjusted and calibrated to any frequency between
30MHz and 55MHz. The production signature row contains 48MHz calibration values intended used when the
oscillator is used a full-speed USB clock source.
10.3.7 External Clock Sources
The XTAL1 and XTAL2 pins can be used to drive an external oscillator, either a quartz crystal or a ceramic
resonator. XTAL1 can be used as input for an external clock signal. The TOSC1 and TOSC2 pins is dedicated
to driving a 32.768kHz crystal oscillator.
10.3.8 PLL with 1x-31x Multiplication Factor
The built-in phase locked loop (PLL) can be used to generate a high-frequency system clock. The PLL has a
user-selectable multiplication factor of from 1 to 31. In combination with the prescalers, this gives a wide range
of output frequencies from all clock sources.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
24
11.
Power Management and Sleep Modes
11.1
Features
11.2
z
Power management for adjusting power consumption and functions
z
Five sleep modes
̶ Idle
̶ Power down
̶ Power save
̶ Standby
̶ Extended standby
z
Power reduction register to disable clock and turn off unused peripherals in active and idle modes
Overview
Various sleep modes and clock gating are provided in order to tailor power consumption to application
requirements. This enables the Atmel AVR XMEGA microcontroller to stop unused modules to save power.
All sleep modes are available and can be entered from active mode. In active mode, the CPU is executing
application code. When the device enters sleep mode, program execution is stopped and interrupts or a reset is
used to wake the device again. The application code decides which sleep mode to enter and when. Interrupts
from enabled peripherals and all enabled reset sources can restore the microcontroller from sleep to active
mode.
In addition, power reduction registers provide a method to stop the clock to individual peripherals from software.
When this is done, the current state of the peripheral is frozen, and there is no power consumption from that
peripheral. This reduces the power consumption in active mode and idle sleep modes and enables much more
fine-tuned power management than sleep modes alone.
11.3
Sleep Modes
Sleep modes are used to shut down modules and clock domains in the microcontroller in order to save power.
XMEGA microcontrollers have five different sleep modes tuned to match the typical functional stages during
application execution. A dedicated sleep instruction (SLEEP) is available to enter sleep mode. Interrupts are
used to wake the device from sleep, and the available interrupt wake-up sources are dependent on the
configured sleep mode. When an enabled interrupt occurs, the device will wake up and execute the interrupt
service routine before continuing normal program execution from the first instruction after the SLEEP
instruction. If other, higher priority interrupts are pending when the wake-up occurs, their interrupt service
routines will be executed according to their priority before the interrupt service routine for the wake-up interrupt
is executed. After wake-up, the CPU is halted for four cycles before execution starts.
The content of the register file, SRAM and registers are kept during sleep. If a reset occurs during sleep, the
device will reset, start up, and execute from the reset vector.
11.3.1 Idle Mode
In idle mode the CPU and nonvolatile memory are stopped (note that any ongoing programming will be
completed), but all peripherals, including the interrupt controller, event system and DMA controller are kept
running. Any enabled interrupt will wake the device.
11.3.2 Power-down Mode
In power-down mode, all clocks, including the real-time counter clock source, are stopped. This allows operation
only of asynchronous modules that do not require a running clock. The only interrupts that can wake up the
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
25
MCU are the two-wire interface address match interrupt, asynchronous port interrupts, and the USB resume
interrupt.
11.3.3 Power-save Mode
Power-save mode is identical to power down, with one exception. If the real-time counter (RTC) is enabled, it
will keep running during sleep, and the device can also wake up from either an RTC overflow or compare match
interrupt.
11.3.4 Standby Mode
Standby mode is identical to power down, with the exception that the enabled system clock sources are kept
running while the CPU, peripheral, and RTC clocks are stopped. This reduces the wake-up time.
11.3.5 Extended Standby Mode
Extended standby mode is identical to power-save mode, with the exception that the enabled system clock
sources are kept running while the CPU and peripheral clocks are stopped. This reduces the wake-up time.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
26
12.
System Control and Reset
12.1
Features
12.2
z
Reset the microcontroller and set it to initial state when a reset source goes active
z
Multiple reset sources that cover different situations
̶ Power-on reset
̶ External reset
̶ Watchdog reset
̶ Brownout reset
̶ PDI reset
̶ Software reset
z
Asynchronous operation
̶ No running system clock in the device is required for reset
z
Reset status register for reading the reset source from the application code
Overview
The reset system issues a microcontroller reset and sets the device to its initial state. This is for situations where
operation should not start or continue, such as when the microcontroller operates below its power supply rating.
If a reset source goes active, the device enters and is kept in reset until all reset sources have released their
reset. The I/O pins are immediately tri-stated. The program counter is set to the reset vector location, and all I/O
registers are set to their initial values. The SRAM content is kept. However, if the device accesses the SRAM
when a reset occurs, the content of the accessed location can not be guaranteed.
After reset is released from all reset sources, the default oscillator is started and calibrated before the device
starts running from the reset vector address. By default, this is the lowest program memory address, 0, but it is
possible to move the reset vector to the lowest address in the boot section.
The reset functionality is asynchronous, and so no running system clock is required to reset the device. The
software reset feature makes it possible to issue a controlled system reset from the user software.
The reset status register has individual status flags for each reset source. It is cleared at power-on reset, and
shows which sources have issued a reset since the last power-on.
12.3
Reset Sequence
A reset request from any reset source will immediately reset the device and keep it in reset as long as the
request is active. When all reset requests are released, the device will go through three stages before the
device starts running again:
z
Reset counter delay
z
Oscillator startup
z
Oscillator calibration
If another reset requests occurs during this process, the reset sequence will start over again.
12.4
Reset Sources
12.4.1 Power-on Reset
A power-on reset (POR) is generated by an on-chip detection circuit. The POR is activated when the VCC rises
and reaches the POR threshold voltage (VPOT), and this will start the reset sequence.
The POR is also activated to power down the device properly when the VCC falls and drops below the VPOT level.
The VPOT level is higher for falling VCC than for rising VCC. Consult the datasheet for POR characteristics data.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
27
12.4.2 Brownout Detection
The on-chip brownout detection (BOD) circuit monitors the VCC level during operation by comparing it to a fixed,
programmable level that is selected by the BODLEVEL fuses. If disabled, BOD is forced on at the lowest level
during chip erase and when the PDI is enabled.
12.4.3 External Reset
The external reset circuit is connected to the external RESET pin. The external reset will trigger when the
RESET pin is driven below the RESET pin threshold voltage, VRST, for longer than the minimum pulse period,
tEXT. The reset will be held as long as the pin is kept low. The RESET pin includes an internal pull-up resistor.
12.4.4 Watchdog Reset
The watchdog timer (WDT) is a system function for monitoring correct program operation. If the WDT is not
reset from the software within a programmable timeout period, a watchdog reset will be given. The watchdog
reset is active for one to two clock cycles of the 2MHz internal oscillator. For more details see “WDT – Watchdog
Timer” on page 29.
12.4.5 Software Reset
The software reset makes it possible to issue a system reset from software by writing to the software reset bit in
the reset control register.The reset will be issued within two CPU clock cycles after writing the bit. It is not
possible to execute any instruction from when a software reset is requested until it is issued.
12.4.6 Program and Debug Interface Reset
The program and debug interface reset contains a separate reset source that is used to reset the device during
external programming and debugging. This reset source is accessible only from external debuggers and
programmers.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
28
13.
WDT – Watchdog Timer
13.1
Features
13.2
z
Issues a device reset if the timer is not reset before its timeout period
z
Asynchronous operation from dedicated oscillator
z
1kHz output of the 32kHz ultra low power oscillator
z
11 selectable timeout periods, from 8ms to 8s
z
Two operation modes:
̶ Normal mode
̶ Window mode
z
Configuration lock to prevent unwanted changes
Overview
The watchdog timer (WDT) is a system function for monitoring correct program operation. It makes it possible to
recover from error situations such as runaway or deadlocked code. The WDT is a timer, configured to a
predefined timeout period, and is constantly running when enabled. If the WDT is not reset within the timeout
period, it will issue a microcontroller reset. The WDT is reset by executing the WDR (watchdog timer reset)
instruction from the application code.
The window mode makes it possible to define a time slot or window inside the total timeout period during which
WDT must be reset. If the WDT is reset outside this window, either too early or too late, a system reset will be
issued. Compared to the normal mode, this can also catch situations where a code error causes constant WDR
execution.
The WDT will run in active mode and all sleep modes, if enabled. It is asynchronous, runs from a CPUindependent clock source, and will continue to operate to issue a system reset even if the main clocks fail.
The configuration change protection mechanism ensures that the WDT settings cannot be changed by accident.
For increased safety, a fuse for locking the WDT settings is also available.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
29
14.
Interrupts and Programmable Multilevel Interrupt Controller
14.1
Features
14.2
z
Short and predictable interrupt response time
z
Separate interrupt configuration and vector address for each interrupt
z
Programmable multilevel interrupt controller
̶ Interrupt prioritizing according to level and vector address
̶ Three selectable interrupt levels for all interrupts: low, medium and high
̶ Selectable, round-robin priority scheme within low-level interrupts
̶ Non-maskable interrupts for critical functions
z
Interrupt vectors optionally placed in the application section or the boot loader section
Overview
Interrupts signal a change of state in peripherals, and this can be used to alter program execution. Peripherals
can have one or more interrupts, and all are individually enabled and configured. When an interrupt is enabled
and configured, it will generate an interrupt request when the interrupt condition is present. The programmable
multilevel interrupt controller (PMIC) controls the handling and prioritizing of interrupt requests. When an
interrupt request is acknowledged by the PMIC, the program counter is set to point to the interrupt vector, and
the interrupt handler can be executed.
All peripherals can select between three different priority levels for their interrupts: low, medium, and high.
Interrupts are prioritized according to their level and their interrupt vector address. Medium-level interrupts will
interrupt low-level interrupt handlers. High-level interrupts will interrupt both medium- and low-level interrupt
handlers. Within each level, the interrupt priority is decided from the interrupt vector address, where the lowest
interrupt vector address has the highest interrupt priority. Low-level interrupts have an optional round-robin
scheduling scheme to ensure that all interrupts are serviced within a certain amount of time.
Non-maskable interrupts (NMI) are also supported, and can be used for system critical functions.
14.3
Interrupt vectors
The interrupt vector is the sum of the peripheral’s base interrupt address and the offset address for specific
interrupts in each peripheral. The base addresses for the Atmel AVR XMEGA A3U devices are shown in Table
14-1. Offset addresses for each interrupt available in the peripheral are described for each peripheral in the
XMEGA AU manual. For peripherals or modules that have only one interrupt, the interrupt vector is shown in
Table 14-1. The program address is the word address.
Table 14-1.
Reset and interrupt vectors.
Program address
(base address)
Source
0x000
RESET
0x002
OSCF_INT_vect
Crystal oscillator failure interrupt vector (NMI)
0x004
PORTC_INT_base
Port C interrupt base
0x008
PORTR_INT_base
Port R interrupt base
0x00C
DMA_INT_base
DMA controller interrupt base
0x014
RTC_INT_base
Real Time Counter Interrupt base
Interrupt description
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
30
Program address
(base address)
Source
Interrupt description
0x018
TWIC_INT_base
Two-Wire Interface on Port C Interrupt base
0x01C
TCC0_INT_base
Timer/Counter 0 on port C Interrupt base
0x028
TCC1_INT_base
Timer/Counter 1 on port C Interrupt base
0x030
SPIC_INT_vect
SPI on port C Interrupt vector
0x032
USARTC0_INT_base
USART 0 on port C Interrupt base
0x038
USARTC1_INT_base
USART 1 on port C Interrupt base
0x03E
AES_INT_vect
AES Interrupt vector
0x040
NVM_INT_base
Non-Volatile Memory Interrupt base
0x044
PORTB_INT_base
Port B Interrupt base
0x048
ACB_INT_base
Analog Comparator on Port B Interrupt base
0x04E
ADCB_INT_base
Analog to Digital Converter on Port B Interrupt base
0x056
PORTE_INT_base
Port E INT base
0x05A
TWIE_INT_base
Two-Wire Interface on Port E Interrupt base
0x05E
TCE0_INT_base
Timer/Counter 0 on port E Interrupt base
0x06A
TCE1_INT_base
Timer/Counter 1 on port E Interrupt base
0x072
SPIE_INT_vect
SPI on port E Interrupt vector
0x074
USARTE0_INT_base
USART 0 on port E Interrupt base
0x07A
USARTE1_INT_base
USART 1 on port E Interrupt base
0x080
PORTD_INT_base
Port D Interrupt base
0x084
PORTA_INT_base
Port A Interrupt base
0x088
ACA_INT_base
Analog Comparator on Port A Interrupt base
0x08E
ADCA_INT_base
Analog to Digital Converter on Port A Interrupt base
0x09A
TCD0_INT_base
Timer/Counter 0 on port D Interrupt base
0x0A6
TCD1_INT_base
Timer/Counter 1 on port D Interrupt base
0x0AE
SPID_INT_vector
SPI D Interrupt vector
0x0B0
USARTD0_INT_base
USART 0 on port D Interrupt base
0x0B6
USARTD1_INT_base
USART 1 on port D Interrupt base
0x0D0
PORTF_INT_base
Port F Interrupt base
0x0D8
TCF0_INT_base
Timer/Counter 0 on port F Interrupt base
0x0EE
USARTF0_INT_base
USART 0 on port F Interrupt base
0x0FA
USB_INT_base
USB on port D Interrupt base
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
31
15.
I/O Ports
15.1
Features
15.2
z
50 general purpose input and output pins with individual configuration
z
Output driver with configurable driver and pull settings:
̶ Totem-pole
̶ Wired-AND
̶ Wired-OR
̶ Bus-keeper
̶ Inverted I/O
z
Input with synchronous and/or asynchronous sensing with interrupts and events
̶ Sense both edges
̶ Sense rising edges
̶ Sense falling edges
̶ Sense low level
z
Optional pull-up and pull-down resistor on input and Wired-OR/AND configurations
z
Optional slew rate control
z
Asynchronous pin change sensing that can wake the device from all sleep modes
z
Two port interrupts with pin masking per I/O port
z
Efficient and safe access to port pins
̶ Hardware read-modify-write through dedicated toggle/clear/set registers
̶ Configuration of multiple pins in a single operation
̶ Mapping of port registers into bit-accessible I/O memory space
z
Peripheral clocks output on port pin
z
Real-time counter clock output to port pin
z
Event channels can be output on port pin
z
Remapping of digital peripheral pin functions
̶ Selectable USART, SPI, and timer/counter input/output pin locations
Overview
One port consists of up to eight port pins: pin 0 to 7. Each port pin can be configured as input or output with
configurable driver and pull settings. They also implement synchronous and asynchronous input sensing with
interrupts and events for selectable pin change conditions. Asynchronous pin-change sensing means that a pin
change can wake the device from all sleep modes, included the modes where no clocks are running.
All functions are individual and configurable per pin, but several pins can be configured in a single operation.
The pins have hardware read-modify-write (RMW) functionality for safe and correct change of drive value and/or
pull resistor configuration. The direction of one port pin can be changed without unintentionally changing the
direction of any other pin.
The port pin configuration also controls input and output selection of other device functions. It is possible to have
both the peripheral clock and the real-time clock output to a port pin, and available for external use. The same
applies to events from the event system that can be used to synchronize and control external functions. Other
digital peripherals, such as USART, SPI, and timer/counters, can be remapped to selectable pin locations in
order to optimize pin-out versus application needs.
The notation of the ports are PORTA, PORTB, PORTC, PORTD, PORTE, PORTF and PORTR.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
32
15.3
Output Driver
All port pins (Pn) have programmable output configuration. The port pins also have configurable slew rate
limitation to reduce electromagnetic emission.
15.3.1 Push-pull
Figure 15-1.
I/O configuration - Totem-pole.
DIRn
OUTn
Pn
INn
15.3.2 Pull-down
Figure 15-2.
I/O configuration - Totem-pole with pull-down (on input).
DIRn
OUTn
Pn
INn
15.3.3 Pull-up
Figure 15-3.
I/O configuration - Totem-pole with pull-up (on input).
DIRn
OUTn
Pn
INn
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
33
15.3.4 Bus-keeper
The bus-keeper’s weak output produces the same logical level as the last output level. It acts as a pull-up if the
last level was ‘1’, and pull-down if the last level was ‘0’.
Figure 15-4.
I/O configuration - Totem-pole with bus-keeper.
DIRn
OUTn
Pn
INn
15.3.5 Others
Figure 15-5.
Output configuration - Wired-OR with optional pull-down.
OUTn
Pn
INn
Figure 15-6.
I/O configuration - Wired-AND with optional pull-up.
INn
Pn
OUTn
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
34
15.4
Input sensing
Input sensing is synchronous or asynchronous depending on the enabled clock for the ports, and the
configuration is shown in Figure 15-7.
Figure 15-7.
Input sensing system overview.
Asynchronous sensing
EDGE
DETECT
Interrupt
Control
IRQ
Synchronous sensing
Pxn
Synchronizer
INn
D
Q D
R
Q
EDGE
DETECT
Synchronous
Events
R
NVERTED I/O
Asynchronou
Events
When a pin is configured with inverted I/O, the pin value is inverted before the input sensing.
15.5
Alternate Port Functions
Most port pins have alternate pin functions in addition to being a general purpose I/O pin. When an alternate
function is enabled, it might override the normal port pin function or pin value. This happens when other
peripherals that require pins are enabled or configured to use pins. If and how a peripheral will override and use
pins is described in the section for that peripheral. “Pinout and Pin Functions” on page 59 shows which modules
on peripherals that enable alternate functions on a pin, and which alternate functions that are available on a pin.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
35
16.
TC0/1 – 16-bit Timer/Counter Type 0 and 1
16.1
Features
16.2
z
Seven 16-bit timer/counters
̶ Four timer/counters of type 0
̶ Three timer/counters of type 1
̶ Split-mode enabling two 8-bit timer/counter from each timer/counter type 0
z
32-bit Timer/Counter support by cascading two timer/counters
z
Up to four compare or capture (CC) channels
̶ Four CC channels for timer/counters of type 0
̶ Two CC channels for timer/counters of type 1
z
Double buffered timer period setting
z
Double buffered capture or compare channels
z
Waveform generation:
̶ Frequency generation
̶ Single-slope pulse width modulation
̶ Dual-slope pulse width modulation
z
Input capture:
̶ Input capture with noise cancelling
̶ Frequency capture
̶ Pulse width capture
̶ 32-bit input capture
z
Timer overflow and error interrupts/events
z
One compare match or input capture interrupt/event per CC channel
z
Can be used with event system for:
̶ Quadrature decoding
̶ Count and direction control
̶ Capture
z
Can be used with DMA and to trigger DMA transactions
z
High-resolution extension
̶ Increases frequency and waveform resolution by 4x (2-bit) or 8x (3-bit)
z
Advanced waveform extension:
̶ Low- and high-side output with programmable dead-time insertion (DTI)
z
Event controlled fault protection for safe disabling of drivers
Overview
Atmel AVR XMEGA devices have a set of seven flexible 16-bit Timer/Counters (TC). Their capabilities include
accurate program execution timing, frequency and waveform generation, and input capture with time and
frequency measurement of digital signals. Two timer/counters can be cascaded to create a 32-bit timer/counter
with optional 32-bit capture.
A timer/counter consists of a base counter and a set of compare or capture (CC) channels. The base counter
can be used to count clock cycles or events. It has direction control and period setting that can be used for
timing. The CC channels can be used together with the base counter to do compare match control, frequency
generation, and pulse width waveform modulation, as well as various input capture operations. A timer/counter
can be configured for either capture or compare functions, but cannot perform both at the same time.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
36
A timer/counter can be clocked and timed from the peripheral clock with optional prescaling or from the event
system. The event system can also be used for direction control and capture trigger or to synchronize
operations.
There are two differences between timer/counter type 0 and type 1. Timer/counter 0 has four CC channels, and
timer/counter 1 has two CC channels. All information related to CC channels 3 and 4 is valid only for
timer/counter 0. Only Timer/Counter 0 has the split mode feature that split it into two 8-bit Timer/Counters with
four compare channels each.
Some timer/counters have extensions to enable more specialized waveform and frequency generation. The
advanced waveform extension (AWeX) is intended for motor control and other power control applications. It
enables low- and high-side output with dead-time insertion, as well as fault protection for disabling and shutting
down external drivers. It can also generate a synchronized bit pattern across the port pins.
The advanced waveform extension can be enabled to provide extra and more advanced features for the
Timer/Counter. This are only available for Timer/Counter 0. See “AWeX – Advanced Waveform Extension” on
page 39 for more details.
The high-resolution (hi-res) extension can be used to increase the waveform output resolution by four or eight
times by using an internal clock source running up to four times faster than the peripheral clock. See “Hi-Res –
High Resolution Extension” on page 40 for more details.
Figure 16-1.
Overview of a Timer/Counter and closely related peripherals.
Timer/Counter
Base Counter
Timer Period
Counter
Prescaler
Control Logic
clkPER
Event
System
Buffer
Capture
Control
Waveform
Generation
Dead-Time
Insertion
Pattern
Generation
Fault
Protection
PORT
Comparator
AWeX
Hi-Res
clkPER4
Compare/Capture Channel D
Compare/Capture Channel C
Compare/Capture Channel B
Compare/Capture Channel A
PORTC, PORTD and PORTE each has one Timer/Counter 0 and one Timer/Counter1. PORTF has one
Timer/Counter 0. Notation of these are TCC0 (Time/Counter C0), TCC1, TCD0, TCD1, TCE0, TCE1 and TCF0,
respectively.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
37
17.
TC2 - Timer/Counter Type 2
17.1
Features
17.2
z
Eight eight-bit timer/counters
̶ Four Low-byte timer/counter
̶ Four High-byte timer/counter
z
Up to eight compare channels in each Timer/Counter 2
̶ Four compare channels for the low-byte timer/counter
̶ Four compare channels for the high-byte timer/counter
z
Waveform generation
̶ Single slope pulse width modulation
z
Timer underflow interrupts/events
z
One compare match interrupt/event per compare channel for the low-byte timer/counter
z
Can be used with the event system for count control
z
Can be used to trigger DMA transactions
Overview
There are four Timer/Counter 2. These are realized when a Timer/Counter 0 is set in split mode. It is then a
system of two eight-bit timer/counters, each with four compare channels. This results in eight configurable pulse
width modulation (PWM) channels with individually controlled duty cycles, and is intended for applications that
require a high number of PWM channels.
The two eight-bit timer/counters in this system are referred to as the low-byte timer/counter and high-byte
timer/counter, respectively. The difference between them is that only the low-byte timer/counter can be used to
generate compare match interrupts, events and DMA triggers. The two eight-bit timer/counters have a shared
clock source and separate period and compare settings. They can be clocked and timed from the peripheral
clock, with optional prescaling, or from the event system. The counters are always counting down.
PORTC, PORTD, PORTE and PORTF each has one Timer/Counter 2. Notation of these are TCC2
(Time/Counter C2), TCD2, TCE2 and TCF2, respectively.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
38
18.
AWeX – Advanced Waveform Extension
18.1
Features
18.2
z
Waveform output with complementary output from each compare channel
z
Four dead-time insertion (DTI) units
̶ 8-bit resolution
̶ Separate high and low side dead-time setting
̶ Double buffered dead time
̶ Optionally halts timer during dead-time insertion
z
Pattern generation unit creating synchronised bit pattern across the port pins
̶ Double buffered pattern generation
̶ Optional distribution of one compare channel output across the port pins
z
Event controlled fault protection for instant and predictable fault triggering
Overview
The advanced waveform extension (AWeX) provides extra functions to the timer/counter in waveform
generation (WG) modes. It is primarily intended for use with different types of motor control and other power
control applications. It enables low- and high side output with dead-time insertion and fault protection for
disabling and shutting down external drivers. It can also generate a synchronized bit pattern across the port
pins.
Each of the waveform generator outputs from the timer/counter 0 are split into a complimentary pair of outputs
when any AWeX features are enabled. These output pairs go through a dead-time insertion (DTI) unit that
generates the non-inverted low side (LS) and inverted high side (HS) of the WG output with dead-time insertion
between LS and HS switching. The DTI output will override the normal port value according to the port override
setting.
The pattern generation unit can be used to generate a synchronized bit pattern on the port it is connected to. In
addition, the WG output from compare channel A can be distributed to and override all the port pins. When the
pattern generator unit is enabled, the DTI unit is bypassed.
The fault protection unit is connected to the event system, enabling any event to trigger a fault condition that will
disable the AWeX output. The event system ensures predictable and instant fault reaction, and gives flexibility in
the selection of fault triggers.
The AWeX is available for TCC0. The notation of this is AWEXC.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
39
19.
Hi-Res – High Resolution Extension
19.1
Features
19.2
z
Increases waveform generator resolution up to 8x (three bits)
z
Supports frequency, single-slope PWM, and dual-slope PWM generation
z
Supports the AWeX when this is used for the same timer/counter
Overview
The high-resolution (hi-res) extension can be used to increase the resolution of the waveform generation output
from a timer/counter by four or eight. It can be used for a timer/counter doing frequency, single-slope PWM, or
dual-slope PWM generation. It can also be used with the AWeX if this is used for the same timer/counter.
The hi-res extension uses the peripheral 4x clock (ClkPER4). The system clock prescalers must be configured so
the peripheral 4x clock frequency is four times higher than the peripheral and CPU clock frequency when the hires extension is enabled.
There are four hi-res extensions that each can be enabled for each timer/counters pair on PORTC, PORTD,
PORTE and PORTF. The notation of these are HIRESC, HIRESD, HIRESE and HIRESF, respectively.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
40
20.
RTC – 16-bit Real-Time Counter
20.1
Features
20.2
z
16-bit resolution
z
Selectable clock source
̶ 32.768kHz external crystal
̶ External clock
̶ 32.768kHz internal oscillator
̶ 32kHz internal ULP oscillator
z
Programmable 10-bit clock prescaling
z
One compare register
z
One period register
z
Clear counter on period overflow
z
Optional interrupt/event on overflow and compare match
Overview
The 16-bit real-time counter (RTC) is a counter that typically runs continuously, including in low-power sleep
modes, to keep track of time. It can wake up the device from sleep modes and/or interrupt the device at regular
intervals.
The reference clock is typically the 1.024kHz output from a high-accuracy crystal of 32.768kHz, and this is the
configuration most optimized for low power consumption. The faster 32.768kHz output can be selected if the
RTC needs a resolution higher than 1ms. The RTC can also be clocked from an external clock signal, the
32.768kHz internal oscillator or the 32kHz internal ULP oscillator.
The RTC includes a 10-bit programmable prescaler that can scale down the reference clock before it reaches
the counter. A wide range of resolutions and time-out periods can be configured. With a 32.768kHz clock
source, the maximum resolution is 30.5µs, and time-out periods can range up to 2000 seconds. With a
resolution of 1s, the maximum timeout period is more than18 hours (65536 seconds). The RTC can give a
compare interrupt and/or event when the counter equals the compare register value, and an overflow interrupt
and/or event when it equals the period register value.
Figure 20-1.
Real-time counter overview.
External Clock
TOSC1
TOSC2
32.768kHz Crystal Osc
32.768kHz Int. Osc
DIV32
DIV32
32kHz int ULP (DIV32)
PER
RTCSRC
clkRTC
10-bit
prescaler
=
TOP/
Overflow
=
”match”/
Compare
CNT
COMP
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
41
21.
USB – Universal Serial Bus Interface
21.1
Features
21.2
z
One USB 2.0 full speed (12Mbps) and low speed (1.5Mbps) device compliant interface
z
Integrated on-chip USB transceiver, no external components needed
z
16 endpoint addresses with full endpoint flexibility for up to 31 endpoints
̶ One input endpoint per endpoint address
̶ One output endpoint per endpoint address
z
Endpoint address transfer type selectable to
̶ Control transfers
̶ Interrupt transfers
̶ Bulk transfers
̶ Isochronous transfers
z
Configurable data payload size per endpoint, up to 1023 bytes
z
Endpoint configuration and data buffers located in internal SRAM
̶ Configurable location for endpoint configuration data
̶ Configurable location for each endpoint's data buffer
z
Built-in direct memory access (DMA) to internal SRAM for:
̶ Endpoint configurations
̶ Reading and writing endpoint data
z
Ping-pong operation for higher throughput and double buffered operation
̶ Input and output endpoint data buffers used in a single direction
̶ CPU/DMA controller can update data buffer during transfer
z
Multipacket transfer for reduced interrupt load and software intervention
̶ Data payload exceeding maximum packet size is transferred in one continuous transfer
̶ No interrupts or software interaction on packet transaction level
z
Transaction complete FIFO for workflow management when using multiple endpoints
̶ Tracks all completed transactions in a first-come, first-served work queue
z
Clock selection independent of system clock source and selection
z
Minimum 1.5MHz CPU clock required for low speed USB operation
z
Minimum 12MHz CPU clock required for full speed operation
z
Connection to event system
z
On chip debug possibilities during USB transactions
Overview
The USB module is a USB 2.0 full speed (12Mbps) and low speed (1.5Mbps) device compliant interface.
The USB supports 16 endpoint addresses. All endpoint addresses have one input and one output endpoint, for
a total of 31 configurable endpoints and one control endpoint. Each endpoint address is fully configurable and
can be configured for any of the four transfer types; control, interrupt, bulk, or isochronous. The data payload
size is also selectable, and it supports data payloads up to 1023 bytes.
No dedicated memory is allocated for or included in the USB module. Internal SRAM is used to keep the
configuration for each endpoint address and the data buffer for each endpoint. The memory locations used for
endpoint configurations and data buffers are fully configurable. The amount of memory allocated is fully
dynamic, according to the number of endpoints in use and the configuration of these. The USB module has
built-in direct memory access (DMA), and will read/write data from/to the SRAM when a USB transaction takes
place.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
42
To maximize throughput, an endpoint address can be configured for ping-pong operation. When done, the input
and output endpoints are both used in the same direction. The CPU or DMA controller can then read/write one
data buffer while the USB module writes/reads the others, and vice versa. This gives double buffered
communication.
Multipacket transfer enables a data payload exceeding the maximum packet size of an endpoint to be
transferred as multiple packets without software intervention. This reduces the CPU intervention and the
interrupts needed for USB transfers.
For low-power operation, the USB module can put the microcontroller into any sleep mode when the USB bus is
idle and a suspend condition is given. Upon bus resumes, the USB module can wake up the microcontroller
from any sleep mode.
PORTD has one USB. Notation of this is USB.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
43
22.
TWI – Two-Wire Interface
22.1
Features
22.2
z
Two Identical two-wire interface peripherals
z
Bidirectional, two-wire communication interface
̶ Phillips I2C compatible
̶ System Management Bus (SMBus) compatible
z
Bus master and slave operation supported
̶ Slave operation
̶ Single bus master operation
̶ Bus master in multi-master bus environment
̶ Multi-master arbitration
z
Flexible slave address match functions
̶ 7-bit and general call address recognition in hardware
̶ 10-bit addressing supported
̶ Address mask register for dual address match or address range masking
̶ Optional software address recognition for unlimited number of addresses
z
Slave can operate in all sleep modes, including power-down
z
Slave address match can wake device from all sleep modes
z
100kHz and 400kHz bus frequency support
z
Slew-rate limited output drivers
z
Input filter for bus noise and spike suppression
z
Support arbitration between start/repeated start and data bit (SMBus)
z
Slave arbitration allows support for address resolve protocol (ARP) (SMBus)
Overview
The two-wire interface (TWI) is a bidirectional, two-wire communication interface. It is I2C and System
Management Bus (SMBus) compatible. The only external hardware needed to implement the bus is one pull-up
resistor on each bus line.
A device connected to the bus must act as a master or a slave. The master initiates a data transaction by
addressing a slave on the bus and telling whether it wants to transmit or receive data. One bus can have many
slaves and one or several masters that can take control of the bus. An arbitration process handles priority if
more than one master tries to transmit data at the same time. Mechanisms for resolving bus contention are
inherent in the protocol.
The TWI module supports master and slave functionality. The master and slave functionality are separated from
each other, and can be enabled and configured separately. The master module supports multi-master bus
operation and arbitration. It contains the baud rate generator. Both 100kHz and 400kHz bus frequency is
supported. Quick command and smart mode can be enabled to auto-trigger operations and reduce software
complexity.
The slave module implements 7-bit address match and general address call recognition in hardware. 10-bit
addressing is also supported. A dedicated address mask register can act as a second address match register or
as a register for address range masking. The slave continues to operate in all sleep modes, including powerdown mode. This enables the slave to wake up the device from all sleep modes on TWI address match. It is
possible to disable the address matching to let this be handled in software instead.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
44
The TWI module will detect START and STOP conditions, bus collisions, and bus errors. Arbitration lost, errors,
collision, and clock hold on the bus are also detected and indicated in separate status flags available in both
master and slave modes.
It is possible to disable the TWI drivers in the device, and enable a four-wire digital interface for connecting to an
external TWI bus driver. This can be used for applications where the device operates from a different VCC
voltage than used by the TWI bus.
PORTC and PORTE each has one TWI. Notation of these peripherals are TWIC and TWIE.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
45
23.
SPI – Serial Peripheral Interface
23.1
Features
23.2
z
Three Identical SPI peripherals
z
Full-duplex, three-wire synchronous data transfer
z
Master or slave operation
z
Lsb first or msb first data transfer
z
Eight programmable bit rates
z
Interrupt flag at the end of transmission
z
Write collision flag to indicate data collision
z
Wake up from idle sleep mode
z
Double speed master mode
Overview
The Serial Peripheral Interface (SPI) is a high-speed synchronous data transfer interface using three or four
pins. It allows fast communication between an Atmel AVR XMEGA device and peripheral devices or between
several microcontrollers. The SPI supports full-duplex communication.
A device connected to the bus must act as a master or slave. The master initiates and controls all data
transactions.
PORTC, PORTD, and PORTE each has one SPI. Notation of these peripherals are SPIC, SPID, and SPIE
respectivel
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
46
24.
USART
24.1
Features
24.2
z
Seven identical USART peripherals
z
Full-duplex operation
z
Asynchronous or synchronous operation
̶ Synchronous clock rates up to 1/2 of the device clock frequency
̶ Asynchronous clock rates up to 1/8 of the device clock frequency
z
Supports serial frames with 5, 6, 7, 8, or 9 data bits and 1 or 2 stop bits
z
Fractional baud rate generator
̶ Can generate desired baud rate from any system clock frequency
̶ No need for external oscillator with certain frequencies
z
Built-in error detection and correction schemes
̶ Odd or even parity generation and parity check
̶ Data overrun and framing error detection
̶ Noise filtering includes false start bit detection and digital low-pass filter
z
Separate interrupts for
̶ Transmit complete
̶ Transmit data register empty
̶ Receive complete
z
Multiprocessor communication mode
̶ Addressing scheme to address a specific devices on a multidevice bus
̶ Enable unaddressed devices to automatically ignore all frames
z
Master SPI mode
̶ Double buffered operation
̶ Operation up to 1/2 of the peripheral clock frequency
z
IRCOM module for IrDA compliant pulse modulation/demodulation
Overview
The universal synchronous and asynchronous serial receiver and transmitter (USART) is a fast and flexible
serial communication module. The USART supports full-duplex communication and asynchronous and
synchronous operation. The USART can be configured to operate in SPI master mode and used for SPI
communication.
Communication is frame based, and the frame format can be customized to support a wide range of standards.
The USART is buffered in both directions, enabling continued data transmission without any delay between
frames. Separate interrupts for receive and transmit complete enable fully interrupt driven communication.
Frame error and buffer overflow are detected in hardware and indicated with separate status flags. Even or odd
parity generation and parity check can also be enabled.
The clock generator includes a fractional baud rate generator that is able to generate a wide range of USART
baud rates from any system clock frequencies. This removes the need to use an external crystal oscillator with
a specific frequency to achieve a required baud rate. It also supports external clock input in synchronous slave
operation.
When the USART is set in master SPI mode, all USART-specific logic is disabled, leaving the transmit and
receive buffers, shift registers, and baud rate generator enabled. Pin control and interrupt generation are
identical in both modes. The registers are used in both modes, but their functionality differs for some control
settings.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
47
An IRCOM module can be enabled for one USART to support IrDA 1.4 physical compliant pulse modulation and
demodulation for baud rates up to 115.2Kbps.
PORTC, PORTD, and PORTE each has two USARTs, while PORTF has one USART only. Notation of these
peripherals are USARTC0, USARTC1, USARTD0, USARTD1, USARTE0, USARTE1 and USARTF0,
respectively.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
48
25.
IRCOM – IR Communication Module
25.1
Features
25.2
z
Pulse modulation/demodulation for infrared communication
z
IrDA compatible for baud rates up to 115.2Kbps
z
Selectable pulse modulation scheme
̶ 3/16 of the baud rate period
̶ Fixed pulse period, 8-bit programmable
̶ Pulse modulation disabled
z
Built-in filtering
z
Can be connected to and used by any USART
Overview
Atmel AVR XMEGA devices contain an infrared communication module (IRCOM) that is IrDA compatible for
baud rates up to 115.2Kbps. It can be connected to any USART to enable infrared pulse encoding/decoding for
that USART.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
49
26.
AES and DES Crypto Engine
26.1
Features
26.2
z
Data Encryption Standard (DES) CPU instruction
z
Advanced Encryption Standard (AES) crypto module
z
DES Instruction
̶ Encryption and decryption
̶ DES supported
̶ Encryption/decryption in 16 CPU clock cycles per 8-byte block
z
AES crypto module
̶ Encryption and decryption
̶ Supports 128-bit keys
̶ Supports XOR data load mode to the state memory
̶ Encryption/decryption in 375 clock cycles per 16-byte block
Overview
The Advanced Encryption Standard (AES) and Data Encryption Standard (DES) are two commonly used
standards for cryptography. These are supported through an AES peripheral module and a DES CPU
instruction, and the communication interfaces and the CPU can use these for fast, encrypted communication
and secure data storage.
DES is supported by an instruction in the AVR CPU. The 8-byte key and 8-byte data blocks must be loaded into
the register file, and then the DES instruction must be executed 16 times to encrypt/decrypt the data block.
The AES crypto module encrypts and decrypts 128-bit data blocks with the use of a 128-bit key. The key and
data must be loaded into the key and state memory in the module before encryption/decryption is started. It
takes 375 peripheral clock cycles before the encryption/decryption is done. The encrypted/encrypted data can
then be read out, and an optional interrupt can be generated. The AES crypto module also has DMA support
with transfer triggers when encryption/decryption is done and optional auto-start of encryption/decryption when
the state memory is fully loaded.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
50
27.
CRC – Cyclic Redundancy Check Generator
27.1
Features
27.2
z
Cyclic redundancy check (CRC) generation and checking for
̶ Communication data
̶ Program or data in flash memory
̶ Data in SRAM and I/O memory space
z
Integrated with flash memory, DMA controller and CPU
̶ Continuous CRC on data going through a DMA channel
̶ Automatic CRC of the complete or a selectable range of the flash memory
̶ CPU can load data to the CRC generator through the I/O interface
z
CRC polynomial software selectable to
̶ CRC-16 (CRC-CCITT)
̶ CRC-32 (IEEE 802.3)
z
Zero remainder detection
Overview
A cyclic redundancy check (CRC) is an error detection technique test algorithm used to find accidental errors in
data, and it is commonly used to determine the correctness of a data transmission, and data present in the data
and program memories. A CRC takes a data stream or a block of data as input and generates a 16- or 32-bit
output that can be appended to the data and used as a checksum. When the same data are later received or
read, the device or application repeats the calculation. If the new CRC result does not match the one calculated
earlier, the block contains a data error. The application will then detect this and may take a corrective action,
such as requesting the data to be sent again or simply not using the incorrect data.
Typically, an n-bit CRC applied to a data block of arbitrary length will detect any single error burst not longer
than n bits (any single alteration that spans no more than n bits of the data), and will detect the fraction 1-2-n of
all longer error bursts. The CRC module in Atmel AVR XMEGA devices supports two commonly used CRC
polynomials; CRC-16 (CRC-CCITT) and CRC-32 (IEEE 802.3).
z
CRC-16:
Polynomial:
Hex value:
z
x16+x12+x5+1
0x1021
CRC-32:
Polynomial:
Hex value:
x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
0x04C11DB7
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
51
28.
ADC – 12-bit Analog to Digital Converter
28.1
Features
28.2
z
Two Analog to Digital Converters (ADCs)
z
12-bit resolution
z
Up to two million samples per second
̶ Two inputs can be sampled simultaneously using ADC and 1x gain stage
̶ Four inputs can be sampled within 1.5µs
̶ Down to 2.5µs conversion time with 8-bit resolution
̶ Down to 3.5µs conversion time with 12-bit resolution
z
Differential and single-ended input
̶ Up to 16 single-ended inputs
̶ 16x4 differential inputs without gain
̶ 8x4 differential input with gain
z
Built-in differential gain stage
̶ 1/2x, 1x, 2x, 4x, 8x, 16x, 32x, and 64x gain options
z
Single, continuous and scan conversion options
z
Four internal inputs
̶ Internal temperature sensor
̶ DAC output
̶ AVCC voltage divided by 10
̶ 1.1V bandgap voltage
z
Four conversion channels with individual input control and result registers
̶ Enable four parallel configurations and results
z
Internal and external reference options
z
Compare function for accurate monitoring of user defined thresholds
z
Optional event triggered conversion for accurate timing
z
Optional DMA transfer of conversion results
z
Optional interrupt/event on compare result
Overview
The ADC converts analog signals to digital values. The ADC has 12-bit resolution and is capable of converting
up to two million samples per second (msps). The input selection is flexible, and both single-ended and
differential measurements can be done. For differential measurements, an optional gain stage is available to
increase the dynamic range. In addition, several internal signal inputs are available. The ADC can provide both
signed and unsigned results.
This is a pipelined ADC that consists of several consecutive stages. The pipelined design allows a high sample
rate at a low system clock frequency. It also means that a new input can be sampled and a new ADC conversion
started while other ADC conversions are still ongoing. This removes dependencies between sample rate and
propagation delay.
The ADC has four conversion channels (0-3) with individual input selection, result registers, and conversion
start control. The ADC can then keep and use four parallel configurations and results, and this will ease use for
applications with high data throughput or for multiple modules using the ADC independently. It is possible to use
DMA to move ADC results directly to memory or peripherals when conversions are done.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
52
Both internal and external reference voltages can be used. An integrated temperature sensor is available for
use with the ADC. The output from the DAC, AVCC/10 and the bandgap voltage can also be measured by the
ADC.
The ADC has a compare function for accurate monitoring of user defined thresholds with minimum software
intervention required.
Figure 28-1.
ADC overview.
ADC0
Compare
•
••
ADC11
ADC0
Internal
signals
VINP
CH0 Result
••
•
ADC7
ADC4
CH1 Result
Threshold
(Int Req)
½x - 64x
CH2 Result
•
••
ADC7
Int. signals
<
>
Internal
signals
CH3 Result
VINN
ADC0
•
••
ADC3
Int. signals
Internal 1.00V
Internal AVCC/1.6V
Internal AVCC/2
AREFA
AREFB
Reference
Voltage
Two inputs can be sampled simultaneously as both the ADC and the gain stage include sample and hold
circuits, and the gain stage has 1x gain setting. Four inputs can be sampled within 1.5µs without any
intervention by the application.
The ADC may be configured for 8- or 12-bit result, reducing the minimum conversion time (propagation delay)
from 3.5µs for 12-bit to 2.5µs for 8-bit result.
ADC conversion results are provided left- or right adjusted with optional ‘1’ or ‘0’ padding. This eases calculation
when the result is represented as a signed integer (signed 16-bit number).
PORTA and PORTB each has one ADC. Notation of these peripherals are ADCA and ADCB, respectively.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
53
29.
DAC – 12-bit Digital to Analog Converter
29.1
Features
29.2
z
One Digital to Analog Converter (DAC)
z
12-bit resolution
z
Two independent, continuous-drive output channels
z
Up to one million samples per second conversion rate per DAC channel
z
Built-in calibration that removes:
̶ Offset error
̶ Gain error
z
Multiple conversion trigger sources
̶ On new available data
̶ Events from the event system
z
High drive capabilities and support for
̶ Resistive loads
̶ Capacitive loads
̶ Combined resistive and capacitive loads
z
Internal and external reference options
z
DAC output available as input to analog comparator and ADC
z
Low-power mode, with reduced drive strength
z
Optional DMA transfer of data
Overview
The digital-to-analog converter (DAC) converts digital values to voltages. The DAC has two channels, each with
12-bit resolution, and is capable of converting up to one million samples per second (msps) on each channel.
The built-in calibration system can remove offset and gain error when loaded with calibration values from
software.
Figure 29-1.
DAC overview.
DMA req
(Data Empty)
CH0DATA
12
D
A
T
A
DAC0
Output
Driver
Int.
driver
AVCC
Internal 1.00V
AREFA
AREFB
Reference
selection
12
Select
CTRLB
Trigger
CH1DATA
DMA req
(Data Empty)
Trigger
D
A
T
A
Enable
CTRLA
Select
DAC1
Enable
To
AC/ADC
Internal Output
enable
Output
Driver
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
54
A DAC conversion is automatically started when new data to be converted are available. Events from the event
system can also be used to trigger a conversion, and this enables synchronized and timed conversions between
the DAC and other peripherals, such as a timer/counter. The DMA controller can be used to transfer data to the
DAC.
The DAC has high drive strength, and is capable of driving both resistive and capacitive loads, aswell as loads
which combine both. A low-power mode is available, which will reduce the drive strength of the output. Internal
and external voltage references can be used. The DAC output is also internally available for use as input to the
analog comparator or ADC.
PORTB has one DAC. Notation of this peripheral is DACB.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
55
30.
AC – Analog Comparator
30.1
Features
30.2
z
Four Analog Comparators (AC)
z
Selectable propagation delay versus current consumption
z
Selectable hysteresis
̶ No
̶ Small
̶ Large
z
Analog comparator output available on pin
z
Flexible input selection
̶ All pins on the port
̶ Output from the DAC
̶ Bandgap reference voltage
̶ A 64-level programmable voltage scaler of the internal AVCC voltage
z
Interrupt and event generation on:
̶ Rising edge
̶ Falling edge
̶ Toggle
z
Window function interrupt and event generation on:
̶ Signal above window
̶ Signal inside window
̶ Signal below window
z
Constant current source with configurable output pin selection
Overview
The analog comparator (AC) compares the voltage levels on two inputs and gives a digital output based on this
comparison. The analog comparator may be configured to generate interrupt requests and/or events upon
several different combinations of input change.
Two important properties of the analog comparator’s dynamic behavior are: hysteresis and propagation delay.
Both of these parameters may be adjusted in order to achieve the optimal operation for each application.
The input selection includes analog port pins, several internal signals, and a 64-level programmable voltage
scaler. The analog comparator output state can also be output on a pin for use by external devices.
A constant current source can be enabled and output on a selectable pin. This can be used to replace, for
example, external resistors used to charge capacitors in capacitive touch sensing applications.
The analog comparators are always grouped in pairs on each port. These are called analog comparator 0 (AC0)
and analog comparator 1 (AC1). They have identical behavior, but separate control registers. Used as pair, they
can be set in window mode to compare a signal to a voltage range instead of a voltage level.
PORTA and PORTB each has one AC pair. Notations are ACA and ACB, respectively.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
56
Figure 30-1.
Analog comparator overview.
Pin Input
+
AC0OUT
Pin Input
Hysteresis
DAC
Voltage
Scaler
Enable
ACnMUXCTRL
ACnCTRL
Interrupt
Mode
WINCTRL
Enable
Bandgap
Interrupt
Sensititivity
Control
&
Window
Function
Interrupts
Events
Hysteresis
+
Pin Input
AC1OUT
Pin Input
The window function is realized by connecting the external inputs of the two analog comparators in a pair as
shown in Figure 30-2.
Figure 30-2.
Analog comparator window function.
+
AC0
Upper limit of window
Interrupt
sensitivity
control
Input signal
Interrupts
Events
+
AC1
Lower limit of window
-
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
57
31.
Programming and Debugging
31.1
Features
31.2
z
Programming
̶ External programming through PDI or JTAG interfaces
z Minimal protocol overhead for fast operation
z Built-in error detection and handling for reliable operation
̶ Boot loader support for programming through any communication interface
z
Debugging
̶ Nonintrusive, real-time, on-chip debug system
̶ No software or hardware resources required from device except pin connection
̶ Program flow control
z Go, Stop, Reset, Step Into, Step Over, Step Out, Run-to-Cursor
̶ Unlimited number of user program breakpoints
̶ Unlimited number of user data breakpoints, break on:
z Data location read, write, or both read and write
z Data location content equal or not equal to a value
z Data location content is greater or smaller than a value
z Data location content is within or outside a range
̶ No limitation on device clock frequency
z
Program and Debug Interface (PDI)
̶ Two-pin interface for external programming and debugging
̶ Uses the Reset pin and a dedicated pin
̶ No I/O pins required during programming or debugging
z
JTAG interface
̶ Four-pin, IEEE Std. 1149.1 compliant interface for programming and debugging
̶ Boundary scan capabilities according to IEEE Std. 1149.1 (JTAG)
Overview
The Program and Debug Interface (PDI) is an Atmel proprietary interface for external programming and on-chip
debugging of a device.
The PDI supports fast programming of nonvolatile memory (NVM) spaces; flash, EEPOM, fuses, lock bits, and
the user signature row.
Debug is supported through an on-chip debug system that offers nonintrusive, real-time debug. It does not
require any software or hardware resources except for the device pin connection. Using the Atmel tool chain, it
offers complete program flow control and support for an unlimited number of program and complex data
breakpoints. Application debug can be done from a C or other high-level language source code level, as well as
from an assembler and disassembler level.
Programming and debugging can be done through two physical interfaces. The primary one is the PDI physical
layer, which is available on all devices. This is a two-pin interface that uses the Reset pin for the clock input
(PDI_CLK) and one other dedicated pin for data input and output (PDI_DATA). A JTAG interface is also
available on most devices, and this can be used for programming and debugging through the four-pin JTAG
interface. The JTAG interface is IEEE Std. 1149.1 compliant, and supports boundary scan. Any external
programmer or on-chip debugger/emulator can be directly connected to either of these interfaces. Unless
otherwise stated, all references to the PDI assume access through the PDI physical layer.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
58
32.
Pinout and Pin Functions
The device pinout is shown in “Pinout/Block Diagram” on page 5. In addition to general purpose I/O
functionality, each pin can have several alternate functions. This will depend on which peripheral is enabled and
connected to the actual pin. Only one of the pin functions can be used at time.
32.1
Alternate Pin Function Description
The tables below show the notation for all pin functions available and describe its function.
32.1.1 Operation/Power Supply
VCC
Digital supply voltage
AVCC
Analog supply voltage
GND
Ground
32.1.2 Port Interrupt functions
SYNC
Port pin with full synchronous and limited asynchronous interrupt function
ASYNC
Port pin with full synchronous and full asynchronous interrupt function
32.1.3 Analog functions
ACn
Analog Comparator input pin n
ACnOUT
Analog Comparator n Output
ADCn
Analog to Digital Converter input pin n
DACn
Digital to Analog Converter output pin n
AREF
Analog Reference input pin
32.1.4 Timer/Counter and AWEX functions
OCnxLS
Output Compare Channel x Low Side for Timer/Counter n
OCnxHS
Output Compare Channel x High Side for Timer/Counter n
32.1.5 Communication functions
SCL
Serial Clock for TWI
SDA
Serial Data for TWI
SCLIN
Serial Clock In for TWI when external driver interface is enabled
SCLOUT
Serial Clock Out for TWI when external driver interface is enabled
SDAIN
Serial Data In for TWI when external driver interface is enabled
SDAOUT
Serial Data Out for TWI when external driver interface is enabled
XCKn
Transfer Clock for USART n
RXDn
Receiver Data for USART n
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
59
TXDn
Transmitter Data for USART n
SS
Slave Select for SPI
MOSI
Master Out Slave In for SPI
MISO
Master In Slave Out for SPI
SCK
Serial Clock for SPI
D-
Data- for USB
D+
Data+ for USB
32.1.6 Oscillators, Clock and Event
TOSCn
Timer Oscillator pin n
XTALn
Input/Output for Oscillator pin n
CLKOUT
Peripheral Clock Output
EVOUT
Event Channel Output
RTCOUT
RTC Clock Source Output
32.1.7 Debug/System functions
RESET
Reset pin
PDI_CLK
Program and Debug Interface Clock pin
PDI_DATA
Program and Debug Interface Data pin
TCK
JTAG Test Clock
TDI
JTAG Test Data In
TDO
JTAG Test Data Out
TMS
JTAG Test Mode Select
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
60
32.2
Alternate Pin Functions
The tables below show the primary/default function for each pin on a port in the first column, the pin number in
the second column, and then all alternate pin functions in the remaining columns. The head row shows what
peripheral that enable and use the alternate pin functions.
For better flexibility, some alternate functions also have selectable pin locations for their functions, this is noted
under the first table where this apply.
Table 32-1. Port A - alternate functions.
PORTA
PIN#
INTERRUPT
ADCAPOS/
GAINPOS
ADCA
NEG
ADCA
GAINNEG
ACA
POS
ACA
NEG
GND
60
AVCC
61
PA0
62
SYNC
ADC0
ADC0
AC0
AC0
PA1
63
SYNC
ADC1
ADC1
AC1
AC1
PA2
64
SYNC/
ASYNC
ADC2
ADC2
AC2
PA3
1
SYNC
ADC3
ADC3
AC3
PA4
2
SYNC
ADC4
ADC4
AC4
PA5
3
SYNC
ADC5
ADC5
AC5
PA6
4
SYNC
ADC6
ADC6
AC6
PA7
5
SYNC
ADC7
ADC7
ACA
OUT
REFA
AREF
AC3
AC5
AC1OUT
AC7
AC0OUT
Table 32-2. Port B - alternate functions.
PORTB
PIN#
INTERRUPT
ADCAPOS/
GAINPOS
ADCBPOS/
GAINPOS
ADCB
NEG
PB0
6
SYNC
ADC8
ADC0
PB1
7
SYNC
ADC9
PB2
8
SYNC/
ASYNC
PB3
9
PB4
ADCB
GAINNEG
ACB
POS
ACB
NEG
ADC0
AC0
AC0
ADC1
ADC1
AC1
AC1
ADC10
ADC2
ADC2
AC2
SYNC
ADC11
ADC3
ADC3
AC3
10
SYNC
ADC12
ADC4
ADC4
AC4
PB5
11
SYNC
ADC13
ADC5
ADC5
AC5
PB6
12
SYNC
ADC14
ADC6
ADC6
AC6
PB7
13
SYNC
ADC15
ADC7
ADC7
GND
14
VCC
15
ACBOUT
DACB
REFB
JTAG
AREF
DAC0
AC3
DAC1
TMS
AC5
AC7
TDI
AC1OUT
TCK
AC0OUT
TDO
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
61
Table 32-3. Port C - alternate functions.
PORTC
PIN#
INTERRUPT
TCC0
AWEXC
TCC1
(1)(2)
USART
C0 (3)
USART
C1
TWIC
TWIC
w/ext
driver
SDA
SDAIN
SCL
SCLIN
SPIC
(4)
PC0
16
SYNC
OC0A
OC0ALS
PC1
17
SYNC
OC0B
OC0AHS
XCK0
PC2
18
SYNC/
ASYNC
OC0C
OC0BLS
RXD0
SDAOUT
PC3
19
SYNC
OC0D
OC0BHS
TXD0
SCLOUT
PC4
20
SYNC
OC0CLS
OC1A
PC5
21
SYNC
OC0CHS
OC1B
PC6
22
SYNC
PC7
23
SYNC
GND
24
VCC
25
Notes:
1.
2.
3.
4.
5.
6.
CLOCKOUT
EVENTOUT
(5)
(6)
SS
XCK1
MOSI
OC0DLS
RXD1
MISO
RTCOUT
OC0DHS
TXD1
SCK
clkPER
EVOUT
Pin mapping of all TC0 can optionally be moved to high nibble of port.
If TC0 is configured as TC2 all eight pins can be used for PWM output.
Pin mapping of all USART0 can optionally be moved to high nibble of port.
Pins MOSI and SCK for all SPI can optionally be swapped.
CLKOUT can optionally be moved between port C, D and E and be on pin 4 or 7.
EVOUT can optionally be moved between port C, D and E and be on pin 4 or 7.
Table 32-4. Port D - alternate functions.
PORT D
PIN #
INTERRUPT
TCD0
PD0
26
SYNC
OC0A
PD1
27
SYNC
OC0B
XCK0
PD2
28
SYNC/ASYNC
OC0C
RXD0
PD3
29
SYNC
OC0D
TXD0
PD4
30
SYNC
OC1A
PD5
31
SYNC
OC1B
PD6
32
SYNC
PD7
33
SYNC
GND
34
VCC
35
Notes:
1.
2.
3.
4.
5.
6.
TCD1
USBD
USARTD0
USARTD1
SPID
CLOCKOUT
EVENTOUT
clkPER
EVOUT
SS
XCK1
MOSI
D-
RXD1
MISO
D+
TXD1
SCK
Pin mapping of all TC0 can optionally be moved to high nibble of port.
If TC0 is configured as TC2 all eight pins can be used for PWM output.
Pin mapping of all USART0 can optionally be moved to high nibble of port.
Pins MOSI and SCK for all SPI can optionally be swapped.
CLKOUT can optionally be moved between port C, D and E and be on pin 4 or 7.
EVOUT can optionally be moved between port C, D and E and be on pin 4 or 7.
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
62
Table 32-5. Port E - alternate functions.
PORTE
USART
E1
SPIE
SDA
SDAIN
SCL
SCLIN
TCE0
PE0
36
SYNC
OC0A
PE1
37
SYNC
OC0B
XCK0
PE2
38
SYNC/ASYNC
OC0C
RXD0
SDAOUT
PE3
39
SYNC
OC0D
TXD0
SCLOUT
PE4
40
SYNC
OC1A
PE5
41
SYNC
OC1B
PE6
42
PE7
43
GND
44
VCC
45
1.
2.
3.
4.
5.
6.
USART
E0
TWIE
w/ext
driver
INTERRUPT
Notes:
TCE1
TWIE
PIN #
TOSC
CLOCKOUT
EVENTOUT
clkPER
EVOUT
SS
XCK1
MOSI
SYNC
RXD1
MISO
TOSC2
SYNC
TXD1
SCK
TOSC1
Pin mapping of all TC0 can optionally be moved to high nibble of port.
If TC0 is configured as TC2 all eight pins can be used for PWM output.
Pin mapping of all USART0 can optionally be moved to high nibble of port.
Pins MOSI and SCK for all SPI can optionally be swapped.
CLKOUT can optionally be moved between port C, D and E and be on pin 4 or 7.
EVOUT can optionally be moved between port C, D and E and be on pin 4 or 7.
Table 32-6. Port F - alternate functions.
PORTF
PIN#
INTERRUPT
TCF0
USARTF0
PF0
46
SYNC
OC0A
PF1
47
SYNC
OC0B
XCK0
PF2
48
SYNC/ASYNC
OC0C
RXD0
PF3
49
SYNC
OC0D
TXD0
PF4
50
SYNC
PF5
51
SYNC
GND
52
VCC
53
PF6
54
SYNC
PF7
55
SYNC
PDI
XTAL
Table 32-7. Port R - alternate functions.
PORTR
PIN#
INTERRUPT
PDI
56
PDI_DATA
RESET
57
PDI_CLOCK
PR0
58
SYNC
XTAL2
PR1
59
SYNC
XTAL1
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
63
33.
Peripheral Module Address Map
The address maps show the base address for each peripheral and module in Atmel AVR XMEGA A3U. For
complete register description and summary for each peripheral module, refer to the XMEGA AU manual.
Table 33-1.
Peripheral module address map.
Base address
Name
Description
0x0000
GPIO
General Purpose IO Registers
0x0010
VPORT0
Virtual Port 0
0x0014
VPORT1
Virtual Port 1
0x0018
VPORT2
Virtual Port 2
0x001C
VPORT3
Virtual Port 2
0x0030
CPU
CPU
0x0040
CLK
Clock Control
0x0048
SLEEP
Sleep Controller
0x0050
OSC
Oscillator Control
0x0060
DFLLRC32M
DFLL for the 32MHz Internal RC Oscillator
0x0068
DFLLRC2M
DFLL for the 2MHz RC Oscillator
0x0070
PR
Power Reduction
0x0078
RST
Reset Controller
0x0080
WDT
Watch-Dog Timer
0x0090
MCU
MCU Control
0x00A0
PMIC
Programmable MUltilevel Interrupt Controller
0x00B0
PORTCFG
0x00C0
AES
AES Module
0x00D0
CRC
CRC Module
0x0100
DMA
DMA Module
0x0180
EVSYS
Event System
0x01C0
NVM
Non Volatile Memory (NVM) Controller
0x0200
ADCA
Analog to Digital Converter on port A
0x0240
ADCB
Analog to Digital Converter on port B
0x0320
DACB
Digital to Analog Converter on port B
0x0380
ACA
Analog Comparator pair on port A
0x0390
ACB
Analog Comparator pair on port B
0x0400
RTC
Real Time Counter
0x0480
TWIC
Two Wire Interface on port C
Port Configuration
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
64
Base address
Name
Description
0x04A0
TWIE
Two Wire Interface on port E
0x04C0
USB
Universal Serial Bus Interface
0x0600
PORTA
Port A
0x0620
PORTB
Port B
0x0640
PORTC
Port C
0x0660
PORTD
Port D
0x0680
PORTE
Port E
0x06A0
PORTF
Port F
0x07E0
PORTR
Port R
0x0800
TCC0
Timer/Counter 0 on port C
0x0840
TCC1
Timer/Counter 1 on port C
0x0880
AWEXC
Advanced Waveform Extension on port C
0x0890
HIRESC
High Resolution Extension on port C
0x08A0
USARTC0
USART 0 on port C
0x08B0
USARTC1
USART 1 on port C
0x08C0
SPIC
0x08F8
IRCOM
0x0900
TCD0
Timer/Counter 0 on port D
0x0940
TCD1
Timer/Counter 1 on port D
0x0990
HIRESD
0x09A0
USARTD0
USART 0 on port D
0x09B0
USARTD1
USART 1 on port D
0x09C0
SPID
Serial Peripheral Interface on port D
0x0A00
TCE0
Timer/Counter 0 on port E
0x0A90
HIRESE
0x0AA0
USARTE0
USART 0 on port E
0x0AB0
USARTE1
USART 1 on port E
0x0AC0
SPIE
Serial Peripheral Interface on port E
0x0B00
TCF0
Timer/Counter 0 on port F
Serial Peripheral Interface on port C
Infrared Communication Module
High Resolution Extension on port D
High Resolution Extension on port E
XMEGA A3U [DATASHEET]
Atmel-8386E-AVR-XMEGA A3U-Datasheet_09/2014
65
34.
Instruction Set Summary
Mnemonics
Operands
Description
Operation
Flags
#Clocks
Arithmetic and Logic Instructions
ADD
Rd, Rr
Add without Carry
Rd
←
Rd + Rr
Z,C,N,V,S,H
1
ADC
Rd, Rr
Add with Carry
Rd
←
Rd + Rr + C
Z,C,N,V,S,H
1
ADIW
Rd, K
Add Immediate to Word
Rd
←
Rd + 1:Rd + K
Z,C,N,V,S
2
SUB
Rd, Rr
Subtract without Carry
Rd
←
Rd - Rr
Z,C,N,V,S,H
1
SUBI
Rd, K
Subtract Immediate
Rd
←
Rd - K
Z,C,N,V,S,H
1
SBC
Rd, Rr
Subtract with Carry
Rd
←
Rd - Rr - C
Z,C,N,V,S,H
1
SBCI
Rd, K
Subtract Immediate with Carry
Rd
←
Rd - K - C
Z,C,N,V,S,H
1
SBIW
Rd, K
Subtract Immediate from Word
Rd + 1:Rd
←
Rd + 1:Rd - K
Z,C,N,V,S
2
AND
Rd, Rr
Logical AND
Rd
←
Rd • Rr
Z,N,V,S
1
ANDI
Rd, K
Logical AND with Immediate
Rd
←
Rd • K
Z,N,V,S
1
OR
Rd, Rr
Logical OR
Rd
←
Rd v Rr
Z,N,V,S
1
ORI
Rd, K
Logical OR with Immediate
Rd
←
Rd v K
Z,N,V,S
1
EOR
Rd, Rr
Exclusive OR
Rd
←
Rd ⊕ Rr
Z,N,V,S
1
COM
Rd
One’s Complement
Rd
←
$FF - Rd
Z,C,N,V,S
1
NEG
Rd
Two’s Complement
Rd
←
$00 - Rd
Z,C,N,V,S,H
1
SBR
Rd,K
Set Bit(s) in Register
Rd
←
Rd v K
Z,N,V,S
1
CBR
Rd,K
Clear Bit(s) in Register
Rd
←
Rd • ($FFh - K)
Z,N,V,S
1
INC
Rd
Increment
Rd
←
Rd + 1
Z,N,V,S
1
DEC
Rd
Decrement
Rd
←
Rd - 1
Z,N,V,S
1
TST
Rd
Test for Zero or Minus
Rd
←
Rd • Rd
Z,N,V,S
1
CLR
Rd
Clear Register
Rd
←
Rd ⊕ Rd
Z,N,V,S
1
SER
Rd
Set Register
Rd
←
$FF
None
1
MUL
Rd,Rr
Multiply Unsigned
R1:R0
←
Rd x Rr (UU)
Z,C
2
MULS
Rd,Rr
Multiply Signed
R1:R0
←
Rd x Rr (SS)
Z,C
2
MULSU
Rd,Rr
Multiply Signed with Unsigned
R1:R0
←
Rd x Rr (SU)
Z,C
2
FMUL
Rd,Rr
Fractional Multiply Unsigned
R1:R0
←
Rd x Rr