AT91RM9200-CI-002 Atmel, AT91RM9200-CI-002 Datasheet - Page 248

no-image

AT91RM9200-CI-002

Manufacturer Part Number
AT91RM9200-CI-002
Description
IC ARM9 MCU 256 BGA
Manufacturer
Atmel
Series
AT91SAMr

Specifications of AT91RM9200-CI-002

Core Processor
ARM9
Core Size
16/32-Bit
Speed
180MHz
Connectivity
EBI/EMI, Ethernet, I²C, MMC, SPI, SSC, UART/USART, USB
Peripherals
POR
Number Of I /o
122
Program Memory Size
128KB (128K x 8)
Program Memory Type
ROM
Ram Size
48K x 8
Voltage - Supply (vcc/vdd)
1.65 V ~ 1.95 V
Oscillator Type
Internal
Operating Temperature
-40°C ~ 85°C
Package / Case
256-BGA
Lead Free Status / RoHS Status
Contains lead / RoHS non-compliant
Eeprom Size
-
Data Converters
-

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
AT91RM9200-CI-002
Manufacturer:
Atmel
Quantity:
10 000
22.7.4
22.7.4.1
22.7.4.2
22.7.4.3
22.7.4.4
248
AT91RM9200
Fast Interrupt
Fast Interrupt Source
Fast Interrupt Control
Fast Interrupt Vectoring
Fast Interrupt Handlers
Note:
The interrupt source 0 is the only source which can raise a fast interrupt request to the proces-
sor. The interrupt source 0 is generally connected to an FIQ pin of the product, either directly or
through a PIO Controller.
The fast interrupt logic of the AIC has no priority controller. The mode of interrupt source 0 is
programmed with the AIC_SMR0 and the field PRIOR of this register is not used even if it reads
what has been written. The field SRCTYPE of AIC_SMR0 enables programming the fast inter-
rupt source to be positive-edge triggered or negative-edge triggered or high-level sensitive or
low-level sensitive
Writing 0x1 in the AIC_IECR (Interrupt Enable Command Register) and AIC_IDCR (Interrupt
Disable Command Register) respectively enables and disables the fast interrupt. The bit 0 of
AIC_IMR (Interrupt Mask Register) indicates whether the fast interrupt is enabled or disabled.
The fast interrupt handler address can be stored in AIC_SVR0 (Source Vector Register 0). The
value written into this register is returned when the processor reads AIC_FVR (Fast Vector Reg-
ister). This offers a way to branch in one single instruction to the interrupt handler, as AIC_FVR
is mapped at the absolute address 0xFFFF F104 and thus accessible from the ARM fast inter-
rupt vector at address 0x0000 001C through the following instruction:
When the processor executes this instruction it loads the value read in AIC_FVR in its program
counter, thus branching the execution on the fast interrupt handler. It also automatically per-
forms the clear of the fast interrupt source if it is programmed in edge-triggered mode.
This section gives an overview of the fast interrupt handling sequence when using the AIC. It is
assumed that the programmer understands the architecture of the ARM processor, and espe-
cially the processor interrupt modes and associated status bits.
Assuming that:
When nFIQ is asserted if the bit “F” of CPSR is 0, the sequence is:
1. The Advanced Interrupt Controller has been programmed, AIC_SVR0 is loaded with
2. The Instruction at address 0x1C (FIQ exception vector address) is required to vector
3. The user does not need nested fast interrupts.
1. The CPSR is stored in SPSR_fiq, the current value of the program counter is loaded in
LDR
LDR PC, [PC, # -&F20]
the fast interrupt service routine address, and the interrupt source 0 is enabled.
the fast interrupt:
the FIQ link register (R14_FIQ) and the program counter (R15) is loaded with 0x1C. In
The “I” bit in SPSR is significant. If it is set, it indicates that the ARM core was on the verge of
masking an interrupt when the mask instruction was interrupted. Hence, when SPSR is restored,
the mask instruction is completed (interrupt is masked).
PC,[PC,# -&F20]
1768I–ATARM–09-Jul-09

Related parts for AT91RM9200-CI-002