Datasheet

ADuC7019/20/21/22/24/25/26/27/28/29 Data Sheet
Rev. F | Page 84 of 104
FIQ
The fast interrupt request (FIQ) is the exception signal to enter
the FIQ mode of the processor. It is provided to service data
transfer or communication channel tasks with low latency. The
FIQ interface is identical to the IRQ interface providing the
second-level interrupt (highest priority). Four 32-bit registers
are dedicated to FIQ: FIQSIG, FIQEN, FIQCLR, and FIQSTA.
Table 165. FIQSTA Register
Name Address Default Value Access
FIQSTA 0xFFFF0100 0x00000000 R
Table 166. FIQSIG Register
Name Address Default Value Access
FIQSIG 0xFFFF0104 0x00XXX000
1
R
1
X indicates an undefined value.
Table 167. FIQEN Register
Name Address Default Value Access
FIQEN 0xFFFF0108 0x00000000 R/W
Table 168. FIQCLR Register
Name Address Default Value Access
FIQCLR 0xFFFF010C 0x00000000 W
Bit 31 to Bit 1 of FIQSTA are logically ORd to create the FIQ
signal to the core and to Bit 0 of both the FIQ and IRQ registers
(FIQ source).
The logic for FIQEN and IRQEN does not allow an interrupt
source to be enabled in both IRQ and FIQ masks. A bit set to 1
in FIQEN does, as a side effect, clear the same bit in IRQEN.
Also, a bit set to 1 in IRQEN does, as a side effect, clear the
same bit in FIQEN. An interrupt source can be disabled in both
the IRQEN and FIQEN masks.
Note that to clear an already enabled FIQ source, the user must
set the appropriate bit in the FIQCLR register. Clearing an
interrupts FIQEN bit does not disable the interrupt.
Programmed Interrupts
Because the programmed interrupts are nonmaskable, they are
controlled by another register, SWICFG, which simultaneously
writes into the IRQSTA and IRQSIG registers and/or the
FIQSTA and FIQSIG registers. The 32-bit SWICFG register is
dedicated to software interrupts(see Table 170). This MMR
allows the control of a programmed source interrupt.
Table 169. SWICFG Register
Name Address Default Value Access
SWICFG 0xFFFF0010 0x00000000 W
Table 170. SWICFG MMR Bit Descriptions
Bit Description
31:3 Reserved.
2 Programmed interrupt (FIQ). Setting/clearing this bit
corresponds with setting/clearing Bit 1 of FIQSTA
and FIQSIG.
1 Programmed interrupt (IRQ). Setting/clearing this bit
corresponds with setting/clearing Bit 1 of IRQSTA
and IRQSIG.
0 Reserved.
Note that any interrupt signal must be active for at least the
equivalent of the interrupt latency time, which is detected by
the interrupt controller and by the user in the IRQSTA/FIQSTA
register.
TIMERS
The ADuC7019/20/21/22/24/25/26/27/28/29 have four general-
purpose timer/counters.
Timer0
Timer1
Timer2 or wake-up timer
Timer3 or watchdog timer
These four timers in their normal mode of operation can be
either free running or periodic.
In free-running mode, the counter decreases from the
maximum value until zero scale and starts again at the
minimum value. (It also increases from the minimum value
until full scale and starts again at the maximum value.)
In periodic mode, the counter decrements/increments from the
value in the load register (TxLD MMR) until zero/full scale and
starts again at the value stored in the load register.
The timer interval is calculated as follows:
If the timer is set to count down then
( )
ClockSource
PrescalerTxLD
Interval
×
=
If the timer is set to count up, then
( )
ClockSource
PrescalerTxLDFs
Interval
×
=
The value of a counter can be read at any time by accessing its
value register (TxVAL). Note that when a timer is being clocked
from a clock other than core clock, an incorrect value may be
read (due to an asynchronous clock system). In this configur-
ation, TxVAL should always be read twice. If the two readings
are different, it should be read a third time to get the correct
value.
Timers are started by writing in the control register of the
corresponding timer (TxCON).