1.6.3.3 Flow of a Multiplexed Interrupt Request From a Peripheral to the CPU
shows the flow with the steps shown in circled numbers. Following the diagram, the steps are
described.
Peripheral
IE/IF
PIEIFRx.1
latch
PIE
interrupt
flag
PIEIERx.1
Highest
Vector
0
1
0
1
PIEIFRx.8
Vector
latch
Peripheral
IE/IF
1
0
1
0
Lowest
PIEIERx.8
8 interrupts
per group
Search order
highest to
lowest
Pulse
gen
PIEACKx
0
1
1
2
3a
interrupt
enable
PIE
3b
4
Vector is fetched
only after CPU
interrupt logic
has recognized
the interrupt
9
IFRx
latch
1=valid Int
IERx
1
0
5
6
0
1
INTM
7
CPU
interrupt
logic
8
CPU
PIE group
acknowledge
Figure 1-97. Multiplexed Interrupt Request Flow Diagram
1. Any peripheral or external interrupt within the PIE group generates an interrupt. If interrupts are enabled
within the peripheral module then the interrupt request is sent to the PIE module.
2. The PIE module recognizes that interrupt y within PIE group x (INTx.y) has asserted an interrupt and the
appropriate PIE interrupt flag bit is latched: PIEIFRx.y = 1.
3. For the interrupt request to be sent from the PIE to the CPU, both of the following conditions must be true:
a. The proper enable bit must be set (PIEIERx.y = 1) and
b. The PIEACKx bit for the group must be clear.
4. If both conditions in 3a and 3b are true, then an interrupt request is sent to the CPU and the acknowledge
bit is again set (PIEACKx = 1). The PIEACKx bit will remain set until you clear it to indicate that additional
interrupts from the group can be sent from the PIE to the CPU.
5. The CPU interrupt flag bit is set (CPU IFRx = 1) to indicate a pending interrupt x at the CPU level.
6. If the CPU interrupt is enabled (CPU IER bit x = 1, or DBGIER bit x = 1) AND the global interrupt mask is
clear (INTM = 0) then the CPU will service the INTx.
7. The CPU recognizes the interrupt and performs the automatic context save, clears the IER bit, sets INTM,
and clears EALLOW. All of the steps that the CPU takes in order to prepare to service the interrupt
are documented in the
TM S320C28x DSP CPU and Instruction Set Reference Guide
(literature number
SPRU430).
8. The CPU will then request the appropriate vector from the PIE.
9. For multiplexed interrupts, the PIE module uses the current value in the PIEIERx and PIEIFRx registers to
decode which vector address should be used. There are two possible cases:
a. The vector for the highest priority interrupt within the group that is both enabled in the PIEIERx register,
and flagged as pending in the PIEIFRx is fetched and used as the branch address. In this manner if an
even higher priority enabled interrupt was flagged after Step 7, it will be serviced first.
System Control and Interrupts
SPRUH18I – JANUARY 2011 – REVISED JUNE 2022
TMS320x2806x Microcontrollers
175
Copyright © 2022 Texas Instruments Incorporated
Содержание TMS320 2806 Series
Страница 2: ......