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
1
0
INTM
7
CPU
interrupt
logic
8
CPU
PIE group
acknowledge
Exceptions and Interrupts Control
109
SPRUHE8E – October 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
System Control and Interrupts
3. Modify the PIE vector table to temporarily map the vector of the specific peripheral interrupt to a empty
interrupt service routine (ISR). This empty ISR will only perform a return from interrupt (IRET)
instruction. This is the safe way to clear a single PIEIFRx.y bit without losing any interrupts from other
peripherals within the group.
4. Disable the peripheral interrupt at the peripheral register.
5. Enable global interrupts (INTM = 0).
6. Wait for any pending interrupt from the peripheral to be serviced by the empty ISR routine.
7. Disable global interrupts (INTM = 1).
8. Modify the PIE vector table to map the peripheral vector back to its original ISR.
9. Clear the EALLOW bit.
10. Disable the PIEIER bit for given peripheral.
11. Clear the IFR bit for given peripheral group (this is safe operation on CPU IFR register).
12. Clear the PIEACK bit for the PIE group.
13. Enable global interrupts.
1.5.4.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.
Figure 1-8. Multiplexed Interrupt Request Flow
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.