• USB 2.0 Full Speed (12 Mbits per second) Host Single Port in the 208-pin PQFP Device
and Double Port in 217-ball LFBGA Device
– Single or Dual On-chip Transceivers
– Integrated FIFOs and Dedicated DMA Channels
• Ethernet MAC 10/100 Base-T
– Media Independent Interface or Reduced Media Independent Interface
– 28-byte FIFOs and Dedicated DMA Channels for Receive and Transmit
• Image Sensor Interface
– ITU-R BT. 601/656 External Interface, Programmable Frame Capture Rate
– 12-bit Data Interface for Support of High Sensibility Sensors
– SAV and EAV Synchronization, Preview Path with Scaler, YCbCr Format
• Bus Matrix
– Six 32-bit-layer Matrix
– Remap Command
• Fully-featured System Controller, including
– Reset Controller, Shutdown Controller
– Four 32-bit Battery Backup Registers for a Total of 16 Bytes
– Clock Generator and Power Management Controller
– Advanced Interrupt Controller and Debug Unit
– Periodic Interval Timer, Watchdog Timer and Real-time Timer
™
, Debug Communication Channel Support
™
ARM® Thumb® Processor
®
Technology for Java® Acceleration
™
AT91 ARM
Thumb
Microcontrollers
AT91SAM9XE128
AT91SAM9XE256
AT91SAM9XE512
Preliminary
6254A–ATARM–01-Feb-08
• Reset Controller (RSTC)
– Based on a Power-on Reset Cell, Reset Source Identification and Reset Output Control
• Clock Generator (CKGR)
– Selectable 32,768 Hz Low-power Oscillator or Internal Low Power RC Oscillator on Battery Backup Power Supply,
Providing a Permanent Slow Clock
– 3 to 20 MHz On-chip Oscillator, One Up to 240 MHz PLL and One Up to 100 MHz PLL
• Power Management Controller (PMC)
– Very Slow Clock Operating Mode, Software Programmable Power Optimization Capabilities
– Two Programmable External Clock Signals
• Advanced Interrupt Controller (AIC)
– Individually Maskable, Eight-level Priority, Vectored Interrupt Sources
– Three External Interrupt Sources and One Fast Interrupt Source, Spurious Interrupt Protected
• Debug Unit (DBGU)
– 2-wire UART and support for Debug Communication Channel, Programmable ICE Access Prevention
• Periodic Interval Timer (PIT)
– 20-bit Interval Timer Plus 12-bit Interval Counter
• Watchdog Timer (WDT)
– Key-protected, Programmable Only Once, Windowed 16-bit Counter Running at Slow Clock
• Real-Time Timer (RTT)
– 32-bit Free-running Backup Counter Running at Slow Clock with 16-bit Prescaler
• One 4-channel 10-bit Analog to Digital Converter
• Three 32-bit Parallel Input/Output Controllers (PIOA, PIOB, PIOC,)
– 96 Programmable I/O Lines Multiplexed with up to Two Peripheral I/Os
– Input Change Interrupt Capability on Each I/O Line
– Individually Programmable Open-drain, Pull-up Resistor and Synchronous Output
• Peripheral DMA Controller Channels (PDC)
• Two-slot Multimedia Card Interface (MCI)
™
– SDCard/SDIO and MultiMediaCard
– Automatic Protocol Control and Fast Automatic Data Transfers with PDC
Compliant
• One Synchronous Serial Controllers (SSC)
– Independent Clock and Frame Sync Signals for Each Receiver and Transmitter
– I²S Analog Interface Support, Time Division Multiplex Support
– High-speed Continuous Data Stream Capabilities with 32-bit Data Transfer
• Four Universal Synchronous/Asynchronous Receiver Transmitters (USART)
®
– Individual Baud Rate Generator, IrDA
– Support for ISO7816 T0/T1 Smart Card, Hardware Handshaking, RS485 Support
– Full Modem Signal Control on USART0
Infrared Modulation/Demodulation
• One 2-wire UART
• Two Master/Slave Serial Peripheral Interface (SPI)
– 8- to 16-bit Programmable Data Length, Four External Peripheral Chip Selects
– Synchronous Communications
• Two Three-channel 16-bit Timer/Counters (TC)
– Three External Clock Inputs, Two Multi-purpose I/O Pins per Channel
– Double PWM Generation, Capture/Waveform Mode, Up/Down Capability
– High-Drive Capability on Outputs TIOA0, TIOA1, TIOA2
• Two Two-wire Interfaces (TWI)
– Master, Multi-master and Slave Mode Operation
– General Call Supported in Slave Mode
– Connection to PDC Channel to Optimize Data Transfers in Master Mode Only
2
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
®
• IEEE
• Required Power Supplies:
• Available in a 208-pin PQFP Green and a 217-ball LFBGA Green Package
1.AT91SAM9XE128/256/512 Description
The AT91SAM9XE128/256/512 is based on the integration of an ARM926EJ-S processor with
fast ROM and RAM, 128, 256 or 512 Kbytes of Flash and a wide range of peripherals.
The embedded Flash memory can be programmed in-system via the JTAG-ICE interface or via
a parallel interface on a production programmer prior to mounting. Built-in lock bits and a security bit protect the firmware from accidental overwrite and preserves its confidentiality.
The AT91SAM9XE128/256/512 embeds an Ethernet MAC, one USB Device Port, and a USB
Host Controller. It also integrates several standard peripherals, like USART, SPI, TWI, Timer
Counters, Synchronous Serial Controller, ADC and a MultiMedia Card Interface.
The AT91SAM9XE128/256/512 system controller includes a reset controller capable of managing the power-on sequence of the microcontroller and the complete system. Correct device
operation can be monitored by a built-in brownout detector and a watchdog running off an integrated RC oscillator.
1149.1 JTAG Boundary Scan on All Digital Pins
– 1.65V to 1.95V for VDDBU, VDDCORE and VDDPLL
– 1.65V to 3.6V for VDDIOP1 (Peripheral I/Os)
– 3.0V to 3.6V for VDDIOP0 and VDDANA (Analog-to-digital Converter)
– Programmable 1.65V to 1.95V or 3.0V to 3.6V for VDDIOM (Memory I/Os)
The AT91SAM9XE128/256/512 is architectured on a 6-layer matrix, allowing a maximum internal bandwidth of six 32-bit buses. It also features an External Bus Interface capable of
interfacing with a wide range of memory devices.
The pinout and ball-out are fully compatible with the AT91SAM9260 with the exception that the
pin BMS is replaced by the pin ERASE.
6254A–ATARM–01-Feb-08
3
2.AT91SAM9XE128/256/512 Block Diagram
The block diagram shows all the features for the 217-LFBGA package. Some functions are not
accessible in the 208-PQFP package and the unavailable pins are highlighted in “Multiplexing
on PIO Controller A” on page 39, “Multiplexing on PIO Controller B” on page 40, “Multiplexing on
PIO Controller C” on page 41. The USB Host Port B is also not available. Table 2-1 on page 4
defines all the multiplexed and not multiplexed pins not available in the 208-PQFP package.
Table 2-1.Unavailable Signals in 208-pin PQFP Device
Table 3-1 gives details on the signal name classified by peripheral.
Table 3-1.Signal Description List
Active
Signal NameFunctionType
Power Supplies
VDDIOMEBI I/O Lines Power SupplyPower1.65V to 1.95V or 3.0V to 3.6V
VDDIOP0Peripherals I/O Lines Power SupplyPower 3.0V to 3.6V
VDDIOP1Peripherals I/O Lines Power SupplyPower 1.65V to 3.6V
VDDBUBackup I/O Lines Power SupplyPower1.65V to 1.95V
VDDANAAnalog Power SupplyPower3.0V to 3.6V
VDDPLLPLL Power SupplyPower1.65V to 1.95V
SCKxUSARTx Serial ClockI/O
TXDxUSARTx Transmit DataI/O
RXDxUSARTx Receive DataInput
RTSxUSARTx Request To SendOutput
CTSxUSARTx Clear To Send Input
DTR0USART0 Data Terminal ReadyOutput
DSR0USART0 Data Set ReadyInput
DCD0USART0 Data Carrier DetectInput
RI0USART0 Ring IndicatorInput
TCLKxTC Channel x External Clock InputInput
TIOAxTC Channel x I/O Line AI/O
TIOBxTC Channel x I/O Line BI/O
Serial Peripheral Interface - SPIx_
SPIx_MISOMaster In Slave OutI/O
SPIx_MOSIMaster Out Slave InI/O
SPIx_SPCKSPI Serial ClockI/O
SPIx_NPCS0SPI Peripheral Chip Select 0I/OLow
SPIx_NPCS1-SPIx_NPCS3SPI Peripheral Chip SelectOutputLow
Two-Wire Interface
TWDxTwo-wire Serial Data I/O
TWCKxTwo-wire Serial ClockI/O
USB Host Port
HDPAUSB Host Port A Data +Analog
HDMAUSB Host Port A Data -Analog
HDPBUSB Host Port B Data +Analog
HDMBUSB Host Port B Data +Analog
USB Device Port
DDMUSB Device Port Data -Analog
DDPUSB Device Port Data +Analog
Ethernet 10/100
ETXCKTransmit Clock or Reference ClockInputMII only, REFCK in RMII
ERXCKReceive ClockInputMII only
ETXENTransmit EnableOutput
ETX0-ETX3Transmit DataOutputETX0-ETX1 only in RMII
ETXERTransmit Coding ErrorOutputMII only
ERXDVReceive Data ValidInputRXDV in MII, CRSDV in RMII
ERX0-ERX3Receive DataInputERX0-ERX1 only in RMII
ERXERReceive ErrorInput
ECRSCarrier Sense and Data ValidInputMII only
ECOLCollision DetectInputMII only
EMDCManagement Data ClockOutput
EMDIOManagement Data Input/OutputI/O
EF100Force 100Mbit/sec.OutputHigh
The AT91SAM9XE128/256/512 has several types of power supply pins:
• VDDCORE pins: Power the core, including the processor, the embedded memories and the
peripherals; voltage ranges from 1.65V and 1.95V, 1.8V nominal.
• VDDIOM pins: Power the External Bus Interface I/O lines; voltage ranges between 1.65V and
1.95V (1.8V typical) or between 3.0V and 3.6V (3.3V nominal). The expected voltage range is
selectable by software.
• VDDIOP0 pins: Power the Peripheral I/O lines and the USB transceivers; voltage ranges from
3.0V and 3.6V, 3V or 3.3V nominal.
• VDDIOP1 pin: Powers the Peripherals I/O lines involving the Image Sensor Interface; voltage
ranges from 1.65V and 3.6V, 1.8V, 2.5V, 3V or 3.3V nominal.
• VDDBU pin: Powers the Slow Clock oscillator and a part of the System Controller; voltage
ranges from 1.65V to 1.95V, 1.8V nominal.
• VDDPLL pins: Power the PLL cells and the main oscillator; voltage ranges from 1.65V and
1.95V, 1.8V nominal.
• VDDANA pin: Powers the Analog to Digital Converter; voltage ranges from 3.0V and 3.6V,
3.3V nominal.
The power supplies VDDIOM, VDDIOP0 and VDDIOP1 are identified in the pinout table and
their associated I/O lines in the multiplexing tables. These supplies enable the user to power the
device differently for interfacing with memories and for interfacing with peripherals.
Ground pins GND are common to VDDCORE, VDDIOM, VDDIOP0 and VDDIOP1 pins power
supplies. Separated ground pins are provided for VDDBU, VDDPLL and VDDANA. These
ground pins are respectively GNDBU, GNDPLL and GNDANA.
5.2Power Consumption
The AT91SAM9XE128/256/512 consumes about 500 µA of static current on VDDCORE at
25°C. This static current rises up to 5 mA if the temperature increases to 85°C.
On VDDBU, the current does not exceed 20 µA in worst case conditions.
For dynamic power consumption, the AT91SAM9XE128/256/512 consumes a maximum of 130
mA on VDDCORE at maximum conditions (1.8V, 25°C, processor running full-performance
algorithm out of high speed memories).
5.3Programmable I/O Lines Power Supplies
The power supplies pins VDDIOM accept two voltage ranges. This allows the device to reach its
maximum speed either out of 1.8V or 3.3V external memories.
6254A–ATARM–01-Feb-08
15
The maximum speed is 100 MHz on the pin SDCK (SDRAM Clock) loaded with 30 pF for power
supply at 1.8V and 50 pF for power supply at 3.3V. The other signals (control, address and data
signals) do not exceed 50 MHz.
The voltage ranges are determined by programming registers in the Chip Configuration registers
located in the Matrix User Interface.
At reset, the selected voltage defaults to 3.3V nominal, and power supply pins can accept either
1.8V or 3.3V. The user must program the EBI voltage range before getting the device out of its
Slow Clock Mode.
6.I/O Line Considerations
6.1JTAG Port Pins
TMS, TDI and TCK are Schmitt trigger inputs and have no pull-up resistors.
TDO and RTCK are outputs, driven at up to VDDIOP0, and have no pull-up resistors.
The JTAGSEL pin is used to select the JTAG boundary scan when asserted at a high level (tied
to VDDBU). It integrates a permanent pull-down resistor of about 15 kΩ to GNDBU, so that it
can be left unconnected for normal operations.
The NTRST signal is described in Section 6.3.
All the JTAG signals are supplied with VDDIOP0.
6.2Test Pin
6.3Reset Pins
6.4ERASE Pin
The TST pin is used for manufacturing test purposes when asserted high. It integrates a permanent pull-down resistor of about 15 kΩ to GNDBU, so that it can be left unconnected for normal
operations. Driving this line at a high level leads to unpredictable results.
This pin is supplied with VDDBU.
NRST is a bi-directional with an open-drain output integrating a non-programmable pull-up resistor. It can be driven with voltage at up to VDDIOP0.
NTRST is an input which allows reset of the JTAG Test Access port. It has no action on the
processor.
As the product integrates power-on reset cells, which manages the processor and the JTAG
reset, the NRST and NTRST pins can be left unconnected.
The NRST and NTRST pins both integrate a permanent pull-up resistor to VDDIOP0. Its value
can be found in the table “DC Characteristics” in the section “AT91SAM9XE Electrical Characteristics” in the product datasheet.
The NRST signal is inserted in the Boundary Scan.
The pin ERASE is used to re-initialize the Flash content and the NVM bits. It integrates a permanent pull-down resistor of about 15 kΩ, so that it can be left unconnected for normal operations.
16
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
This pin is debounced on the RC oscillator or 32,768 Hz to improve the glitch tolerance. Minimum debouncing time is 200 ms.
6.5PIO Controllers
All the I/O lines are Schmitt trigger inputs and all the lines managed by the PIO Controllers integrate a programmable pull-up resistor. Refer to “DC Characteristics” in the section
“AT91SAM9XE128/256/512 Electrical Characteristics”. Programming of this pull-up resistor is
performed independently for each I/O line through the PIO Controllers.
After reset, all the I/O lines default as inputs with pull-up resistors enabled, except those which
are multiplexed with the External Bus Interface signals that require to be enabled as Peripheral
at reset. This is explicitly indicated in the column “Reset State” of the PIO Controller multiplexing
tables.
6.6I/O Line Drive Levels
The PIO lines PA0 to PA31 and PB0 to PB31 and PC0 to PC3 are high-drive current capable.
Each of these I/O lines can drive up to 16 mA permanently with a total of 350 mA on all I/O lines.
Refer to the “DC Characteristics” section of the product datasheet.
AT91SAM9XE128/256/512 Preliminary
6.7Shutdown Logic Pins
The SHDN pin is an output only, which is driven by the Shutdown Controller.
The pin WKUP is an input-only. It can accept voltages only between 0V and VDDBU.
6.8Slow Clock Selection
The AT91SAM9XE128/256/512 slow clock can be generated either by an external 32,768 Hz
crystal or the on-chip RC oscillator.
The startup counter delay for the slow clock oscillator depends on the OSCSEL signal. The
32,768 Hz startup delay is 1200 ms whereas it is 200 µs for the internal RC oscillator. The pin
OSCSEL must be tied either to GNDBU or VDDBU for correct operation of the device.
Refer to the Slow Clock Selection table in the Electrical Characteristics section of the product
datasheet for the states of the OSCSEL signal.
6254A–ATARM–01-Feb-08
17
7.Processor and Architecture
7.1ARM926EJ-S Processor
• RISC Processor Based on ARM v5TEJ Architecture with Jazelle technology for Java
acceleration
• Two Instruction Sets
– ARM High-performance 32-bit Instruction Set
– Thumb High Code Density 16-bit Instruction Set
– Virtually-addressed 4-way Associative Cache
– Eight words per line
– Write-through and Write-back Operation
– Pseudo-random or Round-robin Replacement
• Write Buffer
– Main Write Buffer with 16-word Data Buffer and 4-address Buffer
– DCache Write-back Buffer with 8-word Entries and a Single Address Entry
– Software Control Drain
• Standard ARM v4 and v5 Memory Management Unit (MMU)
– Access Permission for Sections
– Access Permission for large pages and small pages can be specified separately for
each quarter of the page
– 16 embedded domains
• Bus Interface Unit (BIU)
– Arbitrates and Schedules AHB Requests
– Separate Masters for both instruction and data access providing complete Matrix
system flexibility
– Separate Address and Data Buses for both the 32-bit instruction interface and the
32-bit data interface
– On Address and Data Buses, data can be 8-bit (Bytes), 16-bit (Half-words) or 32-bit
(Words)
Decode (D)
7.2Bus Matrix
18
AT91SAM9XE128/256/512 Preliminary
• 6-layer Matrix, handling requests from 6 masters
• Programmable Arbitration strategy
– Fixed-priority Arbitration
6254A–ATARM–01-Feb-08
7.2.1Matrix Masters
AT91SAM9XE128/256/512 Preliminary
– Round-Robin Arbitration, either with no default master, last accessed default master
or fixed default master
• Burst Management
– Breaking with Slot Cycle Limit Support
– Undefined Burst Length Support
• One Address Decoder provided per Master
– Three different slaves may be assigned to each decoded memory area: one for
internal ROM boot, one for internal flash boot, one after remap
• Boot Mode Select
– Non-volatile Boot Memory can be internal ROM or internal Flash
– Selection is made by General purpose NVM bit sampled at reset
• Remap Command
– Allows Remapping of an Internal SRAM in Place of the Boot Non-Volatile Memory
(ROM or Flash)
– Allows Handling of Dynamic Exception Vectors
The Bus Matrix of the AT91SAM9XE128/256/512 manages six Masters, thus each master can
perform an access concurrently with others, depending on whether the slave it accesses is
available.
7.2.2Matrix Slaves
Each Master has its own decoder, which can be defined specifically for each master. In order to
simplify the addressing, all the masters have the same decodings.
Table 7-1.List of Bus Matrix Masters
Master 0ARM926™ Instruction
Master 1ARM926 Data
Master 2Peripheral DMA Controller
Master 3USB Host Controller
Master 4Image Sensor Controller
Master 5Ethernet MAC
Each Slave has its own arbiter, thus allowing a different arbitration per Slave to be programmed.
Table 7-2.List of Bus Matrix Slaves
Slave 0Internal Flash
Slave 1Internal SRAM
Internal ROM
Slave 2
USB Host User Interface
Slave 3External Bus Interface
Slave 4Reserved
Slave 5Internal Peripherals
6254A–ATARM–01-Feb-08
19
7.2.3Masters to Slaves Access
All the Masters can normally access all the Slaves. However, some paths do not make sense,
such as allowing access from the Ethernet MAC to the internal peripherals.
Thus, these paths are forbidden or simply not wired, and shown as “–” in the following table.
Table 7-3.AT91SAM9XE128/256/512 Masters to Slaves Access
Master0 and 12345
ARM926 Instruction
Slave
0Internal FlashX––X
1Internal SRAMXXXXX
Internal ROMXX–––
2
UHP User InterfaceX––––
3External Bus InterfaceXXXXX
4Reserved– ––––
Internal PeripheralsXX–––
and Data
Periphera DMA
Controller
ISI ControllerEthernet MACUSB Host
Controller
7.3Peripheral DMA Controller
• Acting as one Matrix Master
• Allows data transfers from/to peripheral to/from any memory space without any intervention
of the processor.
• Next Pointer Support, forbids strong real-time constraints on buffer management.
• Twenty-four channels
– Two for each USART
– Two for the Debug Unit
– Two for each Serial Synchronous Controller
– Two for each Serial Peripheral Interface
– Two for the Two Wire Interface
– One for Multimedia Card Interface
– One for Analog To Digital Converter
The Peripheral DMA Controller handles transfer requests from the channel according to the following priorities (Low to High priorities):
– Two real-time Watchpoint Units
– Two Independent Registers: Debug Control Register and Debug Status Register
– Test Access Port Accessible through JTAG Protocol
– Debug Communications Channel
• Debug Unit
–Two-pin UART
– Debug Communication Channel Interrupt Handling
– Chip ID Register
• IEEE1149.1 JTAG Boundary-scan on All Digital Pins
6254A–ATARM–01-Feb-08
21
8.Memories
Figure 8-1.AT91SAM9XE128/256/512 Memory Mapping
0x0000 0000
0x0FFF FFFF
0x1000 0000
0x1FFF FFFF
0x2000 0000
0x2FFF FFFF
0x3000 0000
0x3FFF FFFF
0x4000 0000
0x4FFF FFFF
0x5000 0000
0x5FFF FFFF
0x6000 0000
0x6FFF FFFF
0x7000 0000
0x7FFF FFFF
0x8000 0000
0x8FFF FFFF
0x9000 0000
0xEFFF FFFF
0xF000 0000
0xFFFF FFFF
Address Memory Space
Internal Memories
EBI
Chip Select 0
EBI
Chip Select 1/
SDRAMC
EBI
Chip Select 2
EBI
Chip Select 3/
NANDFlash
EBI
Chip Select 4/
Compact Flash
Slot 0
EBI
Chip Select 5/
Compact Flash
Slot 1
EBI
Chip Select 6
EBI
Chip Select 7
Undefined
(Abort)
Internal Peripherals
256M Bytes
256M Bytes
256M Bytes
256M Bytes
256M Bytes
256M Bytes
256M Bytes
256M Bytes
256M Bytes
1,518M Bytes
256M Bytes
0x0000 0000
0x0FFF FFFF
0xF000 0000
0xFFFA 0000
0xFFFA 4000
0xFFFA 8000
0xFFFA C000
0xFFFB 0000
0xFFFB 4000
0xFFFB 8000
0xFFFB C000
0xFFFC 0000
0xFFFC 4000
0xFFFC 8000
0xFFFC C000
0xFFFD 0000
0xFFFD 4000
0xFFFD 8000
0xFFFD C000
0xFFFE 0000
0xFFFE 4000
0xFFFF C000
0xFFFF FFFF
Internal Memory Mapping
0x10 0000
0x10 8000
0x20 0000
0x28 0000
0x30 0000
0x30 8000
0x50 0000
0x50 4000
Peripheral Mapping
Reserved
TCO, TC1, TC2
TC3, TC4, TC5
Reserved
Boot Memory (1)
ROM
Reserved
Flash
Reserved
SRAM
Reserved
UHP
Reserved
UDP
MCI
TWI0
USART0
USART1
USART2
SSC
ISI
EMAC
SPI0
SPI1
USART3
USART4
TWI1
ADC
SYSC
32K Bytes
128, 256 or 512K Bytes
32K Bytes
16K Bytes
16K Bytes
16K Bytes
16K Bytes
16K Bytes
16K Bytes
16K Bytes
16K Bytes
16K Bytes
16K Bytes
16K Bytes
16K Bytes
16K Bytes
16K Bytes
16K Bytes
16K Bytes
16K Bytes
16K Bytes
16K Bytes
(1) Can be ROM or Flash
Notes :
depending on GPNVM[3]
System Controller Mapping
0xFFFF C000
0xFFFF E800
0xFFFF EA00
0xFFFF EC00
0xFFFF EE00
0xFFFF EF10
0xFFFF F000
0xFFFF F200
0xFFFF F400
0xFFFF F600
0xFFFF F800
0xFFFF FA00
0xFFFF FC00
0xFFFF FD00
0xFFFF FD10
0xFFFF FD20
0xFFFF FD30
0xFFFF FD40
0xFFFF FD50
0xFFFF FD60
0xFFFF FFFF
Reserved
ECC512 Bytes
512 BytesSDRAMC
512 BytesSMC
MATRIX
CCFG
AIC
DBGU
PIOA
PIOB
PIOC
EEFC
PMC
RSTC
SHDC
RTTC
PITC
WDTC
GPBR
Reserved
512 Bytes
512 Bytes
512 Bytes
512 Bytes
512 bytes
512 bytes
512 bytes
256 Bytes
16 Bytes
16 Bytes
16 Bytes
16 Bytes
16 Bytes
16 Bytes
22
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
A first level of address decoding is performed by the Bus Matrix, i.e., the implementation of the
Advanced High performance Bus (AHB) for its Master and Slave interfaces with additional
features.
Decoding breaks up the 4 Gbytes of address space into 16 banks of 256 Mbytes. The banks 1 to
7 are directed to the EBI that associates these banks to the external chip selects EBI_NCS0 to
EBI_NCS7. Bank 0 is reserved for the addressing of the internal memories, and a second level
of decoding provides 1 Mbyte of internal memory area. The bank 15 is reserved for the peripherals and provides access to the Advanced Peripheral Bus (APB).
Other areas are unused and performing an access within them provides an abort to the master
requesting such an access.
Each Master has its own bus and its own decoder, thus allowing a different memory mapping
per Master. However, in order to simplify the mappings, all the masters have a similar address
decoding.
Regarding Master 0 and Master 1 (ARM926 Instruction and Data), three different Slaves are
assigned to the memory space decoded at address 0x0: one for internal boot, one for external
boot, one after remap, refer to Table 8-3, “Internal Memory Mapping,” on page 27 for details.
A complete memory map is presented in Figure 8-1 on page 22.
8.1Embedded Memories
8.1.1AT91SAM9XE128
• 32 KB ROM
– Single Cycle Access at full matrix speed
• 16 KB Fast SRAM
– Single Cycle Access at full matrix speed
• 128 KB Embedded Flash
8.1.2AT91SAM9XE256
• 32 KB ROM
– Single Cycle Access at full matrix speed
• 32 KB Fast SRAM
– Single Cycle Access at full matrix speed
• 256 KB Embedded Flash
8.1.3AT91SAM9XE512
• 32 KB ROM
– Single Cycle Access at full matrix speed
• 32 KB Fast SRAM
– Single Cycle Access at full matrix speed
• 512 KB Embedded Flash
8.1.4ROM Topology
6254A–ATARM–01-Feb-08
The embedded ROM contains the Fast Flash Programming and the SAM-BA boot programs.
Each of these two programs is stored at 16 KB Boundary and the program executed at address
23
zero depends on the combination of the TST pin and PA0 to PA2 pins. Figure 8-2 shows the contents of the ROM and the program available at address zero.
Figure 8-2.ROM Boot Memory Map
0x0000 0000
SAM-BA
Program
FFPI
Program
0x0000 7FFF
ROM
8.1.4.1Fast Flash Programming Interface
The Fast Flash Programming Interface programs the device through a serial JTAG interface or a
multiplexed fully-handshaked parallel port. It allows gang-programming with market-standard
industrial programmers.
The FFPI supports read, page program, page erase, full erase, lock, unlock and protect
commands.
The Fast Flash Programming Interface is enabled and the Fast Programming Mode is entered
when the TST pin and the PA0 and PA1 pins are all tied high and PA2 is tied low.
0x0000 0000
0x0000 3FFF
SAM-BA
Program
TST=0
0x0000 0000
FFPI
Program
0x0000 3FFF
TST=1
PA0=1
PA1=1
PA2=0
8.1.4.2SAM-BA
Table 8-1.Signal Description
Signal NamePIOTypeActive LevelComments
PGMEN0PA0InputHighMust be connected to VDDIO
PGMEN1PA1InputHighMust be connected to VDDIO
PGMEN2PA2InputLowMust be connected to GND
PGMNCMDPA4InputLowPulled-up input at reset
PGMRDYPA5OutputHighPulled-up input at reset
PGMNOEPA6InputLowPulled-up input at reset
PGMNVALIDPA7OutputLowPulled-up input at reset
PGMM[3:0]PA8..PA10InputPulled-up input at reset
PGMD[15:0]PA12..PA27Input/OutputPulled-up input at reset
®
Boot Assistant
The SAM-BA Boot Assistant is a default Boot Program that provides an easy way to program in
situ the on-chip Flash memory.
The SAM-BA Boot Assistant supports serial communication through the DBGU or through the
USB Device Port.
24
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
• Communication through the DBGU supports a wide range of crystals from 3 to 20 MHz via
software auto-detection.
• Communication through the USB Device Port is depends on crystal selected:
– limited to an 18,432 Hz crystal if the internal RC oscillator is selected
– supports a wide range of crystals from 3 to 20 MHz if the 32,768 Hz crystal is
selected
The SAM-BA Boot provides an interface with SAM-BA Graphic User Interface (GUI).
8.1.5Embedded Flash
The Flash of the AT91SAM9XE128/256/512 is organized in 256/512/1024 pages of 512 bytes
directly connected to the 32-bit internal bus. Each page contains 128 words.
The Flash contains a 512-byte write buffer allowing the programming of a page. This buffer is
write-only as 128 32-bit words, and accessible all along the 1 MB address space, so that each
word can be written at its final address.
The Flash benefits from the integration of a power reset cell and from a brownout detector to
prevent code corruption during power supply changes, even in the worst conditions.
8.1.5.1Enhanced Embedded Flash Controller
The Enhanced Embedded Flash Controller (EEFC) is continuously clocked.
8.1.5.2Lock Regions
The Enhanced Embedded Flash Controller (EEFC) is a slave for the bus matrix and is configurable through its User Interface on the APB bus. It ensures the interface of the Flash block with
the 32-bit internal bus. Its 128-bit wide memory interface increases performance, four 32-bit data
are read during each access, this multiply the throughput by 4 in case of consecutive data.
It also manages the programming, erasing, locking and unlocking sequences of the Flash using
a full set of commands. One of the commands returns the embedded Flash descriptor definition
that informs the system about the Flash organization, thus making the software generic programming of the access parameters of the Flash (number of wait states, timings, etc.)
The memory plane of 128, 256 or 512 Kbytes is organized in 8, 16 or 32 locked regions of 32
pages each. Each lock region can be locked independently, so that the software protects the
first memory plane against erroneous programming:
If a locked-regions erase or program command occurs, the command is aborted and the EEFC
could trigger an interrupt.
The Lock bits are software programmable through the EEFC User Interface. The command “Set
Lock Bit” enables the protection. The command “Clear Lock Bit” unlocks the lock region.
Asserting the ERASE pin clears the lock bits, thus unlocking the entire Flash.
6254A–ATARM–01-Feb-08
25
Figure 8-3.Flash First Memory Plane Mapping
0x0020 0000
Locked Regions Area
128, 256 or 512 Kbytes
256, 512 or
1024 Pages
Page 0Locked Region 0
Page 31
512 bytes
0x0021 FFFF
or 0x0023 FFFF
or 0x0027 FFFF
8.1.5.3GPNVM Bits
8.1.5.4Security Bit
Locked Region 7, 15 or 31
32 bits wide
16 KBytes
The AT91SAM9XE128/256/512 features four GPNVM bits that can be cleared or set respectively through the commands “Clear GPNVM Bit” and “Set GPNVM Bit” of the EEFC User
Interface.
Table 8-2.General-purpose Non volatile Memory Bits
GPNVMBit[#]Function
0Security Bit
1Brownout Detector Enable
2Brownout Detector Reset Enable
3Boot Mode Select (BMS)
The AT91SAM9XE128/256/512 features a security bit, based on a specific GPNVM bit, GPNVMBit[0]. When the security is enabled, access to the Flash, either through the ICE interface or
through the Fast Flash Programming Interface, is forbidden. This ensures the confidentiality of
the code programmed in the Flash.
26
Disabling the security bit can only be achieved by asserting the ERASE pin at 1, and after a full
Flash erase is performed. When the security bit is deactivated, all accesses to the Flash are
permitted.
As the ERASE pin integrates a permanent pull-down, it can be left unconnected during normal
operation.
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
8.1.5.5Non-volatile Brownout Detector Control
Two GPNVM bits are used for controlling the brownout detector (BOD), so that even after a
power loss, the brownout detector operations remain in their state.
• GPNVMBit[1] is used as a brownout detector enable bit. Setting GPNVMBit[1] enables the
BOD, clearing it disables the BOD. Asserting ERASE clears GPNVMBit[1] and thus disables
the brownout detector by default.
• GPNVMBit[2] is used as a brownout reset enable signal for the reset controller. Setting
GPNVMBit[2] enables the brownout reset when a brownout is detected, clearing
GPNVMBit[2] disables the brownout reset. Asserting ERASE disables the brownout reset by
default.
8.1.6Boot Strategies
Table 8-3 summarizes the Internal Memory Mapping for each Master, depending on the Remap
status and the GPNVMBit[3] state at reset.
Table 8-3.Internal Memory Mapping
Address
0x0000 0000ROMFlashSRAM
REMAP = 0REMAP = 1
GPNVMBit[3] clearGPNVMBit[3] set
The system always boots at address 0x0. To ensure a maximum number of possibilities for boot,
the memory layout can be configured with two parameters.
REMAP allows the user to lay out the first internal SRAM bank to 0x0 to ease development. This
is done by software once the system has booted. Refer to the section “AT91SAM9XE Bus
Matrix” in the product datasheet for more details.
When REMAP = 0, a non volatile bit stored in Flash memory (GPNVMBit[3]) allows the user to
lay out to 0x0, at his convenience, the ROM or the Flash. Refer to the section “Enhanced
Embedded Flash Controller (EEFC)” in the product datasheet for more details.
Note:Memory blocks not affected by these parameters can always be seen at their specified base
addresses. See the complete memory map presented in Figure 8-1 on page 22.
The AT91SAM9XE Matrix manages a boot memory that depends on the value of GPNVMBit[3]
at reset. The internal memory area mapped between address 0x0 and 0x0FFF FFFF is reserved
for this purpose.
If GPNVMBit[3] is set, the boot memory is the internal Flash memory
If GPNVMBit[3] is clear (Flash reset State), the boot memory is the embedded ROM. After a
Flash erase, the boot memory is the internal ROM.
8.1.6.1GPNVMBit[3] = 0, Boot on Embedded ROM
The system boots using the Boot Program.
• Boot on slow clock (On-chip RC or 32,768 Hz)
• Auto baudrate detection
• SAM-BA Boot in case no valid program is detected in external NVM, supporting
– Serial communication on a DBGU
– USB Device Port
6254A–ATARM–01-Feb-08
27
8.1.6.2GPNVMBit[3] = 1, Boot on Internal Flash
• Boot on slow clock (On-chip RC or 32,768 Hz)
The customer-programmed software must perform a complete configuration.
To speed up the boot sequence when booting at 32 kHz, the user must take the following steps:
1. Program the PMC (main oscillator enable or bypass mode)
2. Program and start the PLL
3. Switch the main clock to the new value.
8.2External Memories
The external memories are accessed through the External Bus Interface. Each Chip Select line
has a 256 MB memory area assigned.
– Static Memory Controller on NCS0
– SDRAM Controller or Static Memory Controller on NCS1
– Static Memory Controller on NCS2
– Static Memory Controller on NCS3, Optional NAND Flash support
– Static Memory Controller on NCS4 - NCS5, Optional CompactFlash support
– Static Memory Controller on NCS6-NCS7
8.2.2Static Memory Controller
• 8-, 16- or 32-bit Data Bus
• Multiple Access Modes supported
– Byte Write or Byte Select Lines
– Asynchronous read in Page Mode supported (4- up to 32-byte page size)
• Multiple device adaptability
– Compliant with LCD Module
– Control signals programmable setup, pulse and hold time for each Memory Bank
• Multiple Wait State Management
– Programmable Wait State Generation
– External Wait Request
– Programmable Data Float Time
• Slow Clock mode supported
28
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
8.2.3SDRAM Controller
• Supported devices:
• Numerous configurations supported
• Programming facilities
• Energy-saving capabilities
• Error detection
• SDRAM Power-up Initialization by software
• CAS Latency of 1, 2 and 3 supported
• Auto Precharge Command not used
AT91SAM9XE128/256/512 Preliminary
– Standard and Low Power SDRAM (Mobile SDRAM)
– 2K, 4K, 8K Row Address Memory Parts
– SDRAM with two or four Internal Banks
– SDRAM with 16- or 32-bit Data Path
– Word, half-word, byte access
– Automatic page break when Memory Boundary has been reached
– Multibank Ping-pong Access
– Timing parameters specified by software
– Automatic refresh operation, refresh rate is programmable
– Self-refresh, power down and deep power down modes supported
– Refresh Error Interrupt
8.2.4Error Corrected Code Controller
• Hardware error corrected code generation
– Detection and correction by software
• Supports NAND Flash and SmartMedia devices with 8- or 16-bit data path
• Supports NAND Flash and SmartMedia with page sizes of 528,1056, 2112 and 4224 bytes
specified by software
• Supports 1 bit correction for a page of 512, 1024, 2112 and 4096 bytes with 8- or 16-bit data
path
• Supports 1 bit correction per 512 bytes of data for a page size of 512, 2048 and 4096 bytes
with 8-bit data path
• Supports 1 bit correction per 256 bytes of data for a page size of 512, 2048 and 4096 bytes
with 8-bit data path
6254A–ATARM–01-Feb-08
29
9.System Controller
The System Controller is a set of peripherals that allows handling of key elements of the system,
such as power, resets, clocks, time, interrupts, watchdog, etc.
The System Controller User Interface also embeds the registers that configure the Matrix and a
set of registers for the chip configuration. The chip configuration registers configure the EBI chip
select assignment and voltage range for external memories.
The System Controller’s peripherals are all mapped within the highest 16 KB of address space,
between addresses 0xFFFF E800 and 0xFFFF FFFF.
However, all the registers of System Controller are mapped on the top of the address space. All
the registers of the System Controller can be addressed from a single pointer by using the standard ARM instruction set, as the Load/Store instruction have an indexing mode of ±4 KB.
Figure 9-1 on page 31 shows the System Controller block diagram.
Figure 8-1 on page 22 shows the mapping of the User Interfaces of the System Controller
peripherals.
30
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
9.1System Controller Block Diagram
Figure 9-1.AT91SAM9XE128/256/512 System Controller Block Diagram
VDDCORE
VDDCORE
NRST
VDDBU
SHDN
WKUP
OSCSEL
XIN32
XOUT32
irq0-irq2
periph_irq[2..24]
efc2_irq
pit_irq
rtt_irq
wdt_irq
dbgu_irq
pmc_irq
rstc_irq
MCK
periph_nreset
dbgu_rxd
MCK
debug
periph_nreset
SLCK
debug
proc_nreset
cal
gpnvm[1]
BOD
POR
VDDBU
POR
SLCK
SLCK
backup_nreset
SLCK
RC
backup_nreset
OSC
SLOW
CLOCK
OSC
fiq
idle
flash_wrdis
rtt0_alarm
gpnvm[2]
por_ntrst
jtag_nreset
flash_poe
System Controller
Advanced
Interrupt
Controller
Debug
Unit
Periodic
Interval
Timer
Watchdog
Timer
bod_rst_en
Reset
Controller
Real-Time
Timer
Shutdown
Controller
wdt_fault
WDRPROC
4 General-Purpose
Backup Registers
VDDCORE Powered
por_ntrst
int
dbgu_irq
dbgu_txd
pit_irq
wdt_irq
rstc_irq
periph_nreset
proc_nreset
backup_nreset
VDDBU Powered
rtt_irq
rtt_alarm
nirq
nfiq
ntrst
proc_nreset
PCK
debug
jtag_nreset
MCK
periph_nreset
gpnvm[3]
security_bit(gpnvm0)
flash_poe
flash_wrdis
cal
gpnvm[1..3]
UHPCK
periph_clk[20]
periph_nreset
periph_irq[20]
ARM926EJ-S
Boundary Scan
TAP Controller
Bus Matrix
Embedded
Flash
USB Host
Por t
PA0-PA31
PB0-PB31
PC0-PC31
6254A–ATARM–01-Feb-08
XIN
XOUT
PLLRCA
MAIN
OSC
PLLA
PLLB
periph_nreset
periph_nreset
periph_clk[2..4]
dbgu_rxd
int
SLCK
MAINCK
PLLACK
PLLBCK
Power
Management
Controller
PIO
Controllers
periph_clk[2..27]
pck[0-1]
PCK
UDPCK
UHPCK
MCK
pmc_irq
idle
periph_irq[2..4]
irq0-irq2
fiq
dbgu_txd
UDPCK
periph_clk[10]
periph_nreset
periph_irq[10]
periph_clk[6..24]
periph_nreset
periph_irq[6..24]
in
out
enable
USB
Device
Por t
Embedded
Peripherals
31
9.2Reset Controller
• Based on two Power-on reset cells
– One on VDDBU and one on VDDCORE
• Status of the last reset
– Either general reset (VDDBU rising), wake-up reset (VDDCORE rising), software
reset, user reset or watchdog reset
• Controls the internal resets and the NRST pin output
– Allows shaping a reset signal for the external devices
9.3Brownout Detector and Power-on Reset
The AT91SAM9XE128/256/512 embeds one brownout detection circuit and power-on reset
cells. The power-on reset are supplied with and monitor VDDCORE and VDDBU.
Signals (flash_poe and flash_wrdis) are provided to the Flash to prevent any code corruption
during power-up or power-down sequences or if brownouts occur on the VDDCORE power
supply.
The power-on reset cell has a limited-accuracy threshold at around 1.5V. Its output remains low
during power-up until VDDCORE goes over this voltage level. This signal goes to the reset controller and allows a full re-initialization of the device.
The brownout detector monitors the VDDCORE level during operation by comparing it to a fixed
trigger level. It secures system operations in the most difficult environments and prevents code
corruption in case of brownout on the VDDCORE.
When the brownout detector is enabled and VDDCORE decreases to a value below the trigger
level (Vbot-), the brownout output is immediately activated. For more details on Vbot, see the
table “Brownout Detector Characteristics” in the section “AT91SAM9XE128/256/512 Electrical
Characteristics” in the full datasheet.
When VDDCORE increases above the trigger level (Vbot+, defined as Vbot + Vhyst), the reset
is released. The brownout detector only detects a drop if the voltage on VDDCORE stays below
the threshold voltage for longer than about 1µs.
The VDDCORE threshold voltage has a hysteresis of about 50 mV typical, to ensure spike free
brownout detection. The typical value of the brownout detector threshold is 1.55V with an accuracy of ± 2% and is factory calibrated.
The brownout detector is low-power, as it consumes less than 12 µA static current. However, it
can be deactivated to save its static current. In this case, it consumes less than 1 µA. The deactivation is configured through the GPNVMBit[1] of the Flash.
Additional information can be found in the “Electrical Characteristics” section of the product
datasheet.
9.4Shutdown Controller
• Shutdown and Wake-Up logic
– Software programmable assertion of the SHDN pin
– Deassertion Programmable on a WKUP pin level change or on alarm
32
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
9.5Clock Generator
Figure 9-2.Clock Generator Block Diagram
AT91SAM9XE128/256/512 Preliminary
• Embeds a low power 32,768 Hz slow clock oscillator and a low-power RC oscillator
selectable with OSCSEL signal
– Provides the permanent slow clock SLCK to the system
• Embeds the main oscillator
– Oscillator bypass feature
– Supports 3 to 20 MHz crystals
• Embeds 2 PLLs
– PLL A outputs 80 to 240 MHz clock
– PLL B outputs 70 MHz to 130 MHz clock
– Both integrate an input divider to increase output accuracy
– PLLB embeds its own filter
9.6Power Management Controller
•Provides:
– the Processor Clock PCK
– the Master Clock MCK, in particular to the Matrix and the memory interfaces
– the USB Device Clock UDPCK
– independent peripheral clocks, typically at the frequency of MCK
– 2 programmable clock outputs: PCK0, PCK1
• Five flexible operating modes:
– Normal Mode, processor and peripherals running at a programmable frequency
OSC_SEL
XIN32
XOUT32
XIN
XOUT
PLLRCA
Clock Generator
On Chip
RC OSC
Slow Clock
Oscillator
Main
Oscillator
PLL and
Divider A
PLL and
Divider B
ControlStatus
Power
Management
Controller
Slow Clock
SLCK
Main Clock
MAINCK
PLLA Clock
PLLACK
PLLB Clock
PLLBCK
6254A–ATARM–01-Feb-08
33
– Idle Mode, processor stopped waiting for an interrupt
– Slow Clock Mode, processor and peripherals running at low frequency
– Standby Mode, mix of Idle and Backup Mode, peripheral running at low frequency,
processor stopped waiting for an interrupt
– Backup Mode, Main Power Supplies off, VDDBU powered by a battery
Figure 9-3.AT91SAM9XE128/256/512 Power Management Controller Block Diagram
Processor
SLCK
MAINCK
PLLACK
PLLBCK
Master Clock Controller
Prescaler
/1,/2,/4,...,/64
Clock
Controller
Idle Mode
Divider
/1,/2,/4
Peripherals
Clock Controller
ON/OFF
Programmable Clock Controller
PCK
int
MCK
periph_clk[..]
9.7Periodic Interval Timer
• Includes a 20-bit Periodic Counter, with less than 1 µs accuracy
• Windowed, prevents the processor to be in a dead-lock on the watchdog access
9.9Real-time Timer
• Real-time Timer with 32-bit free-running back-up counter
• Integrates a 16-bit programmable prescaler running on slow clock
• Alarm Register capable to generate a wake-up of the system through the Shutdown
Controller
SLCK
MAINCK
PLLACK
PLLBCK
PLLBCK
®
/WindowsCE® compliant tick generator
Prescaler
/1,/2,/4,...,/64
USB Clock Controller
Divider
/1,/2,/4
ON/OFF
ON/OFF
pck[..]
UDPCK
UHPCK
9.10General-purpose Back-up Registers
• Four 32-bit backup general-purpose registers
34
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
9.11Advanced Interrupt Controller
• Controls the interrupt lines (nIRQ and nFIQ) of the ARM Processor
• Thirty-two individually maskable and vectored interrupt sources
– Source 0 is reserved for the Fast Interrupt Input (FIQ)
– Source 1 is reserved for system peripherals (PIT, RTT, PMC, DBGU, etc.)
– Programmable Edge-triggered or Level-sensitive Internal Sources
– Programmable Positive/Negative Edge-triggered or High/Low Level-sensitive
• Three External Sources plus the Fast Interrupt signal
• 8-level Priority Controller
– Drives the Normal Interrupt of the processor
– Handles priority of the interrupt sources 1 to 31
– Higher priority interrupts can be served during service of lower priority interrupt
• Vectoring
– Optimizes Interrupt Service Routine Branch and Execution
– One 32-bit Vector Register per interrupt source
– Interrupt Vector Register reads the corresponding current Interrupt Vector
•Protect Mode
– Easy debugging by preventing automatic operations when protect modeIs are
enabled
•Fast Forcing
– Permits redirecting any normal interrupt source on the Fast Interrupt of the
processor
AT91SAM9XE128/256/512 Preliminary
9.12Debug Unit
• Composed of two functions
–Two-pin UART
– Debug Communication Channel (DCC) support
•Two-pin UART
– Implemented features are 100% compatible with the standard Atmel USART
– Independent receiver and transmitter with a common programmable Baud Rate
Generator
– Even, Odd, Mark or Space Parity Generation
– Parity, Framing and Overrun Error Detection
– Automatic Echo, Local Loopback and Remote Loopback Channel Modes
– Support for two PDC channels with connection to receiver and transmitter
• Debug Communication Channel Support
– Offers visibility of and interrupt trigger from COMMRX and COMMTX signals from
the ARM Processor’s ICE Interface
6254A–ATARM–01-Feb-08
35
9.13Chip Identification
•Chip ID:
• JTAG ID: 05B1_C03F
• ARM926 TAP ID: 0x0792603F
– 0x3299A3A0 for the SAM9XE512
– 0x329A93A0 for the SAM9XE256
– 0x329973A0 for the SAM9XE128
36
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
10. Peripherals
10.1User Interface
The Peripherals are mapped in the upper 256 Mbytes of the address space between the
addresses 0xFFFA 0000 and 0xFFFC FFFF. Each User Peripheral is allocated 16 Kbytes of
address space. A complete memory map is presented in Figure 8-1 on page 22.
10.2Peripheral Identifier
The AT91SAM9XE128/256/512 embeds a wide range of peripherals. Table 10-1 defines the
Peripheral Identifiers of the AT91SAM9XE128/256/512. A peripheral identifier is required for the
control of the peripheral interrupt with the Advanced Interrupt Controller and for the control of the
peripheral clock with the Power Management Controller.
Note:Setting AIC, SYSC, UHP, ADC and IRQ0-2 bits in the clock set/clear registers of the PMC has no effect. The ADC clock is auto-
matically started for the first conversion. In Sleep Mode the ADC clock is automatically stopped after each conversion.
6254A–ATARM–01-Feb-08
37
10.2.1Peripheral Interrupts and Clock Control
10.2.1.1System Interrupt
The System Interrupt in Source 1 is the wired-OR of the interrupt signals coming from:
• the SDRAM Controller
• the Debug Unit
• the Periodic Interval Timer
• the Real-time Timer
• the Watchdog Timer
• the Reset Controller
• the Power Management Controller
• Enhanced Embedded Flash Controller
The clock of these peripherals cannot be deactivated and Peripheral ID 1 can only be used
within the Advanced Interrupt Controller.
10.2.1.2External Interrupts
All external interrupt signals, i.e., the Fast Interrupt signal FIQ or the Interrupt signals IRQ0 to
IRQ2, use a dedicated Peripheral ID. However, there is no clock control associated with these
peripheral IDs.
10.3Peripheral Signals Multiplexing on I/O Lines
The AT91SAM9XE128/256/512 features 3 PIO controllers, PIOA, PIOB, PIOC, which multiplex
the I/O lines of the peripheral set.
Each PIO Controller controls up to 32 lines. Each line can be assigned to one of two peripheral
functions, A or B. The multiplexing tables in the following paragraphs define how the I/O lines of
the peripherals A and B are multiplexed on the PIO Controllers. The two columns “Function” and
“Comments” have been inserted in this table for the user’s own comments; they may be used to
track how pins are defined in an application.
Note that some peripheral function which are output only, might be duplicated within the both
tables.
The column “Reset State” indicates whether the PIO Line resets in I/O mode or in peripheral
mode. If I/O is mentioned, the PIO Line resets in input with the pull-up enabled, so that the
device is maintained in a static state as soon as the reset is released. As a result, the bit corresponding to the PIO Line in the register PIO_PSR (Peripheral Status Register) resets low.
If a signal name is mentioned in the “Reset State” column, the PIO Line is assigned to this function and the corresponding bit in PIO_PSR resets high. This is the case of pins controlling
memories, in particular the address lines, which require the pin to be driven as soon as the reset
is released. Note that the pull-up resistor is also enabled in this case.
38
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
10.3.1PIO Controller A Multiplexing
Table 10-2.Multiplexing on PIO Controller A
PIO Controller AApplication Usage
AT91SAM9XE128/256/512 Preliminary
Reset
I/O LinePeripheral APeripheral BComments
PA0SPI0_MISOMCDB0I/OVDDIOP0
PA1SPI0_MOSIMCCDBI/OVDDIOP0
PA2SPI0_SPCKI/OVDDIOP0
PA3SPI0_NPCS0MCDB3I/OVDDIOP0
PA4RTS2MCDB2I/OVDDIOP0
PA5CTS2MCDB1I/OVDDIOP0
PA6MCDA0I/OVDDIOP0
PA7MCCDAI/OVDDIOP0
PA8MCCKI/OVDDIOP0
PA9MCDA1I/OVDDIOP0
PA10MCDA2ETX2I/OVDDIOP0
PA11MCDA3ETX3I/OVDDIOP0
PA12ETX0I/OVDDIOP0
PA13ETX1I/OVDDIOP0
PA14ERX0I/OVDDIOP0
PA15ERX1I/OVDDIOP0
PA16ETXENI/OVDDIOP0
PA17ERXDVI/OVDDIOP0
State
Power
SupplyFunctionComments
PA18ERXERI/OVDDIOP0
PA19ETXCKI/OVDDIOP0
PA20EMDCI/OVDDIOP0
PA21EMDIOI/OVDDIOP0
PA22ADTRGETXERI/OVDDIOP0
PA23TWD0ETX2I/OVDDIOP0
PA24TWCK0ETX3I/OVDDIOP0
PA25TCLK0ERX2I/OVDDIOP0
PA26TIOA0ERX3I/OVDDIOP0
PA27TIOA1ERXCKI/OVDDIOP0
PA28TIOA2ECRSI/OVDDIOP0
PA29SCK1ECOLI/OVDDIOP0
(1)
PA 30
(1)
PA 31
Note:1. Not available in the 208-lead PQFP package.
Note:1. Not available in the 208-lead PQFP package.
6254A–ATARM–01-Feb-08
41
10.4Embedded Peripherals
10.4.1Serial Peripheral Interface
• Supports communication with serial external devices
– Four chip selects with external decoder support allow communication with up to 15
peripherals
– Serial memories, such as DataFlash and 3-wire EEPROMs
– Serial peripherals, such as ADCs, DACs, LCD Controllers, CAN Controllers and
Sensors
– External co-processors
• Master or slave serial peripheral bus interface
– 8- to 16-bit programmable data length per chip select
– Programmable phase and polarity per chip select
– Programmable transfer delays between consecutive transfers and between clock
and data per chip select
– Programmable delay between consecutive transfers
– Selectable mode fault detection
• Very fast transfers supported
– Transfers with baud rates up to MCK
– The chip select line may be left active to speed up transfers on the same device
10.4.2Two-wire Interface
• Master, Multi-master and Slave modes supported
• General call supported in Slave mode
• Connection to PDC Channel
10.4.3USART
• Programmable Baud Rate Generator
• 5- to 9-bit full-duplex synchronous or asynchronous serial communications
• RS485 with driver control signal
• ISO7816, T = 0 or T = 1 Protocols for interfacing with smart cards
– 1, 1.5 or 2 stop bits in Asynchronous Mode or 1 or 2 stop bits in Synchronous Mode
– Parity generation and error detection
– Framing error detection, overrun error detection
– MSB- or LSB-first
– Optional break generation and detection
– By 8 or by 16 oversampling receiver frequency
– Hardware handshaking RTS-CTS
– Receiver time-out and transmitter timeguard
– Optional Multi-drop Mode with address generation and detection
– Optional Manchester Encoding
– NACK handling, error counter with repetition and iteration limit
42
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
• IrDA modulation and demodulation
– Communication at up to 115.2 Kbps
• Test Modes
– Remote Loopback, Local Loopback, Automatic Echo
10.4.4Serial Synchronous Controller
• Provides serial synchronous communication links used in audio and telecom applications
(with CODECs in Master or Slave Modes, I
• Contains an independent receiver and transmitter and a common clock divider
• Offers a configurable frame sync and data length
• Receiver and transmitter can be programmed to start automatically or on detection of
different event on the frame sync signal
• Receiver and transmitter include a data signal, a clock signal and a frame synchronization
signal
10.4.5Timer Counter
• Six 16-bit Timer Counter Channels
• Wide range of functions including:
– Frequency Measurement
– Event Counting
– Interval Measurement
– Pulse Generation
–Delay Timing
– Pulse Width Modulation
– Up/down Capabilities
• Each channel is user-configurable and contains:
– Three external clock inputs
– Five internal clock inputs
– Two multi-purpose input/output signals
• Two global registers that act on all three TC Channels
AT91SAM9XE128/256/512 Preliminary
2
S, TDM Buses, Magnetic Card Reader, etc.)
10.4.6Multimedia Card Interface
• One double-channel Multimedia Card Interface
• Compatibility with MultiMedia Card Specification Version 2.2
• Compatibility with SD Memory Card Specification Version 1.0
• Compatibility with SDIO Specification Version V1.0.
• Cards clock rate up to Master Clock divided by 2
• Embedded power management to slow down clock rate when not used
• MCI has two slot, each supporting
– One slot for one MultiMediaCard bus (up to 30 cards) or
– One SD Memory Card
• Support for stream, block and multi-block data read and write
6254A–ATARM–01-Feb-08
43
10.4.7USB Host Port
10.4.8USB Device Port
• Compliance with Open HCI Rev 1.0 Specification
• Compliance with USB V2.0 Full-speed and Low-speed Specification
• Supports both Low-Speed 1.5 Mbps and Full-speed 12 Mbps devices
• Root hub integrated with two downstream USB ports in the 217-LFBGA package
• Two embedded USB transceivers
• Supports power management
• Operates as a master on the Matrix
• USB V2.0 full-speed compliant, 12 MBits per second
• Embedded USB V2.0 full-speed transceiver
• Embedded 2,688-byte dual-port RAM for endpoints
• Suspend/Resume logic
• Ping-pong mode (two memory banks) for isochronous and bulk endpoints
• Sleep Mode and conversion sequencer – Automatic wakeup on trigger and back to sleep
mode after conversions of all enabled channels
• Four analog inputs shared with digital signals
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
45
46
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
11. ARM926EJ-S Processor
11.1Overview
The ARM926EJ-S processor is a member of the ARM9™ family of general-purpose microprocessors. The ARM926EJ-S implements ARM architecture version 5TEJ and is targeted at multitasking applications where full memory management, high performance, low die size and low
power are all important features.
The ARM926EJ-S processor supports the 32-bit ARM and 16-bit THUMB instruction sets,
enabling the user to trade off between high performance and high code density. It also supports
8-bit Java instruction set and includes features for efficient execution of Java bytecode, providing a Java performance similar to a JIT (Just-In-Time compilers), for the next generation of Javapowered wireless and embedded devices. It includes an enhanced multiplier design for
improved DSP performance.
The ARM926EJ-S processor supports the ARM debug architecture and includes logic to assist
in both hardware and software debug.
The ARM926EJ-S provides a complete high performance processor subsystem, including:
• an ARM9EJ-S
• a Memory Management Unit (MMU)
• separate instruction and data AMBA AHB bus interfaces
• separate instruction and data TCM interfaces
AT91SAM9XE128/256/512 Preliminary
™
integer core
Table 11-1.Reference Document Table
Owner-ReferenceDenomination
ARM Ltd. - DD10198BARM926EJS Technical Reference Manual
ARM Ltd. - DD10222BARM9EJ-S Technical Reference Manual
In Jazelle state, all instruction Fetches are in words.
11.3.2Switching State
The operating state of the ARM9EJ-S core can be switched between:
• ARM state and THUMB state using the BX and BLX instructions, and loads to the PC
• ARM state and Jazelle state using the BXJ instruction
All exceptions are entered, handled and exited in ARM state. If an exception occurs in Thumb or
Jazelle states, the processor reverts to ARM state. The transition back to Thumb or Jazelle
states occurs automatically on return from the exception handler.
AT91SAM9XE128/256/512 Preliminary
11.3.3Instruction Pipelines
The ARM9EJ-S core uses two kinds of pipelines to increase the speed of the flow of instructions
to the processor.
A five-stage (five clock cycles) pipeline is used for ARM and Thumb states. It consists of Fetch,
Decode, Execute, Memory and Writeback stages.
A six-stage (six clock cycles) pipeline is used for Jazelle state It consists of Fetch,
Jazelle/Decode (two clock cycles), Execute, Memory and Writeback stages.
11.3.4Memory Access
The ARM9EJ-S core supports byte (8-bit), half-word (16-bit) and word (32-bit) access. Words
must be aligned to four-byte boundaries, half-words must be aligned to two-byte boundaries and
bytes can be placed on any byte boundary.
Because of the nature of the pipelines, it is possible for a value to be required for use before it
has been placed in the register bank by the actions of an earlier instruction. The ARM9EJ-S control logic automatically detects these cases and stalls the core or forward data.
11.3.5Jazelle Technology
The Jazelle technology enables direct and efficient execution of Java byte codes on ARM processors, providing high performance for the next generation of Java-powered wireless and
embedded devices.
The new Java feature of ARM9EJ-S can be described as a hardware emulation of a JVM (Java
Virtual Machine). Java mode will appear as another state: instead of executing ARM or Thumb
instructions, it executes Java byte codes. The Java byte code decoder logic implemented in
ARM9EJ-S decodes 95% of executed byte codes and turns them into ARM instructions without
any overhead, while less frequently used byte codes are broken down into optimized sequences
of ARM instructions. The hardware/software split is invisible to the programmer, invisible to the
application and invisible to the operating system. All existing ARM registers are re-used in
Jazelle state and all registers then have particular functions in this mode.
6254A–ATARM–01-Feb-08
49
Minimum interrupt latency is maintained across both ARM state and Java state. Since byte
codes execution can be restarted, an interrupt automatically triggers the core to switch from
Java state to ARM state for the execution of the interrupt handler. This means that no special
provision has to be made for handling interrupts while executing byte codes, whether in hardware or in software.
11.3.6ARM9EJ-S Operating Modes
In all states, there are seven operation modes:
• User mode is the usual ARM program execution state. It is used for executing most
application programs
• Fast Interrupt (FIQ) mode is used for handling fast interrupts. It is suitable for high-speed data
transfer or channel process
• Interrupt (IRQ) mode is used for general-purpose interrupt handling
• Supervisor mode is a protected mode for the operating system
• Abort mode is entered after a data or instruction prefetch abort
• System mode is a privileged user mode for the operating system
• Undefined mode is entered when an undefined instruction exception occurs
Mode changes may be made under software control, or may be brought about by external interrupts or exception processing. Most application programs execute in User Mode. The non-user
modes, known as privileged modes, are entered in order to service interrupts or exceptions or to
access protected resources.
11.3.7ARM9EJ-S Registers
The ARM9EJ-S core has a total of 37 registers.
• 31 general-purpose 32-bit registers
• 6 32-bit status registers
Table 11-2 shows all the registers in all modes.
Table 11-2.ARM9TDMI Modes and Registers Layout
User and
System Mode
Supervisor
ModeAbort Mode
R0R0R0R0R0R0
R1R1R1R1R1R1
R2R2R2R2R2R2
R3R3R3R3R3R3
R4R4R4R4R4R4
R5R5R5R5R5R5
R6R6R6R6R6R6
R7R7R7R7R7R7
R8R8R8R8R8
R9R9R9R9R9
Undefined
Mode
Interrupt
Mode
Fast Interrupt
Mode
R8_FIQ
R9_FIQ
50
R10R10R10R10R10
R11R11R11R11R11
AT91SAM9XE128/256/512 Preliminary
R10_FIQ
R11_FIQ
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
Table 11-2.ARM9TDMI Modes and Registers Layout (Continued)
User and
System Mode
R12R12R12R12R12R12_FIQ
R13R13_SVCR13_ABORTR13_UNDEFR13_IRQR13_FIQ
R14R14_SVCR14_ABORTR14_UNDEFR14_IRQR14_FIQ
PCPCPCPCPCPC
CPSRCPSRCPSRCPSRCPSRCPSR
Supervisor
ModeAbort Mode
SPSR_SVC
SPSR_ABORTSPSR_UNDE
Undefined
Mode
F
Interrupt
Mode
SPSR_IRQSPSR_FIQ
Mode-specific banked registers
Fast Interrupt
Mode
The ARM state register set contains 16 directly-accessible registers, r0 to r15, and an additional
register, the Current Program Status Register (CPSR). Registers r0 to r13 are general-purpose
registers used to hold either data or address values. Register r14 is used as a Link register that
holds a value (return address) of r15 when BL or BLX is executed. Register r15 is used as a program counter (PC), whereas the Current Program Status Register (CPSR) contains condition
code flags and the current mode bits.
In privileged modes (FIQ, Supervisor, Abort, IRQ, Undefined), mode-specific banked registers
(r8 to r14 in FIQ mode or r13 to r14 in the other modes) become available. The corresponding
banked registers r14_fiq, r14_svc, r14_abt, r14_irq, r14_und are similarly used to hold the values (return address for each mode) of r15 (PC) when interrupts and exceptions arise, or when
BL or BLX instructions are executed within interrupt or exception routines. There is another register called Saved Program Status Register (SPSR) that becomes available in privileged modes
instead of CPSR. This register contains condition code flags and the current mode bits saved as
a result of the exception that caused entry to the current (privileged) mode.
In all modes and due to a software agreement, register r13 is used as stack pointer.
The use and the function of all the registers described above should obey ARM Procedure Call
Standard (APCS) which defines:
• constraints on the use of registers
• stack conventions
• argument passing and result return
For more details, refer to ARM Software Development Kit.
The Thumb state register set is a subset of the ARM state set. The programmer has direct
access to:
• Eight general-purpose registers r0-r7
• Stack pointer, SP
• Link register, LR (ARM r14)
•PC
• CPSR
6254A–ATARM–01-Feb-08
51
There are banked registers SPs, LRs and SPSRs for each privileged mode (for more details see
the ARM9EJ-S Technical Reference Manual, revision r1p2 page 2-12).
11.3.7.1Status Registers
The ARM9EJ-S core contains one CPSR, and five SPSRs for exception handlers to use. The
program status registers:
• hold information about the most recently performed ALU operation
• control the enabling and disabling of interrupts
• set the processor operation mode
Figure 11-2. Status Register Format
31 30 2928 27247 6 50
NZCV QJIFT
Reserved
Jazelle state bit
Reserved
Sticky Overflow
Overflow
Carry/Borrow/Extend
Zero
Negative/Less than
Mode
Mode bits
Thumb state bit
FIQ disable
IRQ disable
Figure 11-2 shows the status register format, where:
• N: Negative, Z: Zero, C: Carry, and V: Overflow are the four ALU flags
• The Sticky Overflow (Q) flag can be set by certain multiply and fractional arithmetic
instructions like QADD, QDADD, QSUB, QDSUB, SMLAxy, and SMLAWy needed to achieve
DSP operations.
The Q flag is sticky in that, when set by an instruction, it remains set until explicitly cleared by
an MSR instruction writing to the CPSR. Instructions cannot execute conditionally on the
status of the Q flag.
• The J bit in the CPSR indicates when the ARM9EJ-S core is in Jazelle state, where:
– J = 0: The processor is in ARM or Thumb state, depending on the T bit
– J = 1: The processor is in Jazelle state.
• Mode: five bits to encode the current processor mode
11.3.7.2Exceptions
11.3.7.3Exception Types and Priorities
The ARM9EJ-S supports five types of exceptions. Each type drives the ARM9EJ-S in a privi-
leged mode. The types of exceptions are:
• Fast interrupt (FIQ)
• Normal interrupt (IRQ)
• Data and Prefetched aborts (Abort)
• Undefined instruction (Undefined)
• Software interrupt and Reset (Supervisor)
52
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
When an exception occurs, the banked version of R14 and the SPSR for the exception mode
are used to save the state.
More than one exception can happen at a time, therefore the ARM9EJ-S takes the arisen exceptions according to the following priority order:
• Reset (highest priority)
• Data Abort
•FIQ
•IRQ
•Prefetch Abort
• BKPT, Undefined instruction, and Software Interrupt (SWI) (Lowest priority)
The BKPT, or Undefined instruction, and SWI exceptions are mutually exclusive.
Note that there is one exception in the priority scheme: when FIQs are enabled and a Data Abort
occurs at the same time as an FIQ, the ARM9EJ-S core enters the Data Abort handler, and proceeds immediately to FIQ vector. A normal return from the FIQ causes the Data Abort handler to
resume execution. Data Aborts must have higher priority than FIQs to ensure that the transfer
error does not escape detection.
11.3.7.4Exception Modes and Handling
Exceptions arise whenever the normal flow of a program must be halted temporarily, for example, to service an interrupt from a peripheral.
When handling an ARM exception, the ARM9EJ-S core performs the following operations:
1. Preserves the address of the next instruction in the appropriate Link Register that corresponds to the new mode that has been entered. When the exception entry is from:
– ARM and Jazelle states, the ARM9EJ-S copies the address of the next instruction
into LR (current PC(r15) + 4 or PC + 8 depending on the exception).
– THUMB state, the ARM9EJ-S writes the value of the PC into LR, offset by a value
(current PC + 2, PC + 4 or PC + 8 depending on the exception) that causes the
program to resume from the correct place on return.
2. Copies the CPSR into the appropriate SPSR.
3. Forces the CPSR mode bits to a value that depends on the exception.
4. Forces the PC to fetch the next instruction from the relevant exception vector.
The register r13 is also banked across exception modes to provide each exception handler with
private stack pointer.
The ARM9EJ-S can also set the interrupt disable flags to prevent otherwise unmanageable
nesting of exceptions.
When an exception has completed, the exception handler must move both the return value in
the banked LR minus an offset to the PC and the SPSR to the CPSR. The offset value varies
according to the type of exception. This action restores both PC and the CPSR.
6254A–ATARM–01-Feb-08
The fast interrupt mode has seven private registers r8 to r14 (banked registers) to reduce or
remove the requirement for register saving which minimizes the overhead of context switching.
The Prefetch Abort is one of the aborts that indicates that the current memory access cannot be
completed. When a Prefetch Abort occurs, the ARM9EJ-S marks the prefetched instruction as
invalid, but does not take the exception until the instruction reaches the Execute stage in the
53
pipeline. If the instruction is not executed, for example because a branch occurs while it is in the
pipeline, the abort does not take place.
The breakpoint (BKPT) instruction is a new feature of ARM9EJ-S that is destined to solve the
problem of the Prefetch Abort. A breakpoint instruction operates as though the instruction
caused a Prefetch Abort.
A breakpoint instruction does not cause the ARM9EJ-S to take the Prefetch Abort exception until
the instruction reaches the Execute stage of the pipeline. If the instruction is not executed, for
example because a branch occurs while it is in the pipeline, the breakpoint does not take place.
11.3.8ARM Instruction Set Overview
The ARM instruction set is divided into:
• Branch instructions
• Data processing instructions
• Status register transfer instructions
• Load and Store instructions
• Coprocessor instructions
• Exception-generating instructions
ARM instructions can be executed conditionally. Every instruction contains a 4-bit condition
code field (bits[31:28]).
For further details, see the ARM Technical Reference Manual referenced in Table 11-1 on page
47.
Table 11-3 gives the ARM instruction mnemonic list.
Table 11-3.ARM Instruction Mnemonic List
MnemonicOperationMnemonicOperation
MOVMoveMVNMove Not
ADDAddADCAdd with Carry
SUBSubtractSBCSubtract with Carry
RSBReverse SubtractRSCReverse Subtract with Carry
CMPCompareCMNCompare Negated
TSTTestTEQTest Equivalence
ANDLogical ANDBICBit Clear
EORLogical Exclusive ORORRLogical (inclusive) OR
MULMultiplyMLAMultiply Accumulate
SMULLSign Long MultiplyUMULLUnsigned Long Multiply
SMLALSigned Long Multiply AccumulateUMLAL
MSRMove to Status RegisterMRSMove From Status Register
B BranchBLBranch and Link
BXBranch and ExchangeSWISoftware Interrupt
LDRLoad WordSTRStore Word
LDRSHLoad Signed Halfword
LDRSBLoad Signed Byte
Unsigned Long Multiply
Accumulate
54
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
Table 11-3.ARM Instruction Mnemonic List (Continued)
MnemonicOperationMnemonicOperation
LDRHLoad Half WordSTRHStore Half Word
LDRBLoad ByteSTRBStore Byte
LDRBT
LDRTLoad Register with TranslationSTRTStore Register with Translation
LDMLoad MultipleSTMStore Multiple
SWPSwap WordSWPBSwap Byte
MCRMove To CoprocessorMRCMove From Coprocessor
LDCLoad To CoprocessorSTCStore From Coprocessor
CDPCoprocessor Data Processing
11.3.9New ARM Instruction Set
.
Table 11-4.New ARM Instruction Mnemonic List
MnemonicOperationMnemonicOperation
BXJBranch and exchange to JavaMRRCMove double from coprocessor
BLX
SMLAxy
SMLALSigned Multiply Accumulate LongCDP2
SMLAWy
SMULxySigned Multiply 16 * 16 bitPLD
SMULWySigned Multiply 32 * 16 bitSTRDStore Double
QADDSaturated AddSTC2
QDADDSaturated Add with DoubleLDRDLoad Double
QSUBSaturated subtractLDC2 Alternative Load to Coprocessor
QDSUBSaturated Subtract with doubleCLZCount Leading Zeroes
AT91SAM9XE128/256/512 Preliminary
Load Register Byte with
Translation
(1)
Branch, Link and exchangeMCR2
Signed Multiply Accumulate 16 *
16 bit
Signed Multiply Accumulate 32 *
16 bit
STRBT
MCRRMove double to coprocessor
BKPTBreakpoint
Store Register Byte with
Translation
Alternative move of ARM reg to
coprocessor
Alternative Coprocessor Data
Processing
Soft Preload, Memory prepare to
load from address
Alternative Store from
Coprocessor
Notes: 1. A Thumb BLX contains two consecutive Thumb instructions, and takes four cycles.
11.3.10Thumb Instruction Set Overview
The Thumb instruction set is a re-encoded subset of the ARM instruction set.
The Thumb instruction set is divided into:
• Branch instructions
• Data processing instructions
• Load and Store instructions
• Load and Store multiple instructions
6254A–ATARM–01-Feb-08
55
• Exception-generating instruction
Table 11-4 shows the Thumb instruction set, for further details, see the ARM Technical Refer-
ence Manual referenced in Table 11-1 on page 47.
Table 11-5 gives the Thumb instruction mnemonic list.
Table 11-5.Thumb Instruction Mnemonic List
MnemonicOperationMnemonicOperation
MOVMoveMVNMove Not
ADDAddADCAdd with Carry
SUBSubtractSBCSubtract with Carry
CMPCompareCMNCompare Negated
TSTTestNEGNegate
ANDLogical ANDBICBit Clear
EORLogical Exclusive ORORRLogical (inclusive) OR
LSLLogical Shift LeftLSRLogical Shift Right
ASRArithmetic Shift RightRORRotate Right
MULMultiplyBLXBranch, Link, and Exchange
B BranchBLBranch and Link
BXBranch and ExchangeSWISoftware Interrupt
LDRLoad WordSTRStore Word
LDRHLoad Half WordSTRHStore Half Word
LDRBLoad ByteSTRBStore Byte
LDRSHLoad Signed HalfwordLDRSBLoad Signed Byte
LDMIALoad MultipleSTMIAStore Multiple
PUSHPush Register to stackPOPPop Register from stack
BCCConditional BranchBKPTBreakpoint
11.4CP15 Coprocessor
Coprocessor 15, or System Control Coprocessor CP15, is used to configure and control all the
items in the list below:
• ARM9EJ-S
• Caches (ICache, DCache and write buffer)
•TCM
•MMU
• Other system options
To control these features, CP15 provides 16 additional registers. See Table 11-6.
56
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
Table 11-6.CP15 Registers
RegisterName Read/Write
0ID Code
0Cache type
0TCM status
1ControlRead/write
2Translation Table BaseRead/write
3 Domain Access ControlRead/write
4 ReservedNone
5Data fault Status
5Instruction fault status
6Fault AddressRead/write
7Cache OperationsRead/Write
8TLB operations Unpredictable/Write
9cache lockdown
9TCM regionRead/write
(1)
(1)
(1)
(1)
(1)
(2)
Read/Unpredictable
Read/Unpredictable
Read/Unpredictable
Read/write
Read/write
Read/write
10TLB lockdownRead/write
11ReservedNone
12ReservedNone
13FCSE PID
13Context ID
(1)
(1)
Read/write
Read/Write
14 ReservedNone
15 Test configurationRead/Write
Notes: 1. Register locations 0,5, and 13 each provide access to more than one register. The register
accessed depends on the value of the opcode_2 field.
2. Register location 9 provides access to more than one register. The register accessed depends
on the value of the CRm field.
6254A–ATARM–01-Feb-08
57
11.4.1CP15 Registers Access
CP15 registers can only be accessed in privileged mode by:
• MCR (Move to Coprocessor from ARM Register) instruction is used to write an ARM register
to CP15.
• MRC (Move to ARM Register from Coprocessor) instruction is used to read the value of
CP15 to an ARM register.
Other instructions like CDP, LDC, STC can cause an undefined instruction exception.
The MCR, MRC instructions bit pattern is shown below:
3130292827262524
cond1110
2322212019181716
opcode_1LCRn
15141312111098
Rd1111
76543210
opcode_21CRm
• CRm[3:0]: Specified Coprocessor Action
Determines specific coprocessor action. Its value is dependent on the CP15 register used. For details, refer to CP15 specific register behavior.
• opcode_2[7:5]
Determines specific coprocessor operation code. By default, set to 0.
• Rd[15:12]: ARM Register
Defines the ARM register whose value is transferred to the coprocessor. If R15 is chosen, the result is unpredictable.
• CRn[19:16]: Coprocessor Register
Determines the destination coprocessor register.
• L: Instruction Bit
0 = MCR instruction
1 = MRC instruction
• opcode_1[23:20]: Coprocessor Code
Defines the coprocessor specific code. Value is c15 for CP15.
• cond [31:28]: Condition
For more details, see Chapter 2 in ARM926EJ-S TRM.
58
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
11.5Memory Management Unit (MMU)
The ARM926EJ-S processor implements an enhanced ARM architecture v5 MMU to provide virtual memory features required by operating systems like Symbian
®
Linux
. These virtual memory features are memory access permission controls and virtual to
physical address translations.
The Virtual Address generated by the CPU core is converted to a Modified Virtual Address
(MVA) by the FCSE (Fast Context Switch Extension) using the value in CP15 register13. The
MMU translates modified virtual addresses to physical addresses by using a single, two-level
page table set stored in physical memory. Each entry in the set contains the access permissions
and the physical address that correspond to the virtual address.
The first level translation tables contain 4096 entries indexed by bits [31:20] of the MVA. These
entries contain a pointer to either a 1 MB section of physical memory along with attribute information (access permissions, domain, etc.) or an entry in the second level translation tables;
coarse table and fine table.
The second level translation tables contain two subtables, coarse table and fine table. An entry
in the coarse table contains a pointer to both large pages and small pages along with access
permissions. An entry in the fine table contains a pointer to large, small and tiny pages.
Table 11-7 shows the different attributes of each page in the physical memory.
The access control logic controls access information for every entry in the translation table. The
access control logic checks two pieces of access information: domain and access permissions.
The domain is the primary access control mechanism for a memory region; there are 16 of them.
It defines the conditions necessary for an access to proceed. The domain determines whether
the access permissions are used to qualify the access or whether they should be ignored.
The second access control mechanism is access permissions that are defined for sections and
for large, small and tiny pages. Sections and tiny pages have a single set of access permissions
whereas large and small pages can be associated with 4 sets of access permissions, one for
each subpage (quarter of a page).
11.5.2Translation Look-aside Buffer (TLB)
The Translation Look-aside Buffer (TLB) caches translated entries and thus avoids going
through the translation process every time. When the TLB contains an entry for the MVA (Modi-
6254A–ATARM–01-Feb-08
59
fied Virtual Address), the access control logic determines if the access is permitted and outputs
the appropriate physical address corresponding to the MVA. If access is not permitted, the MMU
signals the CPU core to abort.
If the TLB does not contain an entry for the MVA, the translation table walk hardware is invoked
to retrieve the translation information from the translation table in physical memory.
11.5.3Translation Table Walk Hardware
The translation table walk hardware is a logic that traverses the translation tables located in
physical memory, gets the physical address and access permissions and updates the TLB.
The number of stages in the hardware table walking is one or two depending whether the
address is marked as a section-mapped access or a page-mapped access.
There are three sizes of page-mapped accesses and one size of section-mapped access. Pagemapped accesses are for large pages, small pages and tiny pages. The translation process
always begins with a level one fetch. A section-mapped access requires only a level one fetch,
but a page-mapped access requires an additional level two fetch. For further details on the
MMU, please refer to chapter 3 in ARM926EJ-S Technical Reference Manual.
11.5.4MMU Faults
The MMU generates an abort on the following types of faults:
• Alignment faults (for data accesses only)
• Translation faults
• Domain faults
• Permission faults
The access control mechanism of the MMU detects the conditions that produce these faults. If
the fault is a result of memory access, the MMU aborts the access and signals the fault to the
CPU core.The MMU retains status and address information about faults generated by the data
accesses in the data fault status register and fault address register. It also retains the status of
faults generated by instruction fetches in the instruction fault status register.
The fault status register (register 5 in CP15) indicates the cause of a data or prefetch abort, and
the domain number of the aborted access when it happens. The fault address register (register 6
in CP15) holds the MVA associated with the access that caused the Data Abort. For further
details on MMU faults, please refer to chapter 3 in ARM926EJ-S Technical Reference Manual.
11.6Caches and Write Buffer
The ARM926EJ-S contains a 16-Kbyte Instruction Cache (ICache), a 8-Kbyte Data Cache
(DCache), and a write buffer. Although the ICache and DCache share common features, each
still has some specific mechanisms.
The caches (ICache and DCache) are four-way set associative, addressed, indexed and tagged
using the Modified Virtual Address (MVA), with a cache line length of eight words with two dirty
bits for the DCache. The ICache and DCache provide mechanisms for cache lockdown, cache
pollution control, and line replacement.
A new feature is now supported by ARM926EJ-S caches called allocate on read-miss commonly
known as wrapping. This feature enables the caches to perform critical word first cache refilling.
This means that when a request for a word causes a read-miss, the cache performs an AHB
access. Instead of loading the whole line (eight words), the cache loads the critical word first, so
60
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
the processor can reach it quickly, and then the remaining words, no matter where the word is
located in the line.
The caches and the write buffer are controlled by the CP15 register 1 (Control), CP15 register 7
(cache operations) and CP15 register 9 (cache lockdown).
11.6.1Instruction Cache (ICache)
The ICache caches fetched instructions to be executed by the processor. The ICache can be
enabled by writing 1 to I bit of the CP15 Register 1 and disabled by writing 0 to this same bit.
When the MMU is enabled, all instruction fetches are subject to translation and permission
checks. If the MMU is disabled, all instructions fetches are cachable, no protection checks are
made and the physical address is flat-mapped to the modified virtual address. With the MVA use
disabled, context switching incurs ICache cleaning and/or invalidating.
When the ICache is disabled, all instruction fetches appear on external memory (AHB) (see
Tables 4-1 and 4-2 in page 4-4 in ARM926EJ-S TRM).
On reset, the ICache entries are invalidated and the ICache is disabled. For best performance,
ICache should be enabled as soon as possible after reset.
11.6.2Data Cache (DCache) and Write Buffer
ARM926EJ-S includes a DCache and a write buffer to reduce the effect of main memory bandwidth and latency on data access performance. The operations of DCache and write buffer are
closely connected.
11.6.2.1DCache
The DCache needs the MMU to be enabled. All data accesses are subject to MMU permission
and translation checks. Data accesses that are aborted by the MMU do not cause linefills or data
accesses to appear on the AMBA ASB interface. If the MMU is disabled, all data accesses are
noncachable, nonbufferable, with no protection checks, and appear on the AHB bus. All
addresses are flat-mapped, VA = MVA = PA, which incurs DCache cleaning and/or invalidating
every time a context switch occurs.
The DCache stores the Physical Address Tag (PA Tag) from which every line was loaded and
uses it when writing modified lines back to external memory. This means that the MMU is not
involved in write-back operations.
Each line (8 words) in the DCache has two dirty bits, one for the first four words and the other
one for the second four words. These bits, if set, mark the associated half-lines as dirty. If the
cache line is replaced due to a linefill or a cache clean operation, the dirty bits are used to decide
whether all, half or none is written back to memory.
DCache can be enabled or disabled by writing either 1 or 0 to bit C in register 1 of CP15 (see
Tables 4-3 and 4-4 on page 4-5 in ARM926EJ-S TRM).
The DCache supports write-through and write-back cache operations, selected by memory
region using the C and B bits in the MMU translation tables.
The DCache contains an eight data word entry, single address entry write-back buffer used to
hold write-back data for cache line eviction or cleaning of dirty cache lines.
6254A–ATARM–01-Feb-08
The Write Buffer can hold up to 16 words of data and four separate addresses. DCache and
Write Buffer operations are closely connected as their configuration is set in each section by the
page descriptor in the MMU translation table.
61
11.6.2.2Write Buffer
The ARM926EJ-S contains a write buffer that has a 16-word data buffer and a four- address
buffer. The write buffer is used for all writes to a bufferable region, write-through region and
write-back region. It also allows to avoid stalling the processor when writes to external memory
are performed. When a store occurs, data is written to the write buffer at core speed (high
speed). The write buffer then completes the store to external memory at bus speed (typically
slower than the core speed). During this time, the ARM9EJ-S processor can preform other
tasks.
DCache and Write Buffer support write-back and write-through memory regions, controlled by C
and B bits in each section and page descriptor within the MMU translation tables.
11.6.2.3Write-though Operation
When a cache write hit occurs, the DCache line is updated. The updated data is then written to
the write buffer which transfers it to external memory.
When a cache write miss occurs, a line, chosen by round robin or another algorithm, is stored in
the write buffer which transfers it to external memory.
11.6.2.4Write-back Operation
When a cache write hit occurs, the cache line or half line is marked as dirty, meaning that its
contents are not up-to-date with those in the external memory.
When a cache write miss occurs, a line, chosen by round robin or another algorithm, is stored in
the write buffer which transfers it to external memory.
11.7Bus Interface Unit
The ARM926EJ-S features a Bus Interface Unit (BIU) that arbitrates and schedules AHB
requests. The BIU implements a multi-layer AHB, based on the AHB-Lite protocol, that enables
parallel access paths between multiple AHB masters and slaves in a system. This is achieved by
using a more complex interconnection matrix and gives the benefit of increased overall bus
bandwidth, and a more flexible system architecture.
The multi-master bus architecture has a number of benefits:
• It allows the development of multi-master systems with an increased bus bandwidth and a
flexible architecture.
• Each AHB layer becomes simple because it only has one master, so no arbitration or masterto-slave muxing is required. AHB layers, implementing AHB-Lite protocol, do not have to
support request and grant, nor do they have to support retry and split transactions.
• The arbitration becomes effective when more than one master wants to access the same
slave simultaneously.
11.7.1Supported Transfers
The ARM926EJ-S processor performs all AHB accesses as single word, bursts of four words, or
bursts of eight words. Any ARM9EJ-S core request that is not 1, 4, 8 words in size is split into
packets of these sizes. Note that the Atmel bus is AHB-Lite protocol compliant, hence it does not
support split and retry requests.
62
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
Table 11-8 gives an overview of the supported transfers and different kinds of transactions they
are used for.
Table 11-8.Supported Transfers
HBurst[2:0]Description
SINGLESingle transfer
AT91SAM9XE128/256/512 Preliminary
Single transfer of word, half word, or byte:
• data write (NCNB, NCB, WT, or WB that has missed in DCache)
• data read (NCNB or NCB)
• NC instruction fetch (prefetched and non-prefetched)
Half-line cache write-back, Instruction prefetch, if enabled. Four-word burst NCNB,
NCB, WT, or WB write.
11.7.2Thumb Instruction Fetches
All instructions fetches, regardless of the state of ARM9EJ-S core, are made as 32-bit accesses
on the AHB. If the ARM9EJ-S is in Thumb state, then two instructions can be fetched at a time.
11.7.3Address Alignment
The ARM926EJ-S BIU performs address alignment checking and aligns AHB addresses to the
necessary boundary. 16-bit accesses are aligned to halfword boundaries, and 32-bit accesses
are aligned to word boundaries.
6254A–ATARM–01-Feb-08
63
64
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
12. AT91SAM9XE Debug and Test
12.1Overview
The AT91SAM9XE features a number of complementary debug and test capabilities. A common
JTAG/ICE (In-Circuit Emulator) port is used for standard debugging functions, such as downloading code and single-stepping through programs. The Debug Unit provides a two-pin UART
that can be used to upload an application into internal SRAM. It manages the interrupt handling
of the internal COMMTX and COMMRX signals that trace the activity of the Debug Communication Channel.
A set of dedicated debug and test input/output pins gives direct access to these capabilities from
a PC-based test environment.
6254A–ATARM–01-Feb-08
65
12.2Block Diagram
Figure 12-1. Debug and Test Block Diagram
TMS
TCK
TDI
NTRST
Boundary
Port
ARM9EJ-S
ARM926EJ-S
ICE-RT
ICE/JTAG
TA P
Reset
and
Test
JTAGSEL
TDO
RTCK
POR
TST
66
PDC
TAP: Test Access Port
DBGU
AT91SAM9XE128/256/512 Preliminary
DTXD
PIO
DRXD
6254A–ATARM–01-Feb-08
12.3Application Examples
12.3.1Debug Environment
Figure 12-2 on page 67 shows a complete debug environment example. The ICE/JTAG inter-
face is used for standard debugging functions, such as downloading code and single-stepping
through the program. A software debugger running on a personal computer provides the user
interface for configuring a Trace Port interface utilizing the ICE/JTAG interface.
Figure 12-2. Application Debug and Trace Environment Example
AT91SAM9XE128/256/512 Preliminary
Host Debugger
ICE/JTAG
Interface
ICE/JTAG
Connector
AT91SAM9XE
AT91SAM9XE-based Application Board
RS232
Connector
Terminal
6254A–ATARM–01-Feb-08
67
12.3.2Test Environment
Figure 12-3 on page 68 shows a test environment example. Test vectors are sent and inter-
preted by the tester. In this example, the “board in test” is designed using a number of JTAGcompliant devices. These devices can be connected to form a single scan chain.
Figure 12-3. Application Test Environment Example
12.4Debug and Test Pin Description
Table 12-1.Debug and Test Pin List
Pin NameFunctionTypeActive Level
NRSTMicrocontroller ResetInput/OutputLow
TSTTest Mode SelectInputHigh
Test Adaptor
JTAG
Interface
ICE/JTAG
Connector
AT91SAM9XE
AT91SAM9XE-based Application Board In Test
Chip 2Chip n
Chip 1
Reset/Test
Tester
68
ICE and JTAG
NTRSTTest Reset SignalInputLow
TCKTest ClockInput
TDITest Data InInput
TDOTest Data OutOutput
TMSTest Mode SelectInput
RTCKReturned Test ClockOutput
JTAGSELJTAG SelectionInput
Debug Unit
DRXDDebug Receive DataInput
DTXDDebug Transmit DataOutput
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
12.5Functional Description
12.5.1Test Pin
One dedicated pin, TST, is used to define the device operating mode. The user must make sure
that this pin is tied at low level to ensure normal operating conditions. Other values associated
with this pin are reserved for manufacturing test.
12.5.2Embedded In-circuit Emulator
The ARM9EJ-S Embedded In-Circuit Emulator-RT is supported via the ICE/JTAG port. It is connected to a host computer via an ICE interface. Debug support is implemented using an
ARM9EJ-S core embedded within the ARM926EJ-S. The internal state of the ARM926EJ-S is
examined through an ICE/JTAG port which allows instructions to be serially inserted into the
pipeline of the core without using the external data bus. Therefore, when in debug state, a storemultiple (STM) can be inserted into the instruction pipeline. This exports the contents of the
ARM9EJ-S registers. This data can be serially shifted out without affecting the rest of the
system.
There are two scan chains inside the ARM9EJ-S processor which support testing, debugging,
and programming of the Embedded ICE-RT. The scan chains are controlled by the ICE/JTAG
port.
AT91SAM9XE128/256/512 Preliminary
Embedded ICE mode is selected when JTAGSEL is low. It is not possible to switch directly
between ICE and JTAG operations. A chip reset must be performed after JTAGSEL is changed.
For further details on the Embedded In-Circuit-Emulator-RT, see the ARM document:
ARM9EJ-S Technical Reference Manual (
12.5.3Debug Unit
The Debug Unit provides a two-pin (DXRD and TXRD) USART that can be used for several
debug and trace purposes and offers an ideal means for in-situ programming solutions and
debug monitor communication. Moreover, the association with two peripheral data controller
channels permits packet handling of these tasks with processor time reduced to a minimum.
The Debug Unit also manages the interrupt handling of the COMMTX and COMMRX signals
that come from the ICE and that trace the activity of the Debug Communication Channel.The
Debug Unit allows blockage of access to the system through the ICE interface.
A specific register, the Debug Unit Chip ID Register, gives information about the product version
and its internal configuration.
The AT91SAM9XE Debug Unit Chip ID value is 0x0198 03A0on 32-bit width.
For further details on the Debug Unit, see the Debug Unit section.
12.5.4IEEE 1149.1 JTAG Boundary Scan
IEEE 1149.1 JTAG Boundary Scan allows pin-level access independent of the device packaging
technology.
DDI 0222A).
6254A–ATARM–01-Feb-08
IEEE 1149.1 JTAG Boundary Scan is enabled when JTAGSEL is high. The SAMPLE, EXTEST
and BYPASS functions are implemented. In ICE debug mode, the ARM processor responds
with a non-JTAG chip ID that identifies the processor to the ICE system. This is not IEEE 1149.1
JTAG-compliant.
69
It is not possible to switch directly between JTAG and ICE operations. A chip reset must be performed after JTAGSEL is changed.
A Boundary-scan Descriptor Language (BSDL) file is provided to set up test.
12.5.4.1JTAG Boundary-scan Register
The Boundary-scan Register (BSR) contains 484 bits that correspond to active pins and associated control signals.
Each AT91SAM9XE input/output pin corresponds to a 3-bit register in the BSR. The OUTPUT
bit contains data that can be forced on the pad. The INPUT bit facilitates the observability of data
applied to the pad. The CONTROL bit selects the direction of the pad.
Table 12-2.AT91SAM9XE JTAG Boundary Scan Register
Bit NumberPin NamePin TypeAssociated BSR Cells
307
306INPUT/OUTPUT
A0IN/OUT
CONTROL
305
A1IN/OUT
304INPUT/OUTPUT
303
A10IN/OUT
302INPUT/OUTPUT
301
A11IN/OUT
300INPUT/OUTPUT
299
A12IN/OUT
298INPUT/OUTPUT
297
A13IN/OUT
296INPUT/OUTPUT
295
A14IN/OUT
294INPUT/OUTPUT
293
A15IN/OUT
292INPUT/OUTPUT
291
A16IN/OUT
290INPUT/OUTPUT
289
A17IN/OUT
288INPUT/OUTPUT
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
70
287
A18IN/OUT
286INPUT/OUTPUT
285
A19IN/OUT
284INPUT/OUTPUT
283
A2IN/OUT
282INPUT/OUTPUT
AT91SAM9XE128/256/512 Preliminary
CONTROL
CONTROL
CONTROL
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
Table 12-2.AT91SAM9XE JTAG Boundary Scan Register
281
A20IN/OUT
280INPUT/OUTPUT
279
A21IN/OUT
278INPUT/OUTPUT
277
A22IN/OUT
276INPUT/OUTPUT
275
A3IN/OUT
274INPUT/OUTPUT
273
A4IN/OUT
272INPUT/OUTPUT
271
A5IN/OUT
270INPUT/OUTPUT
269
A6IN/OUT
268INPUT/OUTPUT
267
A7IN/OUT
266INPUT/OUTPUT
265
A8IN/OUT
264INPUT/OUTPUT
263
A9IN/OUT
262INPUT/OUTPUT
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
261BMSINPUTINPUT
260
CASIN/OUT
259INPUT/OUTPUT
258
D0IN/OUT
257INPUT/OUTPUT
256
D1IN/OUT
255INPUT/OUTPUT
254
D10IN/OUT
253INPUT/OUTPUT
252
D11IN/OUT
251INPUT/OUTPUT
250
D12IN/OUT
249INPUT/OUTPUT
248
D13IN/OUT
247INPUT/OUTPUT
246
D14IN/OUT
245INPUT/OUTPUT
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
6254A–ATARM–01-Feb-08
71
Table 12-2.AT91SAM9XE JTAG Boundary Scan Register
244
D15IN/OUT
243INPUT/OUTPUT
242
D2IN/OUT
241INPUT/OUTPUT
240
D3IN/OUT
239INPUT/OUTPUT
238
D4IN/OUT
237INPUT/OUTPUT
236
D5IN/OUT
235INPUT/OUTPUT
234
D6IN/OUT
233INPUT/OUTPUT
232
D7IN/OUT
231INPUT/OUTPUT
230
D8IN/OUT
229INPUT/OUTPUT
228
D9IN/OUT
227INPUT/OUTPUT
226
NANDOEIN/OUT
225INPUT/OUTPUT
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
224
NANDWEIN/OUT
223INPUT/OUTPUT
222
NCS0IN/OUT
221INPUT/OUTPUT
220
NCS1IN/OUT
219INPUT/OUTPUT
218
NRDIN/OUT
217INPUT/OUTPUT
216
NRSTIN/OUT
215INPUT/OUTPUT
214
NWR0IN/OUT
213INPUT/OUTPUT
212
NWR1IN/OUT
211INPUT/OUTPUT
210
NWR3IN/OUT
209INPUT/OUTPUT
208OSCSELINPUTINPUT
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
72
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
Table 12-2.AT91SAM9XE JTAG Boundary Scan Register
207
PA0IN/OUT
206INPUT/OUTPUT
205
PA1IN/OUT
204INPUT/OUTPUT
203
PA10IN/OUT
202INPUT/OUTPUT
201
PA11IN/OUT
200INPUT/OUTPUT
199
PA12IN/OUT
198INPUT/OUTPUT
197
PA13IN/OUT
196INPUT/OUTPUT
195
PA14IN/OUT
194INPUT/OUTPUT
193
PA15IN/OUT
192INPUT/OUTPUT
191
PA16IN/OUT
190INPUT/OUTPUT
189
PA17IN/OUT
188INPUT/OUTPUT
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
187
PA18IN/OUT
186INPUT/OUTPUT
185
PA19IN/OUT
184INPUT/OUTPUT
183
PA2IN/OUT
182INPUT/OUTPUT
181
PA20IN/OUT
180INPUT/OUTPUT
179
PA21IN/OUT
178INPUT/OUTPUT
177
PA22IN/OUT
176INPUT/OUTPUT
175
PA23IN/OUT
174INPUT/OUTPUT
173
PA24IN/OUT
172INPUT/OUTPUT
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
6254A–ATARM–01-Feb-08
73
Table 12-2.AT91SAM9XE JTAG Boundary Scan Register
171
PA25IN/OUT
170INPUT/OUTPUT
169
PA26IN/OUT
168INPUT/OUTPUT
167
PA27IN/OUT
166INPUT/OUTPUT
165
PA28IN/OUT
164INPUT/OUTPUT
163
PA29IN/OUT
162INPUT/OUTPUT
161
PA3IN/OUT
160INPUT/OUTPUT
159internal
158internal
157internal
156internal
155
PA4IN/OUT
154INPUT/OUTPUT
153
PA5IN/OUT
152INPUT/OUTPUT
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
151
PA6IN/OUT
150INPUT/OUTPUT
149
PA7IN/OUT
148INPUT/OUTPUT
147
PA8IN/OUT
146INPUT/OUTPUT
145
PA9IN/OUT
144INPUT/OUTPUT
143
PB0IN/OUT
142INPUT/OUTPUT
141
PB1IN/OUT
140INPUT/OUTPUT
139
PB10IN/OUT
138INPUT/OUTPUT
137
PB11IN/OUT
136INPUT/OUTPUT
135internal
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
74
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
Table 12-2.AT91SAM9XE JTAG Boundary Scan Register
134internal
133internal
132internal
131
PB14IN/OUT
130INPUT/OUTPUT
129
PB15IN/OUT
128INPUT/OUTPUT
127
PB16IN/OUT
126INPUT/OUTPUT
125
PB17IN/OUT
124INPUT/OUTPUT
123
PB18IN/OUT
122INPUT/OUTPUT
121
PB19IN/OUT
120INPUT/OUTPUT
119
PB2IN/OUT
118INPUT/OUTPUT
117
PB20IN/OUT
116INPUT/OUTPUT
115
PB21IN/OUT
114INPUT/OUTPUT
113
PB22IN/OUT
112INPUT/OUTPUT
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
6254A–ATARM–01-Feb-08
111
PB23IN/OUT
110INPUT/OUTPUT
109
PB24IN/OUT
108INPUT/OUTPUT
107
PB25IN/OUT
106INPUT/OUTPUT
105
PB26IN/OUT
104INPUT/OUTPUT
103
PB27IN/OUT
102INPUT/OUTPUT
101
PB28IN/OUT
100INPUT/OUTPUT
99
PB29IN/OUT
98INPUT/OUTPUT
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
75
Table 12-2.AT91SAM9XE JTAG Boundary Scan Register
97
PB3IN/OUT
96INPUT/OUTPUT
95
PB30IN/OUT
94INPUT/OUTPUT
93
PB31IN/OUT
92INPUT/OUTPUT
91
PB4IN/OUT
90INPUT/OUTPUT
89
PB5IN/OUT
88INPUT/OUTPUT
87
PB6IN/OUT
86INPUT/OUTPUT
85
PB7IN/OUT
84INPUT/OUTPUT
83
PB8IN/OUT
82INPUT/OUTPUT
81
PB9IN/OUT
80INPUT/OUTPUT
79
PC0IN/OUT
78INPUT/OUTPUT
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
77
PC1IN/OUT
76INPUT/OUTPUT
75
PC10IN/OUT
74INPUT/OUTPUT
73
PC11IN/OUT
72INPUT/OUTPUT
71internal
70internal
69
PC13IN/OUT
68INPUT/OUTPUT
67
PC14IN/OUT
66INPUT/OUTPUT
65
PC15IN/OUT
64INPUT/OUTPUT
63
PC16IN/OUT
62INPUT/OUTPUT
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
76
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
Table 12-2.AT91SAM9XE JTAG Boundary Scan Register
61
PC17IN/OUT
60INPUT/OUTPUT
59
PC18IN/OUT
58INPUT/OUTPUT
57
PC19IN/OUT
56INPUT/OUTPUT
55internal
54internal
53
PC20IN/OUT
52INPUT/OUTPUT
51
PC21IN/OUT
50INPUT/OUTPUT
49
PC22IN/OUT
48INPUT/OUTPUT
47
PC23IN/OUT
46INPUT/OUTPUT
45
PC24IN/OUT
44INPUT/OUTPUT
43
PC25IN/OUT
42INPUT/OUTPUT
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
41
PC26IN/OUT
40INPUT/OUTPUT
39
PC27IN/OUT
38INPUT/OUTPUT
37
PC28IN/OUT
36INPUT/OUTPUT
35
PC29IN/OUT
34INPUT/OUTPUT
33internal
32internal
31
PC30IN/OUT
30INPUT/OUTPUT
29
PC31IN/OUT
28INPUT/OUTPUT
27
PC4IN/OUT
26INPUT/OUTPUT
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
6254A–ATARM–01-Feb-08
77
Table 12-2.AT91SAM9XE JTAG Boundary Scan Register
25
PC5IN/OUT
24INPUT/OUTPUT
23
PC6IN/OUT
22INPUT/OUTPUT
21
PC7IN/OUT
20INPUT/OUTPUT
19
PC8IN/OUT
18INPUT/OUTPUT
17
PC9IN/OUT
16INPUT/OUTPUT
15
RASIN/OUT
14INPUT/OUTPUT
13
RTCKOUT
12OUTPUT
11
SDA10IN/OUT
10INPUT/OUTPUT
09
SDCKIN/OUT
08INPUT/OUTPUT
07
SDCKEIN/OUT
06INPUT/OUTPUT
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
05
SDWEIN/OUT
04INPUT/OUTPUT
03
SHDNOUT
02OUTPUT
01TSTINPUTINPUT
00WKUPINPUTINPUT
CONTROL
CONTROL
78
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
12.5.5JID Code Register
Access: Read-only
3130292827262524
VERSIONPART NUMBER
2322212019181716
PART NUMBER
15141312111098
PART NUMBERMANUFACTURER IDENTITY
76543210
MANUFACTURER IDENTITY1
• VERSION[31:28]: Product Version Number
Set to 0x0.
• PART NUMBER[27:12]: Product Part Number
Product part Number is 0x5B13
• MANUFACTURER IDENTITY[11:1]
Set to 0x01F.
Bit[0] Required by IEEE Std. 1149.1.
Set to 0x1.
JTAG ID Code value is 0x05B1_303F.
6254A–ATARM–01-Feb-08
79
80
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
13. AT91SAM9XE512 Boot Program
13.1Overview
The Boot Program integrates different programs permitting download and/or upload into the different memories of the product.
First, it initializes the Debug Unit serial port (DBGU) and the USB Device Port.
SAM-BA Boot is then executed. It waits for transactions either on the USB device, or on the
DBGU serial port.
13.2Flow Diagram
The Boot Program implements the algorithm in Figure 13-1.
Figure 13-1. Boot Program Algorithm Flow Diagram
Start
Internal RC Oscillator
No
Large
Crystal Table
Yes
USB Enumeration
Successful ?
YesYes
Run SAM-BA Boot
Main Oscillator Bypass
No
Reduced
Crystal Table
No
No
Character(s) received
Run SAM-BA Boot
Yes
Input Frequency
on DBGU ?
Table
SAM-BA Boot
6254A–ATARM–01-Feb-08
81
13.3Device Initialization
Initialization follows the steps described below:
1. FIQ Initialization
2. Stack setup for ARM supervisor mode
3. External Clock Detection
4. Switch Master Clock on Main Oscillator
5. C variable initialization
6. Main oscillator frequency detection if no external clock detected
7. PLL setup: PLLB is initialized to generate a 48 MHz clock necessary to use the USB
Table 13-1.Reduced Crystal Table (MHz) OSCSEL = 0
Boot on DBGUYesYesYesYes
Boot on USBYesYesYesNo
Note:Any other crystal can be used but it prevents using the USB.
Device. A register located in the Power Management Controller (PMC) determines the
frequency of the main oscillator and thus the correct factor for the PLLB.
a. If Internal RC Oscillator is used (OSCSEL = 0) and Main Oscillator is active, Table
13-1 defines the crystals supported by the Boot Program when using the internal
RC oscillator.
3.06.018.432Other
b. If Internal RC Oscillator is used (OSCSEL = 0) and Main Oscillator is bypassed,
Table 13-2 defines the frequencies supported by the Boot Program when bypass-
Note:Any other input frequency can be used but it prevents using the USB.
c. If an external 32768 Hz Oscillator is used (OSCSEL = 1) (OSCSEL = 1 and bypass
mode), Table 13-3 defines the crystals supported by the Boot Program.
Table 13-3.Large Crystal Table (MHz) OSCSEL = 1
3.03.27683.68643.844.0
4.433619 4.9152 5.0 5.242886.0
6.144 6.4 6.5536 7.159090 7.3728
7.864320 8.0 9.8304 10.0 11.05920
12.0 12.288 13.56 14.31818 14.7456
16.016.367667 17.734470 18.432 20.0
82
Note:Booting on USB or on DBGU is possible with any of these crystals.
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
8. Initialization of the DBGU serial port (115200 bauds, 8, N, 1) only if OSCSEL = 1
9. Enable the user reset
10. Jump to SAM-BA Boot sequence
11. Disable the Watchdog
12. Initialization of the USB Device Port
Figure 13-2. Clocks and DBGU Configurations
AT91SAM9XE128/256/512 Preliminary
Start
No
Scan Large Crystal Table
(Table 15.3 &15.4)
MCK = PLLB/2
UDPCK = PLLB/2
"ROMBoot>" displayed on DBGU
End
Internal RC Oscillator?
(OSCSEL = 0)
No (USB)
MCK = Mosc
UDPCK = PLLB/2
DBGU not configured
Yes
Scan Reduced Table
(Table 15.1 &15.2)
MCK = Mosc
UDPCK = PLLB/2
DBGU not configured
No
Autobaudrate ?
Yes (DBGU)
MCK = PLLB
UDPCK = xxxx
DBGU configured
13.4SAM-BA Boot
6254A–ATARM–01-Feb-08
EndEnd
The SAM-BA boot principle is to:
– Wait for USB Device enumeration.
– In parallel, wait for character(s) received on the DBGU if MCK is configured to 48
MHz (OSCSEL = 1).
– If not, the Autobaudrate sequence is executed in parallel (see Figure 13-3).
83
Figure 13-3. AutoBaudrate Flow Diagram
Device
Setup
Character '0x80'
received ?
Ye s
Character '0x80'
received ?
Ye s
Character '#'
received ?
Ye s
Send Character '>'
Run SAM-BA Boot
No
No
No
1st measurement
2nd measurement
Test Communication
UART operational
– Once the communication interface is identified, the application runs in an infinite
loop waiting for different commands as in Table 13-4.
Table 13-4.Commands Available through the SAM-BA Boot
CommandActionArgument(s)Example
Owrite a byteAddress, Value#O200001,CA#
oread a byteAddress,#o200001,#
Hwrite a half wordAddress, Value#H200002,CAFE#
hread a half wordAddress,#h200002,#
Wwrite a wordAddress, Value#W200000,CAFEDECA#
wread a wordAddress,#w200000,#
Ssend a fileAddress,#S200000,#
Rreceive a fileAddress, NbOfBytes#R200000,1234#
GgoAddress#G200200#
Vdisplay versionNo argumentV#
• Write commands: Write a byte (O), a halfword (H) or a word (W) to the target.
– Address: Address in hexadecimal.
– Value: Byte, halfword or word to write in hexadecimal.
– Output: ‘>’.
84
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
• Read commands: Read a byte (o), a halfword (h) or a word (w) from the target.
– Address: Address in hexadecimal
– Output: The byte, halfword or word read in hexadecimal following by ‘>’
• Send a file (S): Send a file to a specified address
– Address: Address in hexadecimal
– Output: ‘>’.
Note:There is a time-out on this command which is reached when the prompt ‘>’ appears before the
end of the command execution.
• Receive a file (R): Receive data into a file from a specified address
– Address: Address in hexadecimal
–
NbOfBytes: Number of bytes in hexadecimal to receive
– Output: ‘>’
•Go (G): Jump to a specified address and execute the code
– Address: Address to jump in hexadecimal
– Output: ‘>’
• Get Version (V): Return the SAM-BA boot version
– Output: ‘>’
13.4.1DBGU Serial Port
Communication is performed through the DBGU serial port initialized to 115200 Baud, 8, n, 1.
The Send and Receive File commands use the Xmodem protocol to communicate. Any terminal
performing this protocol can be used to send the application file to the target. The size of the
binary file to send depends on the SRAM size embedded in the product. In all cases, the size of
the binary file must be lower than the SRAM size because the Xmodem protocol requires some
SRAM memory to work.
13.4.2Xmodem Protocol
The Xmodem protocol supported is the 128-byte length block. This protocol uses a two-character CRC-16 to guarantee detection of a maximum bit error.
Xmodem protocol with CRC is accurate provided both sender and receiver report successful
transmission. Each block of the transfer looks like:
<SOH><blk #><255-blk #><--128 data bytes--><checksum> in which:
Figure 13-4 shows a transmission using this protocol.
– <SOH> = 01 hex
– <blk #> = binary number, starts at 01, increments by 1, and wraps 0FFH to 00H (not
to 01)
– <255-blk #> = 1’s complement of the blk#.
– <checksum> = 2 bytes CRC16
6254A–ATARM–01-Feb-08
85
Figure 13-4. Xmodem Transfer Example
13.4.3USB Device Port
A 48 MHz USB clock is necessary to use the USB Device port. It has been programmed earlier
in the device initialization procedure with PLLB configuration.
HostDevice
C
SOH 01 FE Data[128] CRC CRC
ACK
SOH 02 FD Data[128] CRC CRC
ACK
SOH 03 FC Data[100] CRC CRC
ACK
EOT
ACK
The device uses the USB communication device class (CDC) drivers to take advantage of the
installed PC RS-232 software to talk over the USB. The CDC class is implemented in all
releases of Windows
www.usb.org, describes a way to implement devices such as ISDN modems and virtual COM
ports.
The Vendor ID is Atmel’s vendor ID 0x03EB. The product ID is 0x6124. These references are
used by the host operating system to mount the correct driver. On Windows systems, the INF
files contain the correspondence between vendor ID and product ID.
Atmel provides an INF example to see the device as a new serial port and also provides another
custom driver used by the SAM-BA application: atm6124.sys.
13.4.3.1Enumeration Process
The USB protocol is a master/slave protocol. This is the host that starts the enumeration sending requests to the device through the control endpoint. The device handles standard requests
as defined in the USB Specification.
Table 13-5.Handled Standard Requests
RequestDefinition
GET_DESCRIPTORReturns the current device configuration value.
SET_ADDRESSSets the device address for all future device access.
SET_CONFIGURATIONSets the device configuration.
®
, from Windows 98SE to Windows XP. The CDC document, available at
86
GET_CONFIGURATIONReturns the current device configuration value.
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
Table 13-5.Handled Standard Requests (Continued)
RequestDefinition
GET_STATUSReturns status for the specified recipient.
SET_FEATUREUsed to set or enable a specific feature.
CLEAR_FEATUREUsed to clear or disable a specific feature.
The device also handles some class requests defined in the CDC class.
Table 13-6.Handled Class Requests
RequestDefinition
SET_LINE_CODING
GET_LINE_CODING
Configures DTE rate, stop bits, parity and number of
character bits.
Requests current DTE rate, stop bits, parity and number
of character bits.
SET_CONTROL_LINE_STATE
Unhandled requests are STALLed.
13.4.3.2Communication Endpoints
There are two communication endpoints and endpoint 0 is used for the enumeration process.
Endpoint 1 is a 64-byte Bulk OUT endpoint and endpoint 2 is a 64-byte Bulk IN endpoint. SAMBA Boot commands are sent by the host through the endpoint 1. If required, the message is split
by the host into several data payloads by the host driver.
If the command requires a response, the host can send IN transactions to pick up the response.
13.5Hardware and Software Constraints
• USB requirements:
– Crystal or Input Frequencies supported by Software Auto-detection. See Table 13-1,
Table 13-2 and Table 13-3 on page 82 for more informations.
Table 13-7 contains a list of pins that are driven during the boot program execution. These pins
are driven during the boot sequence.
Table 13-7.Pins Driven during Boot Program Execution
RS-232 signal used to tell the DCE device the DTE
device is now present.
6254A–ATARM–01-Feb-08
PeripheralPinPIO Line
DBGUDRXDPIOB14
DBGUDTXDPIOB15
87
88
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
14. Fast Flash Programming Interface (FFPI)
14.1Overview
The Fast Flash Programming Interface provides two solutions - parallel or serial - for high-volume programming using a standard gang programmer. The parallel interface is fully
handshaked and the device is considered to be a standard EEPROM. Additionally, the parallel
protocol offers an optimized access to all the embedded Flash functionalities. The serial interface uses the standard IEEE 1149.1 JTAG protocol. It offers an optimized access to all the
embedded Flash functionalities.
Although the Fast Flash Programming Mode is a dedicated mode for high volume programming,
this mode not designed for in-situ programming.
14.2Parallel Fast Flash Programming
14.2.1Device Configuration
In Fast Flash Programming Mode, the device is in a specific test mode. Only a certain set of pins
is significant. Other pins must be left unconnected.
Figure 14-1. Parallel Programming Interface
VDDIO
VDDIO
VDDIO
GND
NCMD
RDY
NOE
NVALID
MODE[3:0]
DATA[15:0]
0 - 50MHz
TST
PGMEN0
PGMEN1
PGMEN2
PGMNCMD
PGMRDY
PGMNOE
PGMNVALID
PGMM[3:0]
PGMD[15:0]
XIN
Table 14-1.Signal Description List
Signal NameFunctionType
Power
VDDFLASHFlash Power SupplyPower
VDDIOI/O Lines Power SupplyPower
VDDCORECore Power SupplyPower
VDDPLLPLL Power SupplyPower
GNDGroundGround
VDDCORE
VDDIO
VDDPLL
VDDFLASH
GND
Active
LevelComments
6254A–ATARM–01-Feb-08
89
Table 14-1.Signal Description List (Continued)
Active
Signal NameFunctionType
Clocks
Main Clock Input.
XIN
TSTTest Mode SelectInputHighMust be connected to VDDIO
PGMEN0Test Mode SelectInputHighMust be connected to VDDIO
PGMEN1Test Mode SelectInputHighMust be connected to VDDIO
PGMEN2Test Mode SelectInputLowMust be connected to GND
PGMNCMDValid command availableInputLowPulled-up input at reset
PGMRDY
PGMNOEOutput Enable (active high)InputLowPulled-up input at reset
PGMNVALID
PGMM[3:0]Specifies DATA type (See Table 14-2)InputPulled-up input at reset
PGMD[15:0]Bi-directional data busInput/OutputPulled-up input at reset
This input can be tied to GND. In this
case, the device is clocked by the internal
RC oscillator.
Test
PIO
0: Device is busy
1: Device is ready for a new command
0: DATA[15:0] is in input mode
1: DATA[15:0] is in output mode
Input32KHz to 50MHz
OutputHighPulled-up input at reset
OutputLowPulled-up input at reset
LevelComments
14.2.2Signal Names
Depending on the MODE settings, DATA is latched in different internal registers.
Table 14-2.Mode Coding
MODE[3:0]SymbolData
0000CMDECommand Register
0001ADDR0Address Register LSBs
0010ADDR1
0011ADDR2
0100ADDR3Address Register MSBs
0101DATAData Register
DefaultIDLENo register
When MODE is equal to CMDE, then a new command (strobed on DATA[15:0] signals) is stored
in the command register.
90
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
Table 14-3.Command Bit Coding
DATA[15:0]SymbolCommand Executed
0x0011READRead Flash
0x0012WPWrite Page Flash
0x0022WPLWrite Page and Lock Flash
0x0032EWPErase Page and Write Page
0x0042EWPLErase Page and Write Page then Lock
0x0013EAErase All
0x0014SLBSet Lock Bit
0x0024CLBClear Lock Bit
0x0015GLBGet Lock Bit
0x0034SGPBSet General Purpose NVM bit
0x0044CGPBClear General Purpose NVM bit
0x0025GGPBGet General Purpose NVM bit
0x0054SSESet Security Bit
0x0035GSEGet Security Bit
0x001FWRAMWrite Memory
0x001EGVEGet Version
14.2.3Entering Programming Mode
The following algorithm puts the device in Parallel Programming Mode:
• Apply GND, VDDIO, VDDCORE, VDDFLASH and VDDPLL.
• Apply XIN clock within T
•Wait for T
POR_RESET
• Start a read or write handshaking.
Note:After reset, the device is clocked by the internal RC oscillator. Before clearing RDY signal, if an
external clock ( > 32 kHz) is connected to XIN, then the device switches on the external clock.
Else, XIN input is not considered. A higher frequency on XIN speeds up the programmer
handshake.
14.2.4Programmer Handshaking
An handshake is defined for read and write operations. When the device is ready to start a new
operation (RDY signal set), the programmer starts the handshake by clearing the NCMD signal.
The handshaking is achieved once NCMD signal is high and RDY is high.
14.2.4.1Write Handshaking
For details on the write handshaking sequence, refer to Figure 14-2 and Table 14-4.
1Sets MODE and DATA signalsWaits for NCMD lowInput
2Clears NCMD signalLatch MODE and DATAInput
3Waits for RDY lowClears RDY signalInput
4Sets DATA signal in tristateWaits for NOE LowInput
5Clears NOE signalTr i s ta t e
6Waits for NVALID low
7Clears NVALID signalOutput
8Reads value on DATA BusWaits for NOE highOutput
9Sets NOE signalOutput
10Waits for NVALID highSets DATA bus in input modeX
11Sets DATA in output modeSets NVALID signalInput
12Sets NCMD signalWaits for NCMD highInput
13Waits for RDY highSets RDY signalInput
Sets DATA bus in output mode and outputs
the flash contents.
Output
14.2.5Device Operations
Several commands on the Flash memory are available. These commands are summarized in
Table 14-3 on page 91. Each command is driven by the programmer through the parallel inter-
face running several read/write handshaking sequences.
When a new command is executed, the previous one is automatically achieved. Thus, chaining
a read command after a write automatically flushes the load buffer in the Flash.
14.2.5.1Flash Read Command
This command is used to read the contents of the Flash memory. The read command can start
at any valid address in the memory plane and is optimized for consecutive reads. Read handshaking can be chained; an internal address buffer is automatically increased.
Table 14-6.Read Command
StepHandshake SequenceMODE[3:0]DATA[15:0]
1Write handshakingCMDEREAD
2Write handshakingADDR0Memory Address LSB
3Write handshakingADDR1Memory Address
4Read handshakingDATA*Memory Address++
5Read handshakingDATA*Memory Address++
............
nWrite handshakingADDR0Memory Address LSB
6254A–ATARM–01-Feb-08
n+1Write handshakingADDR1Memory Address
n+2Read handshakingDATA*Memory Address++
n+3Read handshakingDATA*Memory Address++
............
93
14.2.5.2Flash Write Command
This command is used to write the Flash contents.
The Flash memory plane is organized into several pages. Data to be written are stored in a load
buffer that corresponds to a Flash memory page. The load buffer is automatically flushed to the
Flash:
• before access to any page other than the current one
• when a new command is validated (MODE = CMDE)
The Write Page command (WP) is optimized for consecutive writes. Write handshaking can be
chained; an internal address buffer is automatically increased.
Table 14-7.Write Command
StepHandshake SequenceMODE[3:0]DATA[15:0]
1Write handshakingCMDEWP or WPL or EWP or EWPL
2Write handshakingADDR0Memory Address LSB
3Write handshakingADDR1Memory Address
4Write handshakingDATA*Memory Address++
5Write handshakingDATA*Memory Address++
............
nWrite handshakingADDR0Memory Address LSB
n+1Write handshakingADDR1Memory Address
n+2Write handshakingDATA*Memory Address++
n+3Write handshakingDATA*Memory Address++
............
The Flash command Write Page and Lock (WPL) is equivalent to the Flash Write Command.
However, the lock bit is automatically set at the end of the Flash write operation. As a lock region
is composed of several pages, the programmer writes to the first pages of the lock region using
Flash write commands and writes to the last page of the lock region using a Flash write and lock
command.
The Flash command Erase Page and Write (EWP) is equivalent to the Flash Write Command.
However, before programming the load buffer, the page is erased.
The Flash command Erase Page and Write the Lock (EWPL) combines EWP and WPL
commands.
14.2.5.3Flash Full Erase Command
This command is used to erase the Flash memory planes.
All lock regions must be unlocked before the Full Erase command by using the CLB command.
Otherwise, the erase command is aborted and no page is erased.
Table 14-8.Full Erase Command
StepHandshake SequenceMODE[3:0]DATA[15:0]
94
1Write handshakingCMDEEA
2Write handshakingDATA0
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
14.2.5.4Flash Lock Commands
Lock bits can be set using WPL or EWPL commands. They can also be set by using the Set
Lock command (SLB). With this command, several lock bits can be activated. A Bit Mask is pro-
vided as argument to the command. When bit 0 of the bit mask is set, then the first lock bit is
activated.
In the same way, the Clear Lock command (CLB) is used to clear lock bits. All the lock bits are
also cleared by the EA command.
Table 14-9.Set and Clear Lock Bit Command
StepHandshake SequenceMODE[3:0]DATA[15:0]
1Write handshakingCMDESLB or CLB
2Write handshakingDATABit Mask
Lock bits can be read using Get Lock Bit command (GLB). The n
n of the bit mask is set..
Table 14-10. Get Lock Bit Command
StepHandshake SequenceMODE[3:0]DATA[15:0]
1Write handshakingCMDEGLB
2Read handshakingDATA
AT91SAM9XE128/256/512 Preliminary
th
lock bit is active when the bit
Lock Bit Mask Status
0 = Lock bit is cleared
1 = Lock bit is set
14.2.5.5Flash General-purpose NVM Commands
General-purpose NVM bits (GP NVM bits) can be set using the Set GPNVM command (SGPB).
This command also activates GP NVM bits. A bit mask is provided as argument to the command. When bit 0 of the bit mask is set, then the first GP NVM bit is activated.
In the same way, the Clear GPNVM command (CGPB) is used to clear general-purpose NVM
bits. All the general-purpose NVM bits are also cleared by the EA command. The general-purpose NVM bit is deactivated when the corresponding bit in the pattern value is set to 1.
Table 14-11. Set/Clear GP NVM Command
StepHandshake SequenceMODE[3:0]DATA[15:0]
1Write handshakingCMDESGPB or CGPB
2Write handshakingDATAGP NVM bit pattern value
General-purpose NVM bits can be read using the Get GPNVM Bit command (GGPB). The n
GP NVM bit is active when bit n of the bit mask is set..
Table 14-12. Get GP NVM Bit Command
StepHandshake SequenceMODE[3:0]DATA[15:0]
1Write handshakingCMDEGGPB
2Read handshakingDATA
th
GP NVM Bit Mask Status
0 = GP NVM bit is cleared
1 = GP NVM bit is set
6254A–ATARM–01-Feb-08
95
14.2.5.6Flash Security Bit Command
A security bit can be set using the Set Security Bit command (SSE). Once the security bit is
active, the Fast Flash programming is disabled. No other command can be run. An event on the
Erase pin can erase the security bit once the contents of the Flash have been erased.
Table 14-13. Set Security Bit Command
StepHandshake SequenceMODE[3:0]DATA[15:0]
1Write handshakingCMDESSE
2Write handshakingDATA0
Once the security bit is set, it is not possible to access FFPI. The only way to erase the security
bit is to erase the Flash.
In order to erase the Flash, the user must perform the following:
• Power-off the chip
• Power-on the chip with TST = 0
• Assert Erase during a period of more than 220 ms
• Power-off the chip
Then it is possible to return to FFPI mode and check that Flash is erased.
14.2.5.7Memory Write Command
This command is used to perform a write access to any memory location.
The Memory Write command (WRAM) is optimized for consecutive writes. Write handshaking
can be chained; an internal address buffer is automatically increased.
Table 14-14. Write Command
StepHandshake SequenceMODE[3:0]DATA[15:0]
1Write handshakingCMDEWRAM
2Write handshakingADDR0Memory Address LSB
3Write handshakingADDR1Memory Address
4Write handshakingDATA*Memory Address++
5Write handshakingDATA*Memory Address++
............
nWrite handshakingADDR0Memory Address LSB
n+1Write handshakingADDR1Memory Address
n+2Write handshakingDATA*Memory Address++
n+3Write handshakingDATA*Memory Address++
............
96
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
14.2.5.8Get Version Command
The Get Version (GVE) command retrieves the version of the FFPI interface.
Table 14-15. Get Version Command
StepHandshake SequenceMODE[3:0]DATA[15:0]
1Write handshakingCMDEGVE
2Write handshakingDATAVersion
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
97
14.3Serial Fast Flash Programming
The Serial Fast Flash programming interface is based on IEEE Std. 1149.1 “Standard Test
Access Port and Boundary-Scan Architecture”. Refer to this standard for an explanation of terms
used in this chapter and for a description of the TAP controller states.
In this mode, data read/written from/to the embedded Flash of the device are transmitted
through the JTAG interface of the device.
14.3.1Device Configuration
In Serial Fast Flash Programming Mode, the device is in a specific test mode. Only a distinct set
of pins is significant. Other pins must be left unconnected.
Figure 14-4. Serial Programming
VDDIO
VDDIO
VDDIO
GND
TDI
TDO
TMS
TCK
0-50MHz
TST
PGMEN0
PGMEN1
PGMEN2
XIN
Table 14-16. Signal Description List
Signal NameFunctionType
Power
VDDFLASHFlash Power SupplyPower
VDDIOI/O Lines Power SupplyPower
VDDCORE
VDDIO
VDDPLL
VDDFLASH
GND
Active
LevelComments
VDDCORECore Power SupplyPower
VDDPLLPLL Power SupplyPower
GNDGroundGround
Clocks
Main Clock Input.
This input can be tied to GND. In this
case, the device is clocked by the internal
RC oscillator.
Input32 kHz to 50 MHz
98
XIN
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
AT91SAM9XE128/256/512 Preliminary
Table 14-16. Signal Description List (Continued)
Active
Signal NameFunctionType
Test
TSTTest Mode SelectInputHighMust be connected to VDDIO.
PGMEN0Test Mode SelectInputHighMust be connected to VDDIO
PGMEN1Test Mode SelectInputHighMust be connected to VDDIO
PGMEN2Test Mode SelectInputLowMust be connected to GND
JTAG
TCKJTAG TCKInput-Pulled-up input at reset
TDIJTAG Test Data InInput-Pulled-up input at reset
TDOJTAG Test Data OutOutput-
TMSJTAG Test Mode SelectInput-Pulled-up input at reset
14.3.2Entering Serial Programming Mode
The following algorithm puts the device in Serial Programming Mode:
LevelComments
• Apply GND, VDDIO, VDDCORE, VDDFLASH and VDDPLL.
• Apply XIN clock within T
•Wait for T
POR_RESET
.
POR_RESET
+ 32(T
) if an external clock is available.
SCLK
• Reset the TAP controller clocking 5 TCK pulses with TMS set.
• Shift 0x2 into the IR register (IR is 4 bits long, LSB first) without going through the Run-TestIdle state.
• Shift 0x2 into the DR register (DR is 4 bits long, LSB first) without going through the RunTest-Idle state.
• Shift 0xC into the IR register (IR is 4 bits long, LSB first) without going through the Run-TestIdle state.
Note:After reset, the device is clocked by the internal RC oscillator. Before clearing RDY signal, if an
external clock ( > 32 kHz) is connected to XIN, then the device will switch on the external clock.
Else, XIN input is not considered. An higher frequency on XIN speeds up the programmer
handshake.
Table 14-17. Reset TAP Controller and Go to Select-DR-Scan
TDITMSTAP Controller State
X1
X1
X1
X1
X1Test-Logic Reset
6254A–ATARM–01-Feb-08
X0Run-Test/Idle
Xt1Select-DR-Scan
99
14.3.3Read/Write Handshake
The read/write handshake is done by carrying out read/write operations on two registers of the
device that are accessible through the JTAG:
• Debug Comms Control Register: DCCR
• Debug Comms Data Register: DCDR
Access to these registers is done through the TAP 38-bit DR register comprising a 32-bit data
field, a 5-bit address field and a read/write bit. The data to be written is scanned into the 32-bit
data field with the address of the register to the 5-bit address field and 1 to the read/write bit. A
register is read by scanning its address into the address field and 0 into the read/write bit, going
through the UPDATE-DR TAP state, then scanning out the data.
Refer to the ARM9TDMI reference manuel for more information on Comm channel operations.
Figure 14-5. TAP 8-bit DR Register
TDI
r/w
4
Address
5
Address
Decoder
31
0
Debug Comms Control Register
Data
32
Debug Comms Data Register
0
TDO
A read or write takes place when the TAP controller enters UPDATE-DR state. Refer to the IEEE
1149.1 for more details on JTAG operations.
• The address of the Debug Comms Control Register is 0x04.
• The address of the Debug Comms Data Register is 0x05.
The Debug Comms Control Register is read-only and allows synchronized handshaking
between the processor and the debugger.
– Bit 1 (W): Denotes whether the programmer can read a data through the Debug
Comms Data Register. If the device is busy W = 0, then the programmer must poll
until W = 1.
– Bit 0 (R): Denotes whether the programmer can send data from the Debug Comms
Data Register. If R = 1, data previously placed there through the scan chain has not
been collected by the device and so the programmer must wait.
The write handshake is done by polling the Debug Comms Control Register until the R bit is
cleared. Once cleared, data can be written to the Debug Comms Data Register.
The read handshake is done by polling the Debug Comms Control Register until the W bit is set.
Once set, data can be read in the Debug Comms Data Register.
14.3.4Device Operations
Several commands on the Flash memory are available. These commands are summarized in
Table 14-3 on page 91. Commands are run by the programmer through the serial interface that
is reading and writing the Debug Comms Registers.
100
AT91SAM9XE128/256/512 Preliminary
6254A–ATARM–01-Feb-08
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.