LP TRNH THNG NHNG TRN
VI X L ARM
(Programming the ARM Microprocessor
for Embedded Systems)
Nguyn Tn Thnh
thinh.nttech@gmail.com
ARM Architecture and ARM Core Overview
I.
GII THIU KIN TRC ARM
1.1 Introduction to ARM Ltd.
1.2
The ARM Architecture.
1.2.1 Example ARM based system:
ARM Architecture and ARM Core Overview
1.2.2 Which architecture is my processor?
Processor core
ARM7TDMI family
Architecture
v4T
ARM720T, ARM740T
ARM9TDMI family
v4T
ARM920T,ARM922T,ARM940T
ARM9E family
v5TE, v5TEJ
ARM946E-S, ARM966E-S, ARM926EJ-S
ARM10E family
v5TE, v5TEJ
ARM1020E, ARM1022E, ARM1026EJ-S
ARM11 family
v6
ARM1136J(F)-S
v6
ARM1156T2(F)-S
v6T2
ARM1176JZ(F)-S
v6Z
Cortex family
ARM Cortex-A8
v7A
ARM Cortex-R4
v7R
ARM Cortex-M3
v7M
More information is available at arm.com
1.2.3 Data Sizes and Instruction Sets.
ARM is a RISC architecture
Many instructions execute in a single cycle
ARM is a 32-bit load / store architecture
When used in relation to the ARM:
Halfword means 16 bits (two bytes)
Word means 32 bits (four bytes)
Doubleword means 64 bits (eight bytes)
ARM Architecture and ARM Core Overview
Most ARMs implement two instruction sets
32-bit ARM Instruction Set
16-bit Thumb Instruction Set
Latest ARM cores introduce a new instruction set Thumb-2
Provides a mixture of 32-bit and 16-bit instructions
Maintains code density with increased flexibility
Jazelle cores can also execute Java bytecode.
1.2.4 Processor Modes.
The ARM has seven basic operating modes:
Each mode has access to
Its own stack space and a different subset of registers.
Some operations can only be carried out in a privileged mode.
1.2.5 The ARM Register Set.
3
ARM Architecture and ARM Core Overview
1.2.6 Register Organization Summary.
ARM Architecture and ARM Core Overview
1.2.7 Program Status Registers.
Condition code flags
T Bit
N = Negative result from ALU
T = 0: Processor in ARM state
Z = Zero result from ALU
T = 1: Processor in Thumb state
C = ALU operation Carried out
Introduced in Architecture 4T
V = ALU operation oVerflowed
Mode bits
Sticky Overflow flag - Q flag
Architecture 5TE and later only
Specify the processor mode
New bits in V6
Indicates if saturation has
occurred
J bit
Architecture 5TEJ and later only
J = 1: Processor in Jazelle state
Interrupt Disable bits.
I = 1: Disables the IRQ
GE[3:0] used by some SIMD
instructions.
E bit controls load/store endianness.
A bit disables imprecise data aborts.
IT [abcde] IF THEN conditional
execution of Thumb2 instruction
groups.
F = 1: Disables the FIQ
1.2.8 Program Counter (r15).
When the processor is executing in ARM state:
All instructions are 32 bits wide
All instructions must be word aligned
Therefore the pc value is stored in bits [31:2] with bits [1:0] undefined (as
instruction cannot be halfword or byte aligned).
When the processor is executing in Thumb state:
5
ARM Architecture and ARM Core Overview
All instructions are 16 bits wide
All instructions must be halfword aligned
Therefore the pc value is stored in bits [31:1] with bit [0] undefined (as
instructions cannot be byte aligned.
1.2.9 Exception Handling.
When an exception occurs, the core:
Copies CPSR into SPSR_<mode>
Sets appropriate CPSR bits
Change to ARM state
Change to exception mode
Disable interrupts (if appropriate)
Stores the return address in LR_<mode>
Sets PC to vector address
To return, exception handler needs to:
Restore CPSR from SPSR_<mode>
Restore PC from LR_<mode>
This can only be done in ARM state.
1.2.10 Data Alignment.
Memory accesses must always be appropriately aligned for size of access
Unaligned addresses will produce unexpected/undefined results.
ARM Architecture and ARM Core Overview
Detect invalid unaligned data accesses with Data Abort exception.
External logic required, or use MMU when available
Beware that instruction fetches may appear unaligned
Unaligned data can be accessed using aligned access combined with
shift/mask operations.
1.2.11 Endian Configuration.
Endianness determines how contents of registers relate to the contents of
memory.
ARM registers are word (4 bytes) width
ARM addresses memory as a sequence of bytes
ARM processors are little-endian.
But can be configured to access big-endian memory systems
Little-endian memory system
Least significant byte is at lowest address
Big-endian memory system
Most significant byte is at lowest address
ARM support three models of endianness.
LE
Little-Endian
BE-32
Word Invariant Big-Endian
BE-8
Byte invariant Big-Endian (introduced in architecture v6).
ARM Architecture and ARM Core Overview
1.3
ARM Instruction Set.
All instructions are 32 bits long / many execute in a single cycle.
Instructions are conditionally executed.
A load / store architecture.
Example data processing instructions
SUB r0,r1,#5
ADD r2,r3,r3,LSL #2
ANDS r4,r4,#0x20
ADDEQ r5,r5,r6
Example branching instruction
B
r0 = r1 - 5
r2 = r3 + (r3 * 4)
r4 = r4 AND 0x20 (set flags)
IF
EQ condition
r5 = r5 + r6
Branch
forwards true
or backwards
relative to
current PC (+/- 32MB range)
<Label>
Example memory access instructions
LDR r0,[r1]
Load word at address r1 into r0
STRNEB r2,[r3,r4]
IF NE condition true, store bottom byte of
r2 to address r3+r4
STMFD sp!,{r4-r8,lr}
Thumb Instruction Set:
Thumb is a 16-bit instruction set
Optimized for code density from C code (~65% of ARM code size)
Improved performance from narrow memory
Subset of the functionality of the ARM instruction set
Switch between ARM and Thumb state using BX instruction
For most instructions generated by compiler:
Conditional execution is not used
Source and destination registers identical
Only Low registers used
Constants are of limited size
Inline barrel shifter not used
ARM Architecture and ARM Core Overview
Thumb-2 Instruction Set:
Thumb-2 is a major extension to the Thumb ISA
Adds 32-bit instructions to implement almost all of the ARM ISA
functionality
Retains the complete 16-bit Thumb instruction set
Supported by the ARM1156T2-S and Cortex Family
Cortex-M3 supports only Thumb-2
Cortex-M1 supports a subset of Thumb-2
Design objective: ARM performance with Thumb code density
No need to manually select instruction set split
Reduces need to profile code and understand execution patterns
Compiler can automatically select mix of 16 and 32 bit instructions
Gives access to ARM state behaviour
Exceptions may be handled directly
Coprocessors can be accessed
Advanced data handling of v5TE & v6 can be done
Conditional Execution via If-Then (IT) instruction
1-4 following instructions conditionally executed
Thumb 2 Performance / Density:
ARM Architecture and ARM Core Overview
Jazelle:
Jazelle-enabled ARM cores execute 8-bit Java bytecode
95% of bytecodes executed in hardware (typical)
Significantly more power-efficient
1.3.1 ARM Branches and Subroutines.
B <label>
PC relative, 32 MB range
BL <subroutine>
Stores return address in LR
Returning implemented by restoring the PC from LR
For non-leaf functions, LR will have to be stacked
BX <register>
Branch to address in register - with optional state change
Used in this context as a return instruction
10
ARM Architecture and ARM Core Overview
1.3.2 Coprocessors.
Up to 16 coprocessors can be defined
Expands the ARM instruction set
ARM uses them for internal functions so as not to enforce a particular memory
map (eg cp15 is the ARM cache controller)
Usually better for system designers to use memory mapped peripherals
Easier to implement.
1.4
ARM Processor Cores.
1.4.1 The ARM7TDMI Processor Core.
ARM7TDMI features
D
M
I
3 stage pipeline
Von Neumann architecture
CPI ~1.9
Thumb instruction set support
32-bit ARM instructions
16-bit Thumb instructions
Debug support
Enhanced multiplier (32x8) with
instructions for 64-bit results
EmbeddedICE Logic
11
ARM Architecture and ARM Core Overview
The Instruction Pipeline.
The ARM7 family uses a 3 stage pipeline in order to increase the speed of the flow
of instructions to the processor.
Allows several operations to be undertaken simultaneously, rather than serially.
The PC points to the instruction being fetched, not the instruction being executed.
Optimal Pipelining.
All operations here are on registers (single cycle execution).
In this example it takes 6 clock cycles to execute 6 instructions.
Clock cycles per Instruction (CPI) = 1
LDR Pipeline Example.
12
ARM Architecture and ARM Core Overview
Branch Pipeline Example.
Interrupt Pipeline Example.
13
ARM Architecture and ARM Core Overview
1.4.2 ARM9TDMI.
Architecture v4T
5 stage pipeline
Improves CPI to ~1.5
Improved maximum clock frequency
Harvard architecture
Increases available memory bandwidth
Instruction memory interface
Data memory interface
Simultaneous access to instruction and
data memory can be achieved
Normally supplied with caches attached
ARM922T (pictured)
2 x 8K caches
Memory Management Unit (MMU)
Write Buffer
ARM920T
As ARM922T but with 2 x 16K caches
ARM940T
Has a Memory Protection Unit (MPU)
14
ARM Architecture and ARM Core Overview
Pipeline changes for ARM9TDMI.
Cached Processor Terminology.
MPU Memory Protection Unit
Controls memory access permissions
Controls cacheable and bufferable
attributes for memory regions
MMU Memory Management Unit
Has all the features of an MPU
Also provides Virtual to Physical
address translation
Cache
Fast local memory
Holds copies of recently accessed
memory locations
TCM Tightly Coupled Memory
Fast local memory
Located at particular address range
Write buffer
Decouples writes to external
15
ARM Architecture and ARM Core Overview
1.4.3 ARM9E Processor Core.
1.4.4 ARM10E Family Overview.
16
ARM Architecture and ARM Core Overview
1.4.5 ARM1136J(F)-S Overview.
1.4.6 ARM Cortex-M3 Processor.
17
ARM Architecture and ARM Core Overview
ARMv7M Architecture
No ARM instruction set support
Thumb-2 only
No Cache - No MMU
Debug is optimized for microcontroller applications
Vector table is addresses, not instructions
Interrupts automatically save/restore state
Exceptions programmed in C
No Coprocessor 15
All registers are memory-mapped
Interrupt controller is part of Cortex-M3 macrocell
1.4.7 ARM Cortex-A8 Processor.
18
ARM Architecture and ARM Core Overview
Processor highlights
High frequency, high efficiency, low power
In-order, dual-issue, superscalar microprocessor
Advanced dynamic branch prediction
Average IPC of 0.9 across 150+ ARM and industry benchmarks
Custom / synthesizable design
ARMv7 instruction set
Integrated NEON media processor
Unified level 2 cache
19
ARM Architecture and ARM Core Overview
AXI interface
1.5 AMBA
Advanced Microcontroller Bus Architecture aims to:
Make life easier for systems designers
Standardize the bus interface
Reduce the support required
From ARM
Between internal design teams
Allows increased re-use of IP in designs
Enable the creation of upgrades and families of devices
AMBA 2.0: AHB.
Advanced High Performance Bus
High performance:
Full clock cycle to provide wait response
Burst signals for optimal memory interface
Split transaction for high access latency memory
20
ARM Architecture and ARM Core Overview
No overhead for arbitration or at start of bursts
Single Cycle Bus Master Handover
Data width extendable for high bandwidth
Synthesis friendly
Uses only rising edge of clock
No combinatorial input to output paths
STA and test insertion friendly
No bias towards tri-state implementation
No requirement for latches
No state dependent timing parameters
AHB Structure.
21
ARM Architecture and ARM Core Overview
AMBA 3.0: AXI (AXI is the AHB component of AMBA3.0)
Design Objectives:
Suitable for high-bandwidth & low-latency design
High frequency without bridges
Flexibility in interconnection architecture
Good performance with long initial latency peripherals
Backwards-compatibility with AHB & APB
Features
Separate address/control & data phases
Support for unaligned data transfers
Burst transaction based on start address issue only
Separate read & write channels
Multiple outstanding addresses
Out-of-order transaction completion
AXI Multi-Master System Design.
More AMBA:
Advanced Peripheral Bus (APB)
Reduces loading on main system bus
Low power, with no requirement for a clock
Suitable for synthesizable design
22
ARM Architecture and ARM Core Overview
Robust with set-up and hold ensured by protocol
Suitable for D-type or transparent latch based design
Advanced System Bus
Based on the original ARM bus interface
Uses both clock edges
Low silicon / interconnect overhead
Interface used by ARM7x0T and ARM9x0T cores
1.6
Writing Software for ARM Processors.
Tools: ADS (CodeWarrior), RVDS, Keil, IAR, GNU,
1.6.1 Keil uVision4.2
RealView Compilation Tools (RVCT) 3.0 includes
Highly optimising single ISO C/C++ compiler
Ongoing code density and performance improvements with each
release.
Full ISO C++ support (including exceptions)
ABI compliant (see later)
Support for latest architectures (v6, v7A and v7M)
Support for Thumb-2 instruction set
Data compressor - reduces space required in ROM
Linker feedback mechanism - informs compiler of unused functions which
can be eliminated in subsequent builds
23
ARM Architecture and ARM Core Overview
Other Compilation Tool Components
ARM / Thumb assembler - armasm
Linker - armlink
Format converter - fromelf
Librarian - armar
C and C++ libraries
24
ARM Architecture and ARM Core Overview
1.6.2 Application Code and Data Size:
25
ARM Architecture and ARM Core Overview
1.6.3 Introduction to Scatterloading:
In a real application, you will not want to load and execute your code at the default
address
Most embedded systems have memory devices spread across the memory
map
Scatterloading provides a way of placing your code and data into the
appropriate locations in memory
Scatterloading defines two types of memory region
Load Regions - contain application code & data at reset/load time (typically
ROM)
Execution Regions - contain code and data whilst the application is
executing
One or more execution regions will be created from each load region
during application startup
The details of the memory map used by a scatterloaded application
are contained in a description file which is passed as a parameter to
armlink
eg: armlink program.o --scatter scatter.scat -o program.axf.
Scatterloading (Simple Example):
RO code and data stays in ROM
C library initialization code (in __main) will :
o copy RW data from ROM to RAM
o initialize to zero the ZI data in RAM
Scatter Description Files
26
ARM Architecture and ARM Core Overview
To explain the syntax of a scatter-file :
In our scatter file we need to give both our load and execution regions a name.
We also need to specify a start address. There is an optional length parameter which can
follow the address parameter. For our example, the following syntax describes our single
load region.
The header syntax for execution regions is very similar to the header syntax for
load regions. As you can see from the execution region names, the first is located in
ROM, and the second is located in RAM.
You must specify the contents of each execution region with the curly braces. In
this example, we make use of the wildcard (*) syntax which collects all sections with a
given attribute. In the EXEC_ROM region, we collect all sections with the RO attribute.
In the RAM region, we collect all sections with either RW or ZI attributes.
Note that the linker placement rules discussed earlier apply to each execution
region individually, so all RW code and data will be located before all ZI data. (As shown
in the diagram).
The best discussion of scatter file syntax can be found in the RVCT Linker and
Utilities Guide.
1.6.4 Supplied Libraries.
ANSI C library:
Full file handling, string, maths, etc., support on the target
By default uses semihosted SWIs to access host debugger facilities
e.g. file I/O
27
ARM Architecture and ARM Core Overview
Retargetable without rebuilding whole library
Automatic selection of the correct library variant
C++ library includes:
Libraries and Semihosting:
Full file handling, string, maths, etc., support on the target
The linker will automatically link in the correct library variants for your
application
Depending on endianess, floating point requirements, position
independence, etc.
By default semihosting is used to access host debugger facilities
Library code runs on ARM target, low-level I/O provided by host debugger
User provides replacement implementations of specific functions for
embedded use
Retargeting the C Library (1):
You can replace the C librarys device driver lever functionality with an
implementation that is tailored to your target hardware
e.g. printf() should go to LCD screen, not debugger console
28
ARM Architecture and ARM Core Overview
To Retarget the C library, simply replace those C library functions which
use semihosting SWIs with your own implementations, to suit your system
For example, the printf() family of functions (except sprintf()) all
ultimately call fputc()
The default implementation of fputc() uses a semihosting SWI
Replace this with:
extern void sendchar(char *ch);
int fputc(int ch, FILE *f)
{ /* e.g. write a character to an LCD */
char tempch = ch;
sendchar(&tempch);
return ch;
}
See retarget.c in the examples directory for further examples of retargeting
1.5
Reference Material.
ARM Architecture Reference Manual - 2nd edition
edited by David Seal
ARM DDI 0100E is latest, covering v5TE DSP extensions
ISBN 0-201-737191 (Addison-Wesley)
Steve Furber ARM system-on-chip architecture - 2nd edition
ISBN 0-201-67519-6 (Addison-Wesley)
Sloss, Symes & Wright ARM System Developer's Guide
ISBN: 1-55860-874-5 (Morgan Kaufman)
Documentation (TRMs, datasheets, user guides, application notes, white
papers)
http://www.arm.com/documentation
29
AT91SAM9260 Sumary
II.
AT91SAM9260
c in chnh:
- Tc 180MHz, b x l ARM926EJ-S h tr tp lnh Thumb v ARM.
9 8 Kbytes b nh chng trnh v 8 KBtytes b nh d liu v MMU.
- B nh.
9 Giao din bus 32 bit h tr 4 bank SDRAM/LPSDR, Static memories,
CompactFlash, SLC NAND Flash with ECC.
9 2 SRAM on-chip tc cao, mi SRAM 4-kbyte.
9 Mt ROM on-chip 32-kbyte, c nhng sn bootstrap (level 1).
- Ngoi vi.
9 4 knh ADC 10 bit, (2 knh cho QFP, v 4 knh cho BGA).
9 2 UARTs,
9 4 USARTs,
9 1 Giao din giao tip I2C (two wire interface - TWI).
9 1 b iu khin ni tip ng b (synchronous serial controller).
9 2 SPI h tr 2 ch Master/Slaver.
9 1 Giao din Memory Card Host tc cao (SD/MMC card interface).
9 1 B iu khin 10/100 Mbps Ethernet MAC.
9 1 B iu khin truyn nhn USB-B (device) on-chip.
9 1 B iu khin truyn nhn USB-A (host) on-chip.
9 1 Giao din ITU-R BT. 601/656 image sensor giao tip CMOS camera.
- H thng (System).
9 22 knh DMA (direction memory access).
30
AT91SAM9260 Sumary
9 Khi ng (boot) t NAND Flash, SDCard, DataFlash hoc serial
DataFlash.
9 B iu khin reset (reset controller).
9 Ma trn bus AHB 6 lp 32 bit hot ng tn s 90MHz.
9 Mt PLL cho h thng, v mt cho USB.
9 Hai tn hiu xung ng h ngoi c th lp trnh c.
9 B iu khin ngt cao cp (AIC) v debug.
9 Tch hp b giao ng ni RC 32 kHz nng lng thp.
9 Cho php chn tn s tit kim nng lng 32,768 Hz v b giao ng
chnh 3-20 MHz.
9 Cho php ci t ch timer, watchdog timer, real time timer.
- Khi xut nhp (I/O).
9 3 b iu khin xut nhp song song 32 bit.
9 96 ng I/O a mc ch.
2.1
S khi AT91SAM9260.
Bng 2-1: Cc tn hiu khng c trn kiu chn PQFP.
31
AT91SAM9260 Sumary
Bng 2-2: S khi AT91SAM9260.
2.2
Bng c t cc tn hiu.
Bng 2-3: c t cc tn hiu:
32
AT91SAM9260 Sumary
33
AT91SAM9260 Sumary
34
AT91SAM9260 Sumary
35
AT91SAM9260 Sumary
2.3
Bng c t cc chn. (page 10 of doc6221.pdf)
Bng 2-4: Bng m t chn 208-PQFP
36
AT91SAM9260 Sumary
2.4
Power considerations.
2.4.1 Power suplies.
VDDCORE pins: Power the core, including the processor, the embedded memories
and the peripherals; voltage ranges from 1.65V and 1.95V, 1.8V nominal.
VDDIOM pins: Power the External Bus Interface I/O lines; voltage ranges between
1.65V and 1.95V (1.8V typical) or between 3.0V and 3.6V (3.3V nominal). The
expected voltage range is selectable by software.
VDDIOP0 pins: Power the Peripheral I/O lines and the USB transceivers; voltage
ranges from 3.0V and 3.6V, 3V or 3.3V nominal.
VDDIOP1 pins: Power the Peripherals I/O lines involving the Image Sensor Interface;
voltage ranges from 1.65V and 3.6V, 1.8V, 2.5V, 3V or 3.3V nominal.
VDDBU pin: Powers the Slow Clock oscillator and a part of the System controller;
voltage ranges from 1.65V to 1.95V, 1.8V nominal.
VDDPLL pin: Powers the Main Oscillator and PLL cells; voltage ranges from 1.65V
and 1.95V, 1.8V nominal.
VDDANA pin: Powers the Analog to Digital Converter; voltage ranges from 3.0V and
3.6V, 3.3V nominal.
37
AT91SAM9260 Sumary
The power supplies VDDIOM, VDDIOP0 and 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.
Ground pins GND are common to VDDCORE, VDDIOM, VDDIOP0 and VDDIOP1 pins
power supplies. Separated ground pins are provided for VDDBU, VDDPLL and VDDANA.
These ground pins are respectively GNDBU, GNDPLL and GNDANA.
2.5
Processor and architecture.
ARM926EJ-S Processor.
RISC Processor Based on ARM v5TEJ Architecture with Jazelle technology for Java
acceleration.
Two Instruction Sets.
ARM High-performance 32-bit Instruction Set.
Thumb High Code Density 16-bit Instruction Set.
Slow Clock Selection: The AT91SAM9260 slow clock can be generated either by an
external 32,768 Hz crystal or the on-chip RC oscillator.
OSCSEL
Slow Clock
Startup Time
Internal RC
240 s
External
32768 Hz 1200 ms16
The startup counter delay for the slow clock oscillator depends on the OSCSEL signal.
The 32,768 Hz startup delay is 1200 ms whereas it is 240 s for the internal RC oscillator.
The pin OSCSEL must be tied either to GND or VDDBU for correct operation of the
device.
DSP Instruction Extensions.
5-Stage Pipeline Architecture:
Instruction Fetch (F)
Instruction Decode (D)
Execute (E)
Data Memory (M)
Register Write (W)
8-Kbyte Data Cache, 8-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.
38
AT91SAM9260 Sumary
Write Buffer.
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 32bit data interface.
On Address and Data Buses, data can be 8-bit (Bytes), 16-bit (Half-words) or 32-bit
(Words).
Bus Matrix: has a 6-layer Matrix, handling requests from 6 masters
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.
The Bus Matrix of the AT91SAM9260 manages six Masters, which means that each
master can perform an access concurrently with others, according the slave it accesses is
available.
Each Master has its own decoder that can be defined specifically for each master. In order
to simplify the addressing, all the masters have the same decodings.
39
AT91SAM9260 Sumary
Each Slave has its own arbiter, thus allowing a different arbitration per Slave to be
programmed.
Master to Slave Access:
All the Masters can normally access all the Slaves. However, some paths do not make
sense, such as allowing access from the Ethernet MAC to the Internal Peripherals. Thus, these
paths are forbidden or simply not wired, and shown - in the following table.
Peripheral DMA controllers:
Twenty-two channels.
Two for each USART.
Two for the Debug Unit.
Two for each Serial Synchronous Co.
Two for each Serial Peripheral Interf.
One for Multimedia Card Interface.
One for Analog-to-Digital Converter.
Prefer to the datasheet for details of informations.
40
AT91SAM9260 Sumary
2.6
Memories.
41
AT91SAM9260 Sumary
Decoding breaks up the 4G bytes of address space into 16 banks of 256 Mbytes. The
banks 1 to 7 are directed to the EBI that associates these banks to the external chip selects
EBI_NCS0 to EBI_NCS7. Bank 0 is reserved for the addressing of the internal memories,
and a second level of decoding provides 1 Mbyte of internal memory area. Bank 15 is
reserved for the peripherals and provides access to the Advanced Peripheral Bus (APB).
Other areas are unused and performing an access within them provides an abort to the
master requesting such an access.
Each Master has its own bus and its own decoder, thus allowing a different memory
mapping per Master. However, in order to simplify the mappings, all the masters have a
similar address decoding.
Regarding Master 0 and Master 1 (ARM926 Instruction and Data), three different Slaves
are assigned to the memory space decoded at address 0x0: one for internal boot, one for
external boot, one after remap.
2.7
Peripherals.
2.7.1 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.
42
AT91SAM9260 Sumary
Setting AIC, SYSC, UHP and IRQ0-2 bits in the clock set/clear registers of the PMC has no
effect.
2.7.2 Peripheral interrupts and clock control.
2.7.2.1 System 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.
2.7.2.2
External interrupts.
All external interrupt signals, i.e., the Fast Interrupt signal FIQ or the Interrupt signals
IRQ0 to IRQ2, use a dedicated Peripheral ID. However, there is no clock control associated
with these peripheral IDs.
2.7.2.3
Peripheral signal multiplexing on I/O lines.
43
AT91SAM9260 Sumary
44
AT91SAM9260 Sumary
45
AT91SAM9260 Sumary
46
NAND Flash Support in AT91SAM9 Microcontrollers
III.
NAND Flash Support in AT91SAM9
Microcontrollers
3.1
Flash Overview.
Flash l b nh khng bay hi (non-volatile storage chip), c th xa v lp
trnh li bng in. in hnh l EEPROM (electrically erasable programmable
read-only memory). B nh Flash c s dng nhiu trong memory card, USB
Flash drives, MP3 players v solid-state drives vi mc ch chung l lu tr v
truyn d liu gia my tnh vi cc thit b s khc, v.v
Lch s b nh Flash (both NOR and NAND) c pht minh bi tin s
Fujio Masuoka nm 1980 khi ang lm vic cho TOSHIBA v c trnh by ti
hi ngh in t quc t IEEE nm 1984 ti San Francisco, California.
NOR: c b nh NOR flash ging nh c b nh RAM v c giao din
data bus v address bus ging RAM. Chnh v th rt nhiu vi x l c th s dng
NOR flash nh vng nh thc thi chng trnh (execute place memory), ngha l
chng trnh lu trong NOR flash c th thc hin trc tip t NOR flash m khng
cn copy ln RAM chy. Qun l bad block l mt c im mi ca NOR flash,
i vi cc NOR flash c khng h tr chc nng ny m software or device driver
s lm cng vic ny.
NAND Flash: c truy xut ging nh block devies nh a cng, th
nh. Each block consists of a number of pages. The pages are typically 512, 2048,
4096 bytes in size. Each page are a few bytes (typically 1/32 of the data size) that
can be used for storage of an ECC (error correcting code) checksum.
NOR
NAND
CE# - chip enable
CE# - chip enable
WP# - write protect
WE# - write enable
WE# - write enable
R/B# - ready / busy
OE# - output enable
RE# - read enable
PRE power on RE
D[15:0] - data bus
CLE - command latch enable
A[20:0] - address bus
ALE - address latch enable
WP# - write protect
I/O[7:0] or I/O[15:0] data bus
47
NAND Flash Support in AT91SAM9 Microcontrollers
3.2
NAND Flash Connection on AT91SAM9260.
NAND Flash c iu khin bi SMC ca AT91 tm a ch NCS3
(0x40000000 0x4FFFFFFF), (256MB)
Bng cu hnh h thng:
3.2.1 8-bit NAND Flash on AT91SAM9260.
3.2.2 16-bit NAND Flash on AT91SAM9260.
48
NAND Flash Support in AT91SAM9 Microcontrollers
49
Using SDRAM on AT91SAM9 Microcontrollers
IV. Using SDRAM on AT91SAM9 Microcontrollers
tham kho doc6256.pdf ca atmel.
4.1
RAM Overview.
c tnh:
RAM (random access memory) - b nh truy xut ngu nhin.
RAM cn c hiu l b nh RW (read/write memory) v khc vi b nh
ROM.
Lu chng trnh v d liu trong sut qu trnh thc thi.
Phn loi:
SRAM (Static RAM): c ch to theo cng ngh ECL (CMOS or BiCMOS),
mi bit nh c thi k bi cng logic vi 6 transistor MOS, tc cao v
giao din kt ni n gin.
DRAM (Dinymic RAM). s dng k thut MOS, Mi bit nh gm mt
transistor v mt t in. Vic ghi nh d liu da vo vic duy tr in tch
np vo t in v nh vy vic c mt bit nh lm ni dung bit ny b hy.
Do vy sau mi ln c mt nh, b phn iu khin b nh phi vit li
ni dung nh . V th giao din kt ni DRAM c thm tn hiu Autorecharge (auto-refresh). C mt s loi DRAM sau:
+ SDRAM ( Synchronous Dynamic RAM) - DRAM ng b. SDRAM hin
c cc loi: SDR, DDR, DDR2 v DDR3.
-
SDR SDRAM (Single Data Rate SDRAM), gi tt SDR.
DDR SDRAM (Double Data Rate SDRAM), gi tt DDR.
DDR2 SDRAM (Double Data Rate 2 SDRAM), gi tt DDR2.
DDR III SDRAM (Double Data Rate III SDRAM): DDR3, 64-bit, 1.5V.
+ RDRAM ( Rambus Dynamic RAM), gi tt "Rambus", cn tham kho
thm XDR memory architecture.
4.2
SDRAM Controller on AT91SAM9 Overview.
50
Using SDRAM on AT91SAM9 Microcontrollers
SDRAMC l b iu khin m rng b nh ca 1 chip, giao din 16-bit or
32-bit SDRAM. Kch thc memory page t 2048 - 4192 v s column l 256 2048. SDRAMC cho php truy xut byte (8-bit), half-word (16-bit) v word (32bit).
SDRAMC cho php truy xut word burst (no byte or half word bust). T lm
ti (self - refresh).
4.3
SDRAM Controller Signals Definition.
SDA10: lm vic nh l mt ng a ch SDRAM nhng cng c s dng nh l
auto-precharge command bit. AT91 cung cp mt tn hiu output SDA10 chuyn dng cho
php h thng kch hot tnh nng t ng precharge m khng nh hng bus a ch.
NBS[3:0]: tn hiu mt n d liu tng ng truy xut 8, 16 v 32 bit data.
SDRAMC_A[12:0]: cc ng a ch ca SDRAMC tng ng vi [A2:A14] ca vi x
l ngoi tr SDRAMC_A10 (SDA10). SDRAMC_A[12:0] qun l a ch ln ti 11
columns v 3 row.
4.4
SDRAM Connection on AT91SAM9.
AT91 cung cp NCS1 trong khng gian b nh kt ni vi 16-bit hoc 32bit SDRAM ngoi. DW bit trong thanh ghi cu hnh SDRAMC s chn 16-bit
hoc 32-bit bus width.
Giao din 32-bit SDRAMC c th kt ni vi mt 32-bit SDRAM hoc hai
16-bit SDRAM.
4.4.1 SDRAM 16-bit Connection.
51
Using SDRAM on AT91SAM9 Microcontrollers
4.4.2 SDRAM 32-bit Connection
4.5
ARM926EJ-S Access.
Single access, 4-word burst access, 8-word burst access.
52
Schematic of SAM9260-EK
V.
Schematic of SAM9260-EK
53
Schematic of SAM9260-EK
D[0..31]
A[0..22]
SHDN
AT73C213
DOUT
DIN
CLK
CS
NRST
D[0..31]
A[0..14]
SHDN
PC1
PB18
PB17
PB16
PCK0
TD0
TF0
TK0
PB0
PB1
PB2
PB3
SPI1_MISO
SPI1_MOSI
SPI1_SPCK
SPI1_NPCS0
NRST
RAS
CAS
SDA10
SDWE
SDCS_NCS1
RAS
CAS
SDA10
SDWE
SDCS_NCS1
PC[0..15]
MCLK
SDIN
LRFS
BCLK
D[0..31]
A[0..22]
SDCK
SDCKE
SDCK
SDCKE
NBS1
NBS3
CFIOR_NBS1_NWR1
CFIOW_NBS3_NWR3
A16
A17
PB[0..31]
01 - POWER SUPPLY
PB[0..31]
RS232
SERIAL INTERFACES
DBGU
DTXD
DRXD
COM0
TXD0
RXD0
RTS0
CTS0
DTR0
DSR0
DCD0
RI0
COM1
TXD1
RXD1
RTS1
CTS1
PB15
PB14
NANDOE
NANDWE
D BG U _TXD
D BG U _RXD
PIO
PIO
PB4
PB5
PB26
PB27
PB24
PB22
PB23
PB25
D[0..15]
SPI0_MISO MCDB0
MCDB1
MCDB2
SPI0_NPCS0 MCDB3
MCCK
SPI0_MOSI MCCDB
PB6
PB7
PB28
PB29
SPI0_SPCK
SPI0_NPCS1
PC[0..15]
USBCNX
DDM
DDP
PC5
PA0
PA5
PA4
PA3
PA8
PA1
PA2
PC11
NRST
PIO
TWCK
TWD
DDM
DDP
DEVICE
USB
A22
A21
NANDOE
NANDWE
PC14
PC13
HOST A
HDMA
HDPA
HDMA
HDPA
HOST B
HDMB
HDPB
HDMB
HDPB
PA24
PA23
RAS
CAS
SDA10
SDWE
SDCS_NCS1
SDCK
SDCKE
CFIOR_NBS1_NWR1
CFIOW_NBS3_NWR3
BA0
BA1
CLE
ALE
NANDOE
NANDWE
NANDCS
RDY BSY
D[0..15]
DAT0
DAT1
DAT2
DAT3
CLK
CMD
CARD
READER
SCK
CS
NRST
SCL
SDA
03 - MEMORY
EXPANSION & User's Interf aces
D[0..31]
A[0..22]
05 - COMMUNICATION
RAS
CAS
SDA10
SDWE
SDCS_NCS1
PA[0..31]
RMII_MII ETHERNET
TX_CLK
10/100 Mbps FAST ETHERNET
A[0..14]
SDRAM
POWERLED
MEMORY
AT91SAM9260
PIO
NANFLASH
PA[0..31]
PA9
SERIAL
SERIAL
MCI
EEPROM DATAFLASH DATAFLASH
DAC
5VDC
POWER SUPPLY
TXD3
TXD2
TXD1
TXD0
TX_EN
PA19
E TXC K/RE F C LK
PA11
PA10
PA13
PA12
PA16
E TX3
E TX2
E TX1
E TX0
E TXE N
PA26
PA25
PA15
PA14
E RX3
E RX2
E RX1
E RX0
PA27
PA17
E RXC K
E RXD V
PA22
PA18
E TXE R
E RXE R
PA29
PA28
EC O L
E C RS
PA20
PA21
PA7
EMDC
E M D IO
P IO
SDCK
SDCKE
CFWE_NWE_NWR0
RXD3
RXD2
RXD1
RXD0
RX_CLK
RX_DV
TX_ER
RX_ER
COL
CRS
MDC
MDIO
MDINTR
NRST
03 - RMII_MII ETHERNET
NBS1
NBS3
CFOE_NRD
NANDOE
NANDWE
NCS0
NRST
PA[0..31]
PB[0..31]
PC[0..15]
VREFP
AVDD
AGND
NRST
02 - AT91SAM9260
RAS
CAS
SDA10
SDWE
SDCS_NCS1
SDCK
SDCKE
CFWE_NWE_NWR0
CFIOR_NBS1_NWR1
CFIOW_NBS3_NWR3
CFOE_NRD
NANDOE
NANDWE
NCS0
NRST
PA[0..31]
PB[0..31]
PC[0..15]
NRST
PA[0..31]
PB[0..31]
PC[0..15]
VREFP
AVDD
AGND
06 - EXPANSION CONNECTORS
54
Schematic of SAM9260-EK
Power Suppy.
SSC Connector
5V
R3
100K
U2
L1117_3V3
Input
+
C1
330F
Vout
C8
10F
Output
AUDIO DAC INTERFACE
1k
4
DOUT
DIN
CLK
3V3 CS
2
C9
10F
CR1
5V
R1
3V3
3
Ajd/Gnd
5.1.
C10
10PF
1
3
5
7
9
11
DS1
2
4
6
8
10
12
J4
MCLK
SDIN
LRFS
BCLK
NRST
5V
POWER LED
5V
U3
3
S8
REGULATED
C15
10F
1
2
2
C11
10F
C12
10PF
5V_USB
J1
2
1
2
1
5V ONLY
Output
S7
Vout
Input
Ajd/Gnd
5V
1V8
L1117_1V8
5.2.
AT91SAM9260 (PQFP package).
55
Schematic of SAM9260-EK
PC[0..15]
NRST
R24
100K
3V3
NRST
R25
100K
55
54
DDP
DDM
51
50
HDPA
HDMA
J5
1
3
5
7
9
11
13
15
17
19
ICE_NTRST
PC13
PC14
PC15
D16
D17
D18
D19
D20
D21
D22
D23
D24
D25
D26
D27
D28
D29
D30
D31
56
59
127
128
129
130
131
134
135
136
137
138
139
140
141
142
143
144
145
S1
ICE_RTCK
NRST
HDPA
HDMA
0R
30
31
34
37
29
43
NTRST
35
R13
3V3
S2
TDI
TMS
TCK
RTCK
TDO
JTAGSEL
RAS
CAS
NTRST
SDWE
SDA10
SDCKE
SDCK
S3
152
JTAG
R15
C19
10NF
C20
1NF
SDCS/NCS1
NCS0
PLLRCA
CFOE/NRD
148
1V8
C21
100NF
151
155
C22
100NF
153
150
C23
10PF
CFWE/NWE/NWR0
CFIOR/NBS1/NWR1
CFIOW/NBS3/NWR3
VDDPLLB
GNDPLLB
NANDOE
NANDWE
VDDPLLA
NRST
C25
10PF
45
149
106
107
108
109
110
111
112
118
119
120
121
122
123
124
125
126
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
D12
D13
D14
D15
99
98
97
96
95
94
93
92
89
88
87
86
85
84
83
82
81
80
79
76
75
74
73
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
A16
A17
A18
A19
A20
A21
A22
105
104
XOUT
BMS
TST
69
VREFP
XOUT32
VDDIOP1
169
VDDIOP0
VDDIOP0
VDDIOP0
VDDIOP0
VDDIOP0
199
187
52
32
24
VDDIOP0
VDDIOP0
13
VDDIOM
VDDIOM
VDDIOM
VDDIOM
132
114
90
65
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
6
14
25
33
39
53
66
78
91
113
133
146
170
173
188
200
204
VDDCORE
VDDCORE
VDDCORE
VDDCORE
VDDCORE
203
174
147
77
38
VDDBU
GNDBU
44
48
OSCSEL
SHDN
XIN32
47
41
WAKE UP
3V3
BP2
R16
1K
CFOE_NRD
70
102
101
71
72
CFWE_NWE_NWR0
CFIOR_NBS1_NWR1
CFIOW_NBS3_NWR3
BP1
NANDOE
NANDWE
RESET
36
NRST
40
100K
3V3
J7
R19
42
BOOT M ODE SELECT
OPENED :EMBEDDED ROM
CLOSED : EBI_NCS0
1K
XIN
WKUP
46
3V3
SDCS_NCS1
NCS0
R17
49
32.768 kHz
SDWE
SDA10
SDCKE
SDCK
103
68
R26
100K
AVDD
AGND
VREFP
157
Y2
C26
10PF
RAS
CAS
116
100
117
115
GNDPLLA
Y1
18.432MHz
C24
10PF
R23 10K
N.C
1K
154
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
D12
D13
D14
D15
NBS0/A0
NWR2/NBS2/A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
BA0/A16
BA1/A17
A18
A19
A20
A21
A22
AT91SAM9260
DDP
DDM
A[0..22]
NCS6/FIQ/PC13
IRQ2/NCS3_NANDCS/PC14
IRQ1/NWAIT/PC15
SPI0_NPCS2/D16/PC16
SPI0_NPCS3/D17/PC17
SPI1_NPCS1/D18/PC18
SPI1_NPCS2/D19/PC19
SPI1_NPCS3/D20/PC20
EF100/D21/PC21
TCLK5/D22/PC22
D23/PC23
D24/PC24
D25/PC25
D26/PC26
D27/PC27
D28/PC28
D29/PC29
D30/PC30
D31/PC31
PC4
PC5
PC6
PC7
PC8
PC9
PC10
PC11
62
67
63
64
61
60
58
57
SPI1_NPCS2/A23/PC4
SPI1_NPCS1/A24/PC5
CFCE1/TIOB2/PC6
CFCE2/TIOB1/PC7
RTS3/NCS4_CFCS0/PC8
TIOB0/NCS5_CFCS1/PC9
CTS3/A25_CFRNW/PC10
SPI0_NPCS1/NCS2/PC11
PB14
PB15
PB16
PB17
PB18
PB19
PB20
PB21
PB22
PB23
PB24
PB25
PB26
PB27
PB28
PB29
PB30
PB31
21
22
23
26
27
28
163
164
165
166
167
168
171
172
175
176
177
178
158 PC0
159 PC1
SCK3/AD0/PC0
PCK0/AD1/PC1
PA0/SPI0_MISO/MCDB0
PA1/SPI0_MOSI/MCCDB
PA2/SPI0_SPCK
PA3/SPI0_NPCS0/MCDB3
PA4/RTS2/MCDB2
PA5/CTS2/MCDB1
PA6/MCDA0
PA7/MCCDA
PA8/MCCK
PA9/MCDA1
PA10/MCDA2/ETX2
PA11/MCDA3/ETX3
PA12/ETX0
PA13/ETX1
PA14/ERX0
PA15/ERX1
PA16/ETXEN
PA17/ERXDV
PA18/ERXER
PA19/ETXCK
PA20/EMDC
PA21/EMDIO
PA22/ADTRG/ETXER
PA23/TWD/ETX2
PA24/TWCK/ETX3
PA25/TCLK0/ERX2
PA26/TIOA0/ERX3
PA27/TIOA1/ERXCK
PA28/TIOA2/ECRS
PA29/SCK1/ECOL
R27
100K
R28
100K
2
4
6
8
10
12
14
16
18
20
179
180
181
182
183
184
185
186
189
190
191
192
193
194
195
196
197
198
201
202
205
206
207
208
1
2
3
4
7
8
DRXD/PB14
DTXD/PB15
TCLK3/TK0/PB16
TCLK4/TF0/PB17
TIOB4/TD0/PB18
TIOB5/RD0/PB19
ISI_D0/RK0/PB20
ISI_D1/RF0/PB21
ISI_D2/DSR0/PB22
ISI_D3/DCD0/PB23
ISI_D4/DTR0/PB24
ISI_D5/RI0/PB25
ISI_D6/RTS0/PB26
ISI_D7/CTS0/PB27
ISI_PCK/RTS1/PB28
ISI_VSYNC/CTS1/PB29
ISI_HSYNC/PCK0/PB30
ISI_MCK/PCK1/PB31
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PA8
PA9
PA10
PA11
PA12
PA13
PA14
PA15
PA16
PA17
PA18
PA19
PA20
PA21
PA22
PA23
PA24
PA25
PA26
PA27
PA28
PA29
TIOA3/SPI1_MISO/PB0
TIOB3/SPI1_MOSI/PB1
TIOA4/SPI1_SPCK/PB2
TIOA5/SPI1_NPCS0/PB3
TXD0/PB4
RXD0//PB5
TCLK1/TXD1/PB6
TCLK2/RXD1/PB7
TXD2/PB8
RXD2/PB9
ISI_D8/TXD3/PB10
ISI_D9/RXD3/PB11
MN6
PA[0..31]
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PB8
PB9
PB10
PB11
D[0..31]
9
10
11
12
15
16
17
18
19
20
161
162
PB[0..31]
160
156
C49
100NF
R21
C48
100NF
AVDD
0R
L2
C29
10F
10V
3V3
4.7H
C30
100NF
C31
10F
10V
0R R22
AGND
1V8
C37
10F
C50
100NF
C51
C53
C55
100NF 100NF
100NF
C52
C54
100NF
100NF
C38
10F
C56
C58
C60
C62
C64
C66
100NF 100NF
100NF
100NF
100NF
100NF
C57
C59
C61
C63
C65
100NF
100NF
100NF
100NF
100NF
C67
100NF
56
Schematic of SAM9260-EK
5.3.
Memories.
57
Schematic of SAM9260-EK
SDRAM
D[0..15]
3V3
MN7
A[0..14]
23
24
25
26
29
30
31
32
33
34
22
35
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A13
SDA10
20
21
BA0
BA1
36
40
A14
37
SDCKE
38
SDCK
N BS 0
A0
CFIOR_NBS1_NWR1
17
18
CAS
RAS
3V3
R29
470K
15
39
16
19
SDWE
A0 MT48LC16M16A2 DQ0
A1
DQ1
A2
DQ2
A3
DQ3
A4
DQ4
A5
DQ5
A6
DQ6
A7
DQ7
A8
DQ8
A9
DQ9
A10
DQ10
A11
DQ11
DQ12
BA0
DQ13
BA1
DQ14
DQ15
A12
N.C
VDD
VDD
CKE
VDD
VDDQ
VDDQ
CLK
VDDQ
VDDQ
DQML
DQMH
VSS
CAS
VSS
RAS
VSS
VSSQ
VSSQ
WE
VSSQ
CS
VSSQ
SDCS_NCS1
2
4
5
7
8
10
11
13
42
44
45
47
48
50
51
53
1
14
27
3
9
43
49
28
41
54
6
12
46
52
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
D12
D13
D14
D15
R44
10K
R45
10K
MN10
6
5
SCL
SDA
8
3V3_Memory
C86
100NF
SCL
SDA
A0
A1
NC
1
2
3
VCC
GND
WP
SERIAL EEPROM
3V3
3V3
R37
470K
C68
C70
C72
C74
100NF 100NF
100NF 100NF
C69
C71
C73
100NF 100NF 100NF
3V3
MN9
S5
8
1
2
4
SCK
CS
256 Mbits
NRST
D[0..7]
MN6B1
16
17
8
18
9
CLE
ALE
NANDOE
NANDWE
NANDCS
CLE
ALE
RE
WE
CE
S6
7
19
R33
470K
3V3
RDY BSY
3V3
R35
1K
R41
470K
1
2
3
4
5
6
10
11
14
15
20
21
22
23
24
25
26
R/B
WP
N.C
N.C
N.C
N.C
N.C
N.C
N.C
N.C
N.C
N.C
N.C
N.C
N.C
N.C
N.C
N.C
N.C
N.C
N.C
N.C
N.C
N.C
N.C
PRE
N.C
N.C
N.C
N.C
N.C
VCC
VCC
29
30
31
32
41
42
43
44
D0
D1
D2
D3
D4
D5
D6
D7
GND
RESET
WP
C82
100NF
7
5
3V3
48
47
46
45
40
39
38
35
34
33
28
27
37
12
R43
10K
J13
DAT1
DAT0
CLK
3V3_Memory
CMD
DAT3
DAT2
3V3
C84
100NF
VSS
VSS
VCC
SERIAL DATAFLASH
8-bit bus width
I/O0
I/O1
I/O2
I/O3
I/O4
I/O5
I/O6
I/O7
SO
SI
SCK
CS
36
13
C83
100NF
C85 100NF
FPS009
8
7
6
5
4
3
2
1
9
SD CARD / MMC CARD
DATAFLASH CARD
INTERFACE
NANDFLASH
58
Schematic of SAM9260-EK
5.4.
MII_Ethernet.
C88
22PF
C89
22PF
Y4
25MHz
C90
100NF
GND_ETH
16
38
TX_ER
RX_ER
3V3
R127
10K
36
35
COL
CRS
24
25
32
MDC
MDIO
MDINTR
39
R56
3V3
C96
100NF
C97
100NF
30
C98
100NF
23
41
15
33
44
10
NRST
40
RX+
RX-
DISMDIX
DVDD
VCCA
DM9161AEP
AVDDT
AGND
AGND
AGND
BGRESG
DVDD
PWRDWN
RESET
C91
100NF
C92
100NF
2
9
BGRES
LEDMODE
LED0/OP0
LED1/OP1
LED2/OP2
CABLESTS/LINKSTS
N.C
742792093
C93
10V
10F
R53
49R9
1%
R54
49R9
1%
C101
10F
10V
13
TX-
3 RD+
RX+
RX-
C102
100NF
75 75
75
7 NC
4
5
GND_ETH
1nF
75
C95
100NF
8
J00-0061NL
GND_ETH
GND_ETH
3V3
47
48
31
11
12
13
14
VCCA
C94
100NF
5
6
46
DVDD
DGND
DGND
DGND
2 TD-
6 RDL3
AVDDR
AVDDR
MDC
MDIO
MDINTR
5 CT
TX_ER/TXD4
RX_ER/RXD4/RPTR
COL/RMII
CRS/PHYAD4
TX+
VCCA
RX_CLK/10BTSER
RX_DV/TESTMODE
3V3
10K
J14
1 TD+
4 CT
TX-
RXD3/PHY AD3
RXD2/PHY AD2
RXD1/PHY AD1
RXD0/PHY AD0
R52
49R9
1%
R58
6,80K
1%
RX_CLK
RX_DV
TX+
R51
49R9
1%
10
34
37
TXD3
TXD2
TXD1
TXD0
TX_EN
TX_CLK/ISOLATE
43
11
26
27
28
29
RXD3
RXD2
RXD1
RXD0
XT1
12
17
18
19
20
21
22
TXD3
TXD2
TXD1
TXD0
TX_EN
TX_CLK
REF_CLK/XT2
14
MN11
42
3V3
3V3
R103
1K
R102
1K
Yellow
R101
1K
Green
3V3
45
C99
10F
10V
R64 0R
RJ45 ETHERNET CONNECTOR
R65 0R
GND_ETH
59
Schematic of SAM9260-EK
5.5.
Serial Interfaces.
5V
J16
USB-A
F2
6
5
A
4
3 2
500 mA
USB HOST INTERFACE
C110
47pF
Female
C111
47pF
39R
R66
39R
R67
HDMA
HDPA
COM_DEBUG
3V3
R71
15K
R70
15K
C109
100NF
J13
1
3
5
R79
100K
N OT POPU LATED
J11
2
4
6
5
2
3
R68
100K
MN12
DRXD
DTXD
5V_USB
U S B_C N X
USBCNX
6
C104
100NF
39R
R89
39R
R90
R1IN
T1OUT
R2OUT
T2IN
R2IN
T2OUT
C105
100NF
15
C107
100NF
C1+
VCC
C1V+
C2+
VC2-
13
14
8
7
COM_USER
Debug:1-3, 2-4
1
3
C103
100NF
User:5-3, 6-4
4
5
C106
100NF
GND
MAX3232
USB DEVICE INTERFACE
C119
33PF
16
2
R87
1,5K
R1OUT
T1IN
3V3
R84
22K
3V3
N OT POPU LATED
J19
9
10
RXD0
TXD0
15K R81
C120
100NF
12
11
C123
15PF
DDM
DDP
C124
15PF
Female
5.6. Expansions and Users Interfaces.
60
Schematic of SAM9260-EK
PA[0..31]
PB[0..31]
PA0
PA2
PA4
PA6
PA8
PA10
PA12
PA14
PA16
PA18
PA20
PA22
PA24
PA26
PA28
PA30
PA1
PA3
PA5
PA7
PA9
PA11
PA13
PA15
PA17
PA19
PA21
PA23
PA25
PA27
PA29
PA31
PB1
PB3
PB5
PB7
PB9
PB11
PB13
PB15
PB17
PB19
PB21
PB23
PB25
PB27
PB29
PB31
PC[0..15]
PB0
PB2
PB4
PB6
PB8
PB10
PB12
PB14
PB16
PB18
PB20
PB22
PB24
PB26
PB28
PB30
PC5
PC7
PC9
PC11
PC13
PC15
PC0
PC2
PC4
PC6
PC8
PC10
PC12
PC14
PC1
PC3
PC5
PC7
PC9
PC11
PC13
PC15
J25
5V
AVDD
AGND
PC4
PC6
PC8
PC10
PC12
PC14
1
3
5
7
9
11
13
PC0
PC15
PB9
PB11
2
4
6
8
10
12
14
PC1
PB8
PB10
PB16
3V3
VREFP
COM IRQ1 ADC
3V3
J24
3V3
1V8
C130
100NF
C131
10V
10F
C133
100NF
SPI1_MISO
SPI1_SPCK
SPI1_NPCS1
GPIO
C132
10V
10F
PIO_CNTRL1
TWCK
ISI_DATA[1]
ISI_DATA[3]
ISI_DATA[5]
ISI_DATA[7]
ISI_DATA[9]
ISI_DATA[11]
PC4
PA24
PB21
PB23
PB25
PB27
PB11
PB13
R108
0R
R109
0R
PB1
PB3
PC4
PC7
SPI1_MISO
SPI1_NPCS0
SPI1_NPCS2
GPIO
LEDS & USER INTERFACE
3V3
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
2
4
6
8
10
SPI Expand
J28
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
1
3
5
7
9
PB0
PB2
PC5
PC6
PB19
PA23
PB31
PB29
PB30
PB28
PB20
PB22
PB24
PB26
PB10
PB12
IMAGE SENSOR CONNECTOR
PIO_CNTRL2
TWD
ISI_MCK
ISI_VSY NC
ISI_HSY NC
ISI_PCK
ISI_DATA[0]
ISI_DATA[2]
ISI_DATA[4]
ISI_DATA[6]
ISI_DATA[8]
ISI_DATA[10]
GREEN
R118 220R
PA6
DS5
PC15
BP3
R187
PB20
LED1
R188
220
PB21
LED2
R189
220
PB22
LED3
R190
220
PB23
LED4
220
61
Development Tools
VI.
SAM9260-EK Descriptions
Features:
MCU AT91SAM9260, 16/32 bit ARM926EJ-S 180Mhz.
32MB SDRAM.
256MB NAND FLASH.
512kB SPI serial dataflash.
Ethernet 10/100 base RJ45 connector.
USB host, device connector.
RS232 connector: user + debug.
Micro SD/MMC card slot.
Three buttons: RST, WAKEUP, IRQ1.
Five LEDs.
Expansion Connector.
JTAG connector.
5 VDC power supply from adapter or USB-B conector.
Softwares:
-
AT91BootStrap-1.1
U-Boot-1.3.4, U-Boot-2009.09.1, U-Boot-2010.09
Linux-2.6.27, Linux-2.6.30, Linux-2.6.36,
Buildroot 2010, Angstrom, Debian rootfs.
Appication: Standalone (firmware), application in Embedded linux.
62
Development Tools
6.1. Header comments
S1
S2
S3
S5
S6
Default
Open
Open
Open
Open
Close
Close
J13
Option
S7
S8
Option
Option
J7
Close
Boot from EBI_NCS0
CS data flash
CS nand flash
1-3, 2-4: to select COM debug
5-3, 6-4: to select COM user
Power supply from the 5Vdc adaptor
Power supply from the USB-B cable
Open
Boot from embedded rom
disconnect CS data flash
disconnect CS nand flash
6.2. Map of Memories In SAM9260-EK.
Items
Chip Select
Address
Comments Part number
SDRAM
nCS1
0x20000000
Physical
MT48LC16M16A2 32MB
NANDFLASH nCS3
0x40000000
Physical
K9F2G08UOM
256MB
AT45DB041D-SU
512KB
Se.DataFlash
SPI0_NPCS1 0xD0000000 Logical
Capacity
6.3. Partition in The System.
6.3.1 The second level bootstrapcode in serial DataFlash.
Serial DataFlash:
Items
Bootstrap code
Offset
Comments
0x0
<= 4 KByte
Environment
0x4200
U-Boot
0x8400
To end of capacity
NandFlash:
a ch offset
0x00000000
0x00300000
Kernel
Rootfs (JFFS2)
6.3.2 The second level bootstrapcode in NandFlash.
NANDFLASH:
63
Development Tools
a ch offset
0x00000000
0x00020000
0x00008400
0x00200000
0x00500000
Bootstrap
U-boot
Environments
Application Standalone
Kernel
Rootfs (JFFS2)
64
Development Tools
VII.
Software Development Tools
7.1. SAM-BA (phn mm np code).
o Install AT91-ISP v1.13.exe.
o Chp th mc ATMEL Corporation ln th mc C:\Program Files\ ATMEL
Corporation\ y l bc custom AT91-Board theo thit k ca mnh
o Qu trnh ci t SAMBA thnh cng.
Ch : driver ca USB-B ca cc device AT91 ca hng atmel nm trong th mc
C:\Program Files\ATMEL Corporation\AT91-ISP v1.13\sam-ba 2.9\drv
7.1.1.1. Np Bootloader vo board bng SAM-BA.
1> Open S7&S8 after pluging the USB cable in the board.
2> Open S5 (if bootstrapcode in AT45DB041D-SU) or Open S6 (if bootstrapcode in
NAND).
3> Close S8 to supply the power by the USB-B cable..
4> Installation driver of SAM-BA for the system.
5> Close S5.
6> Running the SAMBA
Step 1: select the board and protocol for connection, Click Connect
65
Development Tools
Flash the bootloader into serial Dataflash:
Step 2: Chn tab DataFlash AT45DB/DCB, trong list box "script" chn "Enable
Dataflash (SPI0 CS1)", n nt Execute khi ng AT45DB041D SPI serial dataflash.
Bc 3: Trong list box "script" chn "Send Boot File", n nt Execute, browse n
th mc cha AT91BootStrap.bin (nh km theo a CD) v chn file ny. Chng trnh
SAMBA s t ng np AT91BootStrap vo SPI dataflash ti a ch offset 0.
Bc 4: Trong text box "Send File Name", n nt browse v tr n file u-boot.bin
(nh km trong a CD). Trong text box "Address" g vo a ch 0x8400. n nt "Send
File" hon tt vic np u-boot vo SPI serial dataflash.
n nt reset v h thng c th boot bnh thng.
66