ade7166 Analog Devices, Inc., ade7166 Datasheet - Page 93

no-image

ade7166

Manufacturer Part Number
ade7166
Description
Single-phase Energy Measurement Ic With 8052 Mcu, Rtc, And Lcd Driver
Manufacturer
Analog Devices, Inc.
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
ade7166ASTZF16
Manufacturer:
VHK
Quantity:
2
Part Number:
ade7166ASTZF16
Manufacturer:
Analog Devices Inc
Quantity:
10 000
Part Number:
ade7166ASTZF16-RL
Manufacturer:
KOA
Quantity:
50 000
Part Number:
ade7166ASTZF16-RL
Manufacturer:
Analog Devices Inc
Quantity:
10 000
Part Number:
ade7166ASTZF8
Manufacturer:
Analog Devices Inc
Quantity:
10 000
Part Number:
ade7166ASTZF8-RL
Manufacturer:
Analog Devices Inc
Quantity:
10 000
INTERRUPT VECTORS
When an interrupt occurs, the program counter is pushed onto the
stack, and the corresponding interrupt vector address is loaded into
the program counter. When the interrupt service routine is
complete, the program counter is popped off the stack by a RETI
instruction. This allows program execution to resume from where
it was interrupted. The interrupt vector addresses are shown in
Table 74.
Table 74. Interrupt Vector Addresses
Source
IE0
TF0
IE1
TF1
RI + TI
TF2 + EXF2
ITEMP (Temperature ADC)
ISPI/I2CI
IPSM (Power Supply)
IADE (Energy Measurement DSP)
IRTC (RTC Interval Timer)
WDT (Watchdog Timer)
INTERRUPT LATENCY
The 8052 architecture requires that at least one instruction
execute between interrupts. To ensure this, the 8052 MCU
core hardware prevents the program counter from jumping to
an ISR immediately after completing a RETI instruction or an
access of the IP and IE registers.
The shortest interrupt latency is 3.25 instruction cycles, 800 ns
with a clock of 4.096 MHz. The longest interrupt latency for a
high priority interrupt results when a pending interrupt is
generated during a low priority interrupt RETI, followed by a
multiply instruction. This results in a maximum interrupt
latency of 16.25 instruction cycles, 4 μs with a clock of 4.096 MHz.
Vector Address
0x0003
0x000B
0x0013
0x001B
0x0023
0x002B
0x0033
0x003B
0x0043
0x004B
0x0053
0x005B
Rev. A | Page 93 of 144
CONTEXT SAVING
When the 8052 vectors to an interrupt, only the program counter
is saved on the stack. Therefore, the interrupt service routine
must be written to ensure that registers used in the main
program are restored to their pre-interrupt state. Common
registers that can be modified in the ISR are the accumulator
register and the PSW register. Any general-purpose registers
that are used as scratch pads in the ISR should also be restored
before exiting the interrupt. The following example 8052 code
shows how to restore some commonly used registers:
GeneralISR:
; save the current Accumulator value
; save the current status and register bank
selection
; service interrupt
; restore the status and register bank
selection
; restore the accumulator
ADE7566/ADE7569/ADE7166/ADE7169
PUSH
PUSH
POP
POP
RETI
ACC
PSW
PSW
ACC

Related parts for ade7166