AT91SAM9261 Advanced Interrupt Controller (AIC)
1.1 Description
The Advanced Interrupt Controller (AIC) is an 8-level priority, independently maskable, vectored interrupt controller that can handle up to 32 interrupt sources. It is designed to substantially reduce software and real-time system overhead in handling internal and external interrupts.
The AIC drives the nFIQ (Fast Interrupt Request) and nIRQ (Standard Interrupt Request) of the ARM processor. The inputs to the AIC come from internal peripheral interrupts or external interrupts from the product pins. The 8-level priority controller allows the user to define a priority for each interrupt source. This allows a high priority interrupt to be serviced even if a lower priority interrupt is being serviced. Internal interrupt sources can be programmed to be level active or edge triggered. External interrupt sources can be programmed to be rising or falling edge triggered or high or low active. The fast force feature redirects any internal or external interrupt source to a fast interrupt instead of a normal interrupt.
1.2 Block Diagram
Figure 1-1 Block Diagram1.3
Application Block Diagram
Figure 1-2 Application Block Diagram Description
1.4 Detailed AIC Block Diagram
Figure 1-3 Detailed AIC Block Diagram1.5
I/O Line Description
Table 1-1 I/O Line Description
Pin Name Pin Description Type
FIQ Fast Interrupt Input
IRQ0-IRQn Interrupt 0-Interrupt n Input1.6
Product Dependencies1.6.1
I/O Lines
The interrupt signals FIQ and IRQ0 to IRQn are multiplexed through the PIO controller. Depending on the features of the PIO controller used in the product, the pins must be programmed according to the specific interrupt function. This does not apply when the PIO controller used in the product
is transparent in the input path.
1.6.2 Power Management
The Advanced Interrupt Controller is permanently clocked. The behavior of the Power Management Controller has no effect on the Advanced Interrupt Controller.
The output of the Advanced Interrupt Controller, nIRQ or nFIQ, when active, can wake up the ARM processor when it is in Idle mode. The general interrupt masking feature enables the AIC to wake up the processor without activating the processor's interrupt line, thereby synchronizing the processor to specific events.
1.6.3 Interrupt Sources
Interrupt source 0 is always assigned to FIQ. If the product does not have a FIQ pin, interrupt source 0 cannot be used. Interrupt source 1 is always assigned to the system interrupt. This is the result of 'wired-OR' the interrupt lines of system peripherals such as the system timer, real-time clock, power management controller and memory controller. When a system interrupt occurs, the service routine must first determine the cause of the interrupt, which can be performed by successively reading the status registers of the above-mentioned system peripherals.
Interrupt sources 2 to 31 can be connected to the interrupt outputs of embedded user peripherals or to external interrupt pins. External interrupt pins can be connected directly or through the PIO controller. The PIO controller is considered a user peripheral for interrupt processing. Accordingly, the PIO controller interrupt line is connected to interrupt sources 2 to 31. The peripheral
identifier defined at the product level is equivalent to the interrupt source number (which is also the bit number that controls the peripheral clock). Therefore, to simplify the description of functional operation and user interface, the interrupt sources are named FIQ, SYS, and PID2 to PID31.
Keywords:AT91SAM9261 AIC
Reference address:AT91SAM9261 Advanced Interrupt Controller (AIC)
1.1 Description
The Advanced Interrupt Controller (AIC) is an 8-level priority, independently maskable, vectored interrupt controller that can handle up to 32 interrupt sources. It is designed to substantially reduce software and real-time system overhead in handling internal and external interrupts.
The AIC drives the nFIQ (Fast Interrupt Request) and nIRQ (Standard Interrupt Request) of the ARM processor. The inputs to the AIC come from internal peripheral interrupts or external interrupts from the product pins. The 8-level priority controller allows the user to define a priority for each interrupt source. This allows a high priority interrupt to be serviced even if a lower priority interrupt is being serviced. Internal interrupt sources can be programmed to be level active or edge triggered. External interrupt sources can be programmed to be rising or falling edge triggered or high or low active. The fast force feature redirects any internal or external interrupt source to a fast interrupt instead of a normal interrupt.
1.2 Block Diagram
Figure 1-1 Block Diagram1.3
Application Block Diagram
Figure 1-2 Application Block Diagram Description
Standalone Application |
OS-based applications | ||
OS Driver | RTOS Drivers | Hard real-time tasks | |
Generic OS interrupt handler | |||
Advanced interrupt controller | |||
Embedded peripherals | External peripherals (external interrupts) |
Figure 1-3 Detailed AIC Block Diagram1.5
I/O Line Description
Table 1-1 I/O Line Description
Pin Name Pin Description Type
FIQ Fast Interrupt Input
IRQ0-IRQn Interrupt 0-Interrupt n Input1.6
Product Dependencies1.6.1
I/O Lines
The interrupt signals FIQ and IRQ0 to IRQn are multiplexed through the PIO controller. Depending on the features of the PIO controller used in the product, the pins must be programmed according to the specific interrupt function. This does not apply when the PIO controller used in the product
is transparent in the input path.
1.6.2 Power Management
The Advanced Interrupt Controller is permanently clocked. The behavior of the Power Management Controller has no effect on the Advanced Interrupt Controller.
The output of the Advanced Interrupt Controller, nIRQ or nFIQ, when active, can wake up the ARM processor when it is in Idle mode. The general interrupt masking feature enables the AIC to wake up the processor without activating the processor's interrupt line, thereby synchronizing the processor to specific events.
1.6.3 Interrupt Sources
Interrupt source 0 is always assigned to FIQ. If the product does not have a FIQ pin, interrupt source 0 cannot be used. Interrupt source 1 is always assigned to the system interrupt. This is the result of 'wired-OR' the interrupt lines of system peripherals such as the system timer, real-time clock, power management controller and memory controller. When a system interrupt occurs, the service routine must first determine the cause of the interrupt, which can be performed by successively reading the status registers of the above-mentioned system peripherals.
Interrupt sources 2 to 31 can be connected to the interrupt outputs of embedded user peripherals or to external interrupt pins. External interrupt pins can be connected directly or through the PIO controller. The PIO controller is considered a user peripheral for interrupt processing. Accordingly, the PIO controller interrupt line is connected to interrupt sources 2 to 31. The peripheral
identifier defined at the product level is equivalent to the interrupt source number (which is also the bit number that controls the peripheral clock). Therefore, to simplify the description of functional operation and user interface, the interrupt sources are named FIQ, SYS, and PID2 to PID31.
Previous article:How to learn embedded ARM
Next article:AT91SAM9261 Functional Description
- Popular Resources
- Popular amplifiers
Recommended Content
Latest Microcontroller Articles
- Learn ARM development(16)
- Learn ARM development(17)
- Learn ARM development(18)
- Embedded system debugging simulation tool
- A small question that has been bothering me recently has finally been solved~~
- Learn ARM development (1)
- Learn ARM development (2)
- Learn ARM development (4)
- Learn ARM development (6)
He Limin Column
Microcontroller and Embedded Systems Bible
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
MoreSelected Circuit Diagrams
MorePopular Articles
- LED chemical incompatibility test to see which chemicals LEDs can be used with
- Application of ARM9 hardware coprocessor on WinCE embedded motherboard
- What are the key points for selecting rotor flowmeter?
- LM317 high power charger circuit
- A brief analysis of Embest's application and development of embedded medical devices
- Single-phase RC protection circuit
- stm32 PVD programmable voltage monitor
- Introduction and measurement of edge trigger and level trigger of 51 single chip microcomputer
- Improved design of Linux system software shell protection technology
- What to do if the ABB robot protection device stops
MoreDaily News
- Pickering Launches New Future-Proof PXIe Single-Slot Controller for High-Performance Test and Measurement Applications
- Apple faces class action lawsuit from 40 million UK iCloud users, faces $27.6 billion in claims
- Apple faces class action lawsuit from 40 million UK iCloud users, faces $27.6 billion in claims
- The US asked TSMC to restrict the export of high-end chips, and the Ministry of Commerce responded
- The US asked TSMC to restrict the export of high-end chips, and the Ministry of Commerce responded
- ASML predicts that its revenue in 2030 will exceed 457 billion yuan! Gross profit margin 56-60%
- Detailed explanation of intelligent car body perception system
- How to solve the problem that the servo drive is not enabled
- Why does the servo drive not power on?
- What point should I connect to when the servo is turned on?
Guess you like
- MicroPython has made several adjustments to USB functions
- Commonly used algorithms for drones - Kalman filter (IV)
- Why does Apple use UWB technology? Learn more about UWB here
- How to use LOTO oscilloscope to draw frequency response characteristic curve?
- The waveform of the zero line at the input end of the three-phase uncontrolled rectifier to the negative pole of the output voltage
- I have a small question for everyone.
- Smart water meter
- 【NXP Rapid IoT Review】W5 Final Summary
- Why don't the numbers match? I've refreshed it several times, but they still don't match. How come the administrator didn't notice it all these years?
- Comparison between fixed-point dsp and floating-point dsp