– Nine 32-bit-layer Matrix, Allowing a Total of 28.8 Gbps of On-chip Bus Bandwidth
– Boot Mode Select Option, Remap Command
• Embedded Memories
– One 128 Kbyte Internal ROM, Single-cycle Access at Maximum Bus Matrix Speed
– One 80 Kbyte Internal SRAM, Single-cycle Access at Maximum Processor or Bus
Matrix Speed
– One 16 Kbyte Internal SRAM, Single-cycle Access at Maximum Bus Matrix Speed
• Dual External Bus Interface (EBI0 and EBI1)
– EBI0 Supports SDRAM, Static Memory, ECC-enabled NAND Flash and
CompactFlash
– EBI1 Supports SDRAM, Static Memory and ECC-enabled NAND Flash
®
• DMA Controller (DMAC)
– Acts as one Bus Matrix Master
– Embeds 2 Unidirectional Channels with Programmable Priority, Address
Generation, Channel Buffering and Control
• Twenty Peripheral DMA Controller Channels (PDC)
• LCD Controller
– Supports Passive or Active Displays
– Up to 24 bits per Pixel in TFT Mode, Up to 16 bits per Pixel in STN Color Mode
– Up to 16M Colors in TFT Mode, Resolution Up to 2048x2048, Supports Virtual
Screen Buffers
• Two D Graphics Accelerator
– Line Draw, Block Transfer, Clipping, Commands Queuing
• 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
• USB 2.0 Full Speed (12 Mbits per second) Host Double Port
– Media Independent Interface or Reduced Media Independent Interface
– 28-byte FIFOs and Dedicated DMA Channels for Receive and Transmit
• Fully-featured System Controller, including
– Reset Controller, Shutdown Controller
– Twenty 32-bit Battery Backup Registers for a Total of 80 Bytes
– Clock Generator and Power Management Controller
– Advanced Interrupt Controller and Debug Unit
™
ARM® Thumb® Processor
®
Technology for Java® Acceleration
™
AT91 ARM
Thumb
Microcontrollers
AT91SAM9263
Preliminary
6249G–ATARM–06-Jan-09
– Periodic Interval Timer, Watchdog Timer and Double Real-time Timer
• Reset Controller (RSTC)
– Based on Two Power-on Reset Cells, Reset Source Identification and Reset Output Control
• Shutdown Controller (SHDWC)
– Programmable Shutdown Pin Control and Wake-up Circuitry
• Clock Generator (CKGR)
– 32768Hz Low-power Oscillator on Battery Backup Power Supply, Providing a Permanent Slow Clock
– 3 to 20 MHz On-chip Oscillator and Two Up to 240 MHz PLLs
• Power Management Controller (PMC)
– Very Slow Clock Operating Mode, Software Programmable Power Optimization Capabilities
– Four Programmable External Clock Signals
• Advanced Interrupt Controller (AIC)
– Individually Maskable, Eight-level Priority, Vectored Interrupt Sources
– Two 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
– Mode for General Purpose Two-wire UART Serial Communication
• 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
• Two Real-time Timers (RTT)
– 32-bit Free-running Backup Counter Running at Slow Clock with 16-bit Prescaler
• Five 32-bit Parallel Input/Output Controllers (PIOA, PIOB, PIOC, PIOD and PIOE)
– 160 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
• One Part 2.0A and Part 2.0B-compliant CAN Controller
– 16 Fully-programmable Message Object Mailboxes, 16-bit Time Stamp Counter
• Two Multimedia Card Interface (MCI)
™
– SDCard/SDIO and MultiMediaCard
– Automatic Protocol Control and Fast Automatic Data Transfers with PDC
– Two SDCard Slots Support on eAch Controller
Compliant
• Two 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
• One AC97 Controller (AC97C)
– 6-channel Single AC97 Analog Front End Interface, Slot Assigner
• Three Universal Synchronous/Asynchronous Receiver Transmitters (USART)
®
– Individual Baud Rate Generator, IrDA
– Support for ISO7816 T0/T1 Smart Card, Hardware Handshaking, RS485 Support
Infrared Modulation/Demodulation, Manchester Encoding/Decoding
• Two Master/Slave Serial Peripheral Interface (SPI)
– 8- to 16-bit Programmable Data Length, Four External Peripheral Chip Selects
• One 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
• One Four-channel 16-bit PWM Controller (PWMC)
• One Two-wire Interface (TWI)
®
– Master Mode Support, All Two-wire Atmel
EEPROMs Supported
2
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
AT91SAM9263 Preliminary
®
• IEEE
• Required Power Supplies
• Available in a 324-ball TFBGA Green Package
1.Description
The AT91SAM9263 32-bit microcontroller, based on the ARM926EJ-S processor, is architectured on a 9-layer matrix,
allowing a maximum internal bandwidth of nine 32-bit buses. It also features two independent external memory buses,
EBI0 and EBI1, capable of interfacing with a wide range of memory devices and an IDE hard disk. Two external buses prevent bottlenecks, thus guaranteeing maximum performance.
The AT91SAM9263 embeds an LCD Controller supported by a Two D Graphics Controller and a 2-channel DMA Controller, and one Image Sensor Interface. It also integrates several standard peripherals, such as USART, SPI, TWI, Timer
Counters, PWM Generators, Multimedia Card interface and one CAN Controller.
When coupled with an external GPS engine, the AT91SAM9263 provides the ideal solution for navigation systems.
1149.1 JTAG Boundary Scan on All Digital Pins
– 1.08V to 1.32V for VDDCORE and VDDBU
– 3.0V to 3.6V for VDDOSC and VDDPLL
– 2.7V to 3.6V for VDDIOP0 (Peripheral I/Os)
– 1.65V to 3.6V for VDDIOP1 (Peripheral I/Os)
– Programmable 1.65V to 1.95V or 3.0V to 3.6V for VDDIOM0/VDDIOM1 (Memory I/Os)
6249G–ATARM–06-Jan-09
3
2.AT91SAM9263 Block Diagram
ARM926EJ-S Processor
JTAG Boundary Scan
In-Circuit
Emulator
AIC
Fast SRAM
80 Kbytes
SSC0
SSC1
D0-D15
A0/NBS0
A2-A15, A18-A20
A16/BA0
A17/BA1
NCS0
NCS1/SDCS
NRD
NWR0/NWE
NWR1/NBS1
NWR3/NBS3
SDCK, SDCKE
RAS, CAS
SDWE, SDA10
FIQ
IRQ0-IRQ1
PLLRCB
PLLRCA
DRXD
DTXD
LCD
Controller
ICache
16K bytes
DCache
16K bytes
MMU
DMA
APB
ROM
128 Kbytes
Peripheral
Bridge
20-channel
Peripheral
DMA
ETM
TCLK
PDC
PLLA
ITCMDTCM
Bus Interface
TCM Interface
A1/NBS2/NWR2
TST
PCK0-PCK3
System
Controller
VDDBU
SHDN
WKUP
XIN
TSYNC
TPS0-TPS2
TPK0-TPK15
TDI
TDO
TMS
TCK
JTAGSEL
ID
FIFO
LUT
LCDD0-LCDD23
LCDVSYNC
LCDHSYNC
LCDDOTCK
LCDDEN
LCDCC
EBI1
D0-D15
A0/NBS0
A2-A15/A18-A20
NCS0
NCS1/SDCS
NRD
NWR0/NWE
NWR1/NBS1
Static
Memory
Controller
NCS2/NANDCS
A1/NWR2
NWAIT
DMARQ0_DMARQ3
2D
Graphics
Controller
NRST
TK0-TK1
TF0-TF1
TD0-TD1
RD0-RD1
RF0-RF1
RK0-RK1
TC0
TC1
TC2
TCLK0-TCLK2
TIOA0-TIOA2
TIOB0-TIOB2
NPCS2
NPCS1
SPCK
MOSI
MISO
NPCS0
SPI0
SPI1
PDC
NPCS3
USART0
USART1
USART2
RTS0-RTS2
SCK0-SCK2
TXD0-TXD2
RDX0-RDX2
CTS0-CTS2
PDC
TWI
TWCK
TWD
MCI0
MCI1
PDC
CK
DA0-DA3
CDA
DB0-DB3
CDB
EBI0_
NANDOE, NANDWE
EBI1_
PMC
PLLB
OSC
XOUT
PITWDT
RTT0
OSC
XIN32
XOUT32
SHDWC
POR
RSTC
POR
DBGU
9-layer Bus Matrix
2-channel
DMA
SLAVEMASTER
PDC
BMS
20GPREG
A23-A24
NCS5/CFCS1
A25/CFRNW
NCS4/CFCS0
D16-D31
NWAIT
CFCE1-CFCE2
EBI0
Static
Memory
Controller
CompactFlash
NAND Flash
SDRAM
Controller
NCS2
NCS3/NANDCS
PWMC
PWM0-PWM3
CAN
CANRX
CANTX
ETXCK-ERXCK-EREFCK
ETXEN-ETXER
ECRS-ECOL
ERXER-ERXDV
ERX0-ERX3
ETX0-ETX3
EMDC
EMDIO
EF100
10/100 Ethernet
MAC
FIFO
DMA
FIFO
PIOA
PIOB
PIOD
PIOC
Image
Sensor
Interface
ISI_PCK
ISI_D0-ISI_D11
ISI_HSYNC
ISI_VSYNC
ISI_MCK
VDDCORE
DMA
PIOE
SDCKE
RAS, CAS
SDWE, SDA10
SDRAM
Controller
D16-D31
SRAM
16 Kbytes
RTCK
ECC
Controller
DMA
A16/BA0
A17/BA1
ECC
Controller
NAND Flash
NANDOE, NANDWE
NWR3/NBS3
AC97C
PDC
AC97CK
AC97FS
AC97RX
AC97TX
VDDCORE
USB
OHCI
DMA
USB
Device
Por t
Transc.
DDP
DDM
SPI0_, SPI1_MCI0_, MCI_1
RTT1
Transc.
Transc.
HDPA
HDMA
HDPB
HDMB
SDCK
NTRST
A21/NANDALE
A22/NANDCLE
A21/NANDALE
A22/NANDCLE
Figure 2-1.AT91SAM9263 Block Diagram
4
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
AT91SAM9263 Preliminary
3.Signal Description
Table 3-1 gives details on the signal name classified by peripheral.
Table 3-1.Signal Description List
Active
Signal NameFunctionType
Power Supplies
VDDIOM0EBI0 I/O Lines Power SupplyPower1.65V to 3.6V
VDDIOM1EBI1 I/O Lines Power SupplyPower1.65V to 3.6V
VDDIOP0Peripherals I/O Lines Power SupplyPower2.7V to 3.6V
VDDIOP1Peripherals I/O Lines Power SupplyPower1.65V to 3.6V
VDDBUBackup I/O Lines Power SupplyPower1.08V to 1.32V
VDDPLLPLL Power SupplyPower3.0V to 3.6V
VDDOSCOscillator Power SupplyPower3.0V to 3.6V
VDDCORECore Chip Power SupplyPower1.08V to 1.32V
GNDGroundGround
GNDPLLPLL GroundGround
LevelComments
GNDBUBackup GroundGround
Clocks, Oscillators and PLLs
XINMain Oscillator InputInput
XOUTMain Oscillator OutputOutput
XIN32Slow Clock Oscillator InputInput
XOUT32Slow Clock Oscillator OutputOutput
PLLRCAPLL A FilterInput
PLLRCBPLL B FilterInput
PCK0 - PCK3Programmable Clock OutputOutput
Shutdown, Wakeup Logic
SHDNShutdown ControlOutput
WKUPWake-up InputInput
ICE and JTAG
NTRSTTest Reset SignalInputLowPull-up resistor
TCKTest ClockInputNo pull-up resistor
TDITest Data InInputNo pull-up resistor
Driven at 0V only. Do not tie
over VDDBU.
Accepts between 0V and
VDDBU.
TDOTest Data OutOutput
TMSTest Mode SelectInputNo pull-up resistor
JTAGSELJTAG SelectionInput
RTCKReturn Test Clock Output
6249G–ATARM–06-Jan-09
Pull-down resistor. Accepts
between 0V and VDDBU.
5
Table 3-1.Signal Description List (Continued)
Active
Signal NameFunctionType
Embedded Trace Module - ETM
TSYNCTrace Synchronization SignalOutput
TCLKTrace ClockOutput
TPS0 - TPS2Trace ARM Pipeline StatusOutput
TPK0 - TPK15Trace Packet PortOutput
Reset/Test
NRSTMicrocontroller ResetI/OLowPull-up resistor
TSTTest Mode SelectInputPull-down resistor
BMSBoot Mode SelectInput
Debug Unit - DBGU
DRXDDebug Receive DataInput
DTXDDebug Transmit DataOutput
Advanced Interrupt Controller - AIC
IRQ0 - IRQ1External Interrupt InputsInput
FIQFast Interrupt InputInput
LevelComments
PIO Controller - PIOA - PIOB - PIOC - PIOD - PIOE
PA0 - PA31Parallel IO Controller AI/OPulled-up input at reset
PB0 - PB31Parallel IO Controller BI/OPulled-up input at reset
PC0 - PC31Parallel IO Controller CI/OPulled-up input at reset
PD0 - PD31Parallel IO Controller DI/OPulled-up input at reset
PE0 - PE31Parallel IO Controller EI/OPulled-up input at reset
Direct Memory Access Controller - DMA
DMARQ0-DMARQ3DMA RequestsInput
External Bus Interface - EBI0 - EBI1
EBIx_D0 - EBIx_D31Data BusI/OPulled-up input at reset
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.OutputHighRMII only
USB Device Port
LevelComments
DDMUSB Device Port Data -Analog
DDPUSB Device Port Data +Analog
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
Image Sensor Interface - ISI
ISI_D0-ISI_D11Image Sensor DataInput
ISI_MCKImage Sensor Reference ClockOutputProvided by PCK3
ISI_HSYNCImage Sensor Horizontal SynchroInput
ISI_VSYNCImage Sensor Vertical SynchroInput
ISI_PCKImage Sensor Data ClockInput
6249G–ATARM–06-Jan-09
9
4.Package and Pinout
The AT91SAM9263 is available in a 324-ball TFBGA Green package, 15 x 15 mm, 0.8mm ball
pitch.
4.1324-ball TFBGA Package Outline
Figure 4-1 shows the orientation of the 324-ball TFBGA package.
A detailed mechanical description is given in the section “AT91SAM9263 Mechanical Characteristics” in the product datasheet.
Figure 4-1.324-ball TFBGA Pinout (Top View)
10
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
AT91SAM9263 Preliminary
4.2324-ball TFBGA Package Pinout
Table 4-1.AT91SAM9263 Pinout for 324-ball TFBGA Package
PinSignal NamePinSignal NamePinSignal NamePinSignal Name
A1EBI0_D2E10PC31K1PE6P10EBI1_NCS0
A2EBI0_SDCKEE11PC22K2PD28P11EBI1_NWE_NWR0
A3EBI0_NWE_NWR0E12PC15K3PE0P12EBI1_D4
A4EBI0_NCS1_SDCSE13PC11K4PE1P13EBI1_D10
A5EBI0_A19E14PC4K5PD27P14PA3
A6EBI0_A11E15PB30K6PD31P15PA2
A7EBI0_A10E16PC0K7PD29P16PE28
A8EBI0_A5E17PB31K8PD25P17TDI
A9EBI0_A1_NBS2_NWR2E18HDPAK9GNDP18PLLRCB
A10PD4F1PD7K10VDDIOM0R1XOUT32
A11PC30F2EBI0_D13K11GNDR2TST
A12PC26F3EBI0_D9K12VDDIOM0R3PA18
A13PC24F4EBI0_D11K13PB3/BMSR4PA25
A14PC19F5EBI0_D12K14PA14R5PA30
A15PC12F6EBI0_NCS0K15PA15R6EBI1_A2
A16VDDCOREF7EBI0_A16_BA0K16PB1R7EBI1_A14
A17VDDIOP0F8EBI0_A12K17PB0R8EBI1_A13
A18DDPF9EBI0_A6K18PB2R9EBI1_A17_BA1
B1EBI0_D4F10PD3L1PE10R10EBI1_D1
B2EBI0_NANDOEF11PC27L2PE4R11EBI1_D8
B3EBI0_CASF12PC18L3PE9R12EBI1_D12
B4EBI0_RASF13PC13L4PE7R13EBI1_D15
B5EBI0_NBS3_NWR3F14PB26L5PE5R14PE26
B6EBI0_A22F15PB25L6PE2R15EBI1_SDCK
B7EBI0_A15F16PB29L7PE3R16PE30
B8EBI0_A7F17PB27L8VDDIOP1R17TCK
B9EBI0_A4F18HDMAL9VDDIOM1R18XOUT
B10PD0G1PD17L10VDDIOM0T1VDDOSC
B11PC28G2PD12L11VDDIOP0T2VDDIOM1
B12PC21G3PD6L12GNDBUT3PA19
B13PC17G4EBI0_D14L13PA13T4PA21
B14PC9G5PD5L14PB4T5PA26
B15PC7G6PD8L15PA9T6PA31
B16PC5G7PD10L16PA12T7EBI1_A7
B17PB16G8GNDL17PA10T8EBI1_A12
B18DDMG9NC
C1EBI0_D6G10GNDM1PE18T10EBI1_D0
C2EBI0_D0G11GNDM2PE14T11EBI1_D7
C3EBI0_NANDWEG12GNDM3PE15T12EBI1_D14
C4EBI0_SDWEG13PB21M4PE11T13PE23
C5EBI0_SDCKG14PB20M5PE13T14PE25
C6EBI0_A21G15PB23M6PE12T15PE29
C7EBI0_A13G16PB28M7PE8T16PE31
C8EBI0_A8G17PB22M8VDDBUT17GNDPLL
C9EBI0_A3G18PB18M9EBI1_A21T18XIN
C10PD2H1PD24M10VDDIOM1U1PA17
C11PC29H2PD13M11GNDU2PA20
C12PC23H3PD15M12GNDU3PA23
C13PC14H4PD9M13VDDIOM1U4PA24
C14PC8H5PD11M14PA6U5PA28
(1)
L18PA11T9EBI1_A18
6249G–ATARM–06-Jan-09
11
Table 4-1.AT91SAM9263 Pinout for 324-ball TFBGA Package (Continued)
PinSignal NamePinSignal NamePinSignal NamePinSignal Name
C15PC3H6PD14M15PA4U6EBI1_A0_NBS0
C16GNDH7PD16M16PA7U7EBI1_A5
C17VDDIOP0H8VDDIOM0M17PA5U8EBI1_A10
C18HDPBH9GNDM18PA8U9EBI1_A16_BA0
D1EBI0_D10H10VDDCOREN1NCU10EBI1_NRD
D2EBI0_D3H11GNDN2NCU11EBI1_D3
D3NC
D4EBI0_D1H13PB17N4NC
D5EBI0_A20H14PB15N5PE17U14PE27
D6EBI0_A17_BA1H15PB13N6PE16U15RTCK
D7EBI0_A18H16PB24N7EBI1_A6U16NTRST
D8EBI0_A9H17PB14N8EBI1_A11U17VDDPLLA
D9EBI0_A2H18PB12N9EBI1_A22U18PLLRCA
D10PD1J1PD30N10EBI1_D2V1VDDCORE
D11PC25J2PD26N11EBI1_D6V2PA22
D12PC20J3PD22N12EBI1_D9V3PA27
D13PC6J4PD19N13GNDV4PA29
D14PC16J5PD18N14GNDPLLV5EBI1_A1_NWR2
D15PC10J6PD23N15PA1V6EBI1_A3
D16PC2J7PD21N16PA0V7EBI1_A9
D17PC1J8PD20N17TMSV8EBI1_A15
D18HDMBJ9GNDN18TDOV9EBI1_A20
E1EBI0_D15J10GNDP1XIN32V10EBI1_NBS1_NWR1
E2EBI0_D7J11GNDP2SHDNV11EBI1_D5
E3EBI0_D5J12PB11P3PA16V12EBI1_D11
E4EBI0_D8J13PB9P4WKUPV13PE21
E5EBI0_NBS1_NWR1J14PB10P5JTAGSELV14PE24
E6EBI0_NRDJ15PB5P6PE20V15NRST
E7EBI0_A14J16PB6P7EBI1_A8V16GND
E8EBI0_SDA10J17PB7P8EBI1_A4V17GND
E9EBI0_A0_NBS0J18PB8P9EBI1_A19V18VDDPLLB
Note:1. NC pins must be left unconnected.
(1)
H12PB19N3PE19U12EBI1_D13
(1)
U13PE22
12
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
5.Power Considerations
5.1Power Supplies
AT91SAM9263 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.08V to 1.32V, 1.2V nominal.
• VDDIOM0 and VDDIOM1 pins: Power the External Bus Interface 0 I/O lines and the External
Bus Interface 1 I/O lines, respectively; voltage ranges between 1.65V and 1.95V (1.8V
nominal) or between 3.0V and 3.6V (3.3V nominal).
• VDDIOP0 pins: Power the Peripheral I/O lines and the USB transceivers; voltage ranges from
2.7V to 3.6V, 3.3V nominal.
• VDDIOP1 pins: Power the Peripheral I/O lines involving the Image Sensor Interface; voltage
ranges from 1.65V to 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.08V to 1.32V, 1.2V nominal.
• VDDPLL pin: Powers the PLL cells; voltage ranges from 3.0V to 3.6V, 3.3V nominal.
• VDDOSC pin: Powers the Main Oscillator cells; voltage ranges from 3.0V to 3.6V, L3.3V
nominal.
The power supplies VDDIOM0, VDDIOM1 and VDDIOP0, VDDIOP1 are identified in the pinout
table and the multiplexing tables. These supplies enable the user to power the device differently
for interfacing with memories and for interfacing with peripherals.
AT91SAM9263 Preliminary
Ground pins GND are common to VDDOSC, VDDCORE, VDDIOM0, VDDIOM1, VDDIOP0 and
VDDIOP1 pins power supplies. Separated ground pins are provided for VDDBU and VDDPLL.
These ground pins are respectively GNDBU and GNDPLL.
5.2Power Consumption
The AT91SAM9263 consumes about 700 µA (worst case) of static current on VDDCORE at
25°C. This static current rises at up to 7 mA if the temperature increases to 85°C.
On VDDBU, the current does not exceed 3 µA @25°C, but can rise at up to 20 µA @85°C. An
automatic switch to VDDCORE guarantees low power consumption on the battery when the system is on.
For dynamic power consumption, the AT91SAM9263 consumes a maximum of 70 mA on
VDDCORE at maximum conditions (1.2V, 25°C, processor running full-performance algorithm).
5.3Programmable I/O Lines Power Supplies
The power supply pins VDDIOM0 and VDDIOM1 accept two voltage ranges. This allows the
device to reach its maximum speed, either out of 1.8V or 3.0V external memories.
The maximum speed is 100 MHz on the pin SDCK (SDRAM Clock) loaded with 30 pF for power
supply at 1.8V and 50pF for power supply at 3.3V. The other signals (control, address and data
signals) do not go over 50MHz.
The voltage ranges are determined by programming registers in the Chip Configuration registers
located in the Matrix User Interface.
6249G–ATARM–06-Jan-09
At reset, the selected voltage defaults to 3.3V nominal and power supply pins can accept either
1.8V or 3.3V. However, the device cannot reach its maximum speed if the voltage supplied to
13
the pins is only 1.8V without reprogramming the EBI0 voltage range. The user must be sure to
program the EBI0 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
(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 JTAG signals except JTAGSEL (VDDBU) are supplied with VDDIOP0.
6.2Test 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.
6.3Reset Pins
6.4PIO Controllers
NRST is 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 manage 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 of 100 kΩ minimum to
VDDIOP0.
The NRST signal is inserted in the Boundary Scan.
All the I/O lines managed by the PIO Controllers integrate a programmable pull-up resistor of
100 kΩ typical. 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 on page 36 and following.
6.5Shutdown Logic Pins
The SHDN pin is a tri-state output only pin, which is driven by the Shutdown Controller. There is
no internal pull-up. An external pull-up to VDDBU is needed and its value must be higher than 1
14
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
MΩ. The resisitor value is calculated according to the regulator enable implementation and the
SHDN level.
The pin WKUP is an input-only. It can accept voltages only between 0V and VDDBU.
7.Processor and Architecture
7.1ARM926EJ-S Processor
• RISC Processor based on ARM v5TEJ Harvard 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
• DSP Instruction Extensions
• 5-stage Pipeline Architecture
– Instruction Fetch (F)
– Instruction
– Execute (E)
– Data Memory (M)
– Register Write (W)
• 16 Kbyte Data Cache, 16 Kbyte Instruction Cache
– 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)
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
15
7.2Bus Matrix
• 9-layer Matrix, handling requests from 9 masters
• Programmable Arbitration strategy
– Fixed-priority Arbitration
– 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 boot, one for external boot, one after remap
• Boot Mode Select
– Non-volatile Boot Memory can be internal or external
– Selection is made by BMS pin sampled at reset
• Remap Command
– Allows Remapping of an Internal SRAM in Place of the Boot Non-Volatile Memory
– Allows Handling of Dynamic Exception Vectors
7.3Matrix Masters
7.4Matrix Slaves
The Bus Matrix of the AT91SAM9263 manages nine masters, thus each master can perform an
access concurrently with others to an available slave peripheral or memory.
Each master has its own decoder, which is defined specifically for each master.
Table 7-1.List of Bus Matrix Masters
Master 0OHCI USB Host Controller
Master 1Image Sensor Interface
Master 2Two D Graphic Controller
Master 3DMA Controller
Master 4Ethernet MAC
Master 5LCD Controller
Master 6Peripheral DMA Controller
Master 7ARM926 Data
™
Master 8ARM926
Instruction
The Bus Matrix of the AT91SAM9263 manages eight slaves. Each slave has its own arbiter,
thus allowing to program a different arbitration per slave.
16
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
AT91SAM9263 Preliminary
The LCD Controller, the DMA Controller, the USB OTG and the USB Host have a user interface
mapped as a slave on the Matrix. They share the same layer, as programming them does not
require a high bandwidth.
Table 7-2.List of Bus Matrix Slaves
Slave 0Internal ROM
Slave 1Internal 80 Kbyte SRAM
Slave 2Internal 16 Kbyte SRAM
LCD Controller User Interface
Slave 3
Slave 4External Bus Interface 0
Slave 5External Bus Interface 1
Slave 6Peripheral Bridge
DMA Controller User Interface
USB Host User Interface
6249G–ATARM–06-Jan-09
17
7.5Master to Slave Access
In most cases, all the masters can access all the slaves. However, some paths do not make
sense, for example, allowing access from the Ethernet MAC to the Internal Peripherals. Thus,
these paths are forbidden or simply not wired, and are shown as “-” in Table 7-3.
Table 7-3.Masters to Slaves Access
Master0 1234567&8
OHCI USB
Slave
0Internal ROMX XXXXX X X
Internal 80 Kbyte
1
2
3
4
SRAM
Internal 16 Kbyte
SRAM Bank
LCD Controller
User Interface
DMA Controller
User Interface
USB Host User
Interface
External Bus
Interface 0
Host
Controller
X XXXXXX X
X XXXXXX X
- ------ X
- ------ X
- ------ X
X XXXXXX X
Image
Sensor
Interface
Two D
Graphics
Controller
DMA
Controller
Ethernet
MAC
LCD
Controller
Peripheral
DMA
Controller
ARM926
Data &
Instruction
5
6 Peripheral Bridge---X--XX
External Bus
Interface 1
X XXXXXX X
7.6Peripheral DMA Controller
• Acts as one Matrix Master
• Allows data transfers between a peripheral and memory without any intervention of the
processor
• Next Pointer support, removes heavy real-time constraints on buffer management.
• Twenty 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 AC97 Controller
– One for each Multimedia Card Interface
The Peripheral DMA Controller handles transfer requests from the channel according to the following priorities (low to high priorities):
18
– DBGU Transmit Channel
– USART2 Transmit Channel
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
– USART1 Transmit Channel
– USART0 Transmit Channel
– AC97 Transmit Channel
– SPI1 Transmit Channel
– SPI0 Transmit Channel
– SSC1 Transmit Channel
– SSC0 Transmit Channel
– DBGU Receive Channel
– USART2 Receive Channel
– USART1 Receive Channel
– USART0 Receive Channel
– AC97 Receive Channel
– SPI1 Receive Channel
– SPI0 Receive Channel
– SSC1 Receive Channel
– SSC0 Receive Channel
– MCI1 Transmit/Receive Channel
– MCI0 Transmit/Receive Channel
AT91SAM9263 Preliminary
7.7DMA Controller
• Acts as one Matrix Master
• Embeds 2 unidirectional channels with programmable priority
• Address Generation
– Source/destination address programming
– Address increment, decrement or no change
– DMA chaining support for multiple non-contiguous data blocks through use of linked
lists
– Scatter support for placing fields into a system memory area from a contiguous
transfer. Writing a stream of data into non-contiguous fields in system memory.
– Gather support for extracting fields from a system memory area into a contiguous
transfer
– User enabled auto-reloading of source, destination and control registers from initially
programmed values at the end of a block transfer
– Auto-loading of source, destination and control registers from system memory at end
of block transfer in block chaining mode
– Unaligned system address to data transfer width supported in hardware
• Channel Buffering
– Two 8-word FIFOs
– Automatic packing/unpacking of data to fit FIFO width
• Channel Control
– Programmable multiple transaction size for each channel
– Support for cleanly disabling a channel without data loss
6249G–ATARM–06-Jan-09
19
– Suspend DMA operation
– Programmable DMA lock transfer support.
• Transfer Initiation
– Supports four external DMA Requests
– Support for software handshaking interface. Memory mapped registers can be used
to control the flow of a DMA transfer in place of a hardware handshaking interface
• Interrupt
– Programmable interrupt generation on DMA transfer completion, Block transfer
completion, Single/Multiple transaction completion or Error condition
7.8Debug and Test Features
• ARM926 Real-time In-circuit Emulator
– 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
• Embedded Trace Macrocell: ETM9
– Medium+ Level Implementation
– Half-rate Clock Mode
– Four Pairs of Address Comparators
– Two Data Comparators
– Eight Memory Map Decoder Inputs
– Two 16-bit Counters
– One 3-stage Sequencer
– One 45-byte FIFO
• IEEE1149.1 JTAG Boundary-scan on All Digital Pins
™
20
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
8.Memories
USB HOST
ITCM (2)
DTCM (2)
ROM
DMAC
16K SRAM0
0xFFFA 0000
0xFFFA 4000
0xFFFA C000
0xFFFA 8000
0xFFF8 4000
0xFFF8 8000
0xFFF9 0000
0xFFF9 4000
0xFFF9 C000
0xFFF7 8000
0xFFF8 C000
0xFFF9 8000
256M Bytes
0x1000 0000
0x0000 0000
0x0FFF FFFF
0xFFFF FFFF
0xF000 0000
0xEFFF FFFF
Address Memory Space
Internal Peripherals
Internal Memories
EBI0
Chip Select 0
EBI0
Chip Select 1/
EBI0 SDRAMC
EBI0
Chip Select 2
EBI0
Chip Select 3/
NANDFlash
EBI0
Chip Select 4/
Compact Flash
Slot 0
EBI0
Chip Select 5/
Compact Flash
Slot 1
EBI1
Chip Select 0
EBI1
Chip Select 2/
NANDFlash
Undefined
(Abort)
256M Bytes
256M Bytes
256M Bytes
256M Bytes
256M Bytes
256M Bytes
256M Bytes
1,280M Bytes
0x2000 0000
0x1FFF FFFF
0x3000 0000
0x2FFF FFFF
0x4000 0000
0x3FFF FFFF
0x6FFF FFFF
0x6000 0000
0x5FFF FFFF
0x5000 0000
0x4FFF FFFF
0x7000 0000
0x7FFF FFFF
0x8000 0000
0x8FFF FFFF
0x9000 0000
256M Bytes
0xFFFF FD00
0xFFFF FC00
0xFFFF FA00
0xFFFF F800
0xFFFF F200
0xFFFF F000
0xFFFF EE00
16 Bytes
256 Bytes
512 bytes
512 bytes
512 Bytes
512 Bytes
PMC
PIOC
PIOB
PIOA
DBGU
RSTC
0xFFFF ED10
512 Bytes
AIC
0xFFFF EA00
512 Bytes
MATRIX
0xFFFF E400
512 Bytes
SMC0
0xFFFF FD10
16 Bytes
SHDWC
0xFFFF E200
512 Bytes
SDRAMC0
0xFFFF FD20
16 Bytes
RTT0
0xFFFF FD30
16 Bytes
PIT
0xFFFF FD40
16 Bytes
WDT
0xFFFF FD50
16 Bytes
GPBR
0xFFFF FD60
256M Bytes
Peripheral Mapping
Internal Memory Mapping
Notes:
(1) Can be ROM, EBI0_NCS0 or SRAM
depending on BMS and REMAP
(2) Software programmable
0xFFFC 8000
Reserved
0xFFFF FFFF
System Controller Mapping
16K Bytes
0xFFFF FFFF
Reserved
0xFFFF C000
0xFFFB 8000
0xFFFB 0000
0xFFFC 0000
0xFFFB C000
0xFFFC 4000
0xFFFF E000
ECC0
512 Bytes
CCFG
0xFFFF EC00
0x0020 0000
0x0030 0000
0x0050 0000
0x0060 0000
0x0010 0000
0x0040 0000
0x0080 0000
Reserved
0x00A0 0000
Boot Memory (1)
0x0000 0000
0xF000 0000
0x9FFF FFFF
EBI1
Chip Select 1/
EBI1 SDRAMC
256M Bytes
0xA000 0000
SMC1
SDRAMC1
ECC1
PIOE
PIOD
RTT1
0xFFFF E600
0xFFFF E800
0xFFFF F400
0xFFFF F600
0xFFFF FDB0
512 bytes
512 bytes
512 bytes
512 Bytes
512 bytes
80 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
AC97C
SPI1
CAN0
PWMC
EMAC
ISI
Reserved
SPI0
2DGE
TCO, TC1, TC2
MCI0
MCI1
USART0
USART1
SSC0
USART2
TWI
SSC1
Reserved
Reserved
UDP
Reserved
SYSC
16K Bytes
0xFFF7 C000
0xFFF8 0000
0xFFFC C000
0xFFFF C000
SRAM (2)
Reserved
0x0090 0000
0x00B0 0000
Reserved
LCD Controller
0x0070 0000
Figure 8-1.AT91SAM9263 Memory Mapping
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
21
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 4G bytes of address space into 16 banks of 256M bytes. The banks 1 to
9 are directed to the EBI0 that associates these banks to the external chip selects EBI0_NCS0
to EBI0_NCS5 and EBI1_NCS0 to EBI1_NCS2. The bank 0 is reserved for the addressing of the
internal memories, and a second level of decoding provides 1M bytes of internal memory area.
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 for
each 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 and one after remap. Refer to Table 8-1, “Internal Memory Mapping,” on page 22 for
details.
A complete memory map is presented in Figure 8-1 on page 21.
8.1Embedded Memories
•128 Kbyte ROM
– Single Cycle Access at full matrix speed
• One 80 Kbyte Fast SRAM
– Single Cycle Access at full matrix speed
– Supports ARM926EJ-S TCM interface at full processor speed
– Allows internal Frame Buffer for up to 1/4 VGA 8 bpp screen
• 16 Kbyte Fast SRAM
– Single Cycle Access at full matrix speed
8.1.1Internal Memory Mapping
Table 8-1 summarizes the Internal Memory Mapping, depending on the Remap status and the
BMS state at reset.
Table 8-1.Internal Memory Mapping
0x0000 0000ROMEBI0_NCS0SRAM C
8.1.1.1Internal 80 Kbyte Fast SRAM
The AT91SAM9263 device embeds a high-speed 80 Kbyte SRAM. This internal SRAM is split
into three areas. Its memory mapping is presented in Figure 8-1 on page 21.
Address
REMAP = 0REMAP = 1
BMS = 1BMS = 0
22
• Internal SRAM A is the ARM926EJ-S Instruction TCM. The user can map this SRAM block
anywhere in the ARM926 instruction memory space using CP15 instructions and the TCR
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
configuration register located in the Chip Configuration User Interface. This SRAM block is
also accessible by the ARM926 Data Master and by the AHB Masters through the AHB bus
at address 0x0010 0000.
• Internal SRAM B is the ARM926EJ-S Data TCM. The user can map this SRAM block
anywhere in the ARM926 data memory space using CP15 instructions. This SRAM block is
also accessible by the ARM926 Data Master and by the AHB Masters through the AHB bus
at address 0x0020 0000.
• Internal SRAM C is only accessible by all the AHB Masters. After reset and until the Remap
Command is performed, this SRAM block is accessible through the AHB bus at address
0x0030 0000 by all the AHB Masters. After Remap, this SRAM block also becomes
accessible through the AHB bus at address 0x0 by the ARM926 Instruction and the ARM926
Data Masters.
Within the 80 Kbytes of SRAM available, the amount of memory assigned to each block is software programmable as a multiple of 16 Kbytes as shown in Table 8-2. This table provides the
size of the Internal SRAM C according to the size of the internal SRAM A and the internal SRAM
B.
Table 8-2.Internal SRAM Block Size
Internal SRAM C
Internal SRAM B
(DTCM) size
0
16 Kbytes
32 Kbytes
AT91SAM9263 Preliminary
Internal SRAM A (ITCM) Size
016 Kbytes32 Kbytes
80 Kbytes64 Kbytes48 Kbytes
64 Kbytes48 Kbytes32 Kbytes
48 Kbytes32 Kbytes16 Kbytes
Note that among the five 16 Kbyte blocks making up the Internal SRAM, one is permanently
assigned to Internal SRAM C.
At reset, the whole memory (80 Kbytes) is assigned to Internal SRAM C.
The memory blocks assigned to SRAM A, SRAM B and SRAM C areas are not contiguous and
when the user dynamically changes the Internal SRAM configuration, the new 16 Kbyte block
organization may affect the previous configuration from a software point of view.
Table 8-3 illustrates different configurations and the related 16 Kbyte blocks assignments (RB0
to RB4).
Table 8-3.16 Kbyte Block Allocation
Configuration examples and related 16 Kbyte block assignments
Decoded
AreaAddress
Internal
SRAM A
(ITCM)
Internal
SRAM B
(DTCM)
0x0010 0000RB1RB1RB1RB1
0x0010 4000RB0RB0
0x0020 0000RB3RB3RB3RB3
0x0020 4000RB2RB2
ITCM = 0 Kbyte
DTCM = 0 Kbyte
AHB = 80 Kbytes
ITCM = 32 Kbytes
DTCM = 32 Kbytes
(1)
AHB = 16 Kbytes
ITCM = 16 Kbytes
DTCM = 32 Kbytes
AHB = 32 Kbytes
ITCM = 32 Kbytes
DTCM = 16 Kbytes
AHB = 32 Kbytes
ITCM = 16 Kbytes
DTCM = 16 Kbytes
AHB = 48 Kbytes
6249G–ATARM–06-Jan-09
23
Table 8-3.16 Kbyte Block Allocation (Continued)
Configuration examples and related 16 Kbyte block assignments
Decoded
AreaAddress
0x0030 0000RB4RB4RB4RB4RB4
ITCM = 0 Kbyte
DTCM = 0 Kbyte
AHB = 80 Kbytes
ITCM = 32 Kbytes
DTCM = 32 Kbytes
(1)
AHB = 16 Kbytes
ITCM = 16 Kbytes
DTCM = 32 Kbytes
AHB = 32 Kbytes
ITCM = 32 Kbytes
DTCM = 16 Kbytes
AHB = 32 Kbytes
ITCM = 16 Kbytes
DTCM = 16 Kbytes
AHB = 48 Kbytes
Internal
SRAM C
(AHB)
Note:1. Configuration after reset.
0x0030 4000RB3RB0RB2RB2
0x0030 8000RB2RB0
0x0030 C000RB1
0x0031 0000RB0
When accessed from the Bus Matrix, the internal 80 Kbytes of Fast SRAM is single cycle accessible at full matrix speed (MCK). When accessed from the processor’s TCM Interface, they are
also single cycle accessible at full processor speed.
8.1.1.2Internal 16 Kbyte Fast SRAM
The AT91SAM9263 integrates a 16 Kbyte SRAM, mapped at address 0x0050 0000. This SRAM
is single cycle accessible at full Bus Matrix speed.
8.1.2Boot Strategies
The system always boots at address 0x0. To ensure maximum boot possibilities, the memory
layout can be changed with two parameters.
REMAP allows the user to layout the internal SRAM bank to 0x0. This is done by software once
the system has booted. Refer to the section “AT91SAM9263 Bus Matrix” in the product
datasheet for more details.
When REMAP = 0, BMS allows the user to layout at address 0x0 either the ROM or an external
memory. This is done via hardware at reset.
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 21.
The AT91SAM9263 Bus Matrix manages a boot memory that depends on the level on the pin
BMS at reset. The internal memory area mapped between address 0x0 and 0x000F FFFF is
reserved to this effect.
If BMS is detected at 1, the boot memory is the embedded ROM.
If BMS is detected at 0, the boot memory is the memory connected on the Chip Select 0 of the
External Bus Interface.
8.1.2.1BMS = 1, Boot on Embedded ROM
The system boots on Boot Program.
• Boot at slow clock
• Auto baudrate detection
• Downloads and runs an application from external storage media into internal SRAM
• Downloaded code size depends on embedded SRAM size
• Automatic detection of valid application
• Bootloader on a non-volatile memory
24
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
– SD Card
–NAND Flash
– SPI DataFlash
• Interface with SAM-BA
– Serial communication on a DBGU
– USB Bulk Device Port
8.1.2.2BMS = 0, Boot on External Memory
• Boot at slow clock
• Boot with the default configuration for the Static Memory Controller, byte select mode, 16-bit
data bus, Read/Write controlled by Chip Select, allows boot on 16-bit non-volatile memory.
The customer-programmed software must perform a complete configuration.
To speed up the boot sequence when booting at 32 kHz EBI0 CS0 (BMS=0) the user must:
1.Program the PMC (main oscillator enable or bypass mode).
2.Program and Start the PLL.
3.Reprogram the SMC setup, cycle, hold, mode timings registers for CS0 to adapt them
to the new clock.
4.Switch the main clock to the new value.
AT91SAM9263 Preliminary
®
and Serial Flash connected on NPCS0 of the SPI0
®
Graphic User Interface to enable code loading via:
8.2External Memories
The external memories are accessed through the External Bus Interfaces 0 and 1. Each Chip
Select line has a 256 Mbyte memory area assigned.
Refer to Figure 8-1 on page 21.
8.2.1External Bus Interfaces
The AT91SAM9263 features two External Bus Interfaces to offer more bandwidth to the system
and to prevent bottlenecks while accessing external memories.
8.2.1.1External Bus Interface 0
• Integrates three External Memory Controllers:
– Static Memory Controller
– SDRAM Controller
– ECC Controller
• Additional logic for NAND Flash
• Optional Full 32-bit External Data Bus
• Up to 26-bit Address Bus (up to 64 Mbytes linear per chip select)
• Up to 6 Chip Selects, Configurable Assignment:
– 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
• Optimized for Application Memory Space
and CompactFlash
6249G–ATARM–06-Jan-09
25
8.2.1.2External Bus Interface 1
• Integrates three External Memory Controllers:
– Static Memory Controller
– SDRAM Controller
– ECC Controller
• Additional logic for NAND Flash
• Optional Full 32-bit External Data Bus
• Up to 23-bit Address Bus (up to 8 Mbytes linear)
• Up to 3 Chip Selects, Configurable Assignment:
– Static Memory Controller on NCS0
– SDRAM Controller or Static Memory Controller on NCS1
– Static Memory Controller on NCS2, Optional NAND Flash support
• Allows supporting an ewternal Frame Buffer for the embedded LCD Controller without
impacting processor performance.
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
8.2.3SDRAM Controller
• Supported devices
• Numerous configurations supported
• Programming facilities
26
AT91SAM9263 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
6249G–ATARM–06-Jan-09
• Energy-saving capabilities
– Self-refresh, power down and deep power down modes supported
• Error detection
– Refresh Error Interrupt
• SDRAM Power-up Initialization by software
• CAS Latency of 1, 2 and 3 supported
• Auto Precharge Command not used
8.2.4Error Corrected Code Controller
• Tracking the accesses to a NAND Flash device by trigging on the corresponding chip select
• Single-bit error correction and two-bit random detection
• Automatic Hamming Code Calculation while writing
– ECC value available in a register
• Automatic Hamming Code Calculation while reading
– Error Report, including error flag, correctable error flag and word address being
detected erroneous
– Support 8- or 16-bit NAND Flash devices with 512-, 1024-, 2048- or 4096-byte
pages
AT91SAM9263 Preliminary
9.System Controller
The System Controller is a set of peripherals that allow handling of key elements of the system,
such as power, resets, clocks, time, interrupts, watchdog, etc.
The System Controller User Interface also embeds registers that are used to configure the Bus
Matrix and a set of registers for the chip configuration. The chip configuration registers can be
used to configure:
The System Controller peripherals are all mapped within the highest 16 Kbytes of address
space, between addresses 0xFFFF C000 and 0xFFFF FFFF.
However, all the registers of the System Controller are mapped on the top of the address space.
This allows all the registers of the System Controller to be addressed from a single pointer by
using the standard ARM instruction set, as the Load/Store instructions have an indexing mode of
± 4 Kbytes.
Figure 9-1 on page 28 shows the System Controller block diagram.
Figure 8-1 on page 21 shows the mapping of the User Interfaces of the System Controller
peripherals.
– EBI0 and EBI1 chip select assignment and voltage range for external memories
– ARM Processor Tightly Coupled Memories
6249G–ATARM–06-Jan-09
27
9.1System Controller Block Diagram
NRST
SLCK
Advanced
Interrupt
Controller
Real-Time
Timer 0
Periodic
Interval
Timer
Reset
Controller
PA0-PA31
periph_nreset
System Controller
Watchdog
Timer
wdt_fault
WDRPROC
PIO
Controllers
Power
Management
Controller
XIN
XOUT
PLLRCA
MAINCK
PLLACK
pit_irq
MCK
proc_nreset
wdt_irq
periph_irq[2..6]
periph_nreset
periph_clk[2..29]
PCK
MCK
pmc_irq
OTGCK
nirq
nfiq
rtt0_irq
Embedded
Peripherals
periph_clk[2..6]
pck[0-3]
in
out
enable
ARM926EJ-S
SLCK
SLCK
irq0-irq1
fiq
irq0-irq1
fiq
periph_irq[7..27]
periph_irq[2..29]
int
int
periph_nreset
periph_clk[7..27]
jtag_nreset
por_ntrst
proc_nreset
periph_nreset
dbgu_txd
dbgu_rxd
pit_irq
rtt1_irq
dbgu_irq
pmc_irq
rstc_irq
wdt_irq
rstc_irq
SLCK
Boundary Scan
TAP Controller
jtag_nreset
debug
PCK
debug
idle
debug
Bus Matrix
MCK
periph_nreset
proc_nreset
backup_nreset
periph_nreset
idle
Debug
Unit
dbgu_irq
MCK
dbgu_rxd
periph_nreset
dbgu_txd
rtt0_alarm
Shut-Down
Controller
SLCK
rtt0_alarm
backup_nreset
SHDN
WKUP
20 General-Purpose
Backup Registers
backup_nreset
XIN32
XOUT32
PLLRCB
PLLBCK
PB0-PB31
PC0-PC31
LCD
Controller
periph_nreset
periph_clk[26]
periph_irq[26]
VDDBU Powered
VDDCORE Powered
ntrst
VDDCORE
POR
MAIN
OSC
PLLA
VDDBU
POR
SLOW
CLOCK
OSC
PLLB
por_ntrst
VDDBU
VDDCORE
battery_save
Voltage
Controller
battery_save
PD0-PD31
PE0-PE31
Real-Time
Timer 1
rtt1_irq
SLCK
backup_nreset
rtt1_alarm
rtt0_irq
UDPCK
rtt1_alarm
USB
Device
Port
UDPCK
periph_nreset
periph_clk[24]
periph_irq[24]
USB Host
Port
UHPCK
periph_nreset
periph_clk[29]
periph_irq[29]
Figure 9-1.AT91SAM9263 System Controller Block Diagram
28
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
9.2Reset Controller
Power
Management
Controller
XIN
XOUT
PLLRCA
Slow Clock
SLCK
Main Clock
MAINCK
PLLA Clock
PLLACK
ControlStatus
PLL and
Divider B
PLLRCB
PLLB Clock
PLLBCK
XIN32
XOUT32
Slow Clock
Oscillator
Main
Oscillator
PLL and
Divider A
Clock Generator
• 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
• Controls the internal resets and the NRST pin output
– Allows shaping a reset signal for the external devices
9.3Shutdown Controller
• Shutdown and Wake-up logic
– Software programmable assertion of the SHDN pin (SHDN is push-pull)
– Deassertion programmable on a WKUP pin level change or on alarm
9.4Clock Generator
• Embeds the low-power 32768 Hz Slow Clock Oscillator
– 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
– Output 80 to 240 MHz clocks
– Integrates an input divider to increase output accuracy
– 1 MHz Minimum input frequency
AT91SAM9263 Preliminary
reset, user reset or watchdog reset
Figure 9-2.Clock Generator Block Diagram
6249G–ATARM–06-Jan-09
29
9.5Power Management Controller
MCK
periph_clk[..]
int
SLCK
MAINCK
PLLACK
Prescaler
/1,/2,/4,...,/64
PCK
Processor
Clock
Controller
Idle Mode
Master Clock Controller
Peripherals
Clock Controller
ON/OFF
USB Clock Controller
SLCK
MAINCK
PLLACK
Prescaler
/1,/2,/4,...,/64
Programmable Clock Controller
PLLBCK
Divider
/1,/2,/4
pck[..]
PLLBCK
PLLBCK
UDPCK
Divider
/1,/2,/4
ON/OFF
UHPCK
ON/OFF
•Provides:
– the Processor Clock PCK
– the Master Clock MCK, in particular to the Matrix and the memory interfaces
– the USB Device Clock UDPCK
– the USB Host Clock UHPCK
– independent peripheral clocks, typically at the frequency of MCK
– four programmable clock outputs: PCK0 to PCK3
• Five flexible operating modes:
– Normal Mode with processor and peripherals running at a programmable frequency
– Idle Mode with processor stopped while waiting for an interrupt
– Slow Clock Mode with processor and peripherals running at low frequency
– Standby Mode, mix of Idle and Backup Mode, with peripherals running at low
frequency, processor stopped waiting for an interrupt
– Backup Mode with Main Power Supplies off, VDDBU powered by a battery
Figure 9-3.AT91SAM9263 Power Management Controller Block Diagram
9.6Periodic Interval Timer
• Includes a 20-bit Periodic Counter, with less than 1 µs accuracy
• Includes a 12-bit Interval Overlay Counter
9.7Watchdog Timer
30
AT91SAM9263 Preliminary
• Real-time OS or Linux
• 16-bit key-protected Counter, programmable only once
®
/WindowsCE® compliant tick generator
6249G–ATARM–06-Jan-09
• Windowed, prevents the processor deadlocking on the watchdog access
9.8Real-time Timer
• Two Real-time Timers, allowing backup of time with different accuracies
– 32-bit Free-running back-up counter
– Integrates a 16-bit programmable prescaler running on the embedded 32.768Hz
oscillator
– Alarm Register capable of generating a wake-up of the system through the
Shutdown Controller
9.9General-purpose Backup Registers
• Twenty 32-bit general-purpose backup registers
9.10Backup Power Switch
• Automatic switch of VDDBU to VDDCORE guaranteeing very low power consumption on
VDDBU while VDDCORE is present
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
• Four 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 models are
enabled
•Fast Forcing
– Permits redirecting any normal interrupt source on the Fast Interrupt of the
processor
AT91SAM9263 Preliminary
9.12Debug Unit
6249G–ATARM–06-Jan-09
• Composed of two functions
•Two-pin UART
31
• Debug Communication Channel Support
9.13Chip Identification
• Chip ID: 0x019607A0
• JTAG ID: 0x05B0C03F
• ARM926 TAP ID: 0x0792603F
9.14PIO Controllers
• Five PIO Controllers, PIOA to PIOE, controlling a total of 160 I/O Lines
• Each PIO Controller controls up to 32 programmable I/O Lines
• Fully programmable through Set/Clear Registers
• Multiplexing of two peripheral functions per I/O Line
• For each I/O Line (whether assigned to a peripheral or used as general-purpose I/O)
• Synchronous output, provides Set and Clear of several I/O lines in a single write
– 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
– Mode for general purpose Two-wire UART serial communication
– Offers visibility of and interrupt trigger from COMMRX and COMMTX signals from
the ARM Processor’s ICE Interface
– PIOA has 32 I/O Lines
– PIOB has 32 I/O Lines
– PIOC has 32 I/O Lines
– PIOD has 32 I/O Lines
– PIOE has 32 I/O Lines
– Input change interrupt
– Glitch filter
– Multi-drive option enables driving in open drain
– Programmable pull-up on each I/O line
– Pin data status register, supplies visibility of the level on the pin at any time
32
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
AT91SAM9263 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 21.
10.2Identifiers
Table 10-1 defines the Peripheral Identifiers. 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 and IRQ0 - 1 bits in the clock set/clear registers of the PMC has no effect.
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
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
IRQ1, use a dedicated Peripheral ID. However, there is no clock control associated with these
peripheral IDs.
10.2.1.3Timer Counter Interrupts
The three Timer Counter channels interrupt signals are OR-wired together to provide the interrupt source 19 of the Advanced Interrupt Controller. This forces the programmer to read all
Timer Counter status registers before branching the right Interrupt Service Routine.
The Timer Counter channels clocks cannot be deactivated independently. Switching off the
clock of the Peripheral 19 disables the clock of the 3 channels.
10.3Peripherals Signals Multiplexing on I/O Lines
The AT91SAM9263 device features 5 PIO controllers, PIOA, PIOB, PIOC, PIOD and PIOE,
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 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 functions which are output only may be duplicated within both tables.
34
The column “Reset State” indicates whether the PIO Line resets in I/O mode or in peripheral
mode. If I/O is specified, the PIO Line resets in input with the pull-up enabled, so that the device
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
AT91SAM9263 Preliminary
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 specified 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.
6249G–ATARM–06-Jan-09
35
10.3.1PIO Controller A Multiplexing
Table 10-2.Multiplexing on PIO Controller A
PIO Controller AApplication Usage
Reset
I/O LinePeripheral APeripheral B
PA0MCI0_DA0SPI0_MISOI/OVDDIOP0
PA1MCI0_CDASPI0_MOSII/OVDDIOP0
PA2SPI0_SPCKI/OVDDIOP0
PA3MCI0_DA1SPI0_NPCS1I/OVDDIOP0
PA4MCI0_DA2SPI0_NPCS2I/OVDDIOP0
PA5MCI0_DA3SPI0_NPCS0I/OVDDIOP0
PA6MCI1_CKPCK2I/OVDDIOP0
PA7MCI1_CDAI/OVDDIOP0
PA8MCI1_DA0I/OVDDIOP0
PA9MCI1_DA1I/OVDDIOP0
PA10MCI1_DA2I/OVDDIOP0
PA11MCI1_DA3I/OVDDIOP0
PA12MCI0_CKI/OVDDIOP0
PA13CANTXPCK0I/OVDDIOP0
PA14CANRXIRQ0I/OVDDIOP0
PA15TCLK2IRQ1I/OVDDIOP0
PA16MCI0_CDBEBI1_D16I/OVDDIOM1
PA17MCI0_DB0EBI1_D17I/OVDDIOM1
State
Power
SupplyFunctionComments
PA18MCI0_DB1EBI1_D18I/OVDDIOM1
PA19MCI0_DB2EBI1_D19I/OVDDIOM1
PA20MCI0_DB3EBI1_D20I/OVDDIOM1
PA21MCI1_CDBEBI1_D21I/OVDDIOM1
PA22MCI1_DB0EBI1_D22I/OVDDIOM1
PA23MCI1_DB1EBI1_D23I/OVDDIOM1
PA24MCI1_DB2EBI1_D24I/OVDDIOM1
PA25MCI1_DB3EBI1_D25I/OVDDIOM1
PA26TXD0EBI1_D26I/OVDDIOM1
PA27RXD0EBI1_D27I/OVDDIOM1
PA28RTS0EBI1_D28I/OVDDIOM1
PA29CTS0EBI1_D29I/OVDDIOM1
PA30SCK0EBI1_D30I/OVDDIOM1
PA31DMARQ0EBI1_D31I/OVDDIOM1
36
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
10.3.2PIO Controller B Multiplexing
Table 10-3.Multiplexing on PIO Controller B
PIO Controller BApplication Usage
AT91SAM9263 Preliminary
Reset
I/O LinePeripheral APeripheral B
PB0AC97FSTF0I/OVDDIOP0
PB1AC97CKTK0I/OVDDIOP0
PB2AC97TXTD0I/OVDDIOP0
PB3AC97RXRD0I/OVDDIOP0
PB4TWDRK0I/OVDDIOP0
PB5TWCKRF0I/OVDDIOP0
PB6TF1DMARQ1I/OVDDIOP0
PB7TK1PWM0I/OVDDIOP0
PB8TD1PWM1I/OVDDIOP0
PB9RD1LCDCCI/OVDDIOP0
PB10RK1PCK1I/OVDDIOP0
PB11RF1SPI0_NPCS3I/OVDDIOP0
PB12SPI1_MISOI/OVDDIOP0
PB13SPI1_MOSII/OVDDIOP0
PB14SPI1_SPCKI/OVDDIOP0
PB15SPI1_NPCS0I/OVDDIOP0
PB16SPI1_NPCS1PCK1I/OVDDIOP0
PB17SPI1_NPCS2TIOA2I/OVDDIOP0
State
Power
SupplyFunctionComments
PB18SPI1_NPCS3TIOB2I/OVDDIOP0
PB19I/OVDDIOP0
PB20I/OVDDIOP0
PB21I/OVDDIOP0
PB22I/OVDDIOP0
PB23I/OVDDIOP0
PB24DMARQ3I/OVDDIOP0
PB25I/OVDDIOP0
PB26I/OVDDIOP0
PB27PWM2I/OVDDIOP0
PB28TCLK0I/OVDDIOP0
PB29PWM3I/OVDDIOP0
PB30I/OVDDIOP0
PB31I/OVDDIOP0
6249G–ATARM–06-Jan-09
37
10.3.3PIO Controller C Multiplexing
Table 10-4.Multiplexing on PIO Controller C
PIO Controller CApplication Usage
Reset
I/O LinePeripheral APeripheral B
PC0LCDVSYNCI/OVDDIOP0
PC1LCDHSYNCI/OVDDIOP0
PC2LCDDOTCKI/OVDDIOP0
PC3LCDDENPWM1I/OVDDIOP0
PC4LCDD0LCDD3I/OVDDIOP0
PC5LCDD1LCDD4I/OVDDIOP0
PC6LCDD2LCDD5I/OVDDIOP0
PC7LCDD3LCDD6I/OVDDIOP0
PC8LCDD4LCDD7I/OVDDIOP0
PC9LCDD5LCDD10I/OVDDIOP0
PC10LCDD6LCDD11I/OVDDIOP0
PC11LCDD7LCDD12I/OVDDIOP0
PC12LCDD8LCDD13I/OVDDIOP0
PC13LCDD9LCDD14I/OVDDIOP0
PC14LCDD10LCDD15I/OVDDIOP0
PC15LCDD11LCDD19I/OVDDIOP0
PC16LCDD12LCDD20I/OVDDIOP0
PC17LCDD13LCDD21I/OVDDIOP0
State
Power
SupplyFunctionComments
PC18LCDD14LCDD22I/OVDDIOP0
PC19LCDD15LCDD23I/OVDDIOP0
PC20LCDD16ETX2I/OVDDIOP0
PC21LCDD17ETX3I/OVDDIOP0
PC22LCDD18ERX2I/OVDDIOP0
PC23LCDD19ERX3I/OVDDIOP0
PC24LCDD20ETXERI/OVDDIOP0
PC25LCDD21ERXDVI/OVDDIOP0
PC26LCDD22ECOLI/OVDDIOP0
PC27LCDD23ERXCKI/OVDDIOP0
PC28PWM0TCLK1I/OVDDIOP0
PC29PCK0PWM2I/OVDDIOP0
PC30DRXDI/OVDDIOP0
PC31DTXDI/OVDDIOP0
38
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
10.3.4PIO Controller D Multiplexing
Table 10-5.Multiplexing on PIO Controller D
PIO Controller DApplication Usage
AT91SAM9263 Preliminary
Reset
I/O LinePeripheral APeripheral B
PD0TXD1SPI0_NPCS2I/OVDDIOP0
PD1RXD1SPI0_NPCS3I/OVDDIOP0
PD2TXD2SPI1_NPCS2I/OVDDIOP0
PD3RXD2SPI1_NPCS3I/OVDDIOP0
PD4FIQDMARQ2I/OVDDIOP0
PD5EBI0_NWAITRTS2I/OVDDIOM0
PD6EBI0_NCS4/CFCS0CTS2I/OVDDIOM0
PD7EBI0_NCS5/CFCS1RTS1I/OVDDIOM0
PD8EBI0_CFCE1CTS1I/OVDDIOM0
PD9EBI0_CFCE2SCK2I/OVDDIOM0
PD10SCK1I/OVDDIOM0
PD11EBI0_NCS2TSYNCI/OVDDIOM0
PD12EBI0_A23TCLKA23VDDIOM0
PD13EBI0_A24TPS0A24VDDIOM0
PD14EBI0_A25_CFRNWTPS1A25VDDIOM0
PD15EBI0_NCS3/NANDCSTPS2I/OVDDIOM0
PD16EBI0_D16TPK0I/OVDDIOM0
PD17EBI0_D17TPK1I/OVDDIOM0
State
Power
SupplyFunctionComments
PD18EBI0_D18TPK2I/OVDDIOM0
PD19EBI0_D19TPK3I/OVDDIOM0
PD20EBI0_D20TPK4I/OVDDIOM0
PD21EBI0_D21TPK5I/OVDDIOM0
PD22EBI0_D22TPK6I/OVDDIOM0
PD23EBI0_D23TPK7I/OVDDIOM0
PD24EBI0_D24TPK8I/OVDDIOM0
PD25EBI0_D25TPK9I/OVDDIOM0
PD26EBI0_D26TPK10I/OVDDIOM0
PD27EBI0_D27TPK11I/OVDDIOM0
PD28EBI0_D28TPK12I/OVDDIOM0
PD29EBI0_D29TPK13I/OVDDIOM0
PD30EBI0_D30TPK14I/OVDDIOM0
PD31EBI0_D31TPK15I/OVDDIOM0
6249G–ATARM–06-Jan-09
39
10.3.5PIO Controller E Multiplexing
Table 10-6.Multiplexing on PIO Controller E
PIO Controller EApplication Usage
Reset
I/O LinePeripheral APeripheral B
PE0ISI_D0I/OVDDIOP1
PE1ISI_D1I/OVDDIOP1
PE2ISI_D2I/OVDDIOP1
PE3ISI_D3I/OVDDIOP1
PE4ISI_D4I/OVDDIOP1
PE5ISI_D5I/OVDDIOP1
PE6ISI_D6I/OVDDIOP1
PE7ISI_D7I/OVDDIOP1
PE8ISI_PCKTIOA1I/OVDDIOP1
PE9ISI_HSYNCTIOB1I/OVDDIOP1
PE10ISI_VSYNCPWM3I/OVDDIOP1
PE11PCK3I/OVDDIOP1
PE12ISI_D8I/OVDDIOP1
PE13ISI_D9I/OVDDIOP1
PE14ISI_D10I/OVDDIOP1
PE15ISI_D11I/OVDDIOP1
PE16I/OVDDIOP1
PE17I/OVDDIOP1
State
Power
SupplyFunctionComments
PE18TIOA0I/OVDDIOP1
PE19TIOB0I/OVDDIOP1
PE20EBI1_NWAITI/OVDDIOM1
PE21ETXCKEBI1_NANDWEI/OVDDIOM1
PE22ECRSEBI1_NCS2/NANDCSI/OVDDIOM1
PE23ETX0EB1_NANDOEI/OVDDIOM1
PE24ETX1EBI1_NWR3/NBS3I/OVDDIOM1
PE25ERX0EBI1_NCS1/SDCSI/OVDDIOM1
PE26ERX1I/OVDDIOM1
PE27ERXEREBI1_SDCKEI/OVDDIOM1
PE28ETXENEBI1_RASI/OVDDIOM1
PE29EMDCEBI1_CASI/OVDDIOM1
PE30EMDIOEBI1_SDWEI/OVDDIOM1
PE31EF100EBI1_SDA10I/OVDDIOM1
40
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
10.4System Resource Multiplexing
10.4.1LCD Controller
The LCD Controller can interface with several LCD panels. It supports 4 bits per pixel (bpp), 8
bpp or 16 bpp without limitation. Interfacing 24 bpp TFT panels prevents using the Ethernet
MAC. 16 bpp TFT panels are interfaced through peripheral B functions, as color data is output
on LCDD3 to LCDD7, LCDD11 to LCDD15 and LCDD19 to LCDD23. Intensity bit is output on
LCDD10. Using the peripheral B does not prevent using MAC lines. 16 bpp STN panels are
interfaced through peripheral A and color data is output on LCDD0 to LCDD15, thus MAC lines
can be used on peripheral B.
Mapping the LCD signals on peripheral A and peripheral B makes is possible to use 24 bpp TFT
panels in 24 bits (peripheral A) or 16 bits (peripheral B) by reprogramming the PIO controller and
thus without hardware modification.
AT91SAM9263 Preliminary
10.4.2ETM
10.4.3EBI1
10.4.4Ethernet 10/100MAC
10.4.5SSC
™
Using the ETM prevents the use of the EBI0 in 32-bit mode. Only 16-bit mode (EBI0_D0 to
EBI0_D15) is available, makes EBI0 unable to interface CompactFlash and NAND Flash cards,
reduces EBI0’s address bus width which makes it unable to address memory ranges bigger than
0x7FFFFF and finally it makes impossible to use EBI0_NCS2.
Using the following features prevents using EBI1 in 32-bit mode:
• the second slots of MCI0 and/or MCI1
• USART0
• DMA request 0 (DMARQ0)
Using th following features of EBI1 prevent using Ethernet 10/100MAC:
•SDRAM
• NAND (unless NANDCS, NANDOE and NANDWE are managed by PIO)
• SMC 32 bits (SMC 16 bits is still available)
• NCS1, NCS2 are not available in SMC mode
Using SSC0 prevents using the AC97 Controller and Two-wire Interface.
10.4.6USART
10.4.7NAND Flash
6249G–ATARM–06-Jan-09
Using SSC1 prevents using DMA Request 1, PWM0, PWM1, LCDCC and PCK1.
Using USART2 prevents using EBI0’s NWAIT signal, Chip Select 4 and CompactFlash Chip
Enable 2.
Using USART1 prevents using EBI0’s Chip Select 5 and CompactFlash Chip Enable1.
Using the NAND Flash interface on EBI1 prevents using Ethernet MAC.
41
10.4.8CompactFlash
Using the CompactFlash interface prevents using NCS4 and/or NCS5 to access other parallel
devices.
10.4.9SPI0 and MCI Interface
SPI0 signals and MCI0 signals are multiplexed, as the DataFlash Card is hardware-compatible
with the SDCard. Only one can be used at a time.
10.4.10Interrupts
Using IRQ0 prevents using the CAN controller.
Using FIQ prevents using DMA Request 2.
10.4.11Image Sensor Interface
Using ISI in 8-bit data mode prevents using timers TIOA1, TIOB1.
10.4.12Timers
Using TIOA2 and TIOB2, in this order, prevents using SPI1’s Chip Selects [2-3].
10.5Embedded Peripherals Overview
10.5.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.5.2Two-wire Interface
• Master Mode only
• Compatibility with standard two-wire serial memory
• One, two or three bytes for slave address
• Sequential read/write operations
42
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
10.5.3USART
AT91SAM9263 Preliminary
• Programmable Baud Rate Generator
• 5- to 9-bit full-duplex synchronous or asynchronous serial communications
– 1, 1.5 or 2 stop bits in Asynchronous Mode or 1 or 2 stop bits in Synchronous Mode
• Two global registers that act on all three TC Channels
10.5.7Pulse Width Modulation Controller
• 4 channels, one 16-bit counter per channel
• Common clock generator, providing thirteen different clocks
– Modulo n counter providing eleven clocks
– Two independent Linear Dividers working on modulo n counter outputs
• Independent channel programming
– Independent Enable Disable commands
– Independent clock selection
– Independent period and duty cycle, with double bufferization
– Programmable selection of the output waveform polarity
– Programmable center or left aligned output waveform
10.5.8Multimedia Card Interface
• Two double-channel Multimedia Card Interfaces, allowing concurrent transfers with 2 cards
• Compatibility with MultiMediaCard Specification Version 3.31
• Compatibility with SD Memory Card Specification Version 1.0
• Compatibility with SDIO Specification Version V1.1
• Cards clock rate up to Master Clock divided by 2
• Embedded power management to slow down clock rate when not used
• Each MCI has two slots, 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
10.5.9CAN Controller
• Fully compliant with 16-mailbox CAN 2.0A and 2.0B CAN Controllers
44
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
10.5.10USB Host Port
AT91SAM9263 Preliminary
• Bit rates up to 1Mbit/s.
• Object-oriented mailboxes, each with the following properties:
– CAN Specification 2.0 Part A or 2.0 Part B programmable for each message
– Object Configurable as receive (with overwrite or not) or transmit
– Local Tag and Mask Filters up to 29-bit Identifier/Channel
– 32 bits access to Data registers for each mailbox data object
– Uses a 16-bit time stamp on receive and transmit message
– Hardware concatenation of ID unmasked bitfields to speedup family ID processing
– 16-bit internal timer for Time Stamping and Network synchronization
– Programmable reception buffer length up to 16 mailbox object
– Priority Management between transmission mailboxes
– Autobaud and listening mode
– Low power mode and programmable wake-up on bus activity or by the application
– Data, Remote, Error and Overload Frame handling
• Compliant with Open HCI Rev 1.0 Specification
• Compliant 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
• Two embedded USB transceivers
• Supports power management
• Operates as a master on the matrix
10.5.11USB Device Port
10.5.12LCD Controller
• USB V2.0 full-speed compliant, 12 Mbits per second
• Embedded USB V2.0 full-speed transceiver
• Embedded 2,432-byte dual-port RAM for endpoints
• Suspend/Resume logic
• Ping-pong mode (two memory banks) for isochronous and bulk endpoints
• Six general-purpose endpoints
– Endpoint 0 and 3: 64 bytes, no ping-pong mode
– Endpoint 1 and 2: 64 bytes, ping-pong mode
– Endpoint 4 and 5: 512 bytes, ping-pong mode
• Single and Dual scan color and monochrome passive STN LCD panels supported
• Single scan active TFT LCD panels supported
• 4-bit single scan, 8-bit single or dual scan, 16-bit dual scan STN interfaces supported
• Up to 24-bit single scan TFT interfaces supported
• Up to 16 gray levels for mono STN and up to 4096 colors for color STN displays
• 1, 2 bits per pixel (palletized), 4 bits per pixel (non-palletized) for mono STN
6249G–ATARM–06-Jan-09
45
• 1, 2, 4, 8 bits per pixel (palletized), 16 bits per pixel (non-palletized) for color STN
• 1, 2, 4, 8 bits per pixel (palletized), 16, 24 bits per pixel (non-palletized) for TFT
• Single clock domain architecture
• Resolution supported up to 2048x2048
• 2D DMA Controller for management of virtual Frame Buffer
– Allows management of frame buffer larger than the screen size and moving the view
over this virtual frame buffer
• Automatic resynchronization of the frame buffer pointer to prevent flickering
10.5.13Two D Graphics Controller
• Acts as one Matrix Master
• Commands are passed through the APB User Interface
• Operates directly in the frame buffer of the LCD Controller
– Line draw
– Block transfer
– Clipping
• Commands queuing through a FIFO
10.5.14Ethernet 10/100 MAC
• Compatibility with IEEE Standard 802.3
• 10 and 100 Mbits per second data throughput capability
• Full- and half-duplex operations
• MII or RMII interface to the physical layer
• Register Interface to address, data, status and control registers
• DMA Interface, operating as a master on the Memory Controller
• Interrupt generation to signal receive and transmit completion
• 28-byte transmit and 28-byte receive FIFOs
• Automatic pad and CRC generation on transmitted frames
• Address checking logic to recognize four 48-bit addresses
• Support promiscuous mode where all valid frames are copied to memory
• Support physical layer management through MDIO interface control of alarm and update
time/calendar data in
10.5.15Image Sensor Interface
• ITU-R BT. 601/656 8-bit mode external interface support
• Support for ITU-R BT.656-4 SAV and EAV synchronization
• Vertical and horizontal resolutions up to 2048 x 2048
• Preview Path up to 640*480
• Support for packed data formatting for YCbCr 4:2:2 formats
• Preview scaler to generate smaller size image
• Programmable frame capture rate
46
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
11. ARM926EJ-S Processor Overview
11.1Overview
The ARM926EJ-S processor is a member of the ARM9s 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:
In Jazelle state, all instruction Fetches are in words.
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
48
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
• 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.
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.
AT91SAM9263 Preliminary
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.
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
6249G–ATARM–06-Jan-09
49
• 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-1 shows all the registers in all modes.
Table 11-1.ARM9TDMI
User and
System Mode
R0R0R0R0R0R0
R1R1R1R1R1R1
R2R2R2R2R2R2
R3R3R3R3R3R3
R4R4R4R4R4R4
R5R5R5R5R5R5
R6R6R6R6R6R6
R7R7R7R7R7R7
R8R8R8R8R8
R9R9R9R9R9
R10R10R10R10R10
R11R11R11R11R11
R12R12R12R12R12
R13R13_SVCR13_ABORTR13_UNDEFR13_IRQR13_FIQ
R14R14_SVCR14_ABORTR14_UNDEFR14_IRQR14_FIQ
PCPCPCPCPCPC
Supervisor
®
Modes and Registers Layout
ModeAbort Mode
Undefined
ModeInterrupt Mode
Fast Interrupt
Mode
R8_FIQ
R9_FIQ
R10_FIQ
R11_FIQ
R12_FIQ
50
CPSRCPSRCPSRCPSRCPSRCPSR
SPSR_SVCSPSR_ABORTSPSR_UNDEFSPSR_IRQSPSR_FIQ
Mode-specific banked registers
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
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
AT91SAM9263 Preliminary
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
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
There are banked registers SPs, LRs and SPSRs for each privileged mode (for more details see
the ARM9EJ-S Technical Reference Manual, ref. DDI0222B,
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
revision r1p2 page 2-12).
6249G–ATARM–06-Jan-09
51
Figure 11-2. Status Register Format
NZCV QJIFT
Mode
Reserved
Mode bits
Thumb state bit
FIQ disable
IRQ disable
Jazelle state bit
Reserved
Sticky Overflow
Overflow
Carry/Borrow/Extend
Zero
Negative/Less than
31 30 2928 27247 6 50
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
Exception 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)
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)
52
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
The BKPT, or Undefined instruction, and SWI exceptions are mutually exclusive.
There is one exception in the priority scheme though, 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.
Exception 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
– THUMB state, the ARM9EJ-S writes the value of the PC into LR, offset by a value
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.
AT91SAM9263 Preliminary
into LR (current PC(r15) + 4 or PC + 8 depending on the exception).
(current PC + 2, PC + 4 or PC + 8 depending on the exception) that causes the
program to resume from the correct place on return.
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.
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
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:
6249G–ATARM–06-Jan-09
• Branch instructions
53
• 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]).
Table 11-2 gives the ARM instruction mnemonic list.
Table 11-2.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
SMLAL
MSRMove to Status RegisterMRSMove From Status Register
B BranchBLBranch and Link
BXBranch and ExchangeSWISoftware Interrupt
LDRLoad WordSTRStore Word
LDRSHLoad Signed Halfword
LDRSBLoad Signed Byte
LDRHLoad Half WordSTRHStore Half Word
LDRBLoad ByteSTRBStore Byte
LDRBT
LDRT
LDMLoad MultipleSTMStore Multiple
SWPSwap WordSWPBSwap Byte
MCRMove To CoprocessorMRCMove From Coprocessor
LDCLoad To CoprocessorSTCStore From Coprocessor
CDP
Signed Long Multiply
Accumulate
Load Register Byte with
Translation
Load Register with
Translation
Coprocessor Data
Processing
UMLAL
STRBT
STRT
Unsigned Long Multiply
Accumulate
Store Register Byte with
Tr a ns l a ti o n
Store Register with
Tr a ns l a ti o n
54
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
11.3.9New ARM Instruction Set
.
Table 11-3.New ARM Instruction Mnemonic List
MnemonicOperationMnemonicOperation
BXJ
(1)
BLX
SMLAxy
SMLAL
SMLAWy
SMULxySigned Multiply 16 * 16 bitPLD
SMULWySigned Multiply 32 * 16 bitSTRDStore Double
QADDSaturated AddSTC2
QDADDSaturated Add with DoubleLDRDLoad Double
QSUBSaturated subtractLDC2
QDSUB
AT91SAM9263 Preliminary
Branch and exchange to
Java
Branch, Link and exchangeMCR2
Signed Multiply Accumulate
16 * 16 bit
Signed Multiply Accumulate
Long
Signed Multiply Accumulate
32 * 16 bit
Saturated Subtract with
double
MRRC
MCRRMove double to coprocessor
CDP2
BKPTBreakpoint
CLZCount Leading Zeroes
Move double from
coprocessor
Alternative move of ARM reg
to coprocessor
Alternative Coprocessor
Data Processing
Soft Preload, Memory
prepare to load from address
Alternative Store from
Coprocessor
Alternative Load to
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
• Exception-generating instruction
Table 5 shows the Thumb instruction set. Table 11-4 gives the Thumb instruction mnemonic list.
Table 11-4.Thumb Instruction Mnemonic List
MnemonicOperationMnemonicOperation
MOVMoveMVNMove Not
ADDAddADCAdd with Carry
SUBSubtractSBCSubtract with Carry
CMPCompareCMNCompare Negated
TSTTestNEGNegate
ANDLogical ANDBICBit Clear
6249G–ATARM–06-Jan-09
55
Table 11-4.Thumb Instruction Mnemonic List (Continued)
MnemonicOperationMnemonicOperation
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-5.
Table 11-5.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
(1)
(1)
(1)
(1)
(1)
Read/Unpredictable
Read/Unpredictable
Read/Unpredictable
Read/write
Read/write
56
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
AT91SAM9263 Preliminary
Table 11-5.CP15 Registers
RegisterName Read/Write
8TLB operations Unpredictable/Write
9cache lockdown
9TCM regionRead/write
10TLB lockdownRead/write
11ReservedNone
12ReservedNone
13FCSE PID
13Context ID
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.
(2)
(1)
(1)
Read/write
Read/write
Read/Write
6249G–ATARM–06-Jan-09
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, ref. DDI0198B.
58
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
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 OS
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 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).
6249G–ATARM–06-Jan-09
59
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 (Modified 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, ref. DDI0198B.
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,
ref. DDI0198B.
11.6Caches and Write Buffer
The ARM926EJ-S contains a 16 KB Instruction Cache (ICache), a 16 KB 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.
60
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
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
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, ref. DDI0198B).
AT91SAM9263 Preliminary
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.
6249G–ATARM–06-Jan-09
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, ref. DDI0222B).
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.
61
11.6.2.2Write Buffer
Write-though Operation
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.
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.
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.
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.
Write-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.7Tightly-Coupled Memory Interface
11.7.1TCM Description
The ARM926EJ-S processor features a Tightly-Coupled Memory (TCM) interface, which
enables separate instruction and data TCMs (ITCM and DTCM) to be directly reached by the
processor. TCMs are used to store real-time and performance critical code, they also provide a
DMA support mechanism. Unlike AHB accesses to external memories, accesses to TCMs are
fast and deterministic and do not incur bus penalties.
The user has the possibility to independently configure each TCM size with values within the following ranges, [0KB, 64 KB] for ITCM size and [0KB, 64 KB] for DTCM size.
TCMs can be configured by two means: HMATRIX TCM register and TCM region register (register 9) in CP15 and both steps should be performed. HMATRIX TCM register sets TCM size
whereas TCM region register (register 9) in CP15 maps TCMs and enables them.
The data side of the ARM9EJ-S core is able to access the ITCM. This is necessary to enable
code to be loaded into the ITCM, for SWI and emulated instruction handlers, and for accesses to
PC-relative literal pools.
62
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
11.7.2Enabling and Disabling TCMs
Prior to any enabling step, the user should configure the TCM sizes in HMATRIX TCM register.
Then enabling TCMs is performed by using TCM region register (register 9) in CP15. The user
should use the same sizes as those put in HMATRIX TCM register. For further details and programming tips, please refer to chapter 2.3 in ARM926EJ-S TRM, ref. DDI0222B.
11.7.3TCM Mapping
The TCMs can be located anywhere in the memory map, with a single region available for ITCM
and a separate region available for DTCM. The TCMs are physically addressed and can be
placed anywhere in physical address space. However, the base address of a TCM must be
aligned to its size, and the DTCM and ITCM regions must not overlap. TCM mapping is performed by using TCM region register (register 9) in CP15. The user should input the right
mapping address for TCMs.
11.8Bus 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.
AT91SAM9263 Preliminary
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.8.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.
Table 11-7 gives an overview of the supported transfers and different kinds of transactions they
are used for.
6249G–ATARM–06-Jan-09
63
Table 11-7.Supported Transfers
HBurst[2:0]Description
SINGLESingle transfer
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.8.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.8.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.
64
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
12. AT91SAM9263 Debug and Test
12.1Overview
The AT91SAM9263 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. An ETM (Embedded Trace Macrocell)
provides more sophisticated debug features such as address and data comparators, half-rate
clock mode, counters, sequencer and FIFO. 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.
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
65
12.2Block Diagram
2
ETMICE-RT
ARM9EJ-S
PDC
DBGU
PIO
DRXD
DTXD
TPK0-TPK15
TPS0-TPS2
TSYNC
TCLK
TMS
TCK
TDI
JTAGSEL
TDO
TST
Reset
and
Test
TAP: Test Access Port
Boundary
Port
ICE/JTAG
TAP
ARM926EJ-S
POR
RTCK
NTRST
Figure 12-1. Debug and Test Block Diagram
66
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
12.3Application Examples
AT91SAM9263-based Application
ICE/JTAG
Interface
Host Debugger
ICE/JTAG
Connector
Terminal
RS232
Connector
Trace Port
Interface
Trace
Connector
AT91SAM9263
Tester
JTAG
Interface
ICE/JTAG
Connector
AT91SAM9263-based Application Board In Test
Test Adaptor
Chip 2Chip n
Chip 1
AT91SAM9263
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. The Trace Port interface is used for tracing information. 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
AT91SAM9263 Preliminary
12.3.2Test Environment
6249G–ATARM–06-Jan-09
Figure 12-3 on page 67 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
67
12.4Debug and Test Pin Description
Table 12-1.Debug and Test Pin List
Pin NameFunctionTypeActive Level
NTRSTTest Reset SignalInputLow
NRSTMicrocontroller ResetInput/OutputLow
TSTTest Mode SelectInputHigh
TCKTest ClockInput
TDITest Data InInput
TDOTest Data OutOutput
TMSTest Mode SelectInput
RTCKReturned Test ClockOutput
JTAGSELJTAG SelectionInput
AT91SAM9263 Preliminary
Reset/Test
ICE and JTAG
ETM
TSYNCTrace Synchronization SignalOutput
TCLKTrace ClockOutput
TPS0 - TPS2Trace ARM Pipeline StatusOutput
TPK0 - TPK15Trace Packet PortOutput
DRXDDebug Receive DataInput
DTXDDebug Transmit DataOutput
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.
Debug Unit
6249G–ATARM–06-Jan-09
68
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.
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 (DDI 0222A).
12.5.3JTAG Signal Description
TMS is the Test Mode Select input which controls the transitions of the test interface state
machine.
TDI is the Test Data Input line which supplies the data to the JTAG registers (Boundary Scan
Register, Instruction Register, or other data registers).
TDO is the Test Data Output line which is used to serially output the data from the JTAG registers to the equipment controlling the test. It carries the sampled values from the boundary scan
chain (or other JTAG registers) and propagates them to the next chip in the serial test circuit.
NTRST (optional in IEEE Standard 1149.1) is a Test-ReSeT input which is mandatory in ARM
cores and used to reset the debug logic. On Atmel ARM926EJ-S-based cores, NTRST is a
Power On Reset output. It is asserted on power on. If necessary, the user can also reset the
debug logic with the NTRST pin assertion during 2.5 MCK periods.
AT91SAM9263 Preliminary
12.5.4Debug Unit
TCK is the Test ClocK input which enables the test interface. TCK is pulsed by the equipment
controlling the test and not by the tested device. It can be pulsed at any frequency. Note the
maximum JTAG clock rate on ARM926EJ-S cores is 1/6th the clock of the CPU. This gives 5.45
kHz maximum initial JTAG clock rate for an ARM9E running from the 32.768 kHz slow clock.
RTCK is the Return Test Clock. Not an IEEE Standard 1149.1 signal added for a better clock
handling by emulators. From some ICE Interface probes, this return signal can be used to synchronize the TCK clock and take not care about the given ratio between the ICE Interface clock
and system clock equal to 1/6th. This signal is only available in JTAG ICE Mode and not in
boundary scan mode.
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 AT91SAM9263 Debug Unit Chip ID value is 0x0196 07A0on 32-bit width.
6249G–ATARM–06-Jan-09
For further details on the Debug Unit, see the Debug Unit section.
69
12.5.5Embedded Trace Macrocell
The AT91SAM9263 features an Embedded Trace Macrocell (ETM), which is closely connected
to the ARM926EJ-S Processor. The Embedded Trace is a standard Medium+ level implementation and contains the following resources:
• Four pairs of address comparators
• Two data comparators
• Eight memory map decoder inputs
• Two 16-bits counters
• One 3-stage sequencer
• Four external inputs
• One external output
• One 45-byte FIFO
The Embedded Trace Macrocell of the AT91SAM9263 works in half-rate clock mode and thus
integrates a clock divider. This allows the maximum frequency of all the trace port signals not to
exceed one half of the ARM926EJ-S clock speed.
The Embedded Trace Macrocell input and output resources are not used in the AT91SAM9263.
The Embedded Trace is a real-time trace module with the capability of tracing the ARM9EJ-S
instruction and data.
AT91SAM9263 Preliminary
12.5.5.1Trace Port
For further details on Embedded Trace Macrocell, see the ARM documents:
• TSYNC - the synchronization signal (Indicates the start of a branch sequence on the trace
packet port.)
• TCLK - the Trace Port clock, half-rate of the ARM926EJ-S processor clock.
• TPS0 to TPS2 - indicate the processor state at each trace clock edge.
• TPK0 to TPK15 - the Trace Packet data value.
The trace packet information (address, data) is associated with the processor state indicated by
TPS. Some processor states have no additional data associated with the Trace Packet Port (i.e.
failed condition code of an instruction). The packet is 8-bits wide, and up to two packets can be
output per cycle.
DDI 0157F)
6249G–ATARM–06-Jan-09
70
Figure 12-4. ETM9 Block
ARM926EJ-S
Bus Tracker
TMS
TCK
TDI
TDO
Scan Chain 6
TAP
Controller
Trace
Control
Trigger, Sequencer, Counters
FIFO
Trace Enable, View Data
TPS-TPS0
TPK15-TPK0
TSYNC
ETM9
12.5.5.2Implementation Details
This section gives an overview of the Embedded Trace resources.
AT91SAM9263 Preliminary
Three-state Sequencer
Address Comparator
Data Comparator
The sequencer has three possible next states (one dedicated to itself and two others) and can
change on every clock cycle. The sate transition is controlled with internal events. If the user
needs multiple-stage trigger schemes, the trigger event is based on a sequencer state.
In single mode, address comparators compare either the instruction address or the data address
against the user-programmed address.
In range mode, the address comparators are arranged in pairs to form a virtual address range
resource.
Details of the address comparator programming are:
• The first comparator is programmed with the range start address.
• The second comparator is programmed with the range end address.
• The resource matches if the address is within the following range:
– (address > = range start address) AND (address < range end address)
• Unpredictable behavior occurs if the two address comparators are not configurated in the
same way.
Each full address comparator is associated with a specific data comparator. A data comparator
is used to observe the data bus only when load and store operations occur.
A data comparator has both a value register and a mask register, therefore it is possible to compare only certain bits of a preprogrammed value against the data bus.
6249G–ATARM–06-Jan-09
71
Memory Decoder Inputs
Half-rate Clocking Mode
Trace Clock
TraceData
ARM920T Clock
FIFO
AT91SAM9263 Preliminary
The eight memory map decoder inputs are connected to custom address decoders. The
address decoders divide the memory into regions of on-chip SRAM, on-chip ROM, and peripherals. The address decoders also optimize the ETM9 trace trigger.
External Bus InterfaceExternalData0x1000 00000x9FFF FFFF
External Bus InterfaceExternalFetch0x1000 00000x9FFF FFFF
User PeripheralsInternalData0xF000 00000xFFFF BFFF
System PeripheralsInternalData0xFFFF C0000xFFFF FFFF
Half-rate Clocking Mode
A 45-byte FIFO is used to store data tracing. The FIFO is used to separate the pipeline status
from the trace packet. So, the FIFO can be used to buffer trace packets.
A FIFO overflow is detected by the embedded trace macrocell when the FIFO is full or when the
FIFO has less bytes than the user-programmed number.
The ETM9 is implemented in half-rate mode that allows both rising and falling edge data tracing
of the trace clock.
The half-rate mode is implemented to maintain the signal clock integrity of high speed systems
(up to 100 MHz).
Figure 12-5. Half-rate Clocking Mode
6249G–ATARM–06-Jan-09
Care must be taken on the choice of the trace capture system as it needs to support half-rate
clock functionality.
72
12.5.5.3Application Board Restriction
38 37
2 1
Pin 1Chamfer
AT91SAM9263-based
Application Board
The TCLK signal needs to be set with care, some timing parameters are required. See “ETM
Timings” for more details.
The specified target system connector is the AMP Mictor connector.
The connector must be oriented on the application board as described below in Figure 12-6. The
view of the PCB is shown from above with the trace connector mounted near the edge of the
board. This allows the Trace Port Analyzer to minimize the physical intrusiveness of the interconnected target.
Figure 12-6. AMP Mictor Connector Orientation
AT91SAM9263 Preliminary
12.5.6IEEE 1149.1 JTAG Boundary Scan
IEEE 1149.1 JTAG Boundary Scan allows pin-level access independent of the device packaging
technology.
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.
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.6.1JTAG Boundary Scan Register
The Boundary Scan Register (BSR) contains 664 bits that correspond to active pins and associated control signals.
6249G–ATARM–06-Jan-09
73
Each AT91SAM9263 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.
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.
Then the SD Card Boot program is executed. It looks for a boot.bin file in the root directory of a
FAT12/16/32 formatted SD Card. If such a file is found, code is downloaded into the internal
SRAM. This is followed by a remap and a jump to the first address of the SRAM.
If the SD Card is not formatted or if boot.bin file is not found, NAND Flash Boot program is then
executed.
The NAND Flash Boot program looks for a sequence of seven valid ARM exception vectors. If
such a sequence is found, code is downloaded into the internal SRAM. This is followed by a
remap and a jump to the first address of the SRAM.
If no valid ARM vector sequence is found, the DataFlash
a sequence of seven valid ARM exception vectors in a DataFlash connected to the SPI. All
these vectors must be B-branch or LDR load register instructions except for the sixth vector.
This vector is used to store the size of the image to download.
AT91SAM9263 Preliminary
®
Boot program is executed. It looks for
13.2Flow Diagram
If a valid sequence is found, code is downloaded into the internal SRAM. This is followed by a
remap and a jump to the first address of the SRAM.
If no boot.bin file is found, SAM-BA
USB device, or on the DBGU serial port.
The Boot Program implements the algorithm in Figure 13-1.
®
Boot is then executed. It waits for transactions either on the
6249G–ATARM–06-Jan-09
95
Figure 13-1. Boot Program Algorithm Flow Diagram
Yes
No
Main Oscillator Bypass
Start
Input Frequency
Table
Enable
Main Oscillator
Timeout < 1 s
SPI DataFlash Boot
Download from
DataFlash (NPCS0)
Run
Yes
DataFlash Boot
SAM-BA Boot
No
Timeout < 1 s
NandFlash Boot
Download from
NandFlash
Run
Yes
NandFlash Boot
No
Character(s) received
on DBGU ?
Run SAM-BA Boot
Run SAM-BA Boot
USB Enumeration
Successful ?
YesYes
No
No
Timeout < 1 s
SD Card Boot
Download from
SD Card (MCI)
Run
Yes
SD Card Boot
No
96
AT91SAM9263 Preliminary
6249G–ATARM–06-Jan-09
13.3Device Initialization
Initialization follows the steps described below:
1.Stack setup for ARM supervisor mode
2.External Clock Detection
3.Switch Master Clock on Main Oscillator
4.C variable initialization
5.Main oscillator frequency detection
6.PLL setup: PLLB is initialized to generate a 48 MHz clock necessary to use the USB
Table 13-1 defines the crystals supported by the Boot Program.
Table 13-1.Crystals Supported by Software Auto-detection (MHz)
3.03.27683.68643.844.0
4.433619 4.608 4.9152 5.0 5.24288
6.06.144 6.4 6.5536 7.159090
7.37287.864320 8.0 9.8304 10.0
11.0592012.0 12.28813 13.56
AT91SAM9263 Preliminary
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.
14.31818 14.745616.016.367667 17.734470
18.432 20.0242526
28.224323340
7.Initialization of the DBGU serial port (115200 bauds, 8, N, 1)
8.Enable the User Reset
9.Jump to SD Card Boot sequence. If SD Card Boot succeeds, perform a remap and
jump to 0x0.
10. Jump to NAND Flash Boot sequence. If NAND Flash Boot succeeds, perform a remap
and jump to 0x0.
11. Jump to DataFlash Boot sequence through NPCS0. If DataFlash Boot succeeds, per-
form a remap and jump to 0x0.
12. Activation of the Instruction Cache
13. Jump to SAM-BA Boot sequence
14. Disable the WatchDog
15. Initialization of the USB Device Port
6249G–ATARM–06-Jan-09
97
13.4DataFlash Boot
REMAP
Internal
ROM
Internal
SRAM
Internal
SRAM
Internal
ROM
0x0030_0000
0x0000_0000
0x0040_0000
0x0000_0000
3128 2724 2320 1916 1512 110
111001 I PU0W1RnRdAddressing Mode
3128 2724 230
11101010Offset (24 bits)
AT91SAM9263 Preliminary
Figure 13-2. Remap Action after Download Completion
The DataFlash Boot program searches for a valid application in the SPI DataFlash memory. If a
valid application is found, this application is loaded into internal SRAM and executed by branching at address 0x0000_0000 after remap. This application may be the application code or a
second-level bootloader.
All the calls to functions are PC relative and do not use absolute addresses.
After reset, the code in internal ROM is mapped at both addresses 0x0000_0000 and 0x0010_0000:
400000ea000006B0x2000ea000006B0x20
400004eafffffeB0x0404eafffffeB0x04
400008ea00002fB_main08ea00002fB_main
40000ceafffffeB0x0c0ceafffffeB0x0c
400010eafffffeB0x1010eafffffeB0x10
400014eafffffeB0x1414eafffffeB0x14
400018eafffffeB0x1818eafffffeB0x18
40001ceafffffeB0x1c1ceafffffeB0x1c
13.4.1Valid Image Detection
The DataFlash Boot software looks for a valid application by analyzing the first 28 bytes corresponding to the ARM exception vectors. These bytes must implement ARM instructions for
either branch or load PC with PC relative addressing.
The sixth vector, at offset 0x14, contains the size of the image to download. The user must
replace this vector with his own vector (see “Structure of ARM Vector 6” on page 99).
Figure 13-3. LDR Opcode
Figure 13-4. B Opcode
6249G–ATARM–06-Jan-09
Unconditional instruction: 0xE for bits 31 to 28.
98
Load PC with PC relative addressing instruction:
310
Size of the code to download in bytes
– Rn = Rd = PC = 0xF
–I==1
–P==1
– U offset added (U==1) or subtracted (U==0)
–W==1
13.4.2Structure of ARM Vector 6
The ARM exception vector 6 is used to store information needed by the DataFlash boot program. This information is described below.
Figure 13-5. Structure of the ARM Vector 6
13.4.2.1Example
An example of valid vectors follows:
AT91SAM9263 Preliminary
00ea000006B0x20
04eafffffeB0x04
08ea00002fB_main
0ceafffffeB0x0c
10eafffffeB0x10
1400001234B0x14
18eafffffeB0x18
The size of the image to load into SRAM is contained in the location of the sixth ARM vector.
Thus the user must replace this vector by the correct vector for his application.
13.4.3DataFlash Boot Sequence
The DataFlash boot program performs device initialization followed by the download procedure.
The DataFlash boot program supports all Atmel DataFlash devices. Table 13-2 summarizes the
parameters to include in the ARM vector 6 for all devices.
Table 13-2.DataFlash Device
DeviceDensityPage Size (bytes)Number of Pages
AT45DB0111 Mbit264512
AT45DB0212 Mbits2641024
AT45DB0414 Mbits2642048
AT45DB0818 Mbits2644096
AT45DB16116 Mbits5284096
<- Code size = 4660 bytes
AT45DB32132 Mbits5288192
AT45DB64264 Mbits10568192
6249G–ATARM–06-Jan-09
99
AT91SAM9263 Preliminary
End
Read the first 7 instructions (28 bytes).
Decode the sixth ARM vector
Yes
Read the DataFlash into the internal SRAM.
(code size to read in vector 6)
Restore the reset value for the peripherals.
Set the PC to 0 and perform the REMAP
to jump to the downloaded application
Send status command
7 vectors
(except vector 6) are LDR
or Branch instruction
Yes
Start
Is status OK ?
Jump to next boot
solution
No
No
The DataFlash has a Status Register that determines all the parameters required to access the
device. The DataFlash boot is configured to be compatible with the future design of the
DataFlash.
Figure 13-6. Serial DataFlash Download
6249G–ATARM–06-Jan-09
100
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.