
iiiPeriPheraLModuLes1(systeM):interruPtControLLer(itC)
iii-2-8
ePson
s1C33L17teChniCaLManuaL
iii.2.4ControlofMaskableinterrupts
iii.2.4.1structureoftheinterruptController
The interrupt controller is configured as shown in Figure III.2.4.1.1.
CPUinterrupt
priorityjudgment
(withinterruptlevel)
Interruptvector
generator
Cause-of-interruptflag
Interruptenable
IDMArequest
IDMAenable
Interruptrequest
Interruptlevel
Interruptvector
Keyinputx
HSDMAx
#DMAREQxinput
Softwaretrigger
16-bittimerx
SerialI/Fx
A/D
Portinputx
RTC
IDMA
LCDC
SPI
USB
I2S
CPu
itC
IDMArequest
priorityjudgment
(withoutinterruptlevel)
IDMAchannelnumber
generator
Cause-of-interruptflag
Interruptenable
IDMArequest
IDMAenable
IDMArequest
IDMAchannelnumber
IDMAcompletion
ResetA
ResetB
ResetC
Ch.xHSDMArequest
HSDMAtrigger
selectioncircuit
idMa
hsdMa
Ch.x
Causesof
interrupt
FigureIII.2.4.1.1ConfigurationofInterruptController
The following sections explain the functions of the registers used to control interrupts.
iii.2.4.2Processorstatusregister(Psr)
The PSR is a special register incorporated in the core CPU and contains control bits to enable or disable an interrupt
request to the CPU.
interruptenable(ie)bit:Psr[4]
This bit is used to enable or disable an interrupt request to the CPU. When this bit is set to 1, the CPU is
enabled to accept a maskable interrupt request. When this bit is reset to 0, no maskable interrupt request is
accepted by the CPU. When the CPU accepts an interrupt request (or some other trap occurs), it saves the PSR
to the stack and resets the IE bit to 0. Consequently, no maskable interrupt request occurring thereafter will be
accepted unless the IE bit is set to 1 in software program or the interrupt (trap) processing routine is terminated
by the reti instruction. The IE bit is initialized to 0 (interrupts disabled) by an initial reset.
interruptLevel(iL):Psr[11:8]
The IL bits disable the interrupts whose priorities are below the set interrupt level. For example, if the interrupt
level set in the IL is 3, the interrupts whose priorities are set below 3 in the interrupt priority register (described
later) are not accepted by the CPU even if the IE bit is set to 1. The IL and the interrupt priority register together
allow you to control the interrupt priorities in each interrupt system. For details about the interrupt levels, refer
to Section III.2.4.4, “Interrupt Priority Register and Interrupt Levels.”
When the CPU accepts a maskable interrupt request, it saves the PSR to the stack and sets the IL to the accepted
interrupt's priority level. Therefore, even when the IE bit is set to 1 in the interrupt processing routine, no
interrupts whose priority levels are equal or below that of the interrupt currently being processed are accepted
unless the IL is rewritten. The IL is restored to its previous status when the interrupt processing routine is
terminated by the reti instruction.
The IL is rewritten for only maskable interrupts and not for any other traps (except a reset).
The IL is set to level 0 (that is, all interrupts above level 1 are enabled) by an initial reset.
note: As the C33 PE Core function, the IL allows interrupt levels to be set in the range of 0 to 15.
However, since the interrupt priority register in the ITC consists of three bits, interrupt levels in
eachinterruptsystemcanonlybesetforupto8.