Preliminary Technical Data Single-Phase Energy Measurement IC with 8052 MCU, RTC, and LCD Driver ADE7566/ADE7569 GENERAL FEATURES MICROPROCESSOR FEATURES Wide supply voltage operation: 2.4 V to 3.7 V Battery supply input with automatic switchover Reference: 1.2 V ± 1% (drift 50 ppm/°C maximum) 64-lead RoHS package options Lead frame chip scale package (LFCSP) Low profile quad flat package (LQFP) Operating temperature range: −40°C to +85°C 8052-based core Single-cycle 4 MIPS 8052 core 8052-compatible instruction set 32.768 kHz external crystal with on-chip PLL Two external interrupt sources External reset pin Real-time clock Counter for seconds, minutes, and hours Automatic battery switchover for RTC backup Ultralow battery supply current < 1.5 μA Software clock calibration with temperature and offset compensation Integrated LCD driver 108 segment with 2, 3, or 4 multiplexers 3 V/5 V driving capability Internally generated LCD drive voltages Temperature and supply compensated drive voltages Low power battery mode Wake-up from I/O and UART LCD driver capability On-chip peripherals UART, SPI, or I2C Watchdog timer Power supply monitoring with user-selectable levels Memory: 16 kB flash memory, 512 bytes RAM Development tools Single-pin emulation IDE-based assembly and C-source debugging ENERGY MEASUREMENT FEATURES High accuracy, active, reactive, and apparent energy measurement IC Supports IEC 62053-21, IEC 62053-22, IEC 62053-23 One differential input with PGAs support shunts, current transformers, and di/dt current sensors Selectable digital integrator support di/dt current sensor Digital parameters for gain, offset, and phase compensation Selectable no-load threshold level for W, VA, and VAR creep protection Less than 0.1% error on active energy over a dynamic range of 1000 to 1 @ 25°C Less than 0.5% error on reactive energy over a dynamic range of 1000 to 1 @ 25°C Less than 0.5% error on rms measurements over a dynamic range of 500 to 1 for current and 100 to 1 for voltage @ 25°C High frequency outputs supply proportional to Irms, active, reactive, or apparent power Proprietary ADCs and DSP provide high accuracy over large variations in environmental conditions and time Temperature monitoring GENERAL DESCRIPTION The ADE7566/ADE75691 integrate Analog Devices Inc. Energy (ADE) metering IC analog front end and fixed function DSP solution with an enhanced 8052 MCU core, an RTC, an LCD driver, and all the peripherals to make an electronic energy meter with an LCD display in a single part. The ADE measurement core includes active, reactive, and apparent energy calculations, as well as voltage and current rms measurements. This information is ready to use for energy billing by using built-in energy scalars. Many power line supervisory features such as SAG, peak, and zero-crossing are included in the energy measurement DSP to simplify energy meter design. 1 The microprocessor functionality includes a single cycle 8052 core, a real-time clock with a power supply backup pin, a UART, and an SPI or I2C interface. The ready-to-use information from the ADE core reduces the program memory size requirement, making it easy to integrate complicated design into 16 kB of flash memory. The ADE7566/ADE7569 also include a 108-segment LCD driver. This driver generates voltages capable of driving 5 V LCDs. Patents pending. Rev. PrA Information furnished by Analog Devices is believed to be accurate and reliable. However, no responsibility is assumed by Analog Devices for its use, nor for any infringements of patents or other rights of third parties that may result from its use. Specifications subject to change without notice. No license is granted by implication or otherwise under any patent or patent rights of Analog Devices. Trademarks and registered trademarks are the property of their respective owners. One Technology Way, P.O. Box 9106, Norwood, MA 02062-9106, U.S.A. Tel: 781.329.4700 www.analog.com Fax: 781.461.3113 ©2007 Analog Devices, Inc. All rights reserved. ADE7566/ADE7569 Preliminary Technical Data TABLE OF CONTENTS General Features ............................................................................... 1 Active Energy Calculation ........................................................ 52 Energy Measurement Features........................................................ 1 Reactive Power Calculation for the ADE7569 ....................... 55 Microprocessor Features.................................................................. 1 Reactive Energy Calculation for the ADE7569 ...................... 56 General Description ......................................................................... 1 Apparent Power Calculation..................................................... 60 Functional Block Diagram .............................................................. 4 Apparent Energy Calculation ................................................... 61 Specifications..................................................................................... 5 Ampere-Hour Accumulation ................................................... 62 Timing Specifications....................................................................... 9 Energy-to-Frequency Conversion............................................ 63 Absolute Maximum Ratings.......................................................... 16 Energy Register Scaling ............................................................. 63 Thermal Resistance .................................................................... 16 Energy Measurement Interrupts .............................................. 64 ESD Caution................................................................................ 16 Temperature, Battery, and Supply Voltage Measurements........ 65 Pin Configuration and Function Descriptions........................... 17 Temperature Measurement ....................................................... 67 Typical Performance Characteristics ........................................... 19 Battery Measurement................................................................. 67 Terminology .................................................................................... 21 External Voltage Measurement ................................................ 68 SFR Mapping ................................................................................... 22 8052 MCU CORE Architecture.................................................... 70 Power Management........................................................................ 23 MCU Registers............................................................................ 70 Power Management Register Details ....................................... 23 Basic 8052 Registers ................................................................... 72 Power Supply Architecture........................................................ 26 Standard 8052 SFRs.................................................................... 73 Battery Switchover...................................................................... 26 Memory Overview ..................................................................... 73 Power Supply Monitor Interrupt (PSM).................................. 27 Addressing Modes...................................................................... 74 Using the Power Supply Features ............................................. 29 Instruction Set ............................................................................ 76 Operating Modes ............................................................................ 31 Read-Modify-Write Instructions ............................................. 78 PSM0 (Normal Mode) ............................................................... 31 Instructions That Affect Flags .................................................. 78 PSM1 (Battery Mode) ................................................................ 31 Interrupt System ............................................................................. 80 PSM2 (Sleep Mode).................................................................... 31 Standard 8051 Interrupt Architecture ..................................... 80 3.3 V Peripherals and Wake-Up Events................................... 32 Interrupt Architecture ............................................................... 80 Transitioning Between Operating Modes ............................... 33 Interrupt Registers...................................................................... 80 Using the Power Management Features .................................. 33 Interrupt Priority........................................................................ 81 Energy Measurement ..................................................................... 34 Interrupt Flags ............................................................................ 82 Access to Energy Measurement SFRs ...................................... 34 Interrupt Vectors ........................................................................ 84 Access to Internal Energy Measurement Registers................ 34 Interrupt Latency........................................................................ 84 Energy Measurement Registers ................................................ 36 Context Saving............................................................................ 84 Energy Measurement Internal Registers Details.................... 37 Watchdog Timer ............................................................................. 85 Analog Inputs.............................................................................. 41 LCD Driver...................................................................................... 87 Analog-to-Digital Conversion.................................................. 42 LCD Registers ............................................................................. 87 di/dt Current Sensor and Digital Integrator for the ADE7569......................................................................... 44 LCD Setup ................................................................................... 90 Power Quality Measurements................................................... 46 BLINK Mode............................................................................... 91 Phase Compensation.................................................................. 48 Display Element Control........................................................... 91 RMS Calculation......................................................................... 48 Voltage Generation .................................................................... 92 Active Power Calculation .......................................................... 50 LCD External Circuitry ............................................................. 92 LCD Timing and Waveforms.................................................... 90 Rev. PrA | Page 2 of 136 Preliminary Technical Data ADE7566/ADE7569 LCD Function in PSM2..............................................................92 UART Additional Features ......................................................118 Flash Memory ..................................................................................94 Serial Peripheral Interface (SPI)..................................................119 Overview ......................................................................................94 SPI SFR Register List ................................................................119 Flash Memory Organization......................................................95 SPI Pins.......................................................................................122 Using the Flash Memory ............................................................95 SPI Master Operating Modes ..................................................123 Protecting the Flash ....................................................................98 SPI Interrupt and Status Flags .................................................124 2 In-Circuit Programming ............................................................99 I C Compatible Interface..............................................................125 Timers ............................................................................................ 100 Serial Clock Generation ...........................................................125 Timer SFR Registers ................................................................ 100 Slave Addresses..........................................................................125 Timer 0 and Timer 1................................................................ 102 I2C SFR Register List.................................................................125 Timer 2 ...................................................................................... 103 Read and Write Operations .....................................................126 PLL ................................................................................................. 105 I2C Receive and Transmit FIFOs.............................................127 PLL SFR Register List .............................................................. 105 Dual Data Pointers........................................................................128 Real Time Clock ........................................................................... 107 I/O Ports .........................................................................................129 RTC SFR Register List ............................................................. 107 Parallel I/O.................................................................................129 Read and Write Operations .................................................... 110 I/O SFR Register List ................................................................130 RTC Modes ............................................................................... 110 Port 0...........................................................................................133 RTC Interrupts ......................................................................... 110 Port 1...........................................................................................133 RTC Calibration ....................................................................... 111 Port 2...........................................................................................133 UART Serial Interface.................................................................. 112 Determining the Version of the ADE7566/ADE7569..............134 UART SFR Registers ................................................................ 112 Outline Dimensions......................................................................135 UART Operation Modes ......................................................... 115 Ordering Guide .........................................................................136 UART Baud Rate Generation ................................................. 116 Rev. PrA | Page 3 of 136 ADE7566/ADE7569 Preliminary Technical Data 7 8 P1.7 (FP20) P1.5 (FP22) 6 P1.6 (FP21) P1.3 (T2EX/FP24) P1.4 (T2/FP23) 37 36 5 P0.2 (CF1) 45 11 43 42 41 40 39 38 P0.1 (FP19) P1.0 (RxD) P1.1 (TxD) P1.2 (FP25) 8 P0.0 (BCTRL/INT1) T2EX T1 T2 39 38 7 P0.3 (CF2) P0.4 (MOSI/SDATA) P0.5 (MISO) P0.6 (SCLK/T0) P0.7 (SS/T1) 38 39 40 41 T0 MOSI/SDATA SCLK MISO 43 42 SS CF1 57 CF2 REFIN/OUT FUNCTIONAL BLOCK DIAGRAM 9 10 12 P2.0 (FP18) 13 P2.1 (FP17) 1.20V REF ADC ADC ENERGY MEASUREMENT DSP TEMP ADC POR 56 51 44 36 37 47 46 48 45 INT1 OSC INT0 VINTD 59 RTC XTAL2 62 UART SERIAL PORT XTAL1 61 UART TIMER RxD 60 LDO PLL TxD 64 VSWOUT LDO LCDVB 15 LCDVC 4 COM0 Figure 1. Functional Block Diagram Rev. PrA | Page 4 of 136 ... COM3 ... 20 FP15 DOWNLOADER DEBUGGER VDCIN ADC POWER SUPPLY CONTROL AND MONITORING LCDVA 17 .. . WATCHDOG TIMER USER XRAM 256 BYTES BATTERY ADC LCDVP2 18 35 FP0 SDEN TEMP SENSOR USER RAM 256 BYTES VDD VBAT 58 SINGLE CYCLE 8052 MCU PROGRAM MEMORY 16kB FLASH VDCIN AGND 54 LCDVP1 16 1 108 SEGMENTS LCD DRIVER DGND 63 19 ... + PGA2 – 3V/5V LCD CHARGE PUMP 1-PIN EMULATOR VN 50 44 P2.3 (SDEN) EA VP 49 14 P2.2 (FP16) RESET IN 53 + PGA1 – VINTA IP 52 ADE7566/ADE7569 3 × 16-BIT COUNTER TIMERS 14 FP16 13 FP17 12 FP18 11 FP19 10 FP20 9 FP21 8 FP22 7 FP23 6 FP24 5 FP25 55 FP26 06353-001 SPI/I2C SERIAL INTERFACE Preliminary Technical Data ADE7566/ADE7569 SPECIFICATIONS VDD = 3.3 V ± 5%, AGND = DGND = 0 V, on-chip reference XTAL = 32.768 kHz, TMIN to TMAX = −40°C to +85°C, unless otherwise noted. Table 1. Parameter ENERGY METERING MEASUREMENT ACCURACY 1 Phase Error Between Channels PF = 0.8 Capacitive PF = 0.5 Inductive Active Energy Measurement Error 2 Min AC Power Supply Rejection2 Output Frequency Variation DC Power Supply Rejection2 Output Frequency Variation Active Energy Measurement Bandwidth1, 2 Reactive Energy Measurement Error2 Typ Unit Test Conditions/Comments ±0.05 ±0.05 0.1 Degrees Degrees % of reading Phase lead 37° Phase lag 60° Over a dynamic range of 1000 to 1 @ 25°C 0.01 % 0.01 14 0.5 % kHz % of reading % of reading kHz % of reading kHz Vrms Measurement Error2 0.5 Vrms Measurement Bandwidth1, 2 Irms Measurement Error2 14 0.5 Irms Measurement Bandwidth1, 2 ANALOG INPUTS Maximum Signal Levels Input Impedance (DC) ADC Offset Error2 Gain Error2 Current Channel Voltage Channel Gain Error Match2 CF1 AND CF2 PULSE OUTPUT Maximum Output Frequency Duty Cycle Active High Pulse Width ANALOG PERIPHERALS INTERNAL ADCs (Battery, Temperature, VDCIN) Power Supply Operating Range No Missing Codes1 AC Power Supply Rejection1 DC Power Supply Rejection1 Conversion Delay 3 Temperature Sensor Accuracy1 VDCIN ANALOG INPUT Maximum Signal Levels Input Impedance (DC) Low VDCIN Detection Threshold Max 14 ±500 TBD 1 Over a dynamic range of 1000 to 1 @ 25°C Over a dynamic range of 100 to 1 @ 25°C Over a dynamic range of 500 to 1 @ 25°C VP − VN and IAP − IN Differential input ±4 ±4 ±3 % % % Current channel = 0.5 V dc Voltage channel = 0.5 V dc 21.1 50 90 kHz % ms VP − VN = IAP − IN = 500 mV peak sine wave If CF1 or CF2 frequency > 5.55 Hz If CF1 or CF2 frequency < 5.55 Hz V bits dB dB ms °C °C Measured on VSWOUT 2.3 8 3.7 TBD TBD 1 −1 −4 +1 +4 0 1.08 mV peak kΩ mV VDD = 3.3 V + 100 mV rms/120 Hz IP = VP = ±100 mV rms VDD = 3.3 V ± 117 mV dc 3.3 1 1.2 1.32 Rev. PrA | Page 5 of 136 V MΩ V At 25°C Between −40°C and +85°C ADE7566/ADE7569 Parameter POWER-ON RESET (POR) VDD POR Detection Threshold POR Active Timeout Period Strobe Period in Battery Operation VSWOUT POR Detection Threshold POR Active Timeout Period VINTD POR Detection Threshold POR Active Timeout Period VINTA POR Detection Threshold POR Active Timeout Period BATTERY SWITCH OVER Voltage Operating Range (VSWOUT) VDD to VBAT Switching Switching Threshold (VDD) Switching Delay Switching Delay VBAT to VDD Switching Switching Threshold (VDD) Switching Delay VSWOUT To VBAT Leakage Current LCD, CHARGE PUMP ACTIVE Charge Pump Capacitance Between LCDVP1 and LCDVP2 LCDVA, LCDVB, LCDVC Decoupling Capacitance LCDVA LCDVB LCDVB LCDVC LCD Stand-By Current V1 Segment Line Voltage V2 Segment Line Voltage V3 Segment Line Voltage DC Voltage Across Segment and COM Pin LCD, RESISTOR LADDER ACTIVE Leakage Current V1 Segment Line Voltage V2 Segment Line Voltage V3 Segment Line Voltage ON-CHIP REFERENCE Reference Error Power Supply Rejection Temperature Coefficient1 Preliminary Technical Data Min Typ 1.6 Max Unit 2.9 V ms ms 2.2 V ms 2.4 V ms 2.4 V ms 3.7 V TBD V ns ms TBD TBD 1.8 TBD 2.25 TBD 2.25 TBD 2.4 2.75 10 30 2.75 TBD 130 1 V ms nA 100 nF 470 nF 0 0 0 0 1.7 4.0 3.4 5.1 LCDVA LCDVB LCDVC 50 V V V V nA V V V mV ±20 LCDVA LCDVB LCDVC nA V V V ±0.9 mV dB ppm/°C 100 LCDVA − 0.1 LCDVB − 0.1 LCDVC − 0.1 LCDVA − 0.1 LCDVB − 0.1 LCDVC − 0.1 80 35 50 Rev. PrA | Page 6 of 136 Test Conditions/Comments When VDD to VBAT switch activated by VDD When VDD to VBAT switch activated by VDCIN Based on VDD > 2.75V 1/2 bias modes 1/3 bias modes 1/3 bias mode 1/2 and 1/3 bias modes Current on segment line = −2 μA Current on segment line = −2 μA Current on segment line = −2 μA LCDVC − LCDVB, LCDVC − LCDVA, or LCDVB − LCDVA 1/2 and 1/3 bias modes, no load Current on segment line = −2 μA Current on segment line = −2 μA Current on segment line = −2 μA Preliminary Technical Data Parameter DIGITAL INTERFACE LOGIC INPUTS All Inputs Except XTAL1, XTAL2, BCTRL, INT0, INT1, RESET Input High Voltage, VINH Input Low Voltage, VINL BCTRL, INT0, INT1, RESET Input High Voltage, VINH Input Low Voltage, VINL Input Currents RESET ADE7566/ADE7569 Min Typ LOGIC OUTPUTS Output High Voltage, VOH ISOURCE Output Low Voltage, VOL 6 ISINK Floating State Leakage Current Floating State Output Capacitance START-UP TIME 7 At Power-On From Power-Saving Mode 2 (PSM2) From Power-Saving Mode 1 (PSM1) POWER SUPPLY INPUTS VDD VBAT POWER SUPPLY OUTPUTS VBAT to VSWOUT On Resistance VDD to VSWOUT On Resistance VSWOUT Output Current Drive VINTA, VINTD VINTA Power Supply Rejection VINTD Power Supply Rejection Unit 0.4 V V 0.4 V V ±10 100 ±100 −5 μA μA nA μA 2.0 1.3 Port 0, Port 1, Port 2 Input Capacitance FLASH MEMORY Endurance 4 Data Retention 5 CRYSTAL OSCILLATOR Crystal Equivalent Series Resistance Crystal Frequency XTAL1 Input Capacitance XTAL2 Output Capacitance MCU CLOCK RATE (fCORE) Max 10 10,000 20 30 32 32.768 12 12 4.096 32 50 33.5 2.4 3.0 2.3 pF RESET = 0 V RESET = VSWOUT = 3.3 V Internal pull-up disabled, input = 0 V or VOUT Internal pull-up enabled, input = 0 V, VSWOUT = 3.3 V All digital inputs Cycles Years TJ = 85°C kΩ kHz pF pF MHz kHz Crystal = 32.768 kHz and CD[2:0] = 0 Crystal = 32.768 kHz and CD[2:0] = 0b111 TBD V μA V mA μA pF TBD TBD TBD ms μs μs 80 0.4 2 ±10 3.3 3.3 1 2.25 3.6 3.7 V V 25 6.1 6 2.75 Ω Ω mA V dB dB 80 60 Rev. PrA | Page 7 of 136 Test Conditions/Comments VDD = 3.3 V ± 5% VDD = 3.3 V ± 5% VBAT = 2.4 V VDD = 3 V ADE7566/ADE7569 Parameter POWER SUPPLY CURRENTS Current in Normal Mode (PSM0) Current in PSM1 Current in PSM2 Preliminary Technical Data Min Typ Max Unit Test Conditions/Comments 3.5 TBD TBD TBD TBD TBD mA mA mA mA TBD TBD mA 880 TBD TBD TBD 1.5 TBD μA μA μA μA μA fCORE = 4.096 MHz, LCD and meter active fCORE = 1.024 MHz, LCD and meter active fCORE = 32.768 kHz, LCD and Meter active fCORE = 4.096 MHz, LCD and meter DSP active, metering ADC powered down fCORE = 4.096 MHz, LCD active, metering ADC and DSP powered down fCORE = 4.096 MHz, LCD active fCORE = 1.024 MHz, LCD active fCORE = 4.096 MHz, LCD inactive LCD active with charge pump at 3.3 V + RTC RTC only TBD TBD TBD 1 These numbers are not production tested but are guaranteed by design and/or characterization data on production release. See the Terminology section for definition. 3 Delay between ADC conversion request and interrupt set. 4 Endurance is qualified as per JEDEC Standard 22 Method A117 and measured at −40°C, +25°C, +85°C, and +125°C. 5 Retention lifetime equivalent at junction temperature (TJ) = 85°C as per JEDEC Standard 22 Method A117. Retention lifetime derates with junction temperature. 6 Test carried out with a maximum of TBD I/Os set to a low output level. 7 Delay between power supply valid and execution of first instruction by 8052 core. 2 Rev. PrA | Page 8 of 136 Preliminary Technical Data ADE7566/ADE7569 TIMING SPECIFICATIONS float when a 100 mV change from the loaded VOH/VOL level occurs as shown in Figure 2. AC inputs during testing are driven at VSWOUT − 0.5 V for Logic 1 and 0.45 V for Logic 0. Timing measurements are made at VIH minimum for Logic 1 and VIL maximum for Logic 0 as shown in Figure 2. CLOAD for all outputs = 80 pF, unless otherwise noted. VDD = 2.7 V to 3.6 V; all specifications TMIN to TMAX, unless otherwise noted. For timing purposes, a port pin is no longer floating when a 100 mV change from load voltage occurs. A port pin begins to Table 2. Clock Input (External Clock Driven XTAL1) Parameter Parameter tCK tCKL tCKH tCKR tCKF 1/tCORE Min 0.032768 32.768 kHz External Crystal Typ Max 30.52 6.26 6.26 9 9 1.024 4.096 Unit μs μs μs ns ns MHz The ADE7566/ADE7569 internal PLL locks onto a multiple (512 times) of the 32.768 kHz external crystal frequency to provide a stable 4.096 MHz internal clock for the system. The core can operate at this frequency or at a binary submultiple defined by the CD[2:0] bits, selected via the POWCON SFR. DVDD – 0.5V 0.45V 0.2DVDD + 0.9V TEST POINTS 0.2DV DD – 0.1V VLOAD – 0.1V VLOAD VLOAD + 0.1V TIMING REFERENCE POINTS Figure 2. Timing Waveform Characteristics Rev. PrA | Page 9 of 136 VLOAD – 0.1V VLOAD VLOAD – 0.1V 06353-002 1 Description XTAL1 period XTAL1 width low XTAL1 width high XTAL1 rise time XTAL1 fall time Core clock frequency 1 ADE7566/ADE7569 Preliminary Technical Data Table 3. I2C-Compatible Interface Timing Parameters (400 kHz) Parameter tL tH tSHD tDSU tDHD tRSU tPSU tR tF tSUP 1 Typ 1.36 1.14 251.35 740 400 12.5 400 200 300 50 Unit μs μs μs ns ns ns ns ns ns ns Input filtering on both the SCLK and SDATA inputs suppresses noise spikes less than 50 ns. tBUF tSUP SDATA (I/O) MSB tDSU tPSU LSB MSB tDSU 2–7 8 tL tF tDHD tR tRSU tH 1 PS ACK tDHD tSHD SCLK (I) tR 9 tSUP STOP START CONDITION CONDITION 1 S(R) REPEATED START Figure 3. I2C-Compatible Interface Timing Rev. PrA | Page 10 of 136 tF 06353-003 1 Description SCLK low pulse width SCLK high pulse width Start condition hold time Data setup time Data hold time Setup time for repeated start Stop condition setup time Rise time of both SCLK and SDATA Fall time of both SCLK and SDATA Pulse width of spike suppressed Preliminary Technical Data ADE7566/ADE7569 Table 4. SPI Master Mode Timing (SPICPHA = 1) Parameters Parameter tSL tSH tDAV tDSU tDHD tDF tDR tSR tSF Min Typ (SPIR + 1) × tCORE 1 (SPIR +1 ) × tCORE1 Max 25 TBD TBD 5 5 5 5 12.5 12.5 12.5 12.5 tCORE depends on the clock divider or CD bits of the POWCON SFR, tCORE = 2CD/4.096 MHz. SCLK (SPICPOL = 0) tSH tSL tSR SCLK (SPICPOL = 1) tDAV tDF tSF tDR MOSI MSB MSB IN MISO tDSU BITS 6–1 BITS 6–1 tDHD Figure 4. SPI Master Mode Timing (SPICPHA = 1) Rev. PrA | Page 11 of 136 LSB LSB IN 06353-004 1 Description SCLK low pulse width SCLK high pulse width Data output valid after SCLK Edge Data input setup time before SCLK edge Data input hold time after SCLK edge Data output fall time Data output rise time SCLK rise time SCLK fall time Unit ns ns ns ns ns ns ns ns ns ADE7566/ADE7569 Preliminary Technical Data Table 5. SPI Master Mode Timing (SPICPHA = 0) Parameters Parameter tSL tSH tDAV tDOSU tDSU tDHD tDF tDR tSR tSF Min Typ (SPIR + 1) × tCORE 1 (SPIR + 1) × tCORE1 Max 25 75 TBD TBD 5 5 5 5 12.5 12.5 12.5 12.5 tCORE depends on the clock divider or CD bits of the POWCON SFR, tCORE = 2CD/4.096 MHz. SCLK (SPICPOL = 0) tSH tSL tSR SCLK (SPICPOL = 1) tSF tDAV tDOSU tDF tDR MOSI MSB MISO MSB IN tDSU BITS 6–1 BITS 6–1 LSB LSB IN 06353-005 1 Description SCLK low pulse width SCLK high pulse width Data output valid after SCLK edge Data output setup before SCLK edge Data input setup time before SCLK edge Data input hold time after SCLK edge Data output fall time Data output rise time SCLK rise time SCLK fall time tDHD Figure 5. SPI Master Mode Timing (SPICPHA = 0) Rev. PrA | Page 12 of 136 Unit ns ns ns ns ns ns ns ns ns ns Preliminary Technical Data ADE7566/ADE7569 Table 6. SPI Slave Mode Timing (SPICPHA = 1) Parameters Parameter tSS tSL tSH tDAV tDSU tDHD tDF tDR tSR tSF tSFS Min 0 Typ Max (SPIR + 1) × tCORE 1 (SPIR + 1) × tCORE1 25 TBD TBD 5 5 5 5 12.5 12.5 12.5 12.5 0 tCORE depends on the clock divider or CD bits of the POWCON SFR, tCORE = 2CD/4.096 MHz. SS tSFS tSS SCLK (SPICPOL = 0) tSL tSH tSR SCLK (SPICPOL = 1) tDAV tDF MSB MISO MOSI MSB IN tDSU tDR BITS 6–1 BITS 6–1 tDHD Figure 6. SPI Slave Mode Timing (SPICPHA = 1) Rev. PrA | Page 13 of 136 tSF LSB LSB IN 06353-006 1 Description SS to SCLK edge SCLK low pulse width SCLK high pulse width Data output valid after SCLK edge Data input setup time before SCLK edge Data input hold time after SCLK edge Data output fall time Data output rise time SCLK rise time SCLK fall time SS high after SCLK edge Unit ns ns ns ns ns ns ns ns ns ns ns ADE7566/ADE7569 Preliminary Technical Data Table 7. SPI Slave Mode Timing (SPICPHA = 0) Parameters Parameter tSS tSL tSH tDAV tDSU tDHD tDF tDR tSR tSF tDOSS tSFS Min 0 Typ Max (SPIR + 1) × tCORE 1 (SPIR + 1) × tCORE1 25 TBD TBD 5 5 5 5 12.5 12.5 12.5 12.5 25 0 tCORE depends on the clock divider or CD bits of the POWCON SFR, tCORE = 2CD/4.096 MHz. SS tSFS tSS SCLK (SPICPOL = 0) tSL tSH tSR SCLK (SPICPOL = 1) tSF tDAV tDOSS tDF MSB MISO MOSI MSB IN tDSU tDR BITS 6–1 BITS 6–1 LSB LSB IN 06353-007 1 Description SS to SCLK edge SCLK low pulse width SCLK high pulse width Data output valid after SCLK edge Data input setup time before SCLK edge Data input hold time after SCLK edge Data output fall time Data output rise time SCLK rise time SCLK fall time Data output valid after SS edge SS high after SCLK edge tDHD Figure 7. SPI Slave Mode Timing (SPICPHA= 0) Rev. PrA | Page 14 of 136 Unit ns ns ns ns ns ns ns ns ns ns ns ns Preliminary Technical Data ADE7566/ADE7569 Table 8. UART Timing (Shift Register Mode) Parameters Parameter tXLXL tQVXH tDVXH tXHDX tXHQX Min 4.096 MHz Core Clock Typ Max 2.93 Min Variable Core Clock Typ Max 12 × tCORE 1 TBD TBD TBD TBD tCORE depends on the clock divider or CD bits of the POWCON SFR, tCORE = 2CD/4.096 MHz. tXLXL TxD (OUTPUT CLOCK) SET RI OR SET TI tQVXH tXHQX RxD (OUTPUT DATA) LSB BIT 1 BIT 6 tDVXH RxD (INPUT DATA) LSB tXHDX BIT 1 Figure 8. UART Timing in Shift Register Mode Rev. PrA | Page 15 of 136 BIT 6 MSB 06353-008 1 Description Serial port clock cycle time Output data setup to clock Input data setup to clock Input data hold after clock Output data hold after clock Unit μs μs μs μs μs ADE7566/ADE7569 Preliminary Technical Data ABSOLUTE MAXIMUM RATINGS TA = 25°C, unless otherwise noted. Table 9. Parameter VDD to DGND VBAT to DGND VDCIN to DGND Input LCD Voltage to AGND, LCDVA, LCDVB, LCDVC1 Analog Input Voltage to AGND, VP, VN, IAP, and IN Digital Input Voltage to DGND Digital Output Voltage to DGND Operating Temperature Range (Industrial) Storage Temperature Range 64-Lead LQFP, Power Dissipation Lead Temperature Soldering Time 1 When used with external resistor divider. Rating −0.3 V to +3.7 V −0.3 V to +3.7 V −0.3 V to VSWOUT + 0.3 V −0.3 V to VSWOUT + 0.3 V Stresses above those listed under Absolute Maximum Ratings may cause permanent damage to the device. This is a stress rating only; functional operation of the device at these or any other conditions above those indicated in the operational section of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability. −2 V to +2 V −0.3 V to VSWOUT + 0.3 V −0.3 V to VSWOUT + 0.3 V −40°C to +85°C −65°C to +150°C 300°C 30 sec THERMAL RESISTANCE θJA is specified for the worst-case conditions, that is, a device soldered in a circuit board for surface-mount packages. Table 10. Thermal Resistance Package Type 64-Lead LQFP 64-Lead LFCSP ESD CAUTION Rev. PrA | Page 16 of 136 θJA 60 27.1 θJC 20.5 2.3 Unit °C/W °C/W Preliminary Technical Data ADE7566/ADE7569 VP VN EA IP IN AGND REFIN/OUT RESET FP26 VBAT VINTA VDD VSWOUT VINTD DGND VDCIN PIN CONFIGURATION AND FUNCTION DESCRIPTIONS 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 COM3/FP27 1 COM2/FP28 2 COM1 48 INT0 47 XTAL1 3 46 XTAL2 COM0 4 45 BCTRL/INT1/P0.0 P1.2/FP25 5 44 SDEN/P2.3 P1.3/T2EX/FP24 6 43 P0.2/CF1/RTCCAL P1.4/T2/FP23 7 42 8 ADE7566/ADE7569 P0.3/CF2 P1.5/FP22 41 P0.4/MOSI/SDATA P1.6/FP21 9 TOP VIEW (Not to Scale) 40 P0.5/MISO 39 P0.6/SCLK/T0 P0.1/FP19 11 38 P0.7/SS/T1 P2.0/FP18 12 37 P1.0/RxD P2.1/FP17 13 36 P1.1/TxD P2.2/FP16 14 35 FP0 LCDVC 15 34 FP1 LCDVP2 16 33 FP2 PIN 1 P1.7/FP20 10 06353-010 FP3 FP4 FP5 FP6 FP7 FP8 FP9 FP10 FP11 FP12 FP13 FP14 FP15 LCDVP1 LCDVA LCDVB 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Figure 9. Pin Configuration Table 11. Pin Function Descriptions Pin No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Mnemonic COM3/FP27 COM2/FP28 COM1 COM0 P1.2/FP25 P1.3/T2EX/FP24 P1.4/T2/FP23 P1.5/FP22 P1.6/FP21 P1.7/FP20 P0.1/FP19 P2.0/FP18 P2.1/FP17 P2.2/FP16 LCDVC LCDVP2 17, 18 19 LCDVB, LCDVA LCDVP1 35 to 20 36 37 38 39 40 41 42 FP0 to F15 P1.1/TxD P1.0/RxD P0.7/SS/T1 P0.6/SCLK/T0 P0.5/MISO P0.4/MOSI/SDATA P0.3/CF2 Description Common Output. COM3 is used for LCD backplane. / LCD Segment Output 27. Common Output. COM2 is used for LCD backplane. / LCD Segment Output 28. Common Output. COM1 is used for LCD backplanes. Common Output. COM0 is used for LCD backplanes. General-Purpose Digital I/O Port 1.2. / LCD Segment Output 25. General-Purpose Digital I/O Port 1.3. / Timer 2 Control Input. / LCD Segment Output 24. General-Purpose Digital I/O Port 1.4. / Timer 2 Input. / LCD Segment Output 23. General-Purpose Digital I/O Port 1.5. / LCD Segment Output 22. General-Purpose Digital I/O Port 1.6. / LCD Segment Output 21. General-Purpose Digital I/O Port 1.7. / LCD Segment Output 20. General-Purpose Digital I/O Port 0.1. / LCD Segment Output 19. General-Purpose Digital I/O Port 2.0. / LCD Segment Output 18. General-Purpose Digital I/O Port 2.1. / LCD Segment Output 17. General-Purpose Digital I/O Port 2.2. / LCD Segment Output 16. Output Port for LCD Levels. This pin should be decoupled with a 470 nF capacitor. Analog Output. A 100 nF capacitor should be connected between this pin and LCDVP1 for the internal LCD charge pump device. Output Port for LCD Levels. These pins should be decoupled with a 470 nF capacitor. Analog Output. A 100 nF capacitor should be connected between this pin and LCDVP2 for the internal LCD charge pump device. LCD Segment Output 0 to LCD Segment Output 15. General-Purpose Digital I/O Port 1.1. / Transmitter Data Output 1 (Asynchronous). General-Purpose Digital I/O Port 1.0. / Receiver Data Input 1 (Asynchronous). General-Purpose Digital I/O Port 0.7. / Slave Select when SPI is in Slave Mode. / Timer 1 Input. General-Purpose Digital I/O Port 0.6. / Clock Output for I2C or SPI Port. / Timer 0 Input. General-Purpose Digital I/O Port 0.5. / Data in for SPI Port. General-Purpose Digital I/O Port 0.4. / Data Line I2C-Compatible. / Data Out for SPI Port. General-Purpose Digital I/O Port 0.3. / Calibration Frequency Logic Output. The CF2 logic output gives instantaneous active, reactive, or apparent power information. Rev. PrA | Page 17 of 136 ADE7566/ADE7569 Pin No. 43 Mnemonic P0.2/CF1/RTCCAL 44 SDEN/P2.3 45 BCTRL/INT1/P0.0 46 XTAL2 47 XTAL1 48 49, 50 INT0 VP, VN 51 EA 52, 53 IP, IN 54 55 56 57 AGND FP26 RESET REFIN/OUT 58 VBAT 59 VINTA 60 VDD 61 VSWOUT 62 VINTD 63 64 DGND VDCIN Preliminary Technical Data Description General-Purpose Digital I/O Port 0.2. / Calibration Frequency Logic Output. The CF1 logic output gives instantaneous active, reactive, or apparent power information / RTC Calibration Frequency Logic Output. The RTCCAL logic output gives access to the calibrated RTC output. This pin is used to enable serial download mode through a resistor when pulled low on power-up or reset. On reset, this pin momentarily becomes an input and the status of the pin is sampled. If there is no pulldown resistor in place, the pin momentarily goes high and then user code is executed. If a pull-down resistor is in place, the embedded serial download/debug kernel executes and this pin remains low during internal program execution. / General-Purpose Digital I/O Port 2.3. Digital Input for Battery Control. This logic input connects VDD or VBAT to VSW internally when set to logic high or low, respectively. When left open, the connection between VDD or VBAT and VSW is selected internally. / External Interrupt Input. / General-Purpose Digital I/O Port 0.0. A crystal can be connected across this pin and XTAL1 (see XTAL1 description below) to provide a clock source for the ADE7566/ADE7569. The XTAL2 pin can drive one CMOS load when an external clock is supplied at XTAL1 or by the gate oscillator circuit. An external clock can be provided at this logic input. Alternatively, a parallel resonant AT crystal can be connected across XTAL1 and XTAL2 to provide a clock source for the ADE7566/ADE7569. The clock frequency for specified operation is 32.768 kHz. Interrupt Input. Analog Inputs for Voltage Channel. These inputs are fully differential voltage inputs with a maximum differential level of ±500 mV for specified operation. This channel also has an internal PGA. This pin is used as an input for emulation. When held high, this input enables the device to fetch code from internal program memory locations. The ADE7566/ADE7569 do not support external code memory. This pin should not be left floating. Analog Inputs for Current Channel. These inputs are fully differential voltage inputs with a maximum differential level of ±500 mV for specified operation. This channel also has an internal PGA. This pin provides the ground reference for the analog circuitry. LCD Segment Output 26. Reset Input, Active Low. This pin provides access to the on-chip voltage reference. The on-chip reference has a nominal value of 1.2 V ± 8% and a typical temperature coefficient of 50 ppm/°C maximum. This pin should be decoupled with a 1 μF capacitor in parallel with a ceramic 100 nF capacitor. 3.3 V Power Supply Input from the Battery. This pin is connected internally to VDD when the battery is selected as the power supply for the ADE7566/ADE7569. This pin provides access to the on-chip 2.5 V analog LDO. No external active circuitry should be connected to this pin. This pin should be decoupled with a 10 μF capacitor in parallel with a ceramic 100 nF capacitor. 3.3 V Power Supply Input from the Regulator. This pin is connected internally to VDD when the regulator is selected as the power supply for the ADE7566/ADE7569. This pin should be decoupled with a 10 μF capacitor in parallel with a ceramic 100 nF capacitor. 3.3 V Power Supply Output. This pin provides the supply voltage for the LDOs and internal circuitry of the ADE7566/ADE7569. This pin should be decoupled with a 10 μF capacitor in parallel with a ceramic 100 nF capacitor. This pin provides access to the on-chip 2.5 V digital LDO. No external active circuitry should be connected to this pin. This pin should be decoupled with a 10 μF capacitor in parallel with a ceramic 100 nF capacitor. This pin provides the ground reference for the digital circuitry. Analog Input for DC Voltage Monitoring. The maximum input voltage on this pin is 3.3 V with respect to AGND. This pin is used to monitor the pre-regulated dc voltage. Rev. PrA | Page 18 of 136 Preliminary Technical Data ADE7566/ADE7569 TYPICAL PERFORMANCE CHARACTERISTICS Figure 10. Figure 13. Figure 11. Figure 14. Figure 12. Figure 15. Rev. PrA | Page 19 of 136 ADE7566/ADE7569 Preliminary Technical Data Figure 16. Figure 19. Figure 17. Figure 20. Figure 18. Figure 21. Rev. PrA | Page 20 of 136 Preliminary Technical Data ADE7566/ADE7569 TERMINOLOGY Measurement Error The error associated with the energy measurement made by the ADE7566/ADE7569 is defined by the following formula: ⎛ Energy Register − True Energy ⎞ ⎟ × 100% Percentage Error = ⎜ ⎜ ⎟ True Energy ⎝ ⎠ Phase Error Between Channels The digital integrator and the high-pass filter (HPF) in the current channel have a non-ideal phase response. To offset this phase response and equalize the phase response between channels, two phase-correction networks are placed in the current channel: one for the digital integrator and the other for the HPF. The phase correction networks correct the phase response of the corresponding component, and ensure a phase match between current channel and voltage channel to within ±0.1° over a range of 45 Hz to 65 Hz with the digital integrator off. With the digital integrator on, the phase is corrected to within ±0.4° over a range of 45 Hz to 65 Hz. Power Supply Rejection (PSR) This quantifies the ADE7566/ADE7569 measurement error as a percentage of reading when the power supplies are varied. For the ac PSR measurement, a reading at nominal supplies (3.3 V) is taken. A second reading is obtained with the same input signal levels when an ac (100 mV rms/120 Hz) signal is introduced onto the supplies. Any error introduced by this ac signal is expressed as a percentage of reading (see the Measurement Error definition). For the dc PSR measurement, a reading at nominal supplies (3.3 V) is taken. A second reading is obtained with the same input signal levels when the supplies are varied ±5%. Any error introduced is again expressed as a percentage of the reading. ADC Offset Error This is the dc offset associated with the analog inputs to the ADCs. It means that with the analog inputs connected to AGND, the ADCs still see a dc analog input signal. The magnitude of the offset depends on the gain and input range selection (see the Typical Performance Characteristics section). However, when HPF1 is switched on, the offset is removed from the current channel and the power calculation is not affected by this offset. The offsets can be removed by performing an offset calibration (see the Analog Inputs section). Gain Error Gain Error is the difference between the measured ADC output code (minus the offset) and the ideal output code (see the Current Channel ADC and Voltage Channel ADC sections). It is measured for each of the gain setting on the current channel (1, 2, 4, 8, and 16). The difference is expressed as a percentage of the ideal code. Rev. PrA | Page 21 of 136 ADE7566/ADE7569 Preliminary Technical Data SFR MAPPING Table 12. Mnemonic IPSMF STRBPER BATVTH SCRATCH1 SCRATCH2 SCRATCH3 SCRATCH4 INTPR B DIFFPROG PERIPH BATPR RTCCOMP TEMPCAL SPIMOD1 I2CMOD SPIMOD2 I2CADR SPISTAT SPI2CSTAT IPSME LCDSEGE2 VDCINADC ACC WAV1L WAV1M WAV1H WAV2L WAV2M WAV2H ADCGO MIRQENL MIRQENM MIRQENH MIRQSTL MIRQSTM MIRQSTH BATADC PSW VRMSL VRMSM VRMSH IRMSL IRMSM IRMSH TEMPADC T2CON RCAP2L RCAP2H TL2 TH2 WDCON KYREG POWCON Address 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF 0xF0 0xF3 0xF4 0xF5 0xF6 0xF7 0xE8 0xE8 0xE9 0xE9 0xEA 0xEA 0xEC 0xED 0xEF 0xE0 0xE2 0xE3 0xE4 0xE5 0xE7 0xE7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xC8 0xCA 0xCB 0xCC 0xCD 0xC0 0xC1 0xC5 Details Table 15 Table 45 Table 48 Table 19 Table 20 Table 21 Table 22 Table 14 Table 52 Table 46 Table 17 Table 16 Table 122 Table 123 Table 136 Table 141 Table 137 Table 142 Table 138 Table 143 Table 18 Table 84 Table 49 Table 28 Table 28 Table 28 Table 28 Table 28 Table 28 Table 28 Table 47 Table 39 Table 40 Table 41 Table 36 Table 37 Table 38 Table 50 Table 53 Table 28 Table 28 Table 28 Table 28 Table 28 Table 28 Table 51 Table 101 Table 109 Table 108 Table 107 Table 106 Table 71 Table 112 Table 23 Mnemonic EADRL EADRH IP ECON FLSHKY PROTKY EDATA PROTB0 PROTB1 PROTR LCDCONY PINMAP0 PINMAP1 PINMAP2 IE IEIP2 LCDPTR LCDDAT CFG P2 TIMECON HTHSEC SEC MIN HOUR INTVAL DPCON SCON SBUF SPI2CTx SPI2CRx LCDCONX SBAUDF SBAUDT EPCFG P1 MADDPT MDATL MDATM MDATH LCDCON LCDCLK LCDSEGE TCON TMOD TL0 TL1 TL0 TH1 P0 SP DPL DPH PCON Rev. PrA | Page 22 of 136 Address 0xC6 0xC7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF 0xB1 0xB2 0xB3 0xB4 0xA8 0xA9 0xAC 0xAE 0xAF 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x80 0x81 0x82 0x83 0x87 Details Table 95 Table 96 Table 65 Table 88 Table 89 Table 90 Table 91 Table 92 Table 93 Table 94 Table 77 Table 147 Table 148 Table 149 Table 64 Table 66 Table 82 Table 83 Table 59 Table 152 Table 116 Table 117 Table 118 Table 119 Table 120 Table 121 Table 144 Table 128 Table 129 Table 134 Table 135 Table 75 Table 131 Table 130 Table 146 Table 151 Table 28 Table 28 Table 28 Table 28 Table 74 Table 78 Table 81 Table 100 Table 99 Table 103 Table 105 Table 102 Table 104 Table 150 Table 58 Table 55 Table 56 Table 54 Preliminary Technical Data ADE7566/ADE7569 POWER MANAGEMENT The ADE7566/ADE7569 have an elaborate power management circuitry that manages the regular power supply to battery switchover and power supply failures. The power management functionalities can be accessed directly through the 8052 SFRs (see Table 13). Table 13. Power Management SFRs SFR Address 0xEC 0xF5 0xF8 0xFF 0xF4 0xC5 0xFB 0xFC 0xFD 0xFE R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W Mnemonic IPSME BATPR IPSMF INTPR PERIPH POWCON SCRATCH1 SCRATCH2 SCRATCH3 SCRATCH4 Description Power Management Interrupt Enable. See Table 18. Battery Switchover Configuration. See Table 16. Power Management Interrupt Flag. See Table 15. Interrupt Wake-Up Configuration. See Table 14. Peripheral Configuration SFR. See Table 17. Power Control. See Table 23. Scratch Pad 1. See Table 19. Scratch Pad 2. See Table 20. Scratch Pad 3. See Table 21. Scratch Pad 4. See Table 22. POWER MANAGEMENT REGISTER DETAILS Table 14. Interrupt Pins Configuration SFR (INTPR, 0xFF) Bit No. 7 Mnemonic RTCCAL Default 0 6 to 5 FSEL[1:0] 00 4 3 to 1 Reserved INT1PRG[2:0] 000 Description Controls RTC calibration output. When set, the RTC calibration frequency selected by FSEL[1:0] is output on the P0.2/CF1/RTCCAL pin. Sets RTC calibration output frequency and calibration window. FSEL[1:0] Result (Calibration window, frequency) 00 30.5 sec, 1 Hz 01 30.5 sec, 512 Hz 10 0.244 sec, 500 Hz 11 0.244 sec, 16.384 kHz Controls the function of INT1. INT1PRG[2:0] X00 X01 01X 11X 0 INT0PRG 0 Result GPIO enabled BCTRL enabled INT1 input disabled INT1 input enabled Controls the function of INT0. INT0PRG 0 1 Result INT0 input disabled INT0 input enabled Writing to the Interrupt Pins Configuration SFR (INTPR, 0xFF) To protect the RTC from runaway code, a key must be written to the Key SFR (KYREG, 0xC1) to obtain write access to the Interrupt Pins Configuration SFR (INTPR, 0xFF). KYREG should be set to 0xEA to unlock this SFR and reset to zero after a timekeeping register is written to. The RTC registers can be written using the following 8052 assembly code: MOV KYREG, #0EAh MOV INTPR, #080h Rev. PrA | Page 23 of 136 ADE7566/ADE7569 Preliminary Technical Data Table 15. Power Management Interrupt Flag SFR (IPSMF, 0xF8) Bit No. 7 Address 0xFF Mnemonic FPSR Default 0 6 5 4 3 0xFE 0xFD 0xFC 0xFB FPSM FSAG RESERVED FVADC 0 0 0 0 2 1 0 0xFA 0xF9 0xF8 FBAT FBSO FVDCIN 0 0 0 Description Power Supply Restored Interrupt Flag. Set when the VDD power supply has been restored. This occurs when the source of VSW changes from VBAT to VDD. PSM Interrupt Flag. Set when an enabled PSM interrupt condition occurs. Voltage SAG Interrupt Flag. Set when an ADE energy measurement SAG condition occurs. This bit must be kept cleared for proper operation. VDCIN Monitor Interrupt Flag. Set when VDCIN changes by VDCIN_DIFF or when VDCIN measurement is ready. VBAT Monitor Interrupt Flag. Set when VBAT falls below BATVTH or when VBAT measurement is ready. Battery Switchover Interrupt Flag. Set when VSW switches from VDD to VBAT. VDCIN Monitor Interrupt Flag. Set when VDCIN falls below 1.2 V. Table 16. Battery Switchover Configuration SFR (BATPR, 0xF5) Bit No. 7 to 2 1 to 0 Mnemonic Reserved BATPRG[1:0] Default 00 00 Description These bits must be kept to 0 for proper operation. Control Bits for Battery Switchover. BATPRG[1:0] Result 00 Battery switchover enabled on low VDD 01 Battery switchover enabled on low VDD and low VDCIN 1X Battery switchover disabled Table 17. Peripheral Configuration SFR (PERIPH, 0xF4) Bit No. 7 6 5 4 Mnemonic RXFLAG VSWSOURCE VDD_OK PLL_FLT Default 0 1 1 0 3 2 1 to 0 REF_BAT_EN Reserved RXPROG[1:0] 0 0 00 Description If set, indicates that an Rx edge event triggered wake-up from PSM2. Indicates the power supply that is internally connected to VSW (0 VSW = VBAT, 1 VSW = VDD). If set, indicates that VDD power supply is ready for operation. If set, indicates that a PLL fault occurred where the PLL lost lock. Set the PLLACK bit in the Start ADC Measurement SFR (ADCGO, 0xD8) to acknowledge the fault and clear the PLL_FLT bit. If set, internal voltage reference enabled in PSM2 mode. This bit should be set if LCD is on in PSM2 mode. This bit should be kept to zero. Controls the function of the P1.0/RxD pin. RXPROG[1:0] Result 00 GPIO 01 RxD with wake-up disabled 11 RxD with wake-up enabled Table 18. Power Management Interrupt Enable SFR (IPSME, 0xEC) Bit No. 7 6 5 4 3 2 1 0 Interrupt Enable Bit EPSR RESERVED ESAG RESERVED EVSW EBAT EBSO EVDCIN Default 0 0 0 0 0 0 0 0 Description Enables a PSM interrupt when the power supply restored flag (FPSR) is set. Reserved. Enables a PSM interrupt when the voltage SAG flag (FSAG) is set. This bit must be kept cleared for proper operation. Enables a PSM interrupt when the VSW monitor flag (FVSW) is set. Enables a PSM interrupt when the VBAT monitor flag (FBAT) is set. Enables a PSM interrupt when the battery switchover flag (BSFO) is set. Enables a PSM interrupt when the VDCIN monitor flag (FVDCIN) is set. Rev. PrA | Page 24 of 136 Preliminary Technical Data ADE7566/ADE7569 Table 19. Scratch Pad 1 SFR (SCRATCH1, 0xFB) Bit No. 7 to 0 Mnemonic SCRATCH1 Default 0 Description Value can be written/read in this register. This value is maintained in all the power-saving modes. Table 20. Scratch Pad 2 SFR (SCRATCH2, 0xFC) Bit No. 7 to 0 Mnemonic SCRATCH2 Default 0 Description Value can be written/read in this register. This value is maintained in all the power-saving modes. Table 21. Scratch Pad 3 SFR (SCRATCH3, 0xFD) Bit No. 7 to 0 Mnemonic SCRATCH3 Default 0 Description Value can be written/read in this register. This value is maintained in all the power-saving modes. Table 22. Scratch Pad 4 SFR (SCRATCH4, 0xFE) Bit No. 7 to 0 Mnemonic SCRATCH4 Default 0 Description Value can be written/read in this register. This value is maintained in all the power-saving modes. Table 23. Power Control SFR (POWCON, 0xC5) Bit No. 7 6 Mnemonic RESERVED METER_OFF Default 0 0 5 4 3 2 to 0 RESERVED COREOFF RESERVED CD[2:0] 0 0 0 010 Description Reserved. Set this bit to turn off the modulators and energy metering DSP circuitry to reduce power if metering functions are not needed in PSM0. Reserved. Set this bit to shut down the core if in the PSM1 operating mode. Reserved. Controls the core clock frequency, fCORE. fCORE = 4.096 MHz/2CD. CD[2:0] Result (fCORE in MHz) 000 4.096 001 2.048 010 1.024 011 0.512 100 0.256 101 0.128 110 0.064 111 0.032 Writing to the Power Control SFR (POWCON, 0xC5) Writing data to the POWCON SFR involves a double instruction sequence. Global interrupts must first be disabled to ensure that the two instructions occur consecutively. The Key SFR (KYREG, 0xC1) is set to 0xA7 and is immediately followed by a write to the POWCON SFR. For example: CLR EA ;Disable Interrupts while configuring to WDT MOV KYREG,#0A7h ;Write KYREG to 0xA7 to get write access to the POWCON SFR MOV POWCON, #10H ;Shutdown the core NOP NOP Rev. PrA | Page 25 of 136 ADE7566/ADE7569 Preliminary Technical Data POWER SUPPLY ARCHITECTURE Each ADE7566/ADE7569 have two power supply inputs, VDD and VBAT, and require only a single 3.3 V power supply at VDD for full operation. A battery backup, or secondary power supply, with a maximum of 3.6 V can be connected to the VBAT input. Internally, the ADE7566/ADE7569 connect VDD or VBAT to VSW, which is used to derive power for the ADE7566/ADE7569 circuitry. The VSWOUT output pin reflects the voltage at VSW and has a maximum output current of 6 mA. This pin can also be used to power a limited number of peripheral components. The 2.5 V analog supply (VINTA) and the 2.5 V supply for the core logic (VINTD) are derived by on-chip linear regulators from VSW. Figure 22 shows the power supply architecture of ADE7566/ADE7569. The ADE7566/ADE7569 provide automatic battery switchover between VDD and VBAT based on the voltage level detected at VDD or VDCIN. Additionally, the BCTRL input can be used to trigger a battery switchover. The conditions for switching VSW from VDD to VBAT and back to VDD are described in the Battery Switchover section. VDCIN is an input pin that can be connected to a 0 V to 3.3 V dc signal. This input is intended for power supply supervisory purposes and does not provide power to the ADE7566/ ADE7569 circuitry (see the Battery Switchover section). VDCIN VDD VBAT VSWOUT ADC LDO BCTRL POWER SUPPLY MANAGEMENT VSW LDO VINTD VINTA The battery switchover functionality provided by the ADE7566/ADE7569 allows a seamless transition from VDD to VBAT. An automatic battery switchover option ensures a stable power supply to the ADE7566/ADE7569, as long as the external battery voltage is above 2.75 V. It allows continuous code execution even while the internal power supply is switching from VDD to VBAT and back. Note that the energy metering ADCs are not available when VBAT is being used for VSW. Power supply monitor (PSM) interrupts can be enabled to indicate when battery switchover occurs and when the VDD power supply is restored (see the Power Supply Monitor Interrupt (PSM) section.) Switching from VDD to VBAT The following three events switch the internal power supply (VSW) from VDD to VBAT: • • MCU • ADE ADC SPI/I2C SCRATCHPAD LCD RTC 3.3V 2.5V 06353-011 UART TEMPERATURE ADC Figure 22. Power Supply Architecture VDCIN < 1.2 V. When VDCIN falls below 1.2V, VSW switches from VDD to VBAT. This event is enabled when the BATPRG[1:0] bits in the Battery Switchover Configuration SFR (BATPR, 0xF5) = 0b01. Setting these bits disables switchover based on VDCIN. Battery switchover on low VDCIN is disabled by default. VDD < 2.75 V. When VDD falls below 2.75 V, VSW switches from VDD to VBAT. This event is enabled when BATPRG[1:0] in the Battery Switchover Configuration SFR (BATPR, 0xF5) are cleared. Rising edge on BCTRL. When the battery control pin, BCTRL, goes high, VSW switches from VDD to VBAT. This external switchover signal can trigger a switchover to VBAT at any time. Setting bits INT1PRG[4:2] to 0bx01 in the Interrupt Pins Configuration SFR (INTPR, 0xFF) enables the battery control pin. Switching from VBAT to VDD To switch VSW back from VBAT to VDD, all of the following events that are enabled to force battery switchover must be false: BATTERY SWITCHOVER The ADE7566/ADE7569 monitor VDD, VBAT, and VDCIN. Automatic battery switchover from VDD to VBAT can be configured based on the status of VDD, VDCIN, or the BCTRL pin. Battery switchover is enabled by default. Setting Bit 1 in the Battery Switchover Configuration SFR (BATPR, 0xF5) disables battery switchover so that VDD is always connected to VSW. The source of VSW is indicated by Bit 6 in the Peripheral Configuration SFR (PERIPH, 0xF4), which is set when VSW is connected to VDD and cleared when VSW is connected to VBAT. • • • VDCIN < 1.2 V and VDD < 2.75 V enabled. If the low VDCIN condition is enabled, VSW switches to VDD after VDCIN remains above 1.2 V and VDD remains above 2.75 V. VDD < 2.75 V enabled. VSW switches back to VDD after VDD has been above 2.75 V. BCTRL enabled. VSW switches back to VDD after BCTRL is low and the first or second bullet point is satisfied. Rev. PrA | Page 26 of 136 Preliminary Technical Data ADE7566/ADE7569 The Power Management Interrupt Enable SFR (IPSME, 0xEC) controls the events that result in a PSM interrupt. Figure 23 is a diagram illustrating how the PSM interrupt vector is shared among the PSM interrupt sources. The PSM interrupt flags are latched and must be cleared by writing to the flag register. POWER SUPPLY MONITOR INTERRUPT (PSM) The power supply monitor interrupt (PSM) alerts the 8052 core of power supply events. The PSM interrupt is disabled by default. Setting the EPSM bit in the Interrupt Enable and Priority 2 SFR (IEIP2, 0xA9) enables the PSM interrupt. EPSR FPSR ESAG FSAG EVSW FVSW FPSM TRUE? EPSM PENDING PSM INTERRUPT EBAT FBAT EBSO FBSO IPSME ADDR. 0xEC EPSR RESERVED ESAG RESERVED EVSW EBAT EBSO EVDCIN IPSMF ADDR. 0xF8 FPSR FPSM FSAG RESERVED FVSW FBAT FBSO FVDCIN IEIP2 ADDR. 0xA9 RESERVED PTI RESERVED PSI EADE ETI EPSM ESI NOT INVOLVED IN PSM INTERRUPT SIGNAL CHAIN Figure 23. PSM Interrupt Sources Rev. PrA | Page 27 of 136 06353-012 EVDCIN FVDCIN ADE7566/ADE7569 Preliminary Technical Data Battery Switchover and Power Supply Restored PSM Interrupt See the External Voltage Measurement section for details on how VDCIN is measured. The ADE7566/ADE7569 can be configured to generate a PSM interrupt when the source of VSW changes from VDD to VBAT, indicating battery switchover. Setting the EBSO bit in the Power Management Interrupt Enable SFR (IPSME, 0xEC) enables this event to generate a PSM interrupt. VBAT Monitor PSM Interrupt The ADE7566/ADE7569 can also be configured to generate an interrupt when the source of VSW changes from VBAT to VDD, indicating that the VDD power supply has been restored. Setting the EPSR bit in the Power Management Interrupt Enable SFR (IPSME, 0xEC) enables this event to generate a PSM interrupt. The flags in the Power Management Interrupt Flag SFR (IPSMF, 0xF8) for these interrupts, FBSO and FPSR, are set regardless of whether the respective enable bits have been set. The battery switchover and power supply restore event flags, FBSO and FPSR, are latched. These events must be cleared by writing a 0 to these bits. Bit 6 in the Peripheral Configuration SFR (PERIPH, 0xF4), VSWSOURCE, tracks the source of VSW. The bit is set when VSW is connected to VDD and cleared when VSW is connected to VBAT. VDCIN ADC PSM Interrupt The ADE7566/ADE7569 can be configured to generate a PSM interrupt when VDCIN changes magnitude by more than a configurable threshold. This threshold is set in the Temperature and Supply Delta SFR (DIFFPROG, 0xF3). See the External Voltage Measurement section for more information. Setting the EVDCIN bit in the Power Management Interrupt Enable SFR (IPSME, 0xEC) enables this event to generate a PSM interrupt. The VDCIN voltage is measured using a dedicated ADC. These measurements take place in the background at intervals to check the change in VDCIN. Conversions can also be initiated by writing to the Start ADC Measurement SFR (ADCGO, 0xD8). The FVDCIN flag indicates when a VDCIN measurement is ready. The VBAT voltage is measured using a dedicated ADC. These measurements take place in the background at intervals to check the change in VBAT. The FBAT bit is set when the battery level is lower than the threshold set in the Battery Detection Threshold SFR (BATVTH, 0xFA) or when a new measurement is ready in the Battery ADC Value SFR (BATADC, 0xDF). See the Battery Measurement section for more information. Setting the EBAT bit in the Power Management Interrupt Enable SFR (IPSME, 0xEC) enables this event to generate a PSM interrupt. VDCIN Monitor PSM Interrupt The VDCIN voltage is monitored by a comparator. The FVDCIN bit in the Power Management Interrupt Flag SFR (IPSMF, 0xF8) is set when the VDCIN input level is lower than 1.2 V. Setting the EVDCIN bit in the Power Management Interrupt Enable SFR (IPSME, 0xEC) enables this event to generate a PSM interrupt. This event, which is associated with the SAG monitoring, can be used to detect a power supply (VDD) being compromised and to trigger further actions prior to deciding a switch of VDD to VBAT . SAG Monitor PSM Interrupt The ADE7566/ADE7569 energy measurement DSP monitors the ac voltage input at the VP and VN input pins. The SAGLVL register is used to set the threshold for a line voltage SAG event. The FSAG bit in the Power Management Interrupt Flag SFR (IPSMF, 0xF8) is set if the line voltage stays below the level set in the SAGLVL register for the number of line cycles set in the SAGCYC register. See the Line Voltage Sag Detection section for more information. Setting the ESAG bit in the Power Management Interrupt Enable SFR (IPSME, 0xEC) enables this event to generate a PSM interrupt. Rev. PrA | Page 28 of 136 Preliminary Technical Data ADE7566/ADE7569 USING THE POWER SUPPLY FEATURES In an energy meter application, the 3.3 V power supply (VDD), is typically generated from the ac line voltage and regulated to 3.3 V by a voltage regulator IC. The pre-regulated dc voltage, typically 5 V to 12 V, can be connected to VDCIN through a resistor divider. A 3.6 V battery can be connected to VBAT. Figure 24 shows how the ADE7566/ADE7569 power supply inputs would be set up in this application. problem on VDD. When a SAG event occurs, the user code can be configured to backup data and prepare for battery switchover if desired. The relative spacing of these interrupts depends on the design of the power supply. Figure 26 shows the sequence of events that would occur if the main power supply started to fail in the power meter application shown in Figure 24, with battery switchover on low VDCIN or low VDD enabled. Finally, the transition between VDD and VBAT and the different Power Supply Modes (see the Operating Modes section) are represented in Figure 28. Figure 25 shows the sequence of events that would occur if the main power supply generated by the PSU started to fail in the power meter application shown in Figure 24. The SAG detection can provide the earliest warning of a potential BCTRL 45 (240V, 220V, 110V TYPICAL) AC INPUT VP 49 SAG DETECTION VN 50 5V TO 12V DC VDCIN 64 VOLTAGE SUPERVISORY VOLTAGE SUPERVISORY PSU 3.3V REGULATOR POWER SUPPLY MANAGEMENT IPSMF SFR (ADDR. 0xF8) VDD 60 VSW VSWOUT 61 06353-013 VBAT 58 Figure 24. Power Supply Management for Energy Meter Application VP – VN SAG LEVEL TRIP POINT SAGCYC = 1 VDCIN 1.2V t1 VDD 2.75V t2 VDCIN EVENT (FVDCIN = 1) IF SWITCHOVER ON LOW VDD IS ENABLED, AUTOMATIC BATTERY SWITCHOVER VSW CONNECTED TO VBAT BSO EVENT (FBSO = 1) Figure 25. Power Supply Management Interrupts and Battery Switchover with Only VDD Enabled for Battery Switchover Rev. PrA | Page 29 of 136 06353-014 SAG EVENT (FSAG = 1) ADE7566/ADE7569 Preliminary Technical Data VP – VN SAG LEVEL TRIP POINT SAGCYC = 1 VDCIN 1.2V t3 t1 VDD 2.75V VDCIN EVENT (FVDCIN = 1) IF SWITCHOVER ON LOW VDCIN IS ENABLED, AUTOMATIC BATTERY SWITCHOVER VSW CONNECTED TO VBAT BSO EVENT (FBSO = 1) 06353-015 SAG EVENT (FSAG = 1) Figure 26. Power Supply Management Interrupts and Battery Switchover with VDD or VDCIN Enabled for Battery Switchover Table 24. Power Supply Event Timing Operating Modes Time 10 ns min 10 ns min 30 ms t4 130 ms Description Time between when VDCIN goes below 1.2 V and when VSWF is raised. Time between when VDD falls below 2.75 V and when battery switchover occurs. Time between when VDCIN falls below 1.2 V and when battery switchover occurs if VDCIN is enabled to cause battery switchover. Time between when power supply restore conditions are met (VDCIN above 1.2 V and VDD above 2.75 V if BATPR[1:0] = 0b01 or VDD above 2.75 V if BATPR[1:0] = 0b00) and when VSW switches to VDD. VP − VN SAG LEVEL TRIP POINT VDCIN SAG EVENT VDCIN EVENT VDCIN EVENT 1.2V t3 t4 VBAT VDD 2.75V VSW PSM0 BATTERY SWITCH ENABLED ON LOW VDCIN VSW BATTERY SWITCH ENABLED ON LOW VDD PSM0 PSM1 OR PSM2 PSM0 t2 PSM1 OR PSM2 Figure 27. Power Supply Management Transitions Between Modes Rev. PrA | Page 30 of 136 t4 PSM0 06353-016 Parameter t1 t2 t3 Preliminary Technical Data ADE7566/ADE7569 OPERATING MODES • • PSM0 (NORMAL MODE) In PSM0, normal operating mode, VSW is connected to VDD. All of the analog and digital circuitry powered by VINTD and VINTA are enabled by default. In normal mode, the default clock frequency, fCORE, established during a power-on reset or software reset, is 1.024 MHz. The RAM in the MCU is no longer valid. The program counter for the 8052, also held in volatile memory, becomes invalid when the 2.5 V supply is shut down. Therefore, the program does not resume from where it left off, but always starts from the power-on reset vector when the ADE7566/ADE7569 come out of PSM2. The 3.3 V peripherals (temperature ADC, VDCIN ADC, RTC, and LCD) are active in PSM2. They can be enabled or disabled to reduce power consumption and are configured for PSM2 operation when the MCU core is active (see Table 26 for more information about the individual peripherals and their PSM2 configuration). The ADE7566/ADE7569 remain in PSM2 until an event occurs to wake it up. PSM1 (BATTERY MODE) In PSM1, battery mode, VSW is connected to VBAT. In this operating mode, the 8052 core and all of the digital circuitry are enabled by default. The analog circuitry for the ADE energy metering DSP powered by VINTA is disabled. This analog circuitry automatically restarts once the VDD supply is above 2.75 V and if the PWRDN bit in the MODE1 Register (0x0B) is cleared. The default fCORE for PSM1, established during a power-on reset or software reset, is 1.024 MHz. In PSM2, the ADE7566/ADE7569 provide four scratch pad RAM SFRs that are maintained during this mode. These SFRs can be used to save data from PSM0 or PSM1 when entering PSM2 (see Table 18 to Table 22). PSM2 (SLEEP MODE) PSM2 is a low power consumption sleep mode for use in battery operation. In this mode, VSW is connected to VBAT. All of the 2.5 V digital and analog circuitry powered through VINTA and VINTD are disabled, including the MCU core, resulting in the following: In PSM2, the ADE7566/ADE7569 maintain some SFRs (see Table 25). The SFRs that are not listed in this table should be restored when the part enters PSM0 or PSM1 from PSM2. Table 25. SFR Maintained in PSM2 I/O Configuration Interrupt Pins Configuration SFR (INTPR, 0xFF) Peripheral Configuration SFR (PERIPH, 0xF4) Port 0 Weak Pull-Up Enable SFR (PINMAP0, 0xB2) Port 1 Weak Pull-Up Enable SFR (PINMAP1, 0xB3) Port 2 Weak Pull-Up Enable SFR (PINMAP2, 0xB4) Scratch Pad 1 SFR (SCRATCH1, 0xFB) Power Supply Monitoring Battery Detection Threshold SFR (BATVTH, 0xFA) Battery Switchover Configuration SFR (BATPR, 0xF5) Battery ADC Value SFR (BATADC, 0xDF) RTC Peripherals RTC Nominal Compensation SFR (RTCCOMP, 0xF6) RTC Temperature Compensation SFR (TEMPCAL, 0xF7) RTC Configuration SFR (TIMECON, 0xA1) Peripheral ADC Strobe Period SFR (STRBPER, 0xF9) Temperature and Supply Delta SFR (DIFFPROG, 0xF3) VDCIN ADC Value SFR (VDCINADC, 0xEF) Hundredths of a Second Counter SFR (HTHSEC, 0xA2) Seconds Counter SFR (SEC, 0xA3) Hours Counter SFR (HOUR, 0xA5) Scratch Pad 3 SFR (SCRATCH3, 0xFD) Temperature ADC Value SFR (TEMPADC, 0xD7) – LCD Segment Enable SFR (LCDSEGE, 0x97) LCD Pointer SFR (LCDPTR, 0xAC) Alarm Interval SFR (INTVAL, 0xA6) LCD Data SFR (LCDDAT, 0xAE) Scratch Pad 4 SFR (SCRATCH4, 0xFE) – – – Scratch Pad 2 SFR (SCRATCH2, 0xFC) Minutes Counter SFR (MIN, 0xA4) Rev. PrA | Page 31 of 136 LCD Peripherals LCD Segment Enable 2 SFR (LCDSEGE2, 0xED) LCD Configuration Y SFR (LCDCONY, 0xB1) LCD Configuration X SFR (LCDCONX, 0x9C) LCD Configuration SFR (LCDCON, 0x95) LCD Clock SFR (LCDCLK, 0x96) ADE7566/ADE7569 Preliminary Technical Data 3.3 V PERIPHERALS AND WAKE-UP EVENTS Some of the 3.3 V peripherals are capable of waking the ADE7566/ADE7569 from PSM2. The events that can cause the ADE7566/ADE7569 to wake up from PSM2 are listed in the wake-up events column in Table 26. Table 26. 3.3 V Peripherals and Wake-up Events 3.3 V Peripheral Temperature ADC VSW ADC Power Supply Management RTC I/O Ports External Reset LCD Scratch Pad Wake-Up Event ∆T Wake-Up Enable Bits Maskable Flag – Interrupt Vector ITADC Comments The temperature ADC can wake-up the 8052 if the ITADC flag is set. This flag is set according to the description in the Temperature Measurement section. This wake-up event can be disabled by disabling temperature measurements in the Temperature and Supply Delta SFR (DIFFPROG, 0xF3) in PSM2. Maskable VSWF IPSM The VSW measurement can wake up the 8052. The VSWF is set ΔV according to the description in the External Voltage Measurement section. This wake-up event can be disabled by clearing the EVSW in the Power Management Interrupt Enable SFR (IPSME, 0xEC). PSR Nonmaskable PSR IPSM The 8052 wakes up if the power supply is restored (if VSW switches to be connected to VDD). The VSWSOURCE flag, Bit 6 of the Peripheral Configuration SFR (PERIPH, 0xF4) SFR, is set to indicate that VSW is connected to VDD.. Midnight Nonmaskable Midnight IRTC The ADE7566/ADE7569 wakes up at midnight every day to update its calendar. Alarm Maskable Alarm IRTC Set an alarm to wake the ADE7566/ADE7569 after the desired amount of time. The RTC alarm is enabled by setting the ALARM bit in the RTC Configuration SFR (TIMECON, 0xA1). All I/O pins are treated as inputs. The weak pull-up on each I/O pin can be disabled individually in the Port 0 Weak Pull-Up Enable SFR (PINMAP0, 0xB2), Port 1 Weak Pull-Up Enable SFR (PINMAP1, 0xB3), and Port 2 Weak Pull-Up Enable SFR (PINMAP2, 0xB4) to decrease current consumption. The interrupts can be enabled/disabled. INT0PRG = 1 – IE0 The edge of the interrupt is selected by Bit IT0 in the TCON register. INT0 The IE0 flag bit in the TCON register is not affected. INT1PRG[2:0] = – IE1 The edge of the interrupt is selected by Bit IT1 in the TCON register. INT1 11x The IE1 flag bit in the TCON register is not affected. Rx Edge RXPROG[1:0] = PERIPH.7 – An Rx edge event occurs if a rising or falling edge is detected on the 11 (RXFG) Rx line. RESET Nonmaskable – If the RESET pin is brought low while the ADE7566/ADE7569 is in – PSM2, it wakes up to PSM1. – – – – The LCD can be enabled/disabled in PSM2. The LCD data memory remains intact. – – – – The 4 SCRATCHx registers remain intact in PSM2. Rev. PrA | Page 32 of 136 Preliminary Technical Data ADE7566/ADE7569 TRANSITIONING BETWEEN OPERATING MODES Automatic Switch to VDD (PSM1 to PSM0) The operating mode of the ADE7566/ADE7569 is determined by the power supply connected to VSW. Therefore, changes in the power supply such as when VSW switches from VDD to VBAT, or when VSW switches to VDD, alters the operating mode. This section describes events that change the operating mode. If the conditions to switch VSW from VBAT to VDD occur (see the Battery Switchover section), the operating mode switches to PSM0. When this switch occurs, the analog circuitry used in the ADE energy measurement DSP automatically restarts. Note that code execution continues normally. A software reset can be performed to start PSM0 code execution at the power-on reset vector. Automatic Battery Switchover (PSM0 to PSM1) If any of the enabled battery switchover events occur (see the Battery Switchover section), VSW switches to VBAT. This switchover results in a transition from the PSM0 to PSM1 operating mode. When battery switchover occurs, the analog circuitry used in the ADE energy measurement DSP is disabled. To reduce power consumption, the user code can initiate a transition to PSM2. USING THE POWER MANAGEMENT FEATURES Because program flow is different for each operating mode, the status of VSW must be known at all times. The FVSW bit in the Power Management Interrupt Flag SFR (IPSMF, 0xF8) indicates what VSW is connected to. This bit can be used to control program flow on wake-up. Because code execution always starts at the power-on reset vector, Bit 6 of the Peripheral Configuration SFR (PERIPH, 0xF4) can be tested to determine which power supply is being used and to branch to normal code execution, or to wake up event code execution. Power supply events can also occur when the MCU core is active. To be aware of the events that change what VSW is connected to, use the following guidelines: Entering Sleep Mode (PSM1 to PSM2) To reduce power consumption when VSW is connected to VBAT, user code can initiate sleep mode, PSM2, by setting Bit 4 in the Power Control SFR (POWCON, 0xC5) to shut down the MCU core. Events capable of waking the MCU can be enabled (see the 3.3 V Peripherals and Wake-Up Events section). Servicing Wake-Up Events (PSM2 to PSM1) • The ADE7566/ADE7569 may need to wake up from PSM2 to service wake-up events (see the 3.3 V Peripherals and Wake-Up Events section). PSM1 code execution begins at the power-on reset vector. After servicing the wake-up event, the ADE7566/ ADE7569 can return to PSM2 by setting Bit 4 in the Power Control SFR (POWCON, 0xC5) to shut down the MCU core. • Enable the battery switchover interrupt (EVSW) if VSW = VDD at power-up. Enable the power supply restored interrupt (EPSR) if VSW = VBAT at power-up. An early warning that battery switchover is about to occur is provided by SAG detection and possibly low VDCIN detection (see the Battery Switchover section). Automatic Switch to VDD (PSM2 to PSM0) For a user-controlled battery switchover, enable automatic battery switchover on low VDD only. Then, enable the low VDCIN event to generate the PSM interrupt. When a low VDCIN event occurs, start data backup. Upon completion of the data backup, enable battery switchover on low VDCIN. Battery switchover occurs 30 ms later. If the conditions to switch VSW from VBAT to VDD occur (see the Battery Switchover section), the operating mode switches to PSM0. When this switch occurs, the MCU core and the analog circuitry used in the ADE energy measurement DSP automatically restarts. PSM0 code execution begins at the power-on reset vector. POWER SUPPLY RESTORED PSMO NORMAL MODE VSW CONNECTED TO VDD AUTOMATIC BATTERY SWITCHOVER POWER SUPPLY RESTORED PSM1 BATTERY MODE VSW CONNECTED TO VBAT WAKEUP EVENT USER CODE DIRECTS MCU TO SHUTDOWN CORE AFTER SERVICING WAKE-UP EVENT Figure 28. Transitioning Between Operating Modes Rev. PrA | Page 33 of 136 06353-017 PSM2 SLEEP MODE VSW CONNECTED TO VBAT ADE7566/ADE7569 Preliminary Technical Data ENERGY MEASUREMENT The ADE7566/ADE7569 offer a fixed function, energy measurement, digital processing core that provides all the information needed to measure energy in single-phase energy meters. The part provides two ways to access the energy measurements: direct access through SFRs for time sensitive information and indirect access through address and data SFR registers for the majority of energy measurements. The Irms, Vrms, interrupts, and waveform registers are readily available through SFRs as shown in Table 27. Other energy measurement information is mapped to a page of memory that is accessed indirectly through the MADDPT, MDATL, MDATM, and MDATH SFRs. The address and data registers act as pointers to the energy measurement internal registers. ACCESS TO ENERGY MEASUREMENT SFRs Access to the energy measurement SFRs is achieved by reading or writing to the SFR addresses detailed in Table 28. The internal data for the MIRQx SFRs are latched byte by byte into the SFR when the SFR is read. The WAV1x, WAV2x, VRMSx, and IRMSx registers are all 3-byte SFRs. The 24-bit data is latched into these SFRs when the high byte is read. Reading the low or medium byte before the high byte results in reading the data from the previous latched sample. Sample 8051 code to read the Vrms register is shown below. MOV R1, VRMSH MOV R2, VRMSM MOV R3, VRMSL //latches data in VrmsH, VrmsM and VrmsL SFR When Bit 7 of the Energy Measurement Pointer Address SFR (MADDPT, 0x91) is set, the content of the MDATx SFRs (MDATL, MDATM, and MDATH) is transferred to the internal energy measurement register designated by the address in the MADDPT SFR. If the internal register is 1 byte long, only the MDATL SFR content is copied to the internal register, while the MDATM SFR and MDATH SFR contents are ignored. The energy measurement core functions with an internal clock of 4.096 MHz ∕ 5 or 819.2 kHz. Because the 8052 core functions with another clock, 4.096MHz ∕ 2CD, synchronization between the two clock environments when CD = 0 or 1 is an issue. When data is written to the internal energy measurement, a small wait period needs to be implemented before another read or write to these registers can take place. Sample 8051 code to write 0x0155 to the 2-byte SAGLVL register located at 0x14 in the energy measurement memory space is shown below. MOV MDATM,#01h MOV MDATL,#55h MOV MADDPT,#SAGLVL_W (address 0x94) MOV A, #05h DJNZ ACC, $ ;Next Write or read to Energy Measurement SFR can be done after this. Reading the Internal Energy Measurement Registers ACCESS TO INTERNAL ENERGY MEASUREMENT REGISTERS Access to the internal energy measurement registers is achieved by writing to the Energy Measurement Pointer Address SFR (MADDPT, 0x91). This SRF selects the energy measurement register to be accessed and determines if a read or a write is performed (see Table 27). Table 27. Energy Measurement Pointer Address SFR (MADDPT, 0x91) Bit Number 7 6 to 1 Writing to the Internal Energy Measurement Registers Description 1 = write, 0 = read Energy measurement internal register address When Bit 7 of Energy Measurement Pointer Address SFR (MADDPT, 0x91) is cleared, the content of the internal energy measurement register designated by the address in MADDPT is transferred to the MDATx SFRs. If the internal register is 1 byte long, only the MDATL SFR content is updated with a new value, while the MDATM SFR and MDATH SFR contents are reset to 0x00. The energy measurement core functions with an internal clock of 4.096 MHz ∕ 5 or 819.2 kHz. Because the 8052 core functions with another clock, 4.096MHz ∕ 2CD, synchronization between the two clock environments when CD = 0 or 1 is an issue. When data is read from the internal energy measurement, a small wait period needs to be implemented before the MDATx SFRs are transferred to another SFR. Sample 8051 code to read the peak voltage in the 2-byte VPKLVL register located at 0x16 into the data pointer is shown below. MOV MADDPT,#VPKLVL_R (address 0x16) MOV A, #05h DJNZ ACC, $ MOV DPH, MDATM MOV DPL, MDATL Rev. PrA | Page 34 of 136 Preliminary Technical Data ADE7566/ADE7569 Table 28. Energy Measurement SFRs Address 0x91 0x92 0x93 0x94 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 R/W R/W R/W R/W R/W R R R R R R R/W R/W R/W R/W R/W R/W R R R R R R IAP ×1, ×2, ×4, ×8, ×16 {GAIN[2:0]} Description Energy Measurement Pointer Address. Energy Measurement Pointer Data LSByte. Energy Measurement Pointer Data Middle Byte. Energy Measurement Pointer Data MSByte. Vrms Measurement LSByte. Vrms Measurement Middle Byte. Vrms Measurement MSByte. Irms Measurement LSByte. Irms Measurement Middle Byte. Irms Measurement MSByte. Energy Measurement Interrupt Enable LSByte. Energy Measurement Interrupt Enable Middle Byte. Energy Measurement Interrupt Enable MSByte. Energy Measurement Interrupt Status LSByte. Energy Measurement Interrupt Status Middle Byte. Energy Measurement Interrupt Status MSByte. Selection 1 Sample LSByte. Selection 1 Sample Middle Byte. Selection 1 Sample MSByte. Selection 2 Sample LSByte. Selection 2 Sample Middle Byte. Selection 2 Sample MSByte. INTEGRATOR WGAIN[11:0] MULTIPLIER PGA1 I Name MADDPT MDATL MDATM MDATH VRMSL VRMSM VRMSH IRMSL IRMSM IRMSH MIRQENL MIRQENM MIRQENH MIRQSTL MIRQSTM MIRQSTH WAV1L WAV1M WAV1H WAV2L WAV2M WAV2H dt ADC LPF2 HPF CF1NUM[15:0] IN WATTOS[15:0] π 2 PHCAL[7:0] VARGAIN[11:0] CF1 DFC Ф LPF2 CF1DEN[15:0] IRMSOS[11:0] VAROS[15:0] CF2NUM[15:0] VAGAIN[11:0] VP VN PGA2 ADC HPF ×2 CF2 DFC LPF VRMSOS[11:0] VARDIV[7:0] CF2DEN[15:0] LPF VADIV[7:0] % % % METERING SFRs Figure 29. Energy Metering Block Diagram Rev. PrA | Page 35 of 136 WDIV[7:0] 06353-092 ×2 ADE7566/ADE7569 Preliminary Technical Data ENERGY MEASUREMENT REGISTERS Table 29. Energy Measurement Register List Address MADDPT[6:0] 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D Mnemonic Reserved WATTHR RWATTHR LWATTHR VARHR 1 RVARHR1 LVARHR1 VAHR RVAHR LVAHR PER_FREQ MODE1 MODE2 WAVMODE R/W – R R R R R R R R R R R/W R/W R/W Length (Bits) – 24 24 24 24 24 24 24 24 24 16 8 8 8 Signed/ Unsigned – S S S S S S S S S U U U U Default – 0 0 0 0 0 0 0 0 0 0 0x06 0x40 0 0x0E 0x0F NLMODE ACCMODE R/W R/W 8 8 U U 0 0 0x10 PHCAL R/W 8 S 0x40 0x11 ZXTOUT R/W 12 0x12 LINCYC R/W 16 U 0xFFFF 0x13 SAGCYC R/W 8 U 0xFF 0x14 SAGLVL R/W 16 U 0 0x15 IPKLVL R/W 16 U 0xFFFF 0x16 VPKLVL R/W 16 U 0xFFFF 0x17 IPEAK R 24 U 0 0x18 0x19 RSTIPEAK VPEAK R R 24 24 U U 0 0 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23 0x24 0x25 0x26 RSTVPEAK GAIN Reserved WGAIN VARGAIN1 VAGAIN WATTOS VAROS1 IRMSOS VRMSOS WDIV VARDIV VADIV R R/W – R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 24 8 – 12 12 12 16 16 12 12 8 8 8 U U – S S S S S S S U U U 0 0 – 0 0 0 0 0 0 0 0 0 0 0x0FFF Description – Reads Wh accumulator without reset. Reads Wh accumulator with reset. Reads Wh accumulator synchronous to line cycle. Reads VARh accumulator without reset. Reads VARh accumulator with reset. Reads VARh accumulator synchronous to line cycle. Reads VAh accumulator without reset. Reads VAh accumulator with reset. Reads VAh accumulator synchronous to line cycle. Reads line period or frequency register depending on Mode2 register. Sets basic configuration of energy measurement (see Table 30). Sets basic configuration of energy measurement (see Table 31). Sets configuration of Waveform Sample 1 and Waveform Sample 2 (see Table 32). Sets level of energy no-load thresholds (see Table 33). Sets configuration of W, VAR accumulation and various tamper alarms (see Table 34). Sets phase calibration register (see the Phase Compensation section). Sets timeout for zero-crossing timeout detection (see the Zero-Crossing Timeout section). Sets number of half-line cycles for LWATTHR, LVARHR, and LVAHR accumulators. Sets number of half-line cycles for SAG detection (see the Line Voltage Sag Detection section). Sets detection level for SAG detection (see the Line Voltage Sag Detection section). Sets peak detection level for current peak detection (see the Peak Detection section). Sets peak detection level for voltage peak detection (see the Peak Detection section). Reads current peak level without reset (see the Peak Detection section). Reads current peak level with reset (see the Peak Detection section). Reads voltage peak level without reset (see the Peak Detection section). Reads voltage peak level with reset (see the Peak Detection section. Sets PGA gain of analog inputs (see Table 35). Reserved. Sets watt gain register. Sets VAR gain register. Sets VA gain register. Sets watt offset register. Sets VAR offset register. Sets current rms offset register. Sets voltage rms offset register. Sets watt energy scaling register. Sets VAR energy scaling register. Sets VA energy scaling register. Rev. PrA | Page 36 of 136 Preliminary Technical Data Address MADDPT[6:0] 0x27 0x28 0x29 0x2A 1 Mnemonic CF1NUM CF1DEN CF2NUM CF2DEN R/W R/W R/W R/W R/W Length (Bits) 16 16 16 16 ADE7566/ADE7569 Signed/ Unsigned U U U U Default 0 0x003F 0 0x003F Description Sets CF1 numerator register. Sets CF1 denominator register. Sets CF2 numerator register. Sets CF2 denominator register. This function is not available in the ADE7566 part. ENERGY MEASUREMENT INTERNAL REGISTERS DETAILS Table 30. MODE1 Register (0x0B) Bit No. 7 6 5 4 3 2 1 0 Mnemonic SWRST DISZXLPF INTE SWAPBITS PWRDN DISCF2 DISCF1 DISHPF Default 0 0 0 0 0 1 1 0 Description Setting this bit resets all of the energy measurement registers to their default values. Setting this bit disables the zero-crossing low-pass filter. Setting this bit enables the digital integrator for use with a di/dt sensor. Setting this bit swaps CH1 ADC and CH2 ADC. Setting this bit powers down voltage and current ADCs. Setting this bit disables Frequency Output CF2. Setting this bit disables Frequency Output CF1. Setting this bit disables the HPFs in voltage and current channels. Table 31. MODE2 Register (0x0C) Bit No. 7 to 6 5 to 4 3 Mnemonic CF2SEL[1:0] CF1SEL[1:0] VARMSCFCON Default 01 00 0 Description Configuration Bits for CF2 Output. CF2SEL[1:0] Result 00 01 1x CF2 frequency is proportional to active power. CF2 frequency is proportional to reactive power. 1 CF2 frequency is proportional to apparent power or Irms. Configuration Bits for CF1 Output. CF1SEL[1:0] Result 00 01 1x CF1 frequency is proportional to active power. CF1 frequency is proportional to reactive power.1 CF1 frequency is proportional to apparent power or Irms. Configuration Bits for Apparent Power or Irms for CF1 and CF2 Outputs. Note that CF1 cannot be proportional to VA if CF2 is proportional to Irms, and vice versa. VARMSCFCON Result 0 1 2 ZXRMS 1 FREQSEL 0 1 Reserved 0 If CF1SEL[1:0] = 1x, CF1 is proportional to VA. If CF2SEL[1:0] = 1x, CF2 is proportional to VA. If CF1SEL[1:0] = 1x, CF1 is proportional to Irms. If CF2SEL[1:0] = 1x, CF2 is proportional to Irms. Logic 1 enables update of RMS values synchronously to voltage ZX. Configuration Bits to Select Period or Frequency Measurement for PER_FREQ Register (0x0A). 1 FREQSEL Result 0 1 PER_FREQ register holds a period measurement. PER_FREQ register holds a frequency measurement. This bit should be kept to 1. This function is not available in the ADE7566 part. Rev. PrA | Page 37 of 136 ADE7566/ADE7569 Preliminary Technical Data Table 32. WAVMODE Register (0x0D) Bit No. 7 to 5 Mnemonic WAV2SEL[2:0] Default 000 4 to 2 WAV1SEL[2:0] 000 1 to 0 DTRT[1:0] 00 1 Description Waveform 2 Selection for Samples Mode. WAV2SEL[2:0] Source 000 Current 001 Voltage 010 Active power multiplier output 011 Reactive power multiplier output 1 100 VA multiplier output 101 Irms LPF output Others Reserved Waveform 1 Selection for Samples Mode. WAV1SEL[2:0] Source 000 Current 001 Voltage 010 Active power multiplier output 011 Reactive power multiplier output1 100 VA multiplier output 101 Irms LPF output (low 24-bit) Others Reserved Waveform Samples Output Data Rate. DTRT[1:0] Update Rate (Clock = fCORE/5 = 819.2 kHz) 00 25.6 kSPS (clock/32) 01 12.8 kSPS (clock/64) 10 6.4 kSPS (clock/128) 11 3.2 kSPS (clock/256) This function is not available in the ADE7566 part. Table 33. NLMODE Register (0x0E) Bit No. 7 6 Mnemonic DISVARCMP 1 IRMSNOLOAD Default 0 0 5 to 4 VANOLOAD[1:0] 00 3 to 2 VARNOLOAD[1:0]1 00 1 to 0 APNOLOAD[1:0] 00 1 Description Setting this bit disables fundamental VAR gain compensation over line frequency. Logic 1 enables Irms no-load threshold detection. The level is defined by the setting of the VANOLOAD bits. Apparent Power No-Load Threshold. VANOLOAD[1:0] Result 00 No-load detection disabled 01 No-load enabled with threshold = 0.030% of full scale 10 No-load enabled with threshold = 0.015% of full scale 11 No-load enabled with threshold = 0.0075% of full scale Reactive Power No-Load Threshold VARNOLOAD[1:0] Result 00 No-load detection disabled 01 No-load enabled with threshold = 0.015% of full scale 10 No-load enabled with threshold = 0.0075% of full scale 11 No-load enabled with threshold = 0.0037% of full scale Active Power No-Load Threshold. APNOLOAD[1:0] Result 00 No-load detection disabled 01 No-load enabled with threshold = 0.015% of full scale 10 No-load enabled with threshold = 0.0075% of full scale 11 No-load enabled with threshold = 0.0037% of full scale This function is not available in the ADE7566 part. Rev. PrA | Page 38 of 136 Preliminary Technical Data ADE7566/ADE7569 Table 34. ACCMODE Register (0x0F) Bit No. 7 to 6 5 Mnemonic Reserved VARSIGN 1 Default 0 0 4 APSIGN 0 3 2 ABSVARM1 SAVARM1 0 0 1 0 POAM ABSAM 0 0 1 Description Reserved. Configuration bit to select event that triggers a reactive power sign interrupt. If set to 0, VARSIGN interrupt occurs when reactive power changes from positive to negative. If set to 1, VARSIGN interrupt occurs when reactive power changes from negative to positive. Configuration bit to select event that triggers an active power sign interrupt. If set to 0, APSIGN interrupt occurs when active power changes from positive to negative. If set to 1, APSIGN interrupt occurs when active power changes from negative to positive. Logic 1 enables absolute value accumulation of reactive power in energy register and pulse output. Logic 1 enables reactive power accumulation depending on the sign of the active power. If active power is positive, VAR is accumulated as it is. If active power is negative, the sign of the VAR is reversed for the accumulation. This accumulation mode affects both the VAR registers (VARHR, RVARHR, LVARHR) and the pulse output when connected to VAR.1 Logic 1 enables positive only accumulation of active power in energy register and pulse output. Logic 1 enables absolute value accumulation of active power in energy register and pulse output. This function is not available in the ADE7566 part. Table 35. GAIN Register (0x1B) Bit No. 7 to 5 Mnemonic PGA2[2:0] Default 000 4 3 Reserved CFSIGN_OPT 0 0 2 to 0 PGA1[2:0] 000 Description These bits define the voltage channel input gain. PGA2[2:0] Result 000 Gain = 1 001 Gain = 2 010 Gain = 4 011 Gain = 8 100 Gain = 16 Reserved. This bit defines where the CF change of sign detection (APSIGN or VARSIGN) is implemented. CFSIGN_OPT Result 0 Filtered power signal 1 On a per CF pulse basis These bits define the current channel input gain. PGA1[2:0] Result 000 Gain = 1 001 Gain = 2 010 Gain = 4 011 Gain = 8 100 Gain = 16 Table 36. Interrupt Status Register 1 SFR (MIRQSTL, 0xDC) Bit No. 7 Interrupt Flag ADEIRQFLAG 6-5 4 3 2 Reserved VARSIGN 1 APSIGN VANOLOAD 1 0 RNOLOAD1 APNOLOAD 1 Description This bit is set if any of the ADE status flags that are enabled to generate an ADE interrupt are set. This bit is automatically cleared when all of the enabled ADE status flags are cleared. Reserved. Logic 1 indicates that the reactive power sign has changed according to the configuration of ACCMODE register. Logic 1 indicates that the active power sign has changed according to the configuration of ACCMODE register. Logic 1 indicates that an interrupt has been caused by apparent power no-load detected. This interrupt is also used to reflect the part entering the Irms no load mode. Logic 1 indicates that an interrupt has been caused by reactive power no-load detected. Logic 1 indicates that an interrupt has been caused by active power no-load detected. This function is not available in the ADE7566 part. Rev. PrA | Page 39 of 136 ADE7566/ADE7569 Preliminary Technical Data Table 37. Interrupt Status Register 2 SFR (MIRQSTM, 0xDD) Bit No. 7 Interrupt Flag CF2 6 CF1 5 4 3 2 1 0 VAEOF REOF 1 AEOF VAEHF REHF1 AEHF 1 Description Logic 1 indicates that a pulse on CF2 has been issued. The flag is set even if CF2 pulse output is not enabled by clearing Bit 2 of MODE1 register. Logic 1 indicates that a pulse on CF1 has been issued. The flag is set even if CF1 pulse output is not enabled by clearing Bit 1 of MODE1 register. Logic 1 indicates that the VAHR register has overflowed. Logic 1 indicates that the VARHR register has overflowed. Logic 1 indicates that the WATTHR register has overflowed. Logic 1 indicates that the VAHR register is half-full. Logic 1 indicates that the VARHR register is half-full. Logic 1 indicates that the WATTHR register is half-full. This function is not available in the ADE7566 part. Table 38. Interrupt Status Register 3 SFR (MIRQSTH, 0xDE) Bit No. 7 6 5 4 3 2 1 0 Interrupt Flag RESET – WFSM PKI PKV CYCEND ZXTO ZX Description Indicates the end of a reset (for both software and hardware reset). Reserved. Logic 1 indicates that new data is present in the waveform registers (Address 0xE2 to Address 0xE7). Logic 1 indicates that current channel has exceeded the IPKLVL value Logic 1 indicates that voltage channel has exceeded the VPKLVL value. Logic 1 indicates the end of the energy accumulation over an integer number of half-line cycles. Logic 1 indicates that no zero crossing on the line voltage happened for the last ZXTOUT half-line cycles. Logic 1 indicates detection of a zero crossing in the voltage channel. Table 39. Interrupt Enable Register 1 SFR (MIRQENL, 0xD9) Bit No. 7 to 5 4 3 2 1 0 1 Interrupt Enable Bit Reserved VARSIGN 1 APSIGN VANOLOAD RNOLOAD1 APNOLOAD Description Reserved. When set, the VARSIGN bit set creates a pending ADE interrupt to the 8052 core. When set, the APSIGN bit set creates a pending ADE interrupt to the 8052 core. When set, the VANOLOAD bit set creates a pending ADE interrupt to the 8052 core. When set, the RNOLOAD bit set creates a pending ADE interrupt to the 8052 core. When set, the APNOLOAD bit set creates a pending ADE interrupt to the 8052 core. This function is not available in the ADE7566 part. Table 40. Interrupt Enable Register 2 SFR (MIRQENM, 0xDA) Bit No. 7 6 5 4 3 2 1 0 1 Interrupt Enable Bit CF2 CF1 VAEOF REOF 1 AEOF VAEHF REHF1 AEHF Description When this bit is set, a CF2 pulse creates a pending ADE interrupt to the 8052 core. When this bit is set, a CF1 pulse creates a pending ADE interrupt to the 8052 core. When this bit is set, the VAEOF flag set creates a pending ADE interrupt to the 8052 core. When this bit is set, the REOF flag set creates a pending ADE interrupt to the 8052 core. When this bit is set, the AEOF flag set creates a pending ADE interrupt to the 8052 core. When this bit is set, the VAEHF flag set creates a pending ADE interrupt to the 8052 core. When this bit is set, the REHF flag set creates a pending ADE interrupt to the 8052 core. When this bit is set, the AEHF flag set creates a pending ADE interrupt to the 8052 core. This function is not available in the ADE7566 part. Rev. PrA | Page 40 of 136 Preliminary Technical Data ADE7566/ADE7569 Table 41. Interrupt Enable Register 3 SFR (MIRQENH, 0xDB) Description Reserved When this bit is set, the WFSM flag set creates a pending ADE interrupt to the 8052 core. When this bit is set, the PKI flag set creates a pending ADE interrupt to the 8052 core. When this bit is set, the PKV flag set creates a pending ADE interrupt to the 8052 core. When this bit is set, the CYCEND flag set creates a pending ADE interrupt to the 8052 core. When this bit is set, the ZXTO flag set creates a pending ADE interrupt to the 8052 core. When this bit is set, the ZX flag set creates a pending ADE interrupt to the 8052 core. ANALOG INPUTS The ADE7566/ADE7569 has two fully differential voltage input channels. The maximum differential input voltage for input pairs VP/VN and IP/IN is ±0.5 V. In addition, the maximum signal level on analog inputs for VP/VN and IP/IN is ± 0.5 V with respect to AGND. Each analog input channel has a programmable gain amplifier (PGA) with possible gain selections of 1, 2, 4, 8, and 16. The gain selections are made by writing to the GAIN register in the Energy Measurement Register List (see Table 35 and Figure 31). Bit 0 to Bit 2 select the gain for the PGA in the current channel, and Bit 5 to Bit 7 select the gain for the PGA in the voltage channel. Figure 30 shows how a gain selection for the current channel is made using the gain register. In addition to the PGA, Channel 1 also has a full-scale input range selection for the ADC. The gain register also selects the ADC analog input range (see Figure 31). As mentioned previously, the maximum differential input voltage is 0.5 V. 7 6 5 0 0 0 GAIN[7:0] 4 3 2 0 0 0 1 0 0 0 GAIN (K) SELECTION VP1 K × VIN VIN VN1 Figure 30. PGA in Current Channel GAIN REGISTER* CURRENT AND VOLTAGE CHANNELS PGA CONTROL 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 PGA 2 GAIN SELECT 000 = × 1 001 = × 2 010 = × 4 011 = × 8 100 = × 16 ADDR: 0x1B PGA 1 GAIN SELECT 000 = × 1 001 = × 2 010 = × 4 011 = × 8 100 = × 16 CFSIGN_OPT RESERVED *REGISTER CONTENTS SHOW POWER-ON DEFAULTS. Figure 31. Analog Gain Register Rev. PrA | Page 41 of 136 06353-019 Interrupt Enable Bit – WFSM PKI PKV CYCEND ZXTO ZX 06353-018 Bit No. 7 to 6 5 4 3 2 1 0 ADE7566/ADE7569 Preliminary Technical Data 40 Hz to 2 kHz. Oversampling has the effect of spreading the quantization noise (noise due to sampling) over a wider bandwidth. With the noise spread more thinly over a wider bandwidth, the quantization noise in the band of interest is lowered (see Figure 32). ANALOG-TO-DIGITAL CONVERSION Each ADE7566/ADE7569 has two Σ-Δ analog-to-digital converters (ADCs). The outputs of these ADCs are mapped directly to waveform sampling SFRs (Address 0xE2 to Address 0xE7) and are used for energy measurement internal digital signal processing. In PSM1 (battery mode) and PSM2 (sleep mode), the ADCs are powered down to minimize power consumption. However, oversampling alone is not efficient enough to improve the signal-to-noise ratio (SNR) in the band of interest. For example, an oversampling ratio of four is required to increase the SNR by only 6 dB (1 bit). To keep the oversampling ratio at a reasonable level, it is possible to shape the quantization noise so that the majority of the noise lies at the higher frequencies. In the Σ-Δ modulator, the noise is shaped by the integrator, which has a high-pass-type response for the quantization noise. The result is that most of the noise is at the higher frequencies where it can be removed by the digital low-pass filter. This noise shaping is shown in Figure 32. For simplicity, the block diagram in Figure 33 shows a firstorder Σ-Δ ADC. The converter is made up of the Σ-Δ modulator and the digital low-pass filter. A Σ-∆ modulator converts the input signal into a continuous serial stream of 1s and 0s at a rate determined by the sampling clock. In the ADE7566/ADE7569, the sampling clock is equal to MCLK/5. The 1-bit DAC in the feedback loop is driven by the serial data stream. The DAC output is subtracted from the input signal. If the loop gain is high enough, the average value of the DAC output (and therefore, the bit stream) can approach that of the input signal level. DIGITAL FILTER SIGNAL For any given input value in a single sampling interval, the data from the 1-bit ADC is virtually meaningless. Only when a large number of samples are averaged is a meaningful result obtained. This averaging is carried into the second part of the ADC, the digital low-pass filter. By averaging a large number of bits from the modulator, the low-pass filter can produce 24-bit datawords that are proportional to the input signal level. ANTI ALIAS FILTER (RC) SHAPED NOISE NOISE 0 2 409.6 FREQUENCY (kHz) 0 2 409.6 FREQUENCY (kHz) Figure 32. Noise Reduction Due to Oversampling and Noise Shaping in the Analog Modulator INTEGRATOR LATCHED COMPARATOR + DIGITAL LOW-PASS FILTER – 24 VREF ... 10100101 ... 1-BIT DAC Figure 33. First-Order Σ-∆ ADC Rev. PrA | Page 42 of 136 06353-020 C 819.2 06353-021 NOISE MCLK/5 R 819.2 HIGH RESOLUTION OUTPUT FROM DIGITAL LPF SIGNAL The Σ-Δ converter uses two techniques to achieve high resolution from what is essentially a 1-bit conversion technique. The first is oversampling. Oversampling means that the signal is sampled at a rate (frequency) that is many times higher than the bandwidth of interest. For example, the sampling rate in the ADE7566/ ADE7569 is MCLK/5 (819.2 kHz), and the band of interest is ANALOG LOW-PASS FILTER SAMPLING FREQUENCY Preliminary Technical Data ADE7566/ADE7569 ALIASING EFFECTS Figure 33 also shows an analog low-pass filter (RC) on the input to the modulator. This filter is present to prevent aliasing, an artifact of all sampled systems. Aliasing means that frequency components in the input signal to the ADC, which are higher than half the sampling rate of the ADC, appear in the sampled signal at a frequency below half the sampling rate. Figure 34 illustrates the effect. Frequency components (the black arrows) above half the sampling frequency (also know as the Nyquist frequency, that is, 409.6 kHz) are imaged or folded back down below 409.6 kHz. This happens with all ADCs regardless of the architecture. In the example shown, only frequencies near the sampling frequency (819.2 kHz) move into the band of interest for metering (40 Hz to 2 kHz). This allows the use of a very simple LPF (low-pass filter) to attenuate high frequency (near 819.2 kHz) noise and prevents distortion in the band of interest. For conventional current sensors, a simple RC filter (single-pole LPF) with a corner frequency of 10 kHz produces an attenuation of approximately 40 dB at 819.2 kHz (see Figure 34). The 20 dB per decade attenuation is usually sufficient to eliminate the effects of aliasing for conventional current sensors. However, for a di/dt sensor such as a Rogowski coil, the sensor has a 20 dB per decade gain. This neutralizes the −20 dB per decade attenuation produced by one simple LPF. Therefore, when using a di/dt sensor, care should be taken to offset the 20 dB per decade gain. One simple approach is to cascade two RC filters to produce the −40 dB per decade attenuation needed. ×1, ×2, ×4 ×8, ×16 {GAIN[2:0]} PGA1 2 409.6 FREQUENCY (kHz) ADC Transfer Function Both ADCs in the ADE7566/ADE7569 are designed to produce the same output code for the same input signal level. With a full-scale signal on the input of 0.5 V, and an internal reference of 1.2 V, the ADC output code is nominally 2,684,354 or 0x28F5C2. The maximum code from the ADC is ±4,194,304; this is equivalent to an input signal level of ±0.794 V. However, for specified performance, it is recommended that the full-scale input signal level of 0.5 V not be exceeded. Current Channel ADC Figure 35 shows the ADC and signal processing chain for the current channel. In waveform sampling mode, the ADC outputs a signed, twos complement, 24-bit data-word at a maximum of 25.6 kSPS (MCLK/160). With the specified full-scale analog input signal of 0.5 V, the ADC produces an output code that is approximately between 0x28F5C2 (+2,684,354d) and 0xD70A3E (–2,684,354d). CURRENT RMS (I rms) CALCULATION WAVEFORM SAMPLE REGISTER DIGITAL INTEGRATOR* ADC ACTIVE AND REACTIVE POWER CALCULATION dt 50Hz V1 0.5V, 0.25V, 0.125V, 62.5mV, 31.3mV 0V 819.2 Figure 34. ADC and Signal Processing in Current Channel Outline Dimensions MODE1[5] HPF IN 0 REFERENCE IAP I SAMPLING FREQUENCY IMAGE FREQUENCIES 06353-022 Anti-Aliasing Filter CURRENT CHANNEL WAVEORM DATA RANGE AFTER INTEGRATOR (50Hz) 0x342CD0 CURRENT CHANNEL WAVEORM DATA RANGE 0x000000 0x28F5C2 60Hz 0xCBD330 ANALOG INPUT RANGE 0x000000 CURRENT CHANNEL WAVEORM DATA RANGE AFTER INTEGRATOR (60Hz) 0xD70A3E 0x2B7850 0x000000 *WHEN DIGITAL INTEGRATOR IS ENABLED, FULL-SCALE OUTPUT DATA IS ATTENUATED DEPENDING ON THE SIGNAL FREQUENCY BECAUSE THE INTEGRATOR HAS A –20dB/DECADE FREQUENCY RESPONSE. WHEN DISABLED, THE OUTPUT WILL NOT BE FURTHER ATTENUATED. Figure 35. ADC and Signal Processing in Current Channel Rev. PrA | Page 43 of 136 06353-023 0xD487B0 ADE7566/ADE7569 VP Preliminary Technical Data ×1, ×2, ×4, ×8, ×16 {GAIN[7:5]} HPF PGA2 V2 ACTIVE AND REACTIVE POWER CALCULATION REFERENCE WAVEFORM SAMPLE REGISTER ADC VN 0.5V, 0.25V, 0.125V, 62.5mV, 31.3mV VOLTAGE RMS (V rms) CALCULATION VOLTAGE PEAK DETECT V2 ZX DETECTION LPF1 0V VOLTAGE CHANNEL WAVEFORM DATA RANGE ANALOG INPUT RANGE f–3dB = 63.7Hz MODE1[6] 0x28F5 ZX SIGNAL DATA RANGE FOR 60Hz SIGNAL 0x1DD0 0x0000 0x0000 0xE230 0xD70B ZX SIGNAL DATA RANGE FOR 50Hz SIGNAL 0x2037 0x0000 *WHEN DIGITAL INTEGRATOR IS ENABLED, FULL-SCALE OUTPUT DATA IS ATTENUATED DEPENDING ON THE SIGNAL FREQUENCY BECAUSE THE INTEGRATOR HAS A –20dB/DECADE FREQUENCY RESPONSE. WHEN DISABLED, THE OUTPUT WILL NOT BE FURTHER ATTENUATED. 06353-024 0xDFC9 Figure 36. ADC and Signal Processing in Voltage Channel Voltage Channel ADC Figure 36 shows the ADC and signal processing chain for the voltage channel. In waveform sampling mode, the ADC outputs a signed, twos complement, 24-bit data-word at a maximum of 25.6 kSPS (MCLK/160). The ADC produces an output code that is approximately between 0x28F5 (+10,485d) and 0xD70B (−10,485d). di/dt CURRENT SENSOR AND DIGITAL INTEGRATOR FOR THE ADE7569 A di/dt sensor, a feature available for the AD7569, but not for the AD7566, detects changes in the magnetic field caused by accurrents. Figure 37 shows the principle of a di/dt current sensor. The waveform samples of the current ADC and voltage ADC can also be routed to the waveform registers to be read by the MCU core. The active, reactive, apparent power, and energy calculation remain uninterrupted during waveform sampling. When in waveform sampling mode, one of four output sample rates can be chosen by using Bits DTRT[1:0] of the WAVMODE register (see Table 32). The output sample rate can be 25.6 kSPS, 12.8 kSPS, 6.4 kSPS, or 3.2 kSPS. If the WFSM enable bit is set in the Interrupt Enable Register 3 SFR (MIRQENH, 0xDB), the 8052 core has a pending ADE interrupt. The sampled signals selected in the WAVMODE register are latched into the Waveform SFRs when the waveform high byte (WAV1H or WAV2H) is read. The ADE interrupt stays active until the WFSM status bit is cleared (see the Energy Measurement Interrupts section). + EMF (ELECTROMOTIVE FORCE) – INDUCED BY CHANGES IN MAGNETIC FLUX DENSITY (di/dt) 06353-026 MAGNETIC FIELD CREATED BY CURRENT (DIRECTLY PROPORTIONAL TO CURRENT) Channel Sampling Figure 37. Principle of a di/dt Current Sensor The flux density of a magnetic field induced by a current is directly proportional to the magnitude of the current. The changes in the magnetic flux density passing through a conductor loop generate an electromotive force (EMF) between the two ends of the loop. The EMF is a voltage signal that is proportional to the di/dt of the current. The voltage output from the di/dt current sensor is determined by the mutual inductance between the current-carrying conductor and the di/dt sensor. The current signal needs to be recovered from the di/dt signal before it can be used. An integrator is therefore necessary to restore the signal to its original form. Rev. PrA | Page 44 of 136 Preliminary Technical Data ADE7566/ADE7569 10 –1.0 –1.5 –2.0 –2.5 –3.0 GAIN (dB) The ADE7569 has a built-in digital integrator to recover the current signal from the di/dt sensor. The digital integrator on the current channel is switched off by default when the ADE7569 is powered up. Setting INTE bit in the MODE1 Register (0x0B) turns on the integrator. Figure 38 to Figure 41 show the magnitude and phase response of the digital integrator. –3.5 –4.0 0 –4.5 –5.0 –5.5 –6.0 40 –20 45 50 55 60 FREQUENCY (Hz) 65 70 06353-029 GAIN (dB) –10 Figure 40. Combined Gain Response of the Digital Integrator and Phase Compensator (40 Hz to 70 Hz) –30 –89.70 –40 1000 FREQUENCY (Hz) –89.80 PHASE (Degrees) 100 06353-027 –89.75 –50 Figure 38. Combined Gain Response of the Digital Integrator and Phase Compensator –88.0 –89.85 –89.90 –89.95 –90.00 –90.05 –89.0 40 –89.5 45 50 55 60 FREQUENCY (Hz) 65 70 06353-030 PHASE (Degrees) –88.5 Figure 41. Combined Phase Response of the Digital Integrator and Phase Compensator (40 Hz to 70 Hz) –90.5 102 103 FREQUENCY (Hz) FREQ 06353-093 –90.0 Figure 39. Combined Phase Response of the Digital Integrator and Phase Compensator Note that the integrator has a−20 dB/dec attenuation and an approximately −90° phase shift. When combined with a di/dt sensor, the resulting magnitude and phase response should be a flat gain over the frequency band of interest. The di/dt sensor has a 20 dB/dec gain associated with it. It also generates significant high frequency noise. Therefore, a more effective anti-aliasing filter is needed to avoid noise due to aliasing (see the Anti-Aliasing Filter section). When the digital integrator is switched off, the ADE7569 can be used directly with a conventional current sensor such as a current transformer (CT) or with a low resistance current shunt. Rev. PrA | Page 45 of 136 ADE7566/ADE7569 Preliminary Technical Data POWER QUALITY MEASUREMENTS Zero-Crossing Detection Each ADE7566/ADE7569 has a zero-crossing detection circuit on the voltage channel. This zero crossing is used to produce an external zero-crossing signal (ZX) and is used in calibration mode. The zero-crossing is generated by default from the output of LPF1. This filter has a low cut-off frequency and is intended for 50 Hz and 60 Hz systems. If needed, this filter can be disabled to allow a higher frequency signal to be detected or to limit the group delay of the detection. If the voltage input fundamental frequency is below 60 Hz, and a time delay in ZX detection is acceptable, it is recommended to enable LPF1. Enabling LPF1 limits the variability in the ZX detection by eliminating the high frequency components. Figure 42 shows how the zero-crossing signal is generated. ×1, ×2, ×4, ×8, ×16 VP PGA2 V2 The ADE interrupt stays active until the ZXTO status bit is cleared (see the Energy Measurement Interrupts section). The ZXOUT register (Address 0x11) can be written or read by the user (see the Energy Measurement Register List section). The resolution of the register is 160/MCLK sec per LSB. Thus, the maximum delay for an interrupt is 0.16 sec (128/MCLK × 212) when MCLK = 4.096 MHz. Figure 43 shows the mechanism of the zero-crossing timeout detection when the line voltage stays at a fixed dc level for more than CLKIN/160 × ZXTOUT sec. 12-BIT INTERNAL REGISTER VALUE ZXTOUT REFERENCE {GAIN [7:5]} this register is 0xFFF. If the internal register decrements to 0 before a zero crossing is detected in the Interrupt Status Register 3 SFR (MIRQSTH, 0xDE), and the ZXTO bit in the Interrupt Enable Register 3 SFR (MIRQENH, 0xDB) is set, the 8052 core has a pending ADE interrupt. HPF ADC 2 VN ZERO CROSS ZX VOLTAGE CHANNEL LPF1 f–3dB = 63.7Hz ZXTO FLAG BIT 43.24° @ 60Hz 1.0 0.73 ZX 06353-032 MODE1[6] Figure 43. Zero-Crossing Timeout Detection V2 LPF1 06353-031 Period or Frequency Measurements Figure 42. Zero-Crossing Detection on Voltage Channel The zero-crossing signal ZX is generated from the output of LPF1 (bypassed or not). LPF1 has a single pole at 63.7 Hz (at MCLK = 4.096 MHz). As a result, there is a phase lag between the analog input signal V2 and the output of LPF1. The phase lag response of LPF1 results in a time delay of approximately 2 ms (@ 60 Hz) between the zero crossing on the analog inputs of the voltage channel and ZX detection. The zero-crossing detection also drives the ZX flag in the Interrupt Status Register 3 SFR (MIRQSTH, 0xDE). If the ZX bit in the Interrupt Enable Register 3 SFR (MIRQENH, 0xDB) is set, the 8052 core has a pending ADE interrupt. The ADE interrupt stays active until the ZX status bit is cleared (see the Energy Measurement Interrupts section). Zero-Crossing Timeout The zero-crossing detection also has an associated timeout register, ZXTOUT. This unsigned, 12-bit register is decremented (1 LSB) every 160/MCLK sec. The register is reset to its user programmed, full-scale value every time a zero crossing is detected on the voltage channel. The default power-on value in The ADE7566/ADE7569 provide the period or frequency measurement of the line. The period or frequency measurement is selected by clearing or setting FREQSEL bit in the MODE2 Register (0x0C). The period/frequency register, PER_FREQ Register (0x0A), is an unsigned 16-bit register that is updated every period. If LPF1 is enabled, a settling time of 1.8 sec is associated with this filter before the measurement is stable. When the period measurement is selected, the measurement has a 2.44 μs/LSB (MCLK/10) when MCLK = 4.096 MHz, which represents 0.014% when the line frequency is 60 Hz. When the line frequency is 60 Hz, the value of the period register is approximately 0d6827. The length of the register enables the measurement of line frequencies as low as 12.5 Hz. The period register is stable at ±1 LSB when the line is established and the measurement does not change. When the frequency measurement is selected, the measurement has a 0.0625 Hz/LSB resolution when MCLK = 4.096 MHz, which represents 0.104% when the line frequency is 60 Hz. When the line frequency is 60 Hz, the value of the frequency register is 0d960. The frequency register is stable at ±4 LSB when the line is established and the measurement does not change. Rev. PrA | Page 46 of 136 Preliminary Technical Data ADE7566/ADE7569 V2 Line Voltage Sag Detection In addition to the detection of the loss of the line voltage signal (zero crossing), the ADE7566/ADE7569 can also be programmed to detect when the absolute value of the line voltage drops below a certain peak value for a number of line cycles. This condition is illustrated in Figure 44. VPKLVL[15:0] PKV RESET LOW WHEN RSTSTATUS REGISTER IS READ VOLTAGE CHANNEL FULL SCALE 06353-034 PKV INTERRUPT FLAG SAGLVL [15:0] READ RSTSTATUS REGISTER SAGCYC [7:0] = 0x04 3 LINE CYCLES Figure 45. Peak Level Detection 06353-033 SAG FLAG SAG RESET LOW WHEN VOLTAGE CHANNEL EXCEEDS SAGLVL [15:0] AND SAG FLAG RESET Figure 44. SAG Detection Figure 44 shows the line voltage falling below a threshold that is set in the SAG level register (SAGLVL[15:0]) for three line cycles. The quantities 0 and 1 are not valid for the SAGCYC register, and the contents represent one more than the desired number of full line cycles. For example, when the SAG cycle (SAGCYC[7:0]) contains 0x04, FSAG in the Power Management Interrupt Flag SFR (IPSMF, 0xF8) is set at the end of the third line cycle after the line voltage falls below the threshold. If the SAG enable bit (ESAG) in the Power Management Interrupt Enable SFR (IPSME, 0xEC) is set, the 8052 core has a pending power supply monitoring interrupt. The PSM interrupt stays active until the ESAG bit is cleared (see the Power Supply Monitor Interrupt (PSM) section). In Figure 44, the SAG flag (FSAG) is set on the fifth line cycle after the signal on the voltage channel first dropped below the threshold level. Sag Level Set The 2-byte contents of the SAG level register (SAGLVL, 0x14) are compared to the absolute value of the output from LPF1. Therefore, when LPF1 is enabled, writing 0x2038 to the SAG level register puts the SAG detection level at full scale (see Figure 36). Writing 0x00 or 0x01 puts the SAG detection level at 0. The SAG level register is compared to the input of the ZX detection, and detection is made when the contents of the SAG level register are greater. Peak Detection The ADE7566/ADE7569 can also be programmed to detect when the absolute value of the voltage or current channel exceeds a specified peak value. Figure 45 illustrates the behavior of the peak detection for the voltage channel. Both voltage and current channels are monitored at the same time. Figure 45 shows a line voltage exceeding a threshold that is set in the voltage peak register (VPKLVL[15:0]). The voltage peak event is recorded by setting the PKV flag in the Interrupt Status Register 3 SFR (MIRQSTH, 0xDE). If the PKV enable bit is set in the Interrupt Enable Register 3 SFR (MIRQENH, 0xDB), the 8052 core has a pending ADE interrupt. Similarly, the current peak event is recorded by setting the PKI flag in Interrupt Status Register 3 SFR (MIRQSTH, 0xDE). The ADE interrupt stays active until the PKV or PKI status bit is cleared (see the Energy Measurement Interrupts section). Peak Level Set The contents of the VPKLVL and IPKLVL registers are compared to the absolute value of the voltage and current channels 2 MSBs, respectively. Thus, for example, the nominal maximum code from the Current Channel ADC with a full-scale signal is 0x28F5C2 (see the Current Channel ADC section). Therefore, writing 0x28F5 to the IPKLVL register puts the current channel, peak detection level at full scale and sets the current peak detection to its least sensitive value. Writing 0x00 puts the current channel detection level at 0. The detection is done by comparing the contents of the IPKLVL register to the incoming current channel sample. The PKI flag indicates that the peak level is exceeded. If the PKI or PKV bit is set in the Interrupt Enable Register 3 SFR (MIRQENH, 0xDB), the 8052 core has a pending ADE interrupt. Peak Level Record Each ADE7566/ADE7569 records the maximum absolute value reached by the voltage and current channels in two different registers, IPEAK and VPEAK, respectively. Each register is a 24bit unsigned register that is updated each time the absolute value of the waveform sample from the corresponding channel is above the value stored in the VPEAK or IPEAK register. The contents of the VPEAK register correspond to the maximum absolute value observed on the voltage channel input. The contents of IPEAK and VPEAK represent the maximum absolute value observed on the current and voltage input, respectively. Reading the RSTVPEAK and RSTIPEAK registers clears their respective contents after the read operation. Rev. PrA | Page 47 of 136 ADE7566/ADE7569 Preliminary Technical Data PHASE COMPENSATION RMS CALCULATION The ADE7566/ADE7569 must work with transducers that can have inherent phase errors. For example, a phase error of 0.1° to 0.3° is not uncommon for a current transformer (CT). These phase errors can vary from part to part, and they must be corrected to perform accurate power calculations. The errors associated with phase mismatch are particularly noticeable at low power factors. The ADE7566/ADE7569 provide a means of digitally calibrating these small phase errors. The part allows a small time delay or time advance to be introduced into the signal processing chain to compensate for small phase errors. Because the compensation is in time, this technique should only be used for small phase errors in the range of 0.1° to 0.5°. Correcting large phase errors using a time shift technique can introduce significant phase errors at higher harmonics. The root mean square (rms) value of a continuous signal V(t) is defined as The phase calibration register (PHCAL[7:0]) is a twos complement, signed, single-byte register that has values ranging from 0x82 (−126d) to 0x68 (104d). HPF PGA1 1 PGA2 VN 7 0 1 0 0 1 0 1 1 1 V 0.1° I V (t ) = 2 × V sin(ωt ) where V is the rms voltage. V 2 (t ) = V 2 06353-036 V Figure 47. RMS Signal Processing The rms signals can be read from the waveform register by setting the WAVMODE Register (0x0D) and setting the WFSM bit in the Interrupt Enable Register 3 SFR (MIRQENH, 0xDB). Like the current and voltage channels waveform sampling modes, the waveform date is available at sample rates of 27.9 kSPS, 14 kSPS, 7 kSPS, or 3.5 kSPS. It is important to note that when the current input is larger than 40% of full scale, the Irms waveform sample register does not represent the true processed rms value. The rms value processed with this level of input is larger than the 24-bit read by the waveform register, making the value read truncated on the high end. LPF2 V I 60Hz (5) INPUT PHCAL[7:0] –231.93µs TO +48.83µs 60Hz (4) LPF3 CHANNEL 2 DELAY REDUCED BY 4.48µs (0.1°LEAD AT 60Hz) 0x0B IN PHCAL[7:0] DELAY BLOCK 1.22µs/LSB ADC 2 For time sampling signals, rms calculation involves squaring the signal, taking the average, and obtaining the square root. The ADE7566/ADE7569 implement this method by serially squaring the input, averaging them, and then taking the root square of the average. The averaging part of this signal processing is done by implementing a low-pass filter (LPF3 in Figure 47, Figure 48 Figure 49). This LPF has a −3dB cut-off frequency of 2 Hz when MCLK = 4.096 MHz. 06353-035 VP V 0 V (t ) = √2 × V sin(ωt ) 24 24 (3) V 2 (t) = V 2 – V 2 cos (2ωt) ADC 1 IN ∫ When this signal goes through LPF3, the cos(2ωt) term is attenuated and only the DC term Vrms2 goes through (see Figure 47). Figure 46 illustrates how the phase compensation is used to remove a 0.1° phase lead in current channel due to the external transducer. To cancel the lead (0.1°) in current channel, a phase lead must also be introduced into voltage channel. The resolution of the phase adjustment allows the introduction of a phase lead in increments of 0.026°. The phase lead is achieved by introducing a time advance into voltage channel. A time advance of 4.88 μs is made by writing −4 (0x3C) to the time delay block, thus reducing the amount of time delay by 4.88 μs, or equivalently, a phase lead of approximately 0.1° at a line frequency of 60 Hz (0x3C represents −4 because the register is centered with 0 at 0x40). IAP 1 × V 2 (t ) dt T V 2 (t ) = V 2 − V 2 cos(2ωt ) The PHCAL register is centered at 0x40, meaning that writing 0x40 to the register gives 0 delay. By changing this register, the time delay in the voltage channel signal path can change from −231.93 μs to +48.83 μs (MCLK = 4.096 MHz). One LSB is equivalent to 1.22 μs (MCLK/5) time delay or advance. A line frequency of 60 Hz gives a phase resolution of 0.026° at the fundamental (that is, 360° × 1.22 μs × 60 Hz). I T Vrms = Figure 46. Phase Calibration Rev. PrA | Page 48 of 136 Preliminary Technical Data ADE7566/ADE7569 Current Channel RMS Calculation Each ADE7566/ADE7569 simultaneously calculates the rms values for the current and voltage channels in different registers. Figure 48 shows the detail of the signal processing chain for the rms calculation on the current channel. The current channel rms value is processed from the samples used in the current channel waveform sampling mode and is stored in an unsigned 24-bit register (Irms) . One LSB of the current channel rms register is equivalent to one LSB of a current channel waveform sample. The update rate of the current channel rms measurement is MCLK/5. To minimize noise in the reading of the register, the Irms register can also be configured to update only with the zero crossing of the voltage input. This configuration is done by setting the ZXRMS bit in the MODE2 Register (0x0C). With the specified full-scale analog input signal of 0.5 V, the ADC produces an output code that is approximately ±0d2,684,354 (see the Current Channel ADC section). The equivalent rms value of a full-scale ac signal is 0d1,898,124 (0x1CF68C). The current rms measurement provided in the ADE7566/ADE7569 is accurate to within 0.5% for signal inputs 60Hz between full scale and full scale/1000. The conversion from the register value to amps must be done externally in the microprocessor using an amps/LSB constant. Current Channel RMS Offset Compensation The ADE7566/ADE7569 incorporate a current channel rms offset compensation register (IRMSOS). This is a 12-bit signed register that can be used to remove offset in the current channel rms calculation. An offset can exist in the rms calculation due to input noises that are integrated in the dc component of V2(t). The offset calibration allows the content of the Irms register to be maintained at 0 when no input is present on current channel. One LSB of the current channel rms offset is equivalent to 16,384 LSBs of the square of the current channel rms register. Assuming that the maximum value from the current channel rms calculation is 0d1,898,124 with full-scale ac inputs, then 1 LSB of the current channel rms offset represents 0.23% of measurement error at −60 dB down of full scale. I rms = I rms 0 2 + IRMSOS × 32768 (6) where Irms0 is the rms measurement without offset correction. CURRENT CHANNEL WAVEFORM DATA RANGE WITH INTEGRATOR ON (60Hz) 0x2B7850 0x000000 0xD487B0 IRMSOS[11:0] MODE1[5] IB HPF HPF DIGITAL INTEGRATOR* 226 227 218 Irms(t) 217 216 0x00 HPF1 LPF3 24 dt + 24 Irms[23:0] CURRENT CHANNEL WAVEFORM DATA RANGE WITH INTEGRATOR OFF 0x28F5C2 0x000000 0xD70A3E Figure 48. Current Channel RMS Signal Processing Rev. PrA | Page 49 of 136 06353-037 IA sgn 225 ADE7566/ADE7569 Preliminary Technical Data VOLTAGE SIGNAL (V(t)) VRMOS[11:0] 0x0 sgn 216 215 0xD70B 28 27 26 LPF3 LPF1 + VOLTAGE CHANNEL + Vrms[23:0] 0x28F5C2 0x00 06353-038 0x28F5 Figure 49. Voltage Channel RMS Signal Processing Voltage Channel RMS Calculation Figure 49 shows details of the signal processing chain for the rms calculation on the voltage channel. The voltage channel rms value is processed from the samples used in the voltage channel waveform sampling mode and is stored in the unsigned 24-bit Vrms register. The update rate of the voltage channel rms measurement is MCLK/5. To minimize noise in the reading of the register, the Vrms register can also be configured to update only with the zero crossing of the voltage input. This configuration is done by setting ZXRMS bit in the MODE2 Register (0x0C). With the specified full-scale ac analog input signal of 0.5 V, the output from the LPF1 in Figure 49 swings between 0x28F5 and 0xD70B at 60 Hz (see the Voltage Channel ADC section). The equivalent rms value of this full-scale ac signal is approximately 0d1,898,124 (0x1CF68C) in the Vrms register. The voltage rms measurement provided in the ADE7566/ADE7569 is accurate to within ±0.5% for signal input between full scale and full scale/20. The conversion from the register value to volts must be done externally in the microprocessor using a V/LSB constant. Voltage Channel RMS Offset Compensation The ADE7566/ADE7569 incorporate a voltage channel rms offset compensation register (VRMSOS). This is a 12-bit signed register that can be used to remove offset in the voltage channel rms calculation. An offset can exist in the rms calculation due to input noises and dc offset in the input samples. The offset calibration allows the contents of the Vrms register to be maintained at 0 when no voltage is applied. One LSB of the voltage channel rms offset is equivalent to 64 LSBs of the rms register. Assuming that the maximum value from the voltage channel rms calculation is 0d1,898,124 with full-scale ac inputs, then 1 LSB of the voltage channel rms offset represents 3.37% of measurement error at −60 dB down of full scale. Vrms = Vrms0 + 64 × VRMSOS The unit of power is the watt or joules/sec. Equation 10 gives an expression for the instantaneous power signal in an ac system. v (t ) = 2 × V sin(ωt ) (8) i (t ) = 2 × I sin(ωt ) (9) where: v is the rms voltage. i is the rms current. p (t ) = v (t ) × i (t ) p(t ) = VI − VI cos(2ωt ) (10) The average power over an integral number of line cycles (n) is given by the expression in Equation 11. P= 1 nT nT ∫0 p(t )dt = VI (11) where: T is the line cycle period. P is referred to as the active or real power. Note that the active power is equal to the dc component of the instantaneous power signal p(t) in Equation 11, that is, VI. This is the relationship used to calculate active power in the ADE7566/ADE7569. The instantaneous power signal p(t) is generated by multiplying the current and voltage signals. The dc component of the instantaneous power signal is then extracted by LPF2 (low-pass filter) to obtain the active power information. This process is illustrated in Figure 50. INSTANTANEOUS POWER SIGNAL p(t) = v × i – v × i × cos(2ωt) 0x19999A ACTIVE REAL POWER SIGNAL = v × i VI 0xCCCCD (7) where Vrms0 is the rms measurement without offset correction. ACTIVE POWER CALCULATION 0x00000 CURRENT i(t) = √2 × i × sin(ωt) VOLTAGE v(t) = √2 × v × sin(ωt) Figure 50. Active Power Calculation Rev. PrA | Page 50 of 136 06353-039 Active power is defined as the rate of energy flow from source to load. It is the product of the voltage and current waveforms. The resulting waveform is called the instantaneous power signal and is equal to the rate of energy flow at every instant of time. Preliminary Technical Data ADE7566/ADE7569 Because LPF2 does not have an ideal brick wall, frequency response (see Figure 51), the active power signal has some ripple due to the instantaneous power signal. This ripple is sinusoidal and has a frequency equal to twice the line frequency. Because of its sinusoidal nature, the ripple is removed when the active power signal is integrated to calculate energy (see the Active Energy Calculation section). 0 –4 (dB) –8 –12 The 256 LSBs (WATTOS = 0x0100) written to the active power offset register are equivalent to 1 LSB in the waveform sample register. Assuming the average value, output from LPF2 is 0xCCCCD (838,861d) when inputs on the voltage and current channels are both at full scale. At −60 dB down on the current channel (1/1000 of the current channel full-scale input), the average word value output from LPF2 is 838.861 (838,861/1,000). One LSB in the LPF2 output has a measurement error of 1/838.861 × 100% = 0.119% of the average value. The active power offset register has a resolution equal to 1/256 LSB of the waveform register. Therefore, the power offset correction resolution is 0.000464%/LSB (0.119%/256) at −60 dB. Active Power Sign Detection –16 1 3 10 FREQUENCY (Hz) 30 100 06353-040 –20 –24 active power register to be maintained at 0 when no power is being consumed. Figure 51. Frequency Response of LPF2 Active Power Gain Calibration Figure 52 shows the signal processing chain for the active power calculation in the ADE7566/ADE7569. As explained previously, the active power is calculated by filtering the output of the multiplier with a low-pass filter. Note that when reading the waveform samples from the output of LPF2, the gain of the active energy can be adjusted by using the multiplier and watt gain register (WGAIN[11:0]). The gain is adjusted by writing a twos complement 12-bit word to the watt gain register. Equation 12 shows how the gain adjustment is related to the contents of the watt gain register. ⎛ ⎧ WGAIN ⎫ ⎞ Output WGAIN = ⎜⎜ Active Power × ⎨1 + ⎬ ⎟⎟ 212 ⎭ ⎠ ⎩ ⎝ (12) For example, when 0x7FF is written to the watt gain register, the power output is scaled up by 50% (0x7FF = 2047d, 2047/212 = 0.5). Similarly, 0x800 = −2048d (signed, twos complement) and power output is scaled by –50%. Each LSB scales the power output by 0.0244%. The minimum output range is given when the watt gain register contents are equal to 0x800 and the maximum range is given by writing 0x7FF to the watt gain register. This can be used to calibrate the active power (or energy) calculation in the ADE7566/ADE7569. Active Power Offset Calibration The ADE7566/ADE7569 also incorporate an active power offset register (WATTOS[15:0]). It is a signed, twos complement, 16-bit register that can be used to remove offsets in the active power calculation (see Figure 50). An offset can exist in the power calculation due to crosstalk between channels on the PCB or in the IC itself. The offset calibration allows the contents of the The ADE7566/ADE7569 detect a change of sign in the active power. The APSIGN flag in the Interrupt Status Register 1 SFR (MIRQSTL, 0xDC) records when a change of sign has occurred according to Bit APSIGN in the ACCMODE Register (0x0F). If APSIGN flag is set in the Interrupt Enable Register 1 SFR (MIRQENL, 0xD9), the 8052 core has a pending ADE interrupt. The ADE interrupt stays active until the APSIGN status bit is cleared (see the Energy Measurement Interrupts section). When APSIGN in the ACCMODE Register (0x0F) is cleared (default), the APSIGN flag in the Interrupt Status Register 1 SFR (MIRQSTL, 0xDC) is set when a transition from positive– to-negative active power has occurred. When APSIGN in the ACCMODE Register (0x0F) is set, the APSIGN flag in the Interrupt Status Register 1 SFR (MIRQSTL, 0xDC) is set when a transition from negative-to-positive active power has occurred. Active Power No-Load Detection The ADE7566/ADE7569 include a no-load threshold feature on the active energy that eliminates any creep effects in the meter. The part accomplishes this by not accumulating energy if the multiplier output is below the no-load threshold. When the active power is below the no-load threshold, the APNOLOAD flag in the Interrupt Status Register 1 SFR (MIRQSTL, 0xDC) is set. If the APNOLOAD bit is set in the Interrupt Enable Register 1 SFR (MIRQENL, 0xD9), the 8052 core has a pending ADE interrupt. The ADE interrupt stays active until the APNOLOAD status bit is cleared (see the Energy Measurement Interrupts section). The no-load threshold level is selectable by setting the APNOLOAD bits in the NLMODE Register (0x0E). Setting these bits to 0b00 disable the no-load detection and setting them to 0b01, 0b10, or 0b11 set the no-load detection threshold to 0.015%, 0.0075%, or 0.0037% of the multiplier’s full-scale output frequency, respectively. The IEC 62053-21 specification states that the meter must start up with a load equal to or less than 0.4% IB, which translates to .0167% of the full-scale output frequency of the multiplier. Rev. PrA | Page 51 of 136 ADE7566/ADE7569 Preliminary Technical Data FOR WAVEFORM SAMPLING 23 WATTHR[23:0] UPPER 24 BITS ARE ACCESSIBLE THROUGH WATTHR[23:0] REGISTER 0 WATTOS[15:0] sgn 26 25 CURRENT CHANNEL LPF2 + 2–6 2–7 2–8 WDIV[7:0] + % + 48 0 + VOLTAGE CHANNEL WGAIN[11:0] OUTPUTS FROM THE LPF2 ARE ACCUMULATED (INTEGRATED) IN THE INTERNAL ACTIVE ENERGY REGISTER ACTIVE POWER SIGNAL WAVEFORM REGISTER VALUES 06353-041 5 CLKIN OUTPUT LPF2 T TO DIGITAL-TO-FREQUENCY CONVERTER TIME (nT) Figure 52. Active Energy Calculation The active power signal in the waveform register is continuously added to the internal active energy register. ACTIVE ENERGY CALCULATION As stated in the Active Power Calculation section, power is defined as the rate of energy flow. This relationship can be expressed mathematically in Equation 13. P= dE dt (13) where: P is power. E is energy. Conversely, energy is given as the integral of power. E = ∫ P (t )dt (14) The ADE7566/ADE7569 achieve the integration of the active power signal by continuously accumulating the active power signal in an internal, non readable, 49-bit energy register. The active energy register (WATTHR[23:0]) represents the upper 24 bits of this internal register. This discrete time accumulation or summation is equivalent to integration in continuous time. Equation 15 expresses the relationship. ⎧∞ ⎫ E = ∫ p(t )dt = Lim⎨∑ p(nT ) × T ⎬ t →0 ⎩n =1 ⎭ (15) where: n is the discrete time sample number. T is the sample period. The discrete time sample period (T) for the accumulation register in the ADE7566/ADE7569 is 1.22 μs (5/MCLK). In addition to calculating the energy, this integration removes any sinusoidal components that may be in the active power signal. Figure 52 shows this discrete time integration or accumulation. The active energy accumulation depends on the setting of the POAM and ABSAM bits in the ACCMODE Register (0x0F). When both bits are cleared, the addition is signed and, therefore, negative energy is subtracted from the active energy contents. When both bits are set, the ADE7566/ADE7569 are set to be in the more restrictive mode, the positive only accumulation mode. When POAM in the ACCMODE Register (0x0F) is set, only positive power contributes to the active energy accumulation. When ABSAM in the ACCMODE Register (0x0F) is set, the absolute active power is used for the active energy accumulation (see the Watt Absolute Accumulation Mode section). The output of the multiplier is divided by the value in the WDIV register. If the value in the WDIV register is equal to 0, the internal active energy register is divided by 1. WDIV is an 8-bit unsigned register. After dividing by WDIV, the active energy is accumulated in a 49-bit internal energy accumulation register. The upper 24 bits of this register are accessible through a read to the active energy register (WATTHR[23:0]). A read to the RWATTHR register returns the content of the WATTHR register, and the upper 24 bits of the internal register are cleared. As shown in Figure 52, the active power signal is accumulated in an internal 49-bit signed register. The active power signal can be read from the waveform register by setting the WAVMODE Register (0x0D) and setting the WFSM bit in the Interrupt Enable Register 3 SFR (MIRQENH, 0xDB). Like the current and voltage channels waveform sampling modes, the waveform date is available at sample rates of 27.9 kSPS, 14 kSPS, 7 kSPS, or 3.5 kSPS. Rev. PrA | Page 52 of 136 Preliminary Technical Data ADE7566/ADE7569 Figure 53 shows this energy accumulation for full-scale signals (sinusoidal) on the analog inputs. The three displayed curves illustrate the minimum period of time it takes the energy register to roll over when the active power gain register contents are 0x7FF, 0x000, and 0x800. The watt gain register is used to carry out power calibration in the ADE7566/ADE7569. As shown, the fastest integration time occurs when the watt gain register is set to maximum full scale, that is, 0x7FF. WATTHR[23:0] 0x7F,FFFF Time = 0 xFFFF, FFFF, FFFF × 1.22 μs = 409.6 sec = 6.82 min 0 xCCCCD (16) When WDIV is set to a value different than 0, the integration time varies, as shown in Equation 17. Time = TimeWDIV = 0 × WDIV (17) Active Energy Accumulation Modes Watt Signed Accumulation Mode The ADE7566/ADE7569 active energy default accumulation mode is a watt-signed accumulation based on the active power information. WGAIN = 0x7FF WGAIN = 0x000 WGAIN = 0x800 0x3F,FFFF Watt Positive-Only Accumulation Mode 0x00,0000 3.41 6.82 10.2 13.7 TIME (Minutes) 0x80,0000 06353-042 0x40,0000 Figure 53. Energy Register Rollover Time for Full-Scale Power (Minimum and Maximum Power Gain) The ADE7566/ADE7569 are placed in watt positive-only accumulation mode by setting the POAM bit in the ACCMODE Register (0x0F). In this mode, the energy accumulation is only done for positive power, ignoring any occurrence of negative power above or below the no-load threshold (see Figure 54). The CF pulse also reflects this accumulation method when in this mode. The default setting for this mode is off. Detection of the transitions in the direction of power flow and detection of no-load threshold are active in this mode. Note that the energy register contents roll over to full-scale negative (0x800000) and continue to increase in value when the power or energy flow is positive (see Figure 53). Conversely, if the power is negative, the energy register underflows to fullscale positive (0x7FFFFF) and continues to decrease in value. By using the interrupt enable register, the ADE7566/ADE7569 can be configured to issue an ADE interrupt to the 8052 core when the active energy register is half-full (positive or negative) or when an overflow or underflow occurs. Integration Time under Steady Load ACTIVE ENERGY NO-LOAD THRESHOLD ACTIVE POWER NO-LOAD THRESHOLD APSIGN FLAG POS NEG POS INTERRUPT STATUS REGISTERS 06353-043 As mentioned in the Active Energy Calculation section, the discrete time sample period (T) for the accumulation register is 1.22 μs (5/CLKIN). With full-scale sinusoidal signals on the analog inputs and the WGAIN register set to 0x000, the average word value from each LPF2 is 0xCCCCD (see Figure 50). The maximum positive value that can be stored in the internal 49-bit register is 248 (or 0xFFFF,FFFF,FFFF) before it overflows. The integration time under these conditions when WDIV = 0 is calculated in the following equation: Figure 54. Energy Accumulation in Positive-Only Accumulation Mode Rev. PrA | Page 53 of 136 ADE7566/ADE7569 Preliminary Technical Data behavior is consistent with the setting of the active energy accumulation mode in the ACCMODE Register (0x0F). The pulse output is active low and should be preferably connected to an LED as shown in Figure 66. Watt Absolute Accumulation Mode The ADE7566/ADE7569 are placed in watt absolute accumulation mode by setting the ABSAM bit in the ACCMODE Register (0x0F). In this mode, the energy accumulation is done using the absolute active power, ignoring any occurrence of power below the no-load threshold (see Figure 55). The CF pulse also reflects this accumulation method when in this mode. The default setting for this mode is off. Detection of the transitions in the direction of power flow, and detection of no-load threshold are active in this mode. Line Cycle Active Energy Accumulation Mode In line cycle active energy accumulation mode, the energy accumulation of the ADE7566/ADE7569 can be synchronized to the voltage channel zero crossing so that active energy can be accumulated over an integral number of half-line cycles. The advantage of summing the active energy over an integer number of line cycles is that the sinusoidal component in the active energy is reduced to 0. This eliminates any ripple in the energy calculation. Energy is calculated more accurately and more quickly because the integration period can be shortened. By using this mode, the energy calibration can be greatly simplified, and the time required to calibrate the meter can be significantly reduced. ACTIVE ENERGY In the line cycle active energy accumulation mode, the ADE7566/ADE7569 accumulate the active power signal in the LWATTHR register for an integral number of line cycles, as shown in Figure 56. The number of half-line cycles is specified in the LINCYC register. NO-LOAD THRESHOLD ACTIVE POWER The ADE7566/ADE7569 can accumulate active power for up to 65,535 half-line cycles. Because the active power is integrated on an integral number of line cycles, the CYCEND flag in the Interrupt Status Register 3 SFR (MIRQSTH, 0xDE) is set at the end of an active energy accumulation line cycle. If the CYCEND enable bit in the Interrupt Enable Register 3 SFR (MIRQENH, 0xDB) is set, the 8052 core has a pending ADE interrupt. The ADE interrupt stays active until the CYCEND status bit is cleared (see the Energy Measurement Interrupts section). Another calibration cycle starts as soon as the CYCEND flag is set. If the LWATTHR register is not read before a new CYCEND flag is set, the LWATTHR register is overwritten by a new value. NO-LOAD THRESHOLD APNOLOAD POS NEG POS APNOLOAD INTERRUPT STATUS REGISTERS 06353-044 APSIGN FLAG Figure 55. Energy Accumulation in Absolute Accumulation Mode Active Energy Pulse Output All of the ADE7566/ADE7569 circuitry has a pulse output whose frequency is proportional to active power (see the Active Power Calculation section). This pulse frequency output uses the calibrated signal from the WGAIN register output, and its TO DIGITAL-TO-FREQUENCY CONVERTER WGAIN[11:0] OUTPUT FROM LPF2 + % 0 WDIV[7:0] 23 LPF1 FROM VOLTAGE CHANNEL ADC 48 ZERO-CROSSING DETECTION CALIBRATION CONTROL 0 LWATTHR [23:0] LINCYC [15:0] Figure 56. Line Cycle Active Energy Accumulation Rev. PrA | Page 54 of 136 ACCUMULATE ACTIVE ENERGY IN INTERNAL REGISTER AND UPDATE THE LWATTHR REGISTER AT THE END OF LINCYC HALF LINE CYCLES 06353-046 WATTOS[15:0] + Preliminary Technical Data ADE7566/ADE7569 When a new half-line cycle is written in the LINCYC register, the LWATTHR register is reset, and a new accumulation starts at the next zero crossing. The number of half-line cycles is then counted until LINCYC is reached . This implementation provides a valid measurement at the first CYCEND interrupt after writing to the LINCYC register (see Figure 57). The line active energy accumulation uses the same signal path as the active energy accumulation. The LSB size of these two registers is equivalent. LWATTHR REGISTER v(t ) = 2 V sin(ωt + θ ) (21) i(t ) = 2 I sin(ωt ) π i ′(t ) = 2 I sin⎛⎜ ωt + ⎞⎟ 2⎠ ⎝ (22) where: θ is the phase difference between the voltage and current channel. v is the rms voltage. i is the rms current. q(t) = v(t) × i’(t) (23) q(t) = VI sin (θ) + VI sin (2ωt + θ) 06353-045 CYCEND IRQ LINCYC VALUE Figure 57. Energy Accumulation when LINCYC Changes From the information in Equation 10 and Equation 11, ⎧ ⎫ ⎪ ⎪ nT ⎪ ⎪nT VI E (t ) = ∫ VIdt − ⎨ cos(2πft )dt 2 ⎬∫ 0 ⎪ ⎛ f ⎞ ⎪0 ⎟ ⎪ ⎪ 1+ ⎜ ⎝ 8.9 ⎠ ⎭ ⎩ 1 nT nT ∫ q(t )dt = VI sin(θ) (24) 0 T is the line cycle period. q is referred to as the reactive power. (18) n is an integer. T is the line cycle period. Because the sinusoidal component is integrated over an integer number of line cycles, its value is always 0. Therefore, nT (19) 0 E(t) = VInT Q= where: where: E = ∫ VIdt + 0 The average reactive power over an integral number of lines (n) is given in Equation 24. (20) Note that in this mode, the 16-bit LINCYC register can hold a maximum value of 65,535. In other words, the line energy accumulation mode can be used to accumulate active energy for a maximum duration of over 65,535 half-line cycles. At a 60 Hz line frequency, it translates to a total duration of 65,535/120 Hz = 546 sec. REACTIVE POWER CALCULATION FOR THE ADE7569 Reactive power, a function available for the AD7569, but not for the AD7566, is defined as the product of the voltage and current waveforms when one of these signals is phase-shifted by 90°. The resulting waveform is called the instantaneous reactive power signal. Equation 23 gives an expression for the instantaneous reactive power signal in an ac system when the phase of the current channel is shifted by 90°. Note that the reactive power is equal to the dc component of the instantaneous reactive power signal q(t) in Equation 23. The instantaneous reactive power signal q(t) is generated by multiplying the voltage and current channels. In this case, the phase of the current channel is shifted by +90°. The dc component of the instantaneous reactive power signal is then extracted by a low-pass filter to obtain the reactive power information (see Figure 58). In addition, the phase-shifting filter has a non-unity magnitude response. Because the phase-shifted filter has a large attenuation at high frequency, the reactive power is primarily for calculation at line frequency. The effect of harmonics is largely ignored in the reactive power calculation. Note that because of the magnitude characteristic of the phase shifting filter, the weight of the reactive power is slightly different from the active power calculation (see the Energy Register Scaling section). The frequency response of the LPF in the reactive signal path is identical to the one used for LPF2 in the average active power calculation. Because LPF2 does not have an ideal brick wall frequency response (see Figure 51), the reactive power signal has some ripple due to the instantaneous reactive power signal. This ripple is sinusoidal and has a frequency equal to twice the line frequency. Because the ripple is sinusoidal in nature, it is removed when the reactive power signal is integrated to calculate energy. The reactive power signal can be read from the waveform register by setting the WAVMODE Register (0x0D) and the WFSM bit in the Interrupt Enable Register 3 SFR (MIRQENH, 0xDB). Like the current and voltage channels waveform sampling modes, the waveform date is available at sample rates of 27.9 kSPS, 14 kSPS, 7 kSPS, or 3.5 kSPS. Rev. PrA | Page 55 of 136 ADE7566/ADE7569 Preliminary Technical Data Reactive Power Gain Calibration Figure 58 shows the signal processing chain for the ADE7569 reactive power calculation. As explained in the Reactive Power Calculation for the ADE7569 section, the reactive power is calculated by applying a low-pass filter to the instantaneous reactive power signal. Note that when reading the waveform samples from the output of LPF2, the gain of the reactive energy can be adjusted by using the multiplier and by writing a twos complement, 12-bit word to the VAR gain register (VARGAIN[11:0]). Equation 25 shows how the gain adjustment is related to the contents of the watt gain register. Output VARGAIN = ⎛ ⎧ VARGAIN ⎫ ⎞ ⎜ Reactive Power × ⎨1 + ⎬⎟ 212 ⎩ ⎭⎠ ⎝ (25) The resolution of the VARGAIN register is the same as the WGAIN register (see the Active Power Gain Calibration section). VARGAIN can be used to calibrate the reactive power (or energy) calculation in the ADE7569. Reactive Power Offset Calibration The ADE7569 also incorporates a reactive power offset register (VAROS[15:0]). This is a signed, twos complement, 16-bit register that can be used to remove offsets in the reactive power calculation (see Figure 58). An offset can exist in the reactive power calculation due to crosstalk between channels on the PCB or in the IC itself. The offset calibration allows the contents of the reactive power register to be maintained at 0 when no power is being consumed. The 256 LSBs (VAROS = 0x100) written to the reactive power offset register are equivalent to 1 LSB in the WAVMODE register. Sign of Reactive Power Calculation Note that the average reactive power is a signed calculation. The phase shift filter has −90° phase shift when the integrator is enabled, and +90° phase shift when the integrator is disabled. Table 42 summarizes the relationship of the phase difference between the voltage and the current and the sign of the resulting VAR calculation. Table 42. Sign of Reactive Power Calculation The ADE interrupt stays active until the VARSIGN status bit is cleared (see the Energy Measurement Interrupts section). When VARSIGN in the ACCMODE Register (0x0F) is cleared (default), the VARSIGN flag in the Interrupt Status Register 1 SFR (MIRQSTL, 0xDC) is set when a transition from positive to negative reactive power has occurred. When VARSIGN in the ACCMODE Register (0x0F) is set, the VARSIGN flag in the Interrupt Status Register 1 SFR (MIRQSTL, 0xDC) is set when a transition from negative to positive reactive power has occurred. Reactive Power No-Load Detection The ADE7569 includes a no-load threshold feature on the reactive energy that eliminates any creep effects in the meter. The ADE7569 accomplishes this by not accumulating reactive energy if the multiplier output is below the no-load threshold. When the reactive power is below the no-load threshold, the RNOLOAD flag in the Interrupt Status Register 1 SFR (MIRQSTL, 0xDC) is set. If the RNOLOAD bit is set in the Interrupt Enable Register 1 SFR (MIRQENL, 0xD9), the 8052 core has a pending ADE interrupt. The ADE interrupt stays active until the RNOLOAD status bit is cleared (see the Energy Measurement Interrupts section). The no-load threshold level is selectable by setting the VARNOLOAD bits in the NLMODE Register (0x0E). Setting these bits to 0b00 disable the no-load detection, and setting them to 0b01, 0b10, or 0b11 set the no-load detection threshold to 0.015%, 0.0075%, and 0.0037% of the full-scale output frequency of the multiplier, respectively. REACTIVE ENERGY CALCULATION FOR THE ADE7569 As for active energy, the ADE7569 achieves the integration of the reactive power signal by continuously accumulating the reactive power signal in an internal, nonreadable, 49-bit energy register. The reactive energy register (VARHR[23:0]) represents the upper 24 bits of this internal register. The VARHR register and its function is available for the AD7569, but not for the AD7566. Reactive Power Sign Detection The discrete time sample period (T) for the accumulation register in the ADE7569 is 1.22 μs (5/MCLK). As well as calculating the energy, this integration removes any sinusoidal components that may be in the active power signal. Figure 58 shows this discrete time integration or accumulation. The reactive power signal in the waveform register is continuously added to the internal reactive energy register. The ADE7569 detects a change of sign in the reactive power. The VARSIGN flag in the Interrupt Status Register 1 SFR (MIRQSTL, 0xDC) records when a change of sign has occurred according to VARSIGN bit in the ACCMODE Register (0x0F). If the VARSIGN bit is set in the Interrupt Enable Register 1 SFR (MIRQENL, 0xD9), the 8052 core has a pending ADE interrupt. The reactive energy accumulation depends on the setting of the SAVARM and ABSVARM bits in the ACCMODE Register (0x0F). When both bits are cleared, the addition is signed and, therefore, negative energy is subtracted from the reactive energy contents. When both bits are set, the ADE7569 is set to be in the more restrictive mode, the absolute accumulation mode. Angle Between 0° to 90° Between –90° to 0° Between 0° to 90° Between –90° to 0° Integrator Off Off On On Sign Positive Negative Positive Negative Rev. PrA | Page 56 of 136 Preliminary Technical Data ADE7566/ADE7569 When SAVARM in the ACCMODE Register (0x0F) is set, the reactive power is accumulated depending on the sign of the active power. When active power is positive, the reactive power is added as it is to the reactive energy register. When active power is negative, the reactive power is subtracted from the reactive energy accumulator (see the VAR Anti-Tamper Accumulation Mode section). can be read from the waveform register by setting the WAVMODE Register (0x0D) and setting the WFSM bit in the Interrupt Enable Register 3 SFR (MIRQENH, 0xDB). Like the current and voltage channel waveform sampling modes, the waveform date is available at sample rates of 27.9 kSPS, 14 kSPS, 7 kSPS, or 3.5 kSPS. Figure 53 shows this energy accumulation for full-scale signals (sinusoidal) on the analog inputs. These curves also apply for the reactive energy accumulation When ABSVARM in the ACCMODE Register (0x0F) is set, the absolute reactive power is used for the reactive energy accumulation (see the VAR Absolute Accumulation Mode section). Note that the energy register contents rolls over to full-scale negative (0x800000) and continues to increase in value when the power or energy flow is positive. Conversely, if the power is negative, the energy register underflows to full-scale positive (0x7FFFFF) and continues to decrease in value. The output of the multiplier is divided by VARDIV. If the value in the VARDIV register is equal to 0, the internal reactive energy register is divided by 1. VARDIV is an 8-bit, unsigned register. After dividing by VARDIV, the reactive energy is accumulated in a 49-bit internal energy accumulation register. The upper 24 bits of this register are accessible through a read to the reactive energy register (VARHR[23:0]). A read to the RVARHR register returns the content of the VARHR register, and the upper 24 bits of the internal register are cleared. By using the interrupt enable register, the ADE7569 can be configured to issue an ADE interrupt to the 8052 core when the reactive energy register is half-full (positive or negative) or when an overflow or underflow occurs. As shown in Figure 58, the reactive power signal is accumulated in an internal 49-bit signed register. The reactive power signal FOR WAVEFORM SAMPLING HPF 0 VAROS[15:0] 90° PHASE SHIFTING FILTER sgn 26 25 Π 2 LPF2 + 2–6 2–7 2–8 VARDIV[7:0] + % + 48 0 + PHCAL[7:0] VARGAIN[11:0] REACTIVE POWER SIGNAL TO DIGITAL-TO-FREQUENCY CONVERTER T 5 CLKIN OUTPUTS FROM THE LPF2 ARE ACCUMULATED (INTEGRATED) IN THE INTERNAL REACTIVE ENERGY REGISTER WAVEFORM REGISTER VALUES OUTPUT LPF2 VOLTAGE CHANNEL UPPER 24 BITS ARE ACCESSIBLE THROUGH VARHR[23:0] REGISTER 06353-047 CURRENT CHANNEL 23 VARHR[23:0] TIME (nT) Figure 58.. Reactive Energy Calculation Rev. PrA | Page 57 of 136 ADE7566/ADE7569 Preliminary Technical Data Integration Time Under Steady Load As mentioned in the Active Energy Calculation, the discrete time sample period (T) for the accumulation register is 1.22 μs (5/CLKIN). With full-scale sinusoidal signals on the analog inputs and the VARGAIN and VARDIV registers set to 0x000, the integration time before the reactive energy register overflows is calculated in Equation 26. Time = 0xFFFF, FFFF, FFFF × 1.22 μs = 409.6 sec = 6.82 min (26) 0xCCCCD When VARDIV is set to a value different from 0, the integration time varies, as shown in Equation 27. NO-LOAD THRESHOLD REACTIVE POWER NO-LOAD THRESHOLD (27) Reactive Energy Accumulation Modes VAR Signed Accumulation Mode NO-LOAD THRESHOLD The ADE7569 reactive energy default accumulation mode is a signed accumulation based on the reactive power information. VAR Anti-Tamper Accumulation Mode The ADE7569 is placed in VAR anti-tamper accumulation mode by setting the SAVARM bit in the ACCMODE Register (0x0F). In this mode, the reactive power is accumulated depending on the sign of the active power. When active power is positive, the reactive power is added as it is to the reactive energy register. When active power is negative, the reactive power is subtracted from the reactive energy accumulator (see Figure 59). The CF pulse also reflects this accumulation method when in this mode. The default setting for this mode is off. Transitions in the direction of power flow and no-load threshold are active in this mode. ACTIVE POWER NO-LOAD THRESHOLD APSIGN FLAG Rev. PrA | Page 58 of 136 POS NEG POS INTERRUPT STATUS REGISTERS Figure 59. Reactive Energy Accumulation in Anti-Tamper Accumulation Mode 06353-048 Time = TimeWDIV =0 × VARDIV REACTIVE ENERGY Preliminary Technical Data ADE7566/ADE7569 VAR Absolute Accumulation Mode Line Cycle Reactive Energy Accumulation Mode The ADE7569 is placed in absolute accumulation mode by setting the ABSVARM bit in the ACCMODE Register (0x0F). In absolute accumulation mode, the reactive energy accumulation is done by using the absolute reactive power and ignoring any occurrence of power below the no-load threshold for the active energy (see Figure 55). The CF pulse also reflects this accumulation method when in the absolute accumulation mode. The default setting for this mode is off. Transitions in the direction of power flow and no-load threshold are active in this mode. In line cycle reactive energy accumulation mode, the energy accumulation of the ADE7569 can be synchronized to the voltage channel zero crossing so that reactive energy can be accumulated over an integral number of half-line cycles. The advantage of this mode is similar to the ones described in the Line Cycle Active Energy Accumulation Mode section. In line cycle active energy accumulation mode, the ADE7569 accumulates the reactive power signal in the LVARHR register for an integral number of line cycles, as shown in Figure 61. The number of half-line cycles is specified in the LINCYC register. The ADE7569 can accumulate active power for up to 65,535 half-line cycles. Because the reactive power is integrated on an integral number of line cycles, the CYCEND flag in the Interrupt Status Register 3 SFR (MIRQSTH, 0xDE) is set at the end of an active energy accumulation line cycle. If the CYCEND enable bit in the Interrupt Enable Register 3 SFR (MIRQENH, 0xDB) is set, the 8052 core has a pending ADE interrupt. The ADE interrupt stays active until the CYCEND status bit is cleared (see the Energy Measurement Interrupts section). Another calibration cycle starts as soon as the CYCEND flag is set. If the LVARHR register is not read before a new CYCEND flag is set, the LVARHR register is overwritten by a new value. REACTIVE ENERGY NO-LOAD THRESHOLD 06353-049 REACTIVE POWER NO-LOAD THRESHOLD Figure 60. Reactive Energy Accumulation in Absolute Accumulation Mode Reactive Energy Pulse Output When a new half-line cycle is written in the LWATTHR register, the LVARHR register is reset, and a new accumulation starts at the next zero crossing. The number of half-line cycles is then counted until LINCYC is reached. This implementation provides a valid measurement at the first CYCEND interrupt after writing to the LINCYC register. The line reactive energy accumulation uses the same signal path as the reactive energy accumulation. The LSB size of these two registers is equivalent. The ADE7569 provides all the circuitry with a pulse output whose frequency is proportional to reactive power (see the Energy-to-Frequency Conversion section). This pulse frequency output uses the calibrated signal after VARGAIN, and its behavior is consistent with the setting of the reactive energy accumulation mode in the ACCMODE Register (0x0F). The pulse output is active low and should preferably be connected to an LED as shown in Figure 66. TO DIGITAL-TO-FREQUENCY CONVERTER VARGAIN[11:0] OUTPUT FROM LPF2 + % 0 VARDIV[7:0] 23 LPF1 FROM VOLTAGE CHANNEL ADC 48 ZERO-CROSSING DETECTION CALIBRATION CONTROL 0 LVARHR [23:0] LINCYC [15:0] Figure 61. Line Cycle Reactive Energy Accumulation Mode Rev. PrA | Page 59 of 136 ACCUMULATE REACTIVE ENERGY IN INTERNAL REGISTER AND UPDATE THE LVARHR REGISTER AT THE END OF LINCYC HALF LINE CYCLES 06353-050 VAROS[15:0] + ADE7566/ADE7569 Preliminary Technical Data APPARENT POWER CALCULATION Apparent power is defined as the maximum power that can be delivered to a load. Vrms and Irms are the effective voltage and current delivered to the load, respectively. Therefore, the apparent power (AP) = Vrms × Irms. This equation is independent from the phase angle between the current and the voltage. Equation 31 gives an expression of the instantaneous power signal in an ac system with a phase shift. v(t ) = 2 Vrms sin(ω t ) (28) i (t ) = 2 I rms sin(ωt + θ) (29) p (t ) = v (t ) × i (t ) (30) p(t ) = Vrms I rms cos(θ) − Vrms I rms cos(2ωt + θ) (31) Figure 62 illustrates the signal processing for the calculation of the apparent power in the ADE7566/ADE7569. The apparent power signal can be read from the waveform register by setting the WAVMODE Register (0x0D) and setting the WFSM bit in the Interrupt Enable Register 3 SFR (MIRQENH, 0xDB). Like the current and voltage channel waveform sampling modes, the waveform data is available at sample rates of 27.9 kSPS, 14 kSPS, 7 kSPS, or 3.5 kSPS. The gain of the apparent energy can be adjusted by using the multiplier and by writing a twos complement, 12-bit word to the VAGAIN register (VAGAIN[11:0]). Equation 32 shows how the gain adjustment is related to the contents of the VAGAIN register. Output VAGAIN = ⎛ ⎧ VAGAIN ⎫ ⎞ ⎜ Apparent Power × ⎨1 + ⎬⎟ 2 12 ⎩ ⎭⎠ ⎝ (32) For example, when 0x7FF is written to the VAGAIN register, the power output is scaled up by 50% (0x7FF = 2047d, 2047/212 = 0.5). Similarly, 0x800 = –2047d (signed twos complement) and power output is scaled by –50%. Each LSB represents 0.0244% of the power output. The apparent power is calculated with the current and voltage rms values obtained in the rms blocks of the ADE7566/ADE7569. Apparent Power Offset Calibration Each rms measurement includes an offset compensation register to calibrate and eliminate the dc component in the rms value (see the Current Channel RMS Calculation section and Voltage Channel RMS Calculation section). The voltage and current channels rms values are then multiplied together in the apparent power signal processing. Because no additional offsets are created in the multiplication of the rms values, there is no specific offset compensation in the apparent power signal processing. The offset compensation of the apparent power measurement is done by calibrating each individual rms measurement. VARMSCFCON APPARENT POWER SIGNAL (P) Irms 0x1A36E2 CURRENT RMS SIGNAL – i(t) 0x1CF68C 0x00 VAGAIN Vrms VOLTAGE RMS SIGNAL – v(t) TO DIGITAL-TO-FREQUENCY CONVERTER 06353-051 0x1CF68C 0x00 Figure 62. Apparent Power Signal Processing Rev. PrA | Page 60 of 136 Preliminary Technical Data ADE7566/ADE7569 provided to read the apparent energy. This register is reset to 0 after a read operation APPARENT ENERGY CALCULATION The apparent energy is given as the integral of the apparent power. Apparent Energy = ∫ Apparent Power(t )dt Note that the apparent energy register is unsigned. By setting the VAEHF and VAEOF bits in the Interrupt Enable Register 2 SFR (MIRQENM, 0xDA), the ADE7566/ADE7569 can be configured to issue an ADE interrupt to the 8052 core when the apparent energy register is half-full or when an overflow occurs. The half-full interrupt for the unsigned apparent energy register is based on 24 bits as opposed to 23 bits for the signed active energy register. (33) The ADE7566/ADE7569 achieve the integration of the apparent power signal by continuously accumulating the apparent power signal in an internal 48-bit register. The apparent energy register (VAHR[23:0]) represents the upper 24 bits of this internal register. This discrete time accumulation or summation is equivalent to integration in continuous time. Equation 34 expresses the relationship. Integration Times Under Steady Load As mentioned in the Apparent Energy Calculation section, the discrete time sample period (T) for the accumulation register is 1.22 μs (5/MCLK). With full-scale sinusoidal signals on the analog inputs and the VAGAIN register set to 0x000, the average word value from the apparent power stage is 0x1A36E2 (see the Apparent Power Calculation section). The maximum value that can be stored in the apparent energy register before it overflows is 224 or 0xFF,FFFF. The average word value is added to the internal register, which can store 248 or 0xFFFF,FFFF,FFFF before it overflows. Therefore, the integration time under these conditions with VADIV = 0 is calculated as follows: ⎧∞ ⎫ Apparent Energy = Lim⎨ ∑ ApparentPower (nT ) × T ⎬ (34) T →0 ⎩n = 0 ⎭ where: n is the discrete time sample number. T is the sample period. The discrete time sample period (T) for the accumulation register in the ADE7566/ADE7569 is 1.22 μs (5/MCLK). Figure 63 shows this discrete time integration or accumulation. The apparent power signal is continuously added to the internal register. This addition is a signed addition even if the apparent energy theoretically remains positive. Time = 0xFFFF, FFFF, FFFF × 1.22 μs = 199 sec = 3.33 min 0xD055 The 49 bits of the internal register are divided by VADIV. If the value in the VADIV register is 0, the internal apparent energy register is divided by 1. VADIV is an 8-bit unsigned register. The upper 24 bits are then written in the 24-bit apparent energy register (VAHR[23:0]). The RVAHR register (24 bits long) is When VADIV is set to a value different from 0, the integration time varies, as shown in Equation 36. Time = TimeWDIV = 0 × VADIV 23 VAHR[23:0] 0 48 0 VADIV % 48 + 0 + APPARENT POWER SIGNAL = P T APPARENT POWER OR Irms IS ACCUMULATED (INTEGRATED) IN THE APPARENT ENERGY REGISTER TIME (nT) Figure 63. Apparent Energy Calculation Rev. PrA | Page 61 of 136 06353-052 APPARENT POWER or Irms (35) (36) ADE7566/ADE7569 Preliminary Technical Data Apparent Energy Pulse Output the apparent energy accumulation. The LSB size of these two registers is equivalent. All the ADE7566/ADE7569 circuitry has a pulse output whose frequency is proportional to apparent power (see the Energy-toFrequency Conversion section). This pulse frequency output uses the calibrated signal after VAGAIN. This output can also be used to output a pulse whose frequency is proportional to Irms. Apparent Power No-Load Detection The ADE7566/ADE7569 include a no-load threshold feature on the apparent power that eliminates any creep effects in the meter. The ADE7566/ADE7569 accomplish this by not accumulating energy if the multiplier output is below the no-load threshold. When the apparent power is below the no-load threshold, the VANOLOAD flag in the Interrupt Status Register 1 SFR (MIRQSTL, 0xDC) is set. If the VANOLOAD bit is set in the Interrupt Enable Register 1 SFR (MIRQENL, 0xD9), the 8052 core has a pending ADE interrupt. The ADE interrupt stays active until the APNOLOAD status bit is cleared (see the Energy Measurement Interrupts section). The pulse output is active low and should preferably be connected to an LED as shown in Figure 66. Line Apparent Energy Accumulation The ADE7566/ADE7569 are designed with a special apparent energy accumulation mode that simplifies the calibration process. By using the on-chip, zero-crossing detection, the ADE7566/ADE7569 accumulate the apparent power signal in the LVAHR register for an integral number of half cycles, as shown in Figure 64. The line apparent energy accumulation mode is always active. The no-load threshold level is selectable by setting the VANOLOAD bits in the NLMODE Register (0x0E). Setting these bits to 0b00 disables the no-load detection and setting them to 0b01, 0b10, or 0b11 set the no-load detection threshold to 0.030%, 0.015%, and 0.0075% of the full-scale output frequency of the multiplier, respectively. The number of half-line cycles is specified in the LINCYC register, which is an unsigned 16-bit register. The ADE7566/ ADE7569 can accumulate apparent power for up to 65,535 combined half cycles. Because the apparent power is integrated on the same integral number of line cycles as the line active register and reactive energy register, these values can easily be compared. The energies are calculated more accurately because of this precise timing control and provide all the information needed for reactive power and power factor calculation. This no-load threshold can also be applied to the Irms pulse output when selected. In this case, the level of no-load threshold is the same as for the apparent energy. AMPERE-HOUR ACCUMULATION In case of a tampering situation where no voltage is available to the energy meter, the ADE7566/ADE7569 is capable of accumulating the ampere-hour instead of apparent power into the VAHR, RVAHR, and LVAHR registers. When Bit 3 (VARMSCFCON) of the MODE2 Register (0x0C) is set, the VAHR, RVAHR, LVAHR, and the input for the digital-to-frequency converter accumulate Irms instead of apparent power. All the signal processing and calibration registers available for apparent power and energy accumulation remain the same when ampere-hour accumulation is selected. However, the scaling of Irms and apparent power require different values for gain calibration in the VAGAIN, VADIV, CFxNUM and CFxDEN registers. As for LWATTHR, when a new half-line cycles is written in LINCYC register, the LVAHR register is reset and a new accumulation start at the next zero-crossing. The number of half-line cycles is then counted until LINCYC is reached. This implementation provides a valid measurement at the first CYCEND interrupt after writing to the LINCYC register. The line apparent energy accumulation uses the same signal path as APPARENT POWER or Irms + % + 48 0 LVAHR REGISTER IS UPDATED EVERY LINCYC ZERO CROSSING WITH THE TOTAL APPARENT ENERGY DURING THAT DURATION VADIV[7:0] 23 LPF1 FROM VOLTAGE CHANNEL ADC ZERO-CROSSING DETECTION CALIBRATION CONTROL 0 LVAHR [23:0] LINCYC [15:0] Figure 64. Line Cycle Apparent Energy Accumulation Rev. PrA | Page 62 of 136 06353-053 At the end of an energy calibration cycle, the CYCEND flag in the Interrupt Status Register 3 SFR (MIRQSTH, 0xDE) is set. If the CYCEND enable bit in the Interrupt Enable Register 3 SFR (MIRQENH, 0xDB) is enabled, the 8052 core has a pending ADE interrupt. Preliminary Technical Data ADE7566/ADE7569 ENERGY-TO-FREQUENCY CONVERSION The ADE7566/ADE7569 also provide two energy-to-frequency conversions for calibration purposes. After initial calibration at manufacturing, the manufacturer or end customer often verify the energy meter calibration. One convenient way to do this is for the manufacturer to provide an output frequency that is proportional to the active power, reactive power, apparent power, or Irms under steady load conditions. This output frequency can provide a simple, single-wire, optically isolated interface to external calibration equipment. Figure 65 illustrates the energy-tofrequency conversion in the ADE7566/ADE7569. is proportional to Irms, and CF1 cannot be proportional to apparent power apparent power if CF2 is proportional to Irms. Pulse Output Characteristic The pulse output for both DFCs stays low for 90 ms if the pulse period is longer than 180 ms (5.56 Hz). If the pulse period is shorter than 180 ms, the duty cycle of the pulse output is 50%. The pulse output is active low and should preferably be connected to an LED as shown on Figure 66. VDD CF 06353-055 MODE2 REGISTER 0x0C VARMSCFCON CFxSEL[1:0] Figure 66. CF Pulse Output Irms CFxNUM DFC VAR WATT ÷ The maximum output frequency with ac input signals at full scale and CFxNUM = 0x00 and CFxDEN = 0x00 is approximately 21.1 kHz. CFx PULSE OUTPUT 06353-054 VA CFxDEN Figure 65. Energy-to-Frequency Conversion Two digital-to-frequency converters (DFC) are used to generate the pulsed outputs. When WDIV = 0 or 1, the DFC generates a pulse each time 1 LSB in the energy register is accumulated. An output pulse is generated when CFxNUM/CFxDEN number of pulses are generated at the DFC output. Under steady load conditions, the output frequency is proportional to the active power, reactive power, apparent power or Irms, depending on the CFxSEL bits in the MODE2 Register (0x0C). Both pulse outputs can be enabled or disabled by clearing or setting Bit DISCF1 and Bit DISCF2 in the MODE1 Register (0x0B), respectively. Both pulse outputs set separate flags in the Interrupt Status Register 2 SFR (MIRQSTM, 0xDD), CF1 and CF2. If the CF1 and CF2 enable bits in the Interrupt Enable Register 2 SFR (MIRQENM, 0xDA) are set, the 8052 core has a pending ADE interrupt. The ADE interrupt stays active until the CF1 or CF2 status bits are cleared (see the Energy Measurement Interrupts section). Pulse Output Configuration The two pulse output circuits have separate configuration bits in the MODE2 Register (0x0C). Setting the CFxSEL bits to 0b00, 0b01, or 0b1x configure the DFC to create a pulse output proportional to active power, reactive power (not available in the ADE7566), or apparent power/Irms, respectively. The selection between Irms and apparent power is done by the VARMSCFCON bit in the MODE2 Register (0x0C). With this selection, CF2 cannot be proportional to apparent power if CF1 The ADE7566/ADE7569 incorporate two registers per DFC, CFxNUM[15:0] and CFxDEN[15:0], to set the CFx frequency. These are unsigned 16-bit registers that can be used to adjust the CFx frequency to a wide range of values. These frequency scaling registers are 16-bit registers that can scale the output frequency by 1/216 to 1 with a step of 1/216. If the value 0 is written to any of these registers, the value 1 would be applied to the register. The ratio CFxNUM/CFxDEN should be less than 1 to ensure proper operation. If the ratio of the registers CFxNUM/CFxDEN is greater than 1, the register values are adjusted to a ratio of 1. For example, if the output frequency is 1.562 kHz while the contents of CFxDEN are 0 (0x000), the output frequency can be set to 6.1 Hz by writing 0xFF to the CFxDEN register. ENERGY REGISTER SCALING The ADE7566/ADE7569 provide measurements of active, reactive, and apparent energies that use separate paths and filtering for calculation. The difference in data paths can result in small differences in LSB weight between active, reactive, and apparent energy registers. These measurements are internally compensated so the scaling is nearly one to one. The relationship between these registers is show in Table 43. Table 43. Energy Registers Scaling Line Frequency = 50 Hz VAR = 0.9952 × WATT VA = 0.9978 × WATT VAR = 0.9997 × WATT VA = 0.9977 × WATT Rev. PrA | Page 63 of 136 Line Frequency = 60 Hz VAR = 0.9949 × WATT VA = 1.0015 × WATT VAR = 0.9999 × WATT VA = 1.0015 × WATT Integrator Off Off On On ADE7566/ADE7569 Preliminary Technical Data ENERGY MEASUREMENT INTERRUPTS The energy measurement part of the ADE7566/ADE7569 has its own interrupt vector for the 8052 core, Vector Address 0x004B (see the Interrupt Vectors section). The bits set in the Interrupt Enable Register 1 SFR (MIRQENL, 0xD9), Interrupt Enable Register 2 SFR (MIRQENM, 0xDA), and Interrupt Enable Register 3 SFR (MIRQENH, 0xDB) enable the energy measurement interrupts that are allowed to interrupt the 8052 core. If an event is not enabled, it cannot create a system interrupt. The ADE interrupt stays active until the status bit that has created the interrupt is cleared. The status bit is cleared when a zero is written to this register bit. Rev. PrA | Page 64 of 136 Preliminary Technical Data ADE7566/ADE7569 TEMPERATURE, BATTERY, AND SUPPLY VOLTAGE MEASUREMENTS The ADE7566/ADE7569 include temperature measurements as well as battery and supply voltage measurements. These measurements enable many forms of compensation. The temperature and supply voltage measurements can be used to compensate external circuitry. The RTC can be calibrated over temperature to ensure that it does not drift. Supply voltage measurements allow the LCD contrast to be maintained despite variations in voltage. Battery measurements allow low battery detection to be performed. All ADC measurements are configured through the SFRs detailed in Table 44. The temperature, battery, and supply voltage measurements can be configured to continue functioning in PSM1 and PSM2. This is done by setting Bit RTCEN in the RTC Configuration SFR (TIMECON, 0xA1). Keeping the temperature measurement active ensures that it is not necessary to wait for the temperature measurement to settle before using it for compensation. Table 44. Temperature, Battery, and Supply Voltage Measurement SFRs SFR Address 0xF9 0xF3 0xD8 0xFA 0xEF 0xDF 0xD7 R/W R/W R/W R/W R/W R/W R/W R/W Name STRBPER DIFFPROG ADCGO BATVTH VDCINADC BATADC TEMPADC Description Strobing Period Configuration (see Table 45). Temperature and Supply Delta Configuration (see Table 46). ADC Start Configuration (see Table 47). Battery Threshold Configuration (see Table 48). VDCIN ADC Value (see Table 49). Battery ADC Value (see Table 50). Temperature ADC Value (see Table 51). Table 45. Peripheral ADC Strobe Period SFR (STRBPER, 0xF9) 1 Bit No. 7 to 6 5 to 4 Mnemonic Reserved VDCIN_PERIOD[1:0] Default – 0 3 to 2 BATT_PERIOD[1:0] 0 1 to 0 TEMP_PERIOD[1:0] 0 1 Description Reserved. Period for background external voltage measurements. VDCIN_PERIOD[1:0] Result 00 No VDCIN measurement 01 8 min 10 2 min 11 1 min Period for background battery level measurements. BATT_PERIOD[1:0] Result 00 No battery measurement 01 16 min 10 4 min 11 1 min Period for background temperature measurements. TEMP_PERIOD[1:0] Result 00 No temperature measurements 01 8 min 10 2 min 11 1 min The strobing option only works when the RTCEN bit in RTC Configuration SFR (TIMECON, 0xA1) is set. Rev. PrA | Page 65 of 136 ADE7566/ADE7569 Preliminary Technical Data Table 46. Temperature and Supply Delta SFR (DIFFPROG, 0xF3) Bit No. 7 to 6 5 to 3 Mnemonic Reserved TEMP_DIFF[2:0] Default 0 0 2 to 0 VDCIN_DIFF[2:0] 0 Description Reserved. Difference threshold between last temperature measurement interrupting 8052 and new temperature measurement that should interrupt 8052. TEMP_DIFF[2:0] Result 000 No interrupt 001 1 LSB (≈ 0.8°C) 010 2 LSB (≈ 1.6°C) 011 3 LSB (≈ 2.4°C) 100 4 LSB (≈ 3.2°C) 101 5 LSB (≈ 4°C) 110 6 LSB (≈ 4.8°C) 111 Every temperature measurement Difference threshold between last external voltage measurement interrupting 8052 and new external measurement that should interrupt 8052. VDCIN_DIFF[2:0] Result 000 No interrupt 001 1 LSB (≈ 120 mV) 010 2 LSB (≈ 240 mV) 011 3 LSB (≈ 360 mV) 100 4 LSB (≈ 480 mV) 101 5 LSB (≈ 600 mV) 110 6 LSB (≈ 720 mV) 111 Every VDCIN measurement Table 47. Start ADC Measurement SFR (ADCGO, 0xD8) Bit No. 7 Address 0xDF Mnemonic PLLACK Default 0 6 to 3 2 0xDE to 0xDB 0xDA Reserved VDCIN_ADC_GO 0 0 1 0xD9 TEMP_ADC_GO 0 0 0xD8 BATT_ADC_GO 0 Description Set this bit to clear the PLL fault bit, PLL_FLT, in the PERIPH register. A PLL fault is generated if a reset was caused because the PLL lost lock. Reserved. Set this bit to initiate an external voltage measurement. This bit is cleared when the measurement request is received by the ADC. Set this bit to initiate a temperature measurement. This bit is cleared when the measurement request is received by the ADC. Set this bit to initiate a battery measurement. This bit is cleared when the measurement request is received by the ADC. Table 48. Battery Detection Threshold SFR (BATVTH, 0xFA) Bit No. 7 to 0 Mnemonic BATVTH Default 0 Description The battery ADC value is compared to this register, the battery threshold register. If BATADC is lower than the threshold, an interrupt is generated. Table 49. VDCIN ADC Value SFR (VDCINADC, 0xEF) Bit No. 7 to 0 Mnemonic VDCINADC Default 0 Description The VDCIN ADC value in this register is updated when an ADC interrupt occurs. Table 50. Battery ADC Value SFR (BATADC, 0xDF) Bit No. 7 to 0 Mnemonic BATADC Default 0 Description The battery ADC value in this register is updated when an ADC interrupt occurs. Table 51. Temperature ADC Value SFR (TEMPADC, 0xD7) Bit No. 7 to 0 Mnemonic TEMPADC Default 0 Description The temperature ADC value in this register is updated when an ADC interrupt occurs. Rev. PrA | Page 66 of 136 Preliminary Technical Data ADE7566/ADE7569 TEMPERATURE MEASUREMENT Start ADC Measurement SFR (ADCGO, 0xD8). Background temperature measurements are not available. In PSM2 operating mode, the 8052 is not active. Temperature conversions are available through the background measurement mode only. To provide a digital temperature measurement, each ADE7566/ADE7569 includes a dedicated ADC. An 8-bit Temperature ADC Value SFR (TEMPADC, 0xD7) holds the results of the temperature conversion. The resolution of the temperature measurement is 0.78°C/LSB. There are two ways to initiate a temperature conversion: a single temperature measurement or background temperature measurements. The Temperature ADC Value SFR (TEMPADC, 0xD7) is updated with a new value only when a temperature ADC interrupt occurs. Single Temperature Measurement Temperature ADC Interrupt Set the TEMP_ADC_GO bit in the Start ADC Measurement SFR (ADCGO, 0xD8) to obtain a temperature measurement. An interrupt is generated when the conversion is complete and when the temperature measurement is available in the Temperature ADC Value SFR (TEMPADC, 0xD7). The temperature ADC can generate an ADC interrupt when at least one of the following conditions occurs: Background Temperature Measurements • Background temperature measurements are disabled by default. To configure the background temperature measurement mode, set a temperature measurement interval in the Peripheral ADC Strobe Period SFR (STRBPER, 0xF9). Temperature measurements are then performed periodically in the background (see Table 45). When the ADC interrupt occurs, a new value is available in the Temperature ADC Value SFR (TEMPADC, 0xD7). Note that there is no flag associated with this interrupt. When a temperature conversion completes, the new temperature ADC value is compared to the last temperature ADC value that created an interrupt. If the absolute difference between the two values is greater than the setting in the TEMP_DIFF[2:0] bits in the Temperature and Supply Delta SFR (DIFFPROG, 0xF3), a TEMPADC interrupt is generated. This allows temperature measurements to take place completely in the background, only requiring MCU activity if the temperature has changed more than a configurable delta. To set up background temperature measurements, follow these steps: 1. 2. 3. Initiate a single temperature measurement by setting the TEMP_ADC_GO bit in the Start ADC Measurement SFR (ADCGO, 0xD8). Upon completion of this measurement, configure the TEMP_DIFF[2:0] bits to establish the change in temperature that triggers an interrupt. Set up the interval for background temperature measurements by configuring the TEMP_PERIOD[1:0] bits in the Peripheral ADC Strobe Period SFR (STRBPER, 0xF9). Temperature ADC in PSM0, PSM1, and PSM2 Depending on the operating mode of the ADE7566/ADE7569, a temperature conversion is initiated only by certain actions. • • In PSM0 operating mode, the 8052 is active. Temperature measurements are available in the background measurement mode and by initiating a single measurement. In PSM1 operating mode, the 8052 is active and the part is battery powered. Single temperature measurements can be initiated by setting the TEMP_ADC_GO bit in the • • The difference between the new temperature ADC value and the last temperature ADC value generating an ADC interrupt is larger than the value set in the TEMP_DIFF[2:0] bits. The temperature ADC conversion, initiated by setting Start ADC Measurement SFR (ADCGO, 0xD8) finishes. BATTERY MEASUREMENT To provide a digital battery measurement, each ADE7566/ADE7569 includes a dedicated ADC. The battery measurement is available in an 8-bit SFR (Battery ADC Value SFR (BATADC, 0xDF)). The battery measurement has a resolution of 15 mV/LSB. A battery conversion can be initiated by two methods: a single battery measurement or background battery measurements. Single Battery Measurement Set the BATT_ADC_GO bit in the Start ADC Measurement SFR (ADCGO, 0xD8) to obtain a battery measurement. An interrupt is generated when the conversion is done and when the battery measurement is available in the Battery ADC Value SFR (BATADC, 0xDF). Background Battery Measurements To configure background measurements for the battery, establish a measurement interval in the Peripheral ADC Strobe Period SFR (STRBPER, 0xF9). Battery measurements are then performed periodically in the background (see Table 45). When a battery conversion completes, the battery ADC value is compared to the low battery threshold, established in the Battery Detection Threshold SFR (BATVTH, 0xFA). If the battery ADC value is below this threshold, a low battery flag is set. This low battery flag is the FBAT bit in the Power Management Interrupt Flag SFR (IPSMF, 0xF8), which is used for power supply monitoring. This low battery flag can be enabled to generate the PSM interrupt by setting the EBAT bit in the Power Management Interrupt Enable SFR (IPSME, 0xEC). This method allows battery measurements to take place completely in the background, only requiring MCU activity if the battery drops below a user-specified threshold. Rev. PrA | Page 67 of 136 ADE7566/ADE7569 Preliminary Technical Data To set up background battery measurements, follow these steps: 1. 2. Configure the Battery Detection Threshold SFR (BATVTH, 0xFA) to establish a low battery threshold. If the BATADC measurement is below this threshold, the FBAT in the Power Management Interrupt Flag SFR (IPSMF, 0xF8) is set. Set up the interval for background battery measurements by configuring the BATT_PERIOD[1:0] bits in the Peripheral ADC Strobe Period SFR (STRBPER, 0xF9). Battery ADC in PSM0, PSM1, and PSM2 Depending on the operating mode, a battery conversion is initiated only by certain actions. • • • In PSM0 operating mode, the 8052 is active. Battery measurements are available in the background measurement mode and by initiating a single measurement. In PSM1 operating mode, the 8052 is active and the part is battery powered. Single battery measurements can be initiated by setting the BATT_ADC_GO bit in the Start ADC Measurement SFR (ADCGO, 0xD8). Background battery measurements are not available. In PSM2 operating mode, the 8052 is not active. Battery conversions are available through the background measurement mode only. Battery ADC Interrupt The battery ADC can generate an ADC interrupt when at least one of the following conditions occurs: • • The new battery ADC value is smaller than the value set in the Battery Detection Threshold SFR (BATVTH, 0xFA), indicating a battery voltage loss. A single battery measurement initiated by setting the BATT_ADC_GO bit finishes. When the battery flag (FBAT) is set in the Power Management Interrupt Flag SFR (IPSMF, 0xF8), a new ADC value is available in the Battery ADC Value SFR (BATADC, 0xDF). This battery flag can be enabled as a source of the PSM interrupt to generate a PSM interrupt every time the battery drops below a set voltage threshold, or after a single conversion initiated by setting the BATT_ADC_GO bit is ready. The Battery ADC Value SFR (BATADC, 0xDF) is updated with a new value only when the battery flag is set in the Power Management Interrupt Flag SFR (IPSMF, 0xF8). EXTERNAL VOLTAGE MEASUREMENT The ADE7566/ADE7569 include a dedicated ADC to provide a digital measurement of an external voltage on the VDCIN pin. An 8-bit SFR, the VDCIN ADC Value SFR (VDCINADC, 0xEF), holds the results of the conversion. The resolution of the external voltage measurement is TBD V/LSB. There are two ways to initiate an external voltage conversion: a single external voltage measurement or a background external voltage measurement. Single External Voltage Measurement To obtain an external voltage measurement, set the VDCIN_ADC_GO bit in the Start ADC Measurement SFR (ADCGO, 0xD8). An interrupt is generated when the conversion is done and when the external voltage measurement is available in the VDCIN ADC Value SFR (VDCINADC, 0xEF). Background External Voltage Measurements Background external voltage measurements are disabled by default. To configure the background external voltage measurement mode, set an external voltage measurement interval in the Peripheral ADC Strobe Period SFR (STRBPER, 0xF9). External voltage measurements are performed periodically in the background (see Table 45). When an external voltage conversion is complete, the new external voltage ADC value is compared to the last external voltage ADC value that created an interrupt. If the absolute difference between the two values is greater than the setting in the VDCIN_DIFF[2:0] bits in the Temperature and Supply Delta SFR (DIFFPROG, 0xF3), a VDCIN ADC flag is set. This VDCIN ADC flag is the FVDCIN in the Power Management Interrupt Flag SFR (IPSMF, 0xF8), which is used for power supply monitoring. This VDCIN ADC flag can be enabled to generate a PSM interrupt by setting the EVDCIN bit in the Power Management Interrupt Enable SFR (IPSME, 0xEC). This method allows external voltage measurements to take place completely in the background, only requiring MCU activity if the external voltage has changed more than a configurable delta. To set up background external voltage measurements, follow these steps: 1. 2. 3. Initiate a single external voltage measurement by setting the VDCIN_ADC_GO bit in the Start ADC Measurement SFR (ADCGO, 0xD8). Upon completion of this measurement, configure the VDCIN_DIFF[2:0] bits to establish the change in voltage that will set the FVDCIN in the Power Management Interrupt Flag SFR (IPSMF, 0xF8). Set up the interval for background external voltage measurements by configuring the VDCIN_PERIOD[1:0] bits in the Peripheral ADC Strobe Period SFR (STRBPER, 0xF9). Rev. PrA | Page 68 of 136 Preliminary Technical Data ADE7566/ADE7569 External Voltage ADC in PSM1 and PSM2 External Voltage ADC Interrupt An external voltage conversion is initiated only by certain actions that depend on the operating mode of the ADE7566/ADE7569. The external voltage ADC can generate an ADC interrupt when at least one of the following conditions occurs: • • • • In PSM0 operating mode, the 8052 is active. External voltage measurements are available in the background measurement mode and by initiating a single measurement. In PSM1 operating mode, the 8052 is active and the part is powered from battery. Single external voltage measurements can be initiated by setting the VDCIN_ADC_GO bit in the Start ADC Measurement SFR (ADCGO, 0xD8). Background external voltage measurements are not available. In PSM2 operating mode, the 8052 is not active. External voltage conversions are available through the background measurement mode only. • The difference between the new external voltage ADC value and the last external voltage ADC value generating an ADC interrupt is larger than the value set in the VDCIN_DIFF[2:0] bits in the Temperature and Supply Delta SFR (DIFFPROG, 0xF3). The external voltage ADC conversion initiated by setting VDCIN_ADC_GO is finishes. When the ADC interrupt occurs, a new value is available in the VDCIN ADC Value SFR (VDCINADC, 0xEF). Note that there is no flag associated with this interrupt. The external voltage ADC in the VDCIN ADC Value SFR (VDCINADC, 0xEF) is updated with a new value only when an external voltage ADC interrupt occurs. Rev. PrA | Page 69 of 136 ADE7566/ADE7569 Preliminary Technical Data 8052 MCU CORE ARCHITECTURE The special function register (SFR) space is mapped into the upper 128 bytes of internal data memory space and is accessed by direct addressing only. It provides an interface between the CPU and all on-chip peripherals. A block diagram showing the programming model of the ADE7566/ADE7569 via the SFR area is shown in Figure 67. 16kB ELECTRICALLY REPROGRAMMABLE NONVOLATILE FLASH/EE PROGRAM/DATA MEMORY 256 BYTES GENERAL PURPOSE RAM STACK REGISTER BANKS ENERGY MEASUREMENT POWER MANAGEMENT RTC 8051 COMPATIBLE CORE PC IR 128-BYTE SPECIAL FUNCTION REGISTER AREA TEMPERATURE ADC BATTERY ADC 256 BYTES XRAM All registers except the program counter (PC), instruction register (IR), and the four general-purpose register banks reside in the SFR area. The SFR registers include power control, configuration, and data registers that provide an interface between the CPU and all on-chip peripherals. LCD DRIVER OTHER ON-CHIP PERIPHERALS: SERIAL I/O WDT TIMERS 06353-056 The ADE7566/ADE7569 have an 8052 MCU core and use the 8051 instruction set. Some of the standard 8052 peripherals, such as the UART, have been enhanced. This section describes the standard 8052 core and its enhancements used in the ADE7566/ADE7569. Figure 67. ADE7566/ADE7569 Block Diagram MCU REGISTERS The registers used by the MCU are summarized in this section. Table 52. 8051 SFRs SFR A B PSW PCON DPL DPH DPTR SP CFG Address 0xE0 0xF0 0xD0 0x87 0x82 0x83 0x83 and 0x82 0x81 0xAF Bit Addressable Yes Yes Yes No No No No No No Description Accumulator. Auxiliary Math Register. Program Status Word (see Table 53). Power Control Register (see Table 54). Data Pointer LSByte (see Table 55). Data Pointer MSByte (see Table 56). 16-Bit Data Pointer (see Table 57). Stack Pointer LSByte (see Table 58). Configuration (see Table 59). Table 53. Program Status Word SFR (PSW, 0xD0) Bit No. 7 6 5 4 to 3 Address 0xD7 0xD6 0xD5 0xD4, 0xD3 Mnemonic CY AC F0 RS1, RS0 2 1 0 0xD2 0xD1 0xD0 OV F1 P Description Carry Flag. Modified by ADD, ADDC, SUBB, MUL, and DIV instructions. Auxiliary Carry Flag. Modified by ADD and ADDC instructions. General-Purpose Flag Available to the User. Register Bank Select Bits. RS1 RS0 Result (Selected Bank) 0 0 0 0 1 1 1 0 2 1 1 3 Overflow Flag. Modified by ADD, ADDC, SUBB, MUL, and DIV instructions. General-Purpose Flag Available to the User. Parity Bit. The number of bits set in the accumulator added to the value of the parity bit is always an even number. Rev. PrA | Page 70 of 136 Preliminary Technical Data ADE7566/ADE7569 Table 54. Program Control SFR (PCON, 0x87) Table 57. Data Pointer Register (DPTR, 0x82 and 0x83) Bit No. 7 6 to 0 Bits 15 to 0 Default 0 0 Description SMOD bit. Double baud rate control. Reserved. Should be left cleared. Default 0 Description Contain two byte address of the data pointer. DPTR is the combination of DPH and DPL SFRs. Table 55. Data Pointer Low SFR (DPL, 0x82) Table 58. Stack Pointer SFR (SP, 0x81) Bits 7 to 0 Bits 7 to 0 Default 0 Description Contain the low byte of the data pointer. Default 7 Description Contain the 8 LSBs of the pointer for the stack. Table 56. Data Pointer High SFR (DPH, 0x83) Bits 7 to 0 Default 0 Description Contain the high byte of the data pointer. Table 59. Configuration SFR (CFG, 0xAF) Bit No. 7 6 Mnemonic Reserved EXTEN 5 SCPS 4 MOD38EN 3 to 2 1 to 0 Reserved XREN1, XREN0 Description This bit should be left set for proper operation. Enhanced UART Enable Bit. EXTEN Result 0 Standard 8052 UART without enhanced error-checking features. 1 Enhanced UART with enhanced error checking (see the UART Additional Features section). Synchronous Communication Selection Bit. SCPS Result 0 I2C port is selected for control of the shared I2C/SPI pins and SFRs. 1 SPI port is selected for control of the shared I2C/SPI pins and SFRs. 38 kHz Modulation Enable Bit. MOD38EN Result 0 38 kHz modulation is disabled. 1 38 kHz modulation is enabled on the pins selected by the MOD38[7:0] bits in the Extended Port Configuration SFR (EPCFG, 0x9F). XRENx XREN1 OR XREN0 = 1 XREN1 AND XREN0 = 0 Result Enables MOVX instruction to use 256 bytes of extended RAM. Disables MOVX instruction. Rev. PrA | Page 71 of 136 ADE7566/ADE7569 Preliminary Technical Data bits are described in Table 53. The Program Status Word SFR (PSW, 0xD0) is bit addressable. BASIC 8052 REGISTERS Program Counter (PC) The program counter holds the two byte address of the next instruction to be fetched. The PC is initialized with 0x00 at reset and is incremented after each instruction is performed. Note that the amount added to the PC depends on the number of bytes in the instruction, so the increment can range from 1 byte to 3 bytes. The program counter is not directly accessible to the user but can be directly modified by CALL and JMP instructions that change which part of the program is active. Data Pointer (DPTR) Instruction Register (IR) Stack Pointer (SP) The instruction register holds the opcode of the instruction being executed. The opcode is the binary code that results from assembling an instruction. This register is not directly accessible to the user. The stack pointer keeps track of the current address of the top of the stack. To push a byte of data onto the stack, the stack pointer is incremented and the data is moved to the new top of the stack. To pop a byte of data off of the stack, the top byte of data is moved into the awaiting address, and the stack pointer is decremented. The stack is a last in, first out (LIFO) method of data storage because the most recent addition to the stack is the first to come off it. There are four banks that each contain 8 byte-wide registers for a total of 32 bytes of registers. These registers are convenient for temporary storage of mathematical operands. An instruction involving the accumulator and a register can be executed in 1 clock cycle, as opposed to 2 clock cycles to perform an instruction involving the accumulator and a literal or a byte of general-purpose RAM. The register banks are located in the first 32 bytes of RAM. The active register bank is selected by the RS0 and RS1 bits in the Program Status Word SFR (PSW, 0xD0). Accumulator The accumulator is a working register, storing the results of many arithmetic or logical operations. The accumulator is used in more than half of the 8052 instructions where it is usually referred to as A. The program status register (PSW) constantly monitors the number of bits that are set in the accumulator to determine if it has even or odd parity. The accumulator is stored in the SFR space (see Table 52). B Register The B register is used by the multiply and divide instructions, MUL AB and DIV AB to hold one of the operands. Because the B register is not used for many instructions, it can be used as a scratchpad register such as those in the register banks. The B register is stored in the SFR space (see Table 52). The ADE7566/ADE7569 support dual data pointers. See the Dual Data Pointers section. The stack is utilized during CALL and RET instructions to keep track of the address to move into the PC when returning from the function call. The stack is also manipulated when vectoring for interrupts to keep track of the prior state of the PC. The stack resides in the internal extended RAM, and the SP register holds the address of the stack in the extended RAM (XRAM). The advantage of this solution is that the stack is segregated to the internal XRAM. The use of the generalpurpose RAM can be limited to data storing, and the use of the extended internal RAM can be limited to the stack pointer. This separation limits the chance of data RAM corruption when the stack pointer overflows in data RAM. Data can still be stored in XRAM by using the MOVX command. To change the default starting address for the stack, move a value into the stack pointer (SP). For example, to enable the extended stack pointer and initialize it at the beginning of the XRAM space, use the following code: MOV SP,#00H 0xFF 0xFF 256 BYTES OF RAM Program Status Word (PSW) The PSW register reflects the status of arithmetic and logical operations through carry, auxiliary carry, and overflow flags. The parity flag reflects the parity of the accumulator contents, which can be helpful for communication protocols. The PSW 256 BYTES OF ON-CHIP XRAM (DATA) 0x00 Rev. PrA | Page 72 of 136 DATA + STACK 0x00 Figure 68. Extended Stack Pointer Operation 06353-057 Register Banks The data pointer is made up of two 8-bit registers: DPH (high byte) and DPL (low byte). These provide memory addresses for internal code and data access. The DPTR can be manipulated as a 16-bit register (DPTR = DPH, DPL), or as two independent 8-bit registers (DPH, DPL). See Table 55 and Table 56. Preliminary Technical Data ADE7566/ADE7569 Power Control Register (PCON, 0x87) The standard 8052 special function registers include the Accumulator, B, PSW, DPTR, and SP SFRs described in the Basic 8052 Registers section. The standard 8052 SFRs also defines timers, the serial port interface, interrupts, I/O ports, and power-down modes. Timer SFRs The 8052 contains three 16-bit timers: the identical Timer0 and Timer1, as well as a Timer2. These timers can also function as event counters. Timer2 has a capture feature where the value of the timer can be captured in two 8-bit registers upon the assertion of an external input signal (see Table 98 and the Timers section). Serial Port SFRs The full-duplex serial port peripheral requires two registers, one for setting up the baud rate and other communication parameters, and another for the transmit/receive buffer. The ADE7566/ADE7569 also have enhanced serial port functionality with a dedicated timer for baud rate generation with a fractional divisor and additional error detection. See Table 127 and the UART Serial Interface section. Interrupt SFRs There is a two-tiered interrupt system standard in the 8052 core. The priority level for each interrupt source is individually selectable as high or low. The ADE7566/ADE7569 enhance this interrupt system by creating, in essence, a third interrupt tier for a highest priority, the power supply management interrupt (PSM). See the Interrupt System section. I/O Port SFRs The 8052 core supports four I/O ports, P0 through P3, where Port 0 and Port 2 are typically used to access external code and data spaces. The ADE7566/ADE7569, unlike standard 8052 products, provide internal nonvolatile flash memory so that an external code space is unnecessary. The on-chip LCD driver requires many pins, some of which are dedicated for LCD functionality, and others that can be configured as LCD or general-purpose inputs/outputs. Due to the limited number of I/O pins, the ADE7566/ADE7569 do not allow access to external code and data spaces. The ADE7566/ADE7569 provide 20 pins that can be used for general-purpose I/O. These pins are mapped to Port 0, Port 1, and Port 2. They are accessed through three bit-addressable 8052 SFRs, P0, P1, and P2. Another enhanced feature of the ADE7566/ADE7569 is that the weak pull-ups standard on 8052 Port 1, Port 2, and Port 3 can be disabled to make open drain outputs, as is standard on Port 0. The weak pull-ups can be enabled on a pin-by-pin basis. See the I/O Ports section. The 8052 core defines two power-down modes: power down and idle. The ADE7566/ADE7569 enhance the power control capability of the traditional 8052 MCU with additional power management functions. The Power Control SFR (POWCON, 0xC5) is used to define power control-specific functionality for the ADE7566/ADE7569. The Program Control SFR (PCON, 0x87) is not bit addressable. See the Power Management section. The ADE7566/ADE7569 have many other peripherals not standard to the 8052 core, including • • • • • • • • • ADE energy measurement DSP RTC LCD driver Battery switchover/power management Temperature ADC Battery ADC SPI/I2C communication Flash memory controller Watchdog timer MEMORY OVERVIEW The ADE7566/ADE7569 contain the following memory blocks: • • • 16 kB of on-chip Flash/EE program and data memory 256 bytes of general-purpose RAM 256 bytes of internal extended RAM (XRAM) The 256 bytes of general-purpose RAM share the upper 128 bytes of its address space with special function registers. All of the memory spaces are shown in Figure 67. The addressing mode specifies which memory space to access. General-Purpose RAM General-purpose RAM resides in memory locations 0x00 through 0xFF. It contains the register banks. 0x7F GENERAL-PURPOSE AREA 0x30 0x2F BIT-ADDRESSABLE (BIT ADDRESSES) BANKS SELECTED VIA BITS IN PSW 0x20 0x1F 11 0x18 0x17 10 0x10 0x0F FOUR BANKS OF EIGHT REGISTERS R0 TO R7 01 0x08 0x07 00 RESET VALUE OF STACK POINTER 0x00 Figure 69. Lower 128 Bytes of Internal Data Memory Rev. PrA | Page 73 of 136 06353-058 STANDARD 8052 SFRS ADE7566/ADE7569 Preliminary Technical Data Address 0x80 through Address 0xFF of general-purpose RAM are shared with the special function registers. The mode of addressing determines which memory space is accessed as shown in Figure 70. 0xFF Extended Internal RAM (XRAM) ACCESSIBLE BY DIRECT ADDRESSING ONLY ACCESSIBLE BY DIRECT AND INDIRECT ADDRESSING 0x00 06353-059 GENERAL PURPOSE RAM SPECIAL FUNCTION REGISTERS (SFRs) Figure 70. General-Purpose RAM and SFR Memory Address Overlap Both direct and indirect addressing can be used to access generalpurpose RAM from 0x00 through 0x7F. However, only indirect addressing can be used to access general-purpose RAM from 0x80 through 0xFF because this address space shares the same space with the special function registers (SFRs). The 8052 core also has the means to access individual bits of certain addresses in the general-purpose RAM and special function memory spaces. The individual bits of general-purpose RAM Address 0x20 to Address 0x2F can be accessed through their Bit Address 0x00 through Bit Address 0x7F. The benefit of bit addressing is that the individual bits can be accessed quickly without the need for bit masking, which takes more code memory and execution time. The bit addresses for general-purpose RAM Address 0x20 through Address 0x2F can be seen in Figure 71. BYTE ADDRESS BIT ADDRESSES (HEXA) 7F 7E 7D 7C 7B 7A 79 78 0x2E 77 76 75 74 73 72 71 70 0x2D 6F 6E 6D 6C 6B 6A 69 68 0x2C 67 66 65 64 63 62 61 60 0x2B 5F 5E 5D 5C 5B 5A 59 58 0x2A 57 56 55 54 53 52 51 50 0x29 4F 4E 4D 4C 4B 4A 49 48 0x28 47 46 45 44 43 42 41 40 0x27 3F 3E 3D 3C 3B 3A 39 38 0x26 37 36 35 34 33 32 31 30 0x25 2F 2E 2D 2C 2B 2A 29 28 0x24 27 26 25 24 23 22 21 20 0x23 1F 1E 1D 1C 1B 1A 19 18 0x22 17 16 15 14 13 12 11 10 0x21 0F 0E 0D 0C 0B 0A 09 08 0x20 07 06 05 04 03 02 01 00 0x00FF 256 BYTES OF EXTENDED INTERNAL RAM (XRAM) 0x0000 Figure 72. Extended Internal RAM (XRAM) Space Code Memory Code and data memory are stored in the 16 kB flash memory space. No external code memory is supported. To access code memory, code indirect addressing is used. ADDRESSING MODES The 8052 core provides several addressing modes. The addressing mode determines how the core interprets the memory location or data value specified in assembly language code. There are six addressing modes as shown in Table 60. Table 60. 8052 Addressing Modes Addressing Mode Immediate Direct Indirect Extended Direct Extended Indirect Code Indirect 06353-060 0x2F The ADE7566/ADE7569 provide 256 bytes of extended on-chip RAM. No external RAM is supported. This RAM is located in Address 0x0000 through Address 0x00FF in the extended RAM space. To select the extended RAM memory space, the extended indirect addressing modes are used. The internal XRAM is enabled in the Configuration SFR (CFG, 0xAF) by writing 01 to CFG[1:0]. 06353-061 0x80 0x7F ACCESSIBLE BY INDIRECT ADDRESSING ONLY The individual bits of some SFRs can be accessed for use in Boolean and program-branching instructions. These SFRs are labeled as bit-addressable and the bit addresses are given in the SFR Mapping section. Figure 71. Bit Addressable Area of General-Purpose RAM Example MOV A, #A8h MOV DPTR,#A8h MOV A, A8h MOV A, IE MOV A, R0 MOV A,@R0 MOVX A, @DPTR MOVX A, @R0 MOVC A, @A+DPTR MOVC A, @A+PC JMP @A+DPTR Bytes 2 3 2 2 1 1 1 1 1 1 1 Core Clock Cycles 2 3 2 2 1 2 4 4 4 4 3 Immediate Addressing Bit addressing can be used for instructions that involve Boolean variable manipulation and program branching (see the Instruction Set section). Special Function Registers Special function registers are registers that affect the function of the 8051 core or its peripherals. These registers are located in RAM in Address 0x80 through Address 0xFF. They are only accessible through direct addressing as shown in Figure 70 . In immediate addressing, the expression entered after the number sign (#) is evaluated by the assembler and stored in the specified memory address. This number is referred to as a literal because it refers only to a value and not to a memory location. Instructions using this addressing mode is slower than those between two registers because the literal must be stored and fetched from memory. The expression can be entered as a symbolic variable or an arithmetic expression; the value is computed by the assembler. Rev. PrA | Page 74 of 136 Preliminary Technical Data ADE7566/ADE7569 Direct Addressing With direct addressing, the value at the source address is moved to the destination address. Direct addressing provides the fastest execution time of all the addressing modes when an instruction is performed between registers. Note that indirect or direct addressing modes can be used to access general-purpose RAM Address 0x00 through Address 0x7F. An instruction with direct addressing that uses an address between 0x80 and 0xFF is referring to a special function memory location. Indirect Addressing With indirect addressing, the value pointed to by the register is moved to the destination address. For example, to move the contents of internal RAM Address 0x82 to the accumulator, use the following instructions: MOV R0,#82h MOV A,@R0 These two instructions require a total of seven clock cycles and four bytes of storage in the program memory. Extended Indirect Addressing The internal extended RAM is accessed through a pointer to the address in indirect addressing mode. The ADE7566/ADE7569 have 256 bytes of internal extended RAM, accessed through MOVX instructions. External memory is not supported on the devices. In extended indirect addressing mode, a register holds the address of the byte of extended RAM. The following code moves the contents of extended RAM Address 0x80 to the accumulator: MOV R0,#80h MOVX A,@R0 These two instructions require six clock cycles and three bytes of storage. Indirect addressing allows addresses to be computed, which is useful for indexing into data arrays stored in RAM. Note that there are 256 bytes of extended RAM, so both extended direct and extended indirect addressing can cover the whole address range. There is a storage and speed advantage to using extended indirect addressing because the additional byte of addressing available through the DPTR register that is not needed is not stored. Note that an instruction that refers to Address 0x00 through Address 0x7F is referring to internal RAM, and indirect or direct addressing modes can be used. An instruction with indirect addressing that uses an address between 0x80 and 0xFF is referring to internal RAM, not to an SFR. From the three examples demonstrating the access of internal RAM from 0x80 through 0xFF, and the access of extended internal RAM from 0x00 through 0xFF, it can be seen that it is most efficient to use the entire internal RAM accessible through indirect access before moving to extended RAM. Extended Direct Addressing Code Indirect Addressing The DPTR register (see Table 57) is used to access internal extended RAM in extended indirect addressing mode. The ADE7566/ADE7569 have 256 bytes of XRAM, accessed through MOVX instructions. External memory spaces are not supported on this device. The internal code memory can be accessed indirectly. This can be useful for implementing lookup tables and other arrays of constants that are stored in flash. For example, to move the data stored in flash memory at Address 0x8002 into the accumulator, use the following code: In extended direct addressing mode, the DPTR register points to the address of the byte of extended RAM. The following code moves the contents of extended RAM Address 0x100 to the accumulator: MOV DPTR,#8002h CLR A MOVX A,@A+DPTR The two instructions above require a total of four clock cycles and three bytes of storage in the program memory. MOV DPTR,#100h MOVX A,@DPTR The accumulator can be used as a variable index into the array of flash memory located at DPTR. Rev. PrA | Page 75 of 136 ADE7566/ADE7569 Preliminary Technical Data INSTRUCTION SET Table 61 documents the number of clock cycles required for each instruction. Most instructions are executed in one or two clock cycles, resulting in a 4 MIPS peak performance. Table 61. Instruction Set Mnemonic ARITHMETIC ADD A,Rn ADD A,@Ri ADD A,dir ADD A,#data ADDC A,Rn 1 1 ADDC A,@Ri ADDC A,dir ADD A,#data SUBB A,Rn SUBB A,@Ri SUBB A,dir SUBB A,#data INC A INC Rn INC @ INC dir INC DPTR DEC A DEC Rn DEC @Ri DEC dir MUL AB DIV AB DA A A LOGIC ANL A,Rn ANL A,@Ri ANL A,dir ANL A,#data ANL dir,A ANL dir,#data ORL A,Rn ORL A,@Ri ORL A,dir ORL A,#data ORL dir,A ORL dir,#data XRL A,Rn XRL A,@Ri XRL A,#data XRL dir,A XRL A, XRL dir,#data CLR A CPL A SWAP A RL A Description Bytes Cycles Add Register to A. Add Indirect Memory to A. Add Direct Byte to A. Add Immediate to A. Add Register to A with Carry. Add Indirect Memory to A with Carry. Add Direct Byte to A With Carry. Add Immediate to A With Carry. Subtract Register from A with Borrow. Subtract Indirect Memory from A with Borrow. Subtract Direct from A with Borrow. Subtract Immediate from A with Borrow. Increment A. Increment Register. Ri Increment Indirect Memory. Increment Direct Byte. Increment Data Pointer. Decrement A. Decrement Register. Decrement Indirect Memory. Decrement Direct Byte. Multiply A by B. Divide A by B. Decimal Adjust A. 1 1 2 2 1 1 2 2 1 1 2 2 1 1 1 2 1 1 1 1 2 1 1 1 1 2 2 2 1 2 2 2 1 2 2 2 1 1 2 2 3 1 1 2 2 9 9 2 AND Register to A. AND Indirect Memory to A. AND Direct Byte to A. AND Immediate to A. AND A to Direct Byte. AND Immediate Data to Direct Byte. OR Register to A. OR Indirect Memory to A. OR Direct Byte to A. OR Immediate to A. OR A to Direct Byte. OR Immediate Data to Direct Byte. Exclusive-OR Register to A. Exclusive-OR Indirect Memory to A. Exclusive-OR Immediate to A. Exclusive-OR A to Direct Byte. dir Exclusive-OR Indirect Memory to A. Exclusive-OR Immediate Data To Direct. Clear A. Complement A. Swap Nibbles of A. Rotate A Left. 1 1 2 2 2 3 1 1 2 2 2 3 1 2 2 2 2 3 1 1 1 1 1 2 2 2 2 3 1 2 2 2 2 3 1 2 2 2 2 3 1 1 1 1 Rev. PrA | Page 76 of 136 Preliminary Technical Data Mnemonic RLC A RR A RRC A DATA TRANSFER MOV A,Rn MOV A,@Ri MOV Rn,A MOV @Ri,A MOV A,dir MOV A,#data MOV Rn,#data MOV dir,A MOV Rn,dir MOV dir,Rn MOV @Ri,#data MOV dir,@Ri MOV @Ri,dir MOV dir,dir MOV dir,#data MOV DPTR,#data MOVC A,@A+DPTR MOVC A,@A+PC MOVX A,@Ri MOVX A,@DPTR MOVX @Ri,A MOVX @DPTR,A PUSH dir POP dir XCH A,Rn XCH A,@Ri XCHD A,@Ri XCH A,dir BOOLEAN CLR C CLR bit SETB C SETB bit CPL C CPL bit ANL C,bit ANL C,/bit ORL C,bit ORL C,/bit OR MOV C,bit MOV bit,C BRANCHING JMP @A+DPTR RET RETI ACALL addr11 AJMP addr11 SJMP rel JC rel ADE7566/ADE7569 Description Rotate A Left Through Carry. Rotate A Right. Rotate A Right Through Carry. Bytes 1 1 1 Cycles 1 1 1 Move Register to A. Move Indirect Memory to A. Move A to Register. Move A to Indirect Memory. Move Direct Byte to A. Move Immediate to A. Move Register to Immediate. Move A to Direct Byte. Move Register to Direct Byte. Move Direct To Register. Move Immediate to Indirect Memory. Move Indirect to Direct Memory. Move Direct to Indirect Memory. Move Direct Byte to Direct Byte. Move Immediate to Direct Byte. Move Immediate to Data Pointer. Move Code Byte Relative DPTR to A. Move Code Byte Relative PC to A 1. Move External (A8) Data to A. Move External (A16) Data to A. Move A to External Data (A8). Move A to External Data (A16). Push Direct Byte onto Stack. Pop Direct Byte from Stack. Exchange A and Register. Exchange A and Indirect Memory. Exchange A and Indirect Memory Nibble. Exchange A and Direct Byte. 1 1 1 1 2 2 2 2 2 2 2 2 2 3 3 3 1 1 1 1 1 1 2 2 1 1 1 2 1 2 1 2 2 2 2 2 2 2 2 2 2 3 3 3 4 4 4 4 4 4 2 2 1 2 2 2 Clear Carry. Clear Direct Bit. Set Carry. Set Direct Bit. Complement Carry. Complement Direct Bit. AND Direct Bit and Carry. AND Direct Bit Inverse to Carry. OR Direct Bit And Carry. Direct Bit Inverse to Carry. Move Direct Bit to Carry. Move Carry to Direct Bit. 1 2 1 2 1 2 2 2 2 2 2 2 1 2 1 2 1 2 2 2 2 2 2 2 Jump Indirect Relative to DPTR. Return from Subroutine. Return from Interrupt. Absolute Jump to Subroutine. Absolute Jump Unconditional. Short Jump (Relative Address). Jump on Carry Equal to 1. 1 1 1 2 2 2 2 3 4 4 3 3 3 3 Rev. PrA | Page 77 of 136 ADE7566/ADE7569 Mnemonic JNC rel JZ rel JNZ rel DJNZ Rn,rel LJMP LCALL addr16 JB bit,rel JNB bit,rel JBC bit,rel CJNE A,dir,rel CJNE A,#data,rel CJNE Rn,#data,rel CJNE @Ri,#data,rel DJNZ dir,rel MISCELLANEOUS NOP Preliminary Technical Data Description Jump on Carry Equal to 0. Jump on Accumulator = 0. Jump on Accumulator Not Equal to 0. Decrement Register, JNZ Relative. Long Jump Unconditional. Long Jump to Subroutine. Jump on Direct Bit = 1. Jump on Direct Bit = 0. Jump on Direct Bit = 1 and Clear. Compare A, Direct JNE Relative. Compare A, Immediate JNE Relative. Compare register, Immediate JNE Relative. Compare indirect, Immediate JNE Relative. Decrement Direct Byte, JNZ Relative. Bytes 2 2 2 2 3 3 3 3 3 3 3 3 3 3 Cycles 3 3 3 3 4 4 4 4 4 4 4 4 4 4 No Operation. 1 1 READ-MODIFY-WRITE INSTRUCTIONS INSTRUCTIONS THAT AFFECT FLAGS Some 8051 instructions read the latch while others read the pin. The state of the pin is read for instructions that input a port bit. Instructions that read the latch rather than the pins are the ones that read a value, possibly change it, and rewrite it to the latch. Because these instructions involve modifying the port, it is assumed that the pins being modified are outputs, so the output state of the pin is read from the latch. This prevents a possible misinterpretation of the voltage level of a pin. For example, if a port pin is used to drive the base of a transistor, a 1 is written to the bit to turn the transistor on. If the CPU reads the same port bit at the pin rather than the latch, it reads the base voltage of the transistor and interprets it as Logic 0. Reading the latch rather than the pin returns the correct value of 1. Many instructions explicitly modify the carry bit, such as the MOV C bit and CLR C instructions. Other instructions that affect status flags are listed in this section. ADD A, Source This instruction adds the source to the accumulator. No status flags are referenced by the instruction. Affected Status Flags C Set if there is a carry out of Bit 7. Cleared otherwise. Used to indicate an overflow if the operands are unsigned. OV Set if there is a carry out of Bit 6 or a carry out of Bit 7, but not if both are set. Used to indicate an overflow for signed addition. This flag is set if two positive operands yield a negative result, or if two negative operands yield a positive result. Table 62. Read-Modify-Write Instructions AC Set if there is a carry out of Bit 3. Cleared otherwise. Instruction ANL ORL XRL JBC CPL INC DEC DJNZ MOV PX.Y, C1 CLR PX.Y1 SETB PX.Y1 ADDC A, Source The instructions that read the latch rather than the pins are called read-modify-write instructions and are listed in Table 62. When the destination operand is a port or a port bit, these instructions read the latch rather than the pin. 1 Example ANL P0, A ORL P1, A XRL P2, A JBC P1.1, LABEL CPL P2.0 INC P2 DEC P2 DJNZ P0, LABEL MOV P0.0,C CLR P0.0 SETB P0.0 Description Logical AND. Logical OR. Logical EX-OR. Jump if Bit = 1 and Clear Bit. Complement Bit. Increment. Decrement. Decrement and Jump if Not Zero. Move Carry to Bit Y of Port X. Clear Bit Y of Port X. Set Bit Y of Port X. This instruction adds the source and the carry bit to the accumulator. The carry status flag is referenced by the instruction. Affected Status Flags C Set if there is a carry out of Bit 7. Cleared otherwise. Used to indicate an overflow if the operands are unsigned. OV Set if there is a carry out of Bit 6 or a carry out of Bit 7, but not if both are set. Used to indicate an overflow for signed addition. This flag is set if two positive operands yield a negative result, or if two negative operands yield a positive result. AC Set if there is a carry out of Bit 3. Cleared otherwise. These instructions read the port byte (all 8 bits), modify the addressed bit, and write the new byte back to the latch. Rev. PrA | Page 78 of 136 Preliminary Technical Data ADE7566/ADE7569 SUBB A, Source DA A This instruction subtracts the source byte and the carry (borrow) flag from the accumulator. It references the carry (borrow) status flag. This instruction adjusts the accumulator to hold two 4-bit digits after the addition of two binary coded decimals (BCDs) with the ADD or ADDC instructions. If the AC bit is set or if the value of Bit 0 to Bit 3 exceeds nine, 0x06 is added to the accumulator to correct the lower 4 bits. If the carry bit is set when the instruction begins, or if 0x06 is added to the accumulator in the first step, 0x60 is added to the accumulator to correct the higher 4 bits. Affected Status Flags C OV AC Set if there is a borrow needed for Bit 7. Cleared otherwise. Used to indicate an overflow if the operands are unsigned. Set if there is a borrow is needed for Bit 6 or Bit 7, but not for both. Used to indicate an overflow for signed subtraction. This flag is set if a negative number subtracted from a positive yields a negative result, or if a positive number subtracted from a negative number yields a positive result. Set if a borrow is needed for Bit 3. Cleared otherwise. MUL AB This instruction multiplies the accumulator by the B register. This operation is unsigned. The lower byte of the 16-bit product is stored in the accumulator and the higher byte is left in the B register. No status flags are referenced by the instruction. The carry and AC status flags are referenced by this instruction. Affected Status Flag C Set if the result is greater than 0x99. Cleared otherwise. RRC A This instruction rotates the accumulator to the right through the carry flag. The old LSB of the accumulator becomes the new carry flag, and the old carry flag is loaded into the new MSB of the accumulator. The carry status flag is referenced by this instruction. Affected Status Flag C Equal to the state of ACC.0 before execution of the instruction. Affected Status Flags RLC A C Cleared OV Set if the result is greater than 255. Cleared otherwise. This instruction rotates the accumulator to the left through the carry flag. The old MSB of the accumulator becomes the new carry flag, and the old carry flag is loaded into the new LSB of the accumulator. DIV AB This instruction divides the accumulator by the B register. This operation is unsigned. The integer part of the quotient is stored in the accumulator and the remainder goes into the B register. No status flags are referenced by the instruction. The carry status flag is referenced by this instruction. Affected Status Flag C Affected Status Flags Equal to the state of ACC.7 before execution of the instruction. CJNE Destination, Source, Relative Jump C Cleared OV Cleared unless the B register is equal to 0, in which case the results of the division are undefined and the OV flag is set. This instruction compares the source value to the destination value and branches to the location set by the relative jump if they are not equal. If the values are equal, program execution continues with the instruction after the CJNE instruction. No status flags are referenced by this instruction. Affected Status Flag C Rev. PrA | Page 79 of 136 Set if the source value is greater than the destination value. Cleared otherwise. ADE7566/ADE7569 Preliminary Technical Data INTERRUPT SYSTEM The ADE7566/ADE7569 provide 12 interrupt sources with three priority levels. The power management interrupt is alone at the highest priority level. The other two priority levels are configurable through the Interrupt Priority SFR (IP, 0xB8) and Interrupt Enable and Priority 2 SFR (IEIP2, 0xA9). A Priority 1 interrupt can interrupt the service routine of a Priority 0 interrupt, and if two interrupts of different priorities occur at the same time, the Priority 1 interrupt is serviced first. An interrupt cannot be interrupted by another interrupt of the same priority level. If two interrupts of the same priority level occur simultaneously, a polling sequence is observed. See the Interrupt Priority section. INTERRUPT ARCHITECTURE The ADE7566/ADE7569 possess advanced power supply monitoring features. To ensure a fast response to time critical power supply issues, such as a loss of line power, the power supply monitoring interrupt should be able to interrupt any interrupt service routine. To enable the user to have full use of the standard 8051 interrupt priority levels, an additional priority level was added for the power supply management (PSM) interrupt. The PSM interrupt is the only interrupt at this highest interrupt priority level. STANDARD 8051 INTERRUPT ARCHITECTURE HIGH The 8051 standard interrupt architecture includes two tiers of interrupts, where some interrupts are assigned a high priority and others are assigned a low priority. LOW PRIORITY 1 LOW PRIORITY 0 Figure 74. Interrupt Architecture PRIORITY 1 PRIORITY 0 06353-062 HIGH PSM 06353-063 The unique power management architecture of the ADE7566/ADE7569 includes an operating mode (PSM2) where the 8052 MCU core is shut down. Events can be configured to wake the 8052 MCU core from the PSM2 operating mode. A distinction is drawn here between events that can trigger the wake-up of the 8052 MCU core and events that can trigger an interrupt when the MCU core is active. Events that can wake the core are referred to as wake-up events, while events that can interrupt the program flow when the MCU is active are called interrupts. See the 3.3 V Peripherals and Wake-Up Events section to learn more about events that can wake the 8052 core from PSM2. See the Power Supply Monitor Interrupt (PSM) section for more information on the PSM interrupt. Figure 73. Standard 8051 Interrupt Priority Levels INTERRUPT REGISTERS The control and configuration of the interrupt system is carried out through four interrupt-related SFRs discussed in this section. Table 63. Interrupt SFRs SFR IE IP IEIP2 WDCON Address 0xA8 0xB8 0xA9 0xC0 Default 0x00 0x00 0xA0 0x10 Bit Addressable Yes Yes No Yes Description Interrupt Enable Register (see Table 64). Interrupt Priority Register (see Table 65). Secondary Interrupt Enable Register (see Table 66). Watchdog Timer Configuration (see Table 71 and the Writing to the Watchdog Timer SFR (WDCON, 0xC0) section). Table 64. Interrupt Enable SFR (IE, 0xA8) Bit No. 7 6 5 4 3 2 1 0 Address 0xAF 0xAE 0xAD 0xAC 0xAB 0xAA 0xA9 0xA8 Mnemonic EA ETEMP ET2 ES ET1 EX1 ET0 EX0 Description Enables all Interrupt Sources. Set by the user. Cleared by the user to disable all interrupt sources. Enables the Temperature ADC Interrupt. Set by the user. Enables the Timer 2 Interrupt. Set by the user. Enables the UART Serial Port Interrupt. Set by the user. Enables the Timer 1 Interrupt. Set by the user. Enables the External Interrupt 1 (INT1). Set by the user. Enables the Timer 0 Interrupt. Set by the user. Enables External Interrupt 0 (INT0). Set by the user. Rev. PrA | Page 80 of 136 Preliminary Technical Data ADE7566/ADE7569 Table 65. Interrupt Priority SFR (IP, 0xB8) Bit No. 7 6 5 4 3 2 1 0 Address 0xBF 0xBE 0xBD 0xBC 0xBB 0xBA 0xB9 0xB8 Mnemonic PADE PTEMP PT2 PS PT1 PX1 PT0 PX0 Description ADE Energy Measurement Interrupt Priority (1 = high, 0 = low). Temperature ADC Interrupt Priority (1 = high, 0 = low). Timer 2 Interrupt Priority (1 = high, 0 = low). UART Serial Port Interrupt Priority (1 = high, 0 = low). Timer 1 Interrupt Priority (1 = high, 0 = low). INT1 (External Interrupt 1) Priority (1 = high, 0 = low). Timer 0 Interrupt Priority (1 = high, 0 = low). INT0 (External Interrupt 0) Priority (1 = high, 0 = low). Table 66. Interrupt Enable and Priority 2 SFR (IEIP2, 0xA9) Bit No. 7 6 5 4 3 2 1 0 Mnemonic – PTI – PSI EADE ETI EPSM ESI Description – RTC Interrupt Priority (1 = high, 0 = low). – SPI/I2C Interrupt Priority (1 = high, 0 = low). Enables the Energy Metering Interrupt (ADE). Set by the user. Enables the RTC Interval Timer Interrupt. Set by the user. Enables the PSM Power Supply Management Interrupt. Set by the user. Enables the SPI/I2C Interrupt. Set by the user. INTERRUPT PRIORITY If two interrupts of the same priority level occur simultaneously, the polling sequence is observed (as shown in Table 67). Table 67. Priority Within Interrupt Level Source IPSM IRTC IADE WDT ITEMP IE0 TF0 IE1 TF1 ISPI/I2CI RI/TI TF2/EXF2 Priority 0 (Highest) 1 2 3 4 5 6 7 8 9 10 11 (Lowest) Description Power Supply Monitor Interrupt. RTC Interval Timer Interrupt. ADE Energy Measurement Interrupt. Watchdog Timer Overflow Interrupt. Temperature ADC Interrupt. External Interrupt 0. Timer/Counter 0 Interrupt. External Interrupt 1. Timer/Counter 1 Interrupt. SPI/I2C Interrupt. UART Serial Port Interrupt. Timer/Counter 2 Interrupt. Rev. PrA | Page 81 of 136 ADE7566/ADE7569 Preliminary Technical Data INTERRUPT FLAGS The interrupt flags and status flags associated with the interrupt vectors are shown in Table 68 and Table 69. Most of the interrupts have flags associated with them. Table 68. Interrupt Flags Interrupt Source IE0 TF0 IE1 TF1 RI + TI TF2 + EXF2 ITEMP (Temperature ADC) IPSM (Power Supply) IADE (Energy Measurement DSP) Flags TCON.1 TCON.5 TCON.3 TCON.7 SCON.1 SCON.0 T2CON.7 T2CON.6 – IPSMF.6 MIRQSTL.7 Bit Address IE0 TF0 IE1 TF1 TI RI TF2 EXF2 – FPSM – Description External Interrupt 0. Timer 0. External Interrupt 1. Timer 1. Transmit Interrupt. Receive Interrupt. Timer 2 Overflow Flag. Timer 2 External Flag. Temperature ADC Interrupt. Does not have an interrupt flag associated with it. PSM Interrupt Flag. Read MIRQSTH, MIRQSTM, MIRQSTL. Table 69. Status Flags Interrupt Source ITEMP (Temperature ADC) ISPI/I2CI IRTC (RTC Interval Timer) WDT (Watchdog Timer) Flags – SPI2CSTAT SPI2CSTAT TIMECON.7 TIMECON.2 WDCON.2 Bit Address – – – – – WDS Description Temperature ADC Interrupt. Does not have a status flag associated with it. SPI Interrupt Status Register. I2C Interrupt Status Register. RTC Midnight Flag. RTC Alarm Flag. Watchdog Timeout Flag. A functional block diagram of the interrupt system is shown in Figure 75. Note that the PSM interrupt is the only interrupt in the highest priority level. If an external wake-up event occurs to wake the ADE7566 /ADE7569 from PSM2, a pending external interrupt is generated. When the EX0 or EX1 bits in the Interrupt Enable SFR (IE, 0xA8) are set to enable external interrupts, the program counter is loaded with the IE0 or IE1 interrupt vector. The IE0 and IE1 interrupt flags in the TCON register are not affected by events that occur when the 8052 MCU core is shut down during PSM2. See the Power Supply Monitor Interrupt (PSM) section. The RTC, temperature ADC, and I2C/SPI interrupts are latched such that pending interrupts cannot be cleared without entering their respective interrupt service routines. Clearing the RTC midnight flags and alarm flags does not clear a pending RTC interrupt. Similarly, clearing the I2C/SPI status bits in the SPI Interrupt Status Register SFR (SPISTAT, 0xEA) does not cancel a pending I2C/SPI interrupt. These interrupts remain pending until the RTC or I2C/SPI interrupt vectors are enabled. Their respective interrupt service routines are entered shortly thereafter. Figure 75 shows how the interrupts are cleared when the interrupt service routines are entered. Some interrupts with multiple interrupt sources are not automatically cleared; specifically the PSM, ADE, UART, and Timer 2 interrupt vectors. Note that the INT0 and INT1 interrupts are only cleared if the external interrupt is configured to be triggered by a falling edge by setting IT0 in the Timer/Counter 0 and Timer/Counter 1 Control SFR (TCON, 0x88). If INT0 or INT1 is configured to interrupt on a low level, the interrupt service routine is reentered until the respective pin goes high. Rev. PrA | Page 82 of 136 Preliminary Technical Data ADE7566/ADE7569 IE/IEIP2 REGISTERS PSM RTC IP/IEIP2 REGISTERS PRIORITY LEVEL LOW IPSMF HIGH HIGHEST FPSM (IPSMF.6) IPSME IN OUT LATCH MIDNIGHT ALARM RESET ADE WATCHDOG TEMP ADC MIRQSTH MIRQSTM MIRQSTL MIRQENH MIRQENM MIRQENL MIRQSTL.7 WATCHDOG TIMEOUT WDIR IN OUT LATCH TEMPADC INTERRUPT RESET EXTERNAL INTERRUPT 0 TIMER 0 EXTERNAL INTERRUPT 1 INT0 PSM2 IT0 0 IE0 1 IT0 TF0 INTERRUPT POLLING SEQUENCE PSM2 IT1 INT1 0 IE1 1 IT1 TF1 TIMER 1 SPI INTERRUPT CFG.5 UART TIMER 2 1 I2C INTERRUPT 0 IN OUT LATCH RESET RI TI TF2 EXF2 INDIVIDUAL INTERRUPT ENABLES GLOBAL INTERRUPT ENABLE (EA) Figure 75. Interrupt System Functional Block Diagram Rev. PrA | Page 83 of 136 LEGEND AUTOMATIC CLEAR SIGNAL 06353-064 I2C/SPI ADE7566/ADE7569 Preliminary Technical Data INTERRUPT VECTORS CONTEXT SAVING 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 70. 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 scratchpads in the ISR should also be restored before exiting the interrupt. The following example 8051 code shows how to restore some commonly used registers: Table 70. 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) Vector Address 0x0003 0x000B 0x0013 0x001B 0x0023 0x002B 0x0033 0x003B 0x0043 0x004B 0x0053 0x005B GeneralISR: ; save the current Accumulator value PUSH ; save the current status and register bank selection PUSH PSW ; service interrupt … ; restore the status and register bank selection INTERRUPT LATENCY POP The 8051 architecture requires that at least one instruction execute between interrupts. To ensure this, the 8051 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. ACC PSW ; restore the accumulator 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. Rev. PrA | Page 84 of 136 POP RETI ACC Preliminary Technical Data ADE7566/ADE7569 WATCHDOG TIMER The watchdog timer generates a device reset or interrupt within a reasonable amount of time if the ADE7566/ADE7569 enter an erroneous state, possibly due to a programming error or electrical noise. The watchdog is enabled by default with a timeout of 2 sec and creates a system reset if not cleared within 2 sec. The watchdog function can be disabled by clearing the watchdog enable bit (WDE) in the Watchdog Timer SFR (WDCON, 0xC0). The watchdog circuit generates a system reset or interrupt (WDS) if the user program fails to set the WDE bit within a predetermined amount of time (set by the PRE[3:0] bits). The watchdog timer is clocked from the 32.768 kHz external crystal connected between the CLKIN and CLKOUT pins. The WDCON SFR can be written only by user software if the double write sequence described in Table 71 is initiated on every write access to the WDCON SFR. To prevent any code from inadvertently disabling the watchdog, a watchdog protection can be activated. This watchdog protection locks in the watchdog enable and event settings so they cannot be changed by user code. The protection is activated by clearing a watchdog protection bit in the flash memory. The watchdog protection bit is the most significant bit at Address 0x3FFA of the flash memory. When this bit is cleared, the WDIR bit is forced to 0, and the WDE bit is forced to 1. Note that the sequence for configuring the flash protection bits must be followed to modify the watchdog protection bit at Address 0x3FFA (see the Protecting the Flash section). Table 71. Watchdog Timer SFR (WDCON, 0xC0) Bit No. 7 to 4 Address 0xC7 to 0xC4 Mnemonic PRE[3:0] Default 7 Description Watchdog Prescaler. In normal mode, the 16-bit watchdog timer is clocked by the input clock (32.768 kHz). The PREx bits set which of the upper bits of the counter are used as the watchdog output following: t WATCHDOG = 2 PRE × 3 0xC3 WDIR 0 2 0xC2 WDS 0 1 0xC1 WDE 1 0 0xC0 WDWR 0 29 CLKIN PRE[3:0] Result (Watchdog timeout) 0000 15.6 ms 0001 31.2 ms 0010 62.5 ms 0011 125 ms 0100 250 ms 0101 500 ms 0110 1 sec 0111 2 sec 1000 0, Automatic reset 1001 0, Serial download reset 1010 to 1111 Not a valid selection Watchdog Interrupt Response Bit. When cleared, the watchdog generates a system reset when the watchdog time out period has expired. When set, the watchdog generates a interrupt when the watchdog time out period has expired. Watchdog Status Bit. This bit is set to indicate that a watchdog timeout has occurred. It is cleared by writing a 0 or by an external hardware reset. A watchdog reset will not clear WDS; therefore, it can be used to distinguish between a watchdog reset and a hardware reset from the RESET pin. Watchdog Enable Bit. When set, this bit enables the watchdog and clears its counter. The watchdog counter is subsequently cleared again whenever WDE is set. If the watchdog is not cleared within its selected timeout period, it generates a system reset or watchdog interrupt, depending on the WDIR bit. Watchdog Write Enable Bit. See the Writing to the Watchdog Timer SFR (WDCON, 0xC0) section. Rev. PrA | Page 85 of 136 ADE7566/ADE7569 Preliminary Technical Data Writing to the Watchdog Timer SFR (WDCON, 0xC0) Writing data to the WDCON SFR involves a double instruction sequence. The WDWR bit must be set and the following instruction must be a write instruction to the WDCON SFR. Disable Watch dog CLR EA SETB WDWR CLR WDE SETB EA This sequence is necessary so that the WDCON SFR is protected from code execution upsets that might unintentionally modify this SFR. Interrupts should be disabled during this operation due to the consecutive instruction cycles. Table 72. Watchdog and Flash Protection Byte in Flash (Flash Address = 0x3FFA) Bit No. 7 Mnemonic WDPROT_PROTKY7 Default 1 7 to 0 PROTKY[7:0] 0xFF Description This bit holds the protection for the Watchdog timer and the 7th bit of the flash protection key. When this bit is cleared, the watchdog enable and event, selected by WDE and WDIR cannot be changed by user code. The watchdog configuration is then fixed to WDIR=0 and WDE=1. The watchdog timeout in PRE[3:0] can still be modified by user code. The value of this bit is also used to set the Flash protection key. If this bit is cleared to protect the watchdog, then the default value for the Flash protection key is 0x7F instead of 0xFF (see the Protecting the Flash section for more information on how to clear this bit). These bits hold the flash protection key. The content of this Flash address is compared to the Flash Protection Key SFR (PROTKY, 0xBB) when the protection is being set or changed. If the two values match, the new protection is written to the Flash addresses 0x3FFF to 0x3FFB. see the Protecting the Flash section for more information on how to configure these bits. Watchdog Timer Interrupt If the watchdog timer is not cleared within the watchdog timeout period, a system reset occurs unless the watchdog timer interrupt is enabled. The watchdog timer interrupt enable bit (WDIR) is located in the Watchdog Timer SFR (WDCON, 0xC0). Enabling the WDIR bit allows the program to examine the stack or other variables that may have led the program to execute inappropriate code. The watchdog timer interrupt also allows the watchdog to be used as a long interval timer. Note that WDIR is automatically configured as a high priority interrupt. This interrupt cannot be disabled by the EA bit in the IE register. Even if all of the other interrupts are disabled, the watchdog is kept active to watch over the program. Rev. PrA | Page 86 of 136 Preliminary Technical Data ADE7566/ADE7569 LCD DRIVER Using shared pins, the LCD module is capable of directly driving an LCD panel of 17 × 4 segments without comprising any ADE7566/ADE7569 functions. It is capable of driving LCDs with 2×, 3×, and 4× multiplexing. The LCD waveform voltages generated through internal charge pump circuitry support up to 5 V LCDs. An external resistor ladder for LCD waveform voltage generation is also supported. Each ADE7566/ADE7569 has an embedded LCD control circuit, driver, and power supply circuit. The LCD module is functional in all operating modes (see the Operating Modes section). LCD REGISTERS There are six LCD control registers that configure the driver for the specific type of LCD in the end system and set up the user display preferences. The LCD Configuration SFR (LCDCON, 0x95), LCD Configuration X SFR (LCDCONX, 0x9C), and LCD Configuration Y SFR (LCDCONY, 0xB1) contain general LCD driver configuration information including the LCD enable and reset, as well as the method of LCD voltage generation and multiplex level. The LCD Clock SFR (LCDCLK, 0x96) configures timing settings for LCD frame rate and blink rate. LCD pins are configured for LCD functionality in the LCD Segment Enable SFR (LCDSEGE, 0x97) and LCD Segment Enable 2 SFR (LCDSEGE2, 0xED). Table 73. LCD Driver SFRs SFR Address 0x95 0x96 0x97 0x9C 0xAC R/W R/W R/W R/W R/W R/W Name LCDCON LCDCLK LCDSEGE LCDCONX LCDPTR 0xAE 0xB1 0xED R/W R/W R/W LCDDAT LCDCONY LCDSEGE2 Description LCD Configuration SFR (see Table 74). LCD Clock (see Table 78). LCD Segment Enable (see Table 81). LCD Configuration X (see Table 75). LCD Pointer (see Table 82). LCD Data (see Table 83 LCD Configuration Y (see Table 77). LCD Segment Enable 2 (see Table 84). Table 74. LCD Configuration SFR (LCDCON, 0x95) Bit No. 7 6 5 Mnemonic LCDEN LCDRST BLINKEN Value 0 0 0 4 LCDPSM2 0 3 CLKSEL 0 2 BIAS 0 1 to 0 LMUX[1:0] 0 Description LCD Enable. If this bit is set, the LCD driver is enabled. LCD Data Registers Reset. If this bit is set, the LCD data registers are reset to zero. Blink Mode Enable Bit. If this bit is set, blink mode is enabled. The blink mode is configured by the BLKMOD[1:0] and BLKFREQ[1:0] bits in the LCD Clock SFR (LCDCLK, 0x96). Force LCD off when in PSM2 (Sleep Mode). LCDPSM2 Result 0 The LCD is disabled or enabled in PSM2 by LCDEN bit. 1 The LCD is disabled in PSM2 regardless of LCDEN setting. LCD Clock Selection. CLKSEL Result 0 fLCDCLK = 2048 Hz 1 fLCDCLK = 128 Hz Bias Mode. BIAS Result 0 1/2 1 1/3 LCD Multiplex Level. LMUX[1:0] Result 00 Reserved. 01 2× Multiplexing. FP27/COM3 is used as FP27. FP28/COM2 is used as FP28. 10 3× Mulitplexing. FP27/COM3 is used as FP27. FP28/COM2 is used as COM2. 11 4× Multiplexing. FP27/COM3 is used as COM3. FP28/COM2 is used as COM2. Rev. PrA | Page 87 of 136 ADE7566/ADE7569 Preliminary Technical Data Table 75. LCD Configuration X SFR (LCDCONX, 0x9C) Bit No. 7 6 Mnemonic Reserved EXTRES Default 0 0 5 to 0 BIASLVL[5:0] 0 Description Reserved. External Resistor Ladder Selection Bit. EXTRES Result 0 External resistor ladder is disabled. Charge pump is enabled. 1 External resistor ladder is enabled. Charge pump is disabled. Bias Level Selection Bits. See Table 76. Table 76. LCD Bias Voltage When Contrast Control Is Enabled BIASLVL[5] 0 VA (V) 1 ⎛ BLVL[4:0 ] ⎞ VREF × ⎜1 + ⎟ 31 ⎠ ⎝ VREF × BLVL[4:0 ] 31 VB V B = VA 1/2 Bias VC V C = 2 x VA VB V B = 2 x VA 1/3 Bias VC V C = 3 x VA V B = VA V C = 2 x VA V B = 2 x VA V C = 3 x VA Table 77. LCD Configuration Y SFR (LCDCONY, 0xB1) Bit No. 7 6 Mnemonic Reserved INV_LVL Default 0 0 5 to 2 1 Reserved UPDATEOVER 0 0 0 REFRESH 0 Description This bit should be kept cleared for proper operation. Frame Inversion Mode Enable Bit. If this bit is set, frames are inverted every other frame. If this bit is cleared, frames are not inverted. These bits should be kept cleared for proper operation. Update Finished Flag Bit. This bit is updated by LCD driver. When set, this bit indicates that the LCD memory has been updated and a new frame has begun. Refresh LCD Data Memory Bit. This bit should be set by user. When set, the LCD driver does not use the data in the LCD data registers to update display. The LCD data registers can be updated by the 8052. When cleared, the LCD driver uses the data in the LCD data registers to update display at the next frame. Table 78. LCD Clock SFR (LCDCLK, 0x96) Bit No. 7 to 6 Mnemonic BLKMOD[1:0] Default 0 5 to 4 BLKFREQ[1:0] 0 3 to 0 FD[3:0] 0 Description Blink Mode Clock Source Configuration Bits. BLKMOD[1:0] Result 00 The blink rate is controlled by software. The display is off. 01 The blink rate is controlled by software. The display is on. 10 The blink rate is 2 Hz 11 The blink rate is set by BLKFREQ[1:0] Blink Rate Configuration Bits. These bits control the LCD blink rate if BLKMOD[1:0] = 11 BLKFREQ[1:0] Result (Blink Rate) 00 1 Hz 01 1/2 Hz 10 1/3 Hz 11 1/4 Hz LCD Frame Rate Selection Bits. See Table 79 and Table 80. Rev. PrA | Page 88 of 136 Preliminary Technical Data ADE7566/ADE7569 Table 79. LCD Frame Rate Selection for fLCDCLK = 2048 Hz (LCDCON[3]=0) FD3 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 FD2 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 FD1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 FD0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 2× Multiplexing fLCD (Hz) Frame Rate (Hz) 256 128 1 170.7 85.3 128 64 102.4 51.2 85.3 42.7 73.1 36.6 64 32 56.9 28.5 51.2 25.6 46.5 23.25 42.7 21.35 39.4 19.7 36.6 18.3 34.1 17.05 32 16 16 8 3× Multiplexing fLCD (Hz) Frame Rate (Hz) 341.3 170.71 341.3 113.81 256 85.3 204.8 68.3 170.7 56.9 146.3 48.8 128 42.7 113.8 37.9 102.4 34.1 93.1 31 85.3 28.4 78.8 26.3 73.1 24.4 68.3 22.8 64 21.3 32 10.7 4× Multiplexing fLCD (Hz) Frame Rate (Hz) 512 1281 341.3 85.3 256 64 204.8 51.2 170.7 42.7 146.3 36.6 128 32 113.8 28.5 102.4 25.6 93.1 23.25 85.3 21.35 78.8 19.7 73.1 18.3 68.3 17.05 64 16 32 8 Not within the range of typical LCD frame rates. Table 80. LCD Frame Rate Selection for fLCDCLK = 128 Hz (LCDCON[3]=1) FD3 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 FD2 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 FD1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 FD0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 2× Multiplexing fLCD (Hz) Frame Rate (Hz) 32 16 1 21.3 10.6 16 8 16 8 16 8 16 8 16 8 16 8 16 8 16 8 16 8 16 8 16 8 16 8 128 64 64 32 3× Multiplexing fLCD (Hz) Frame Rate (Hz) 32 10.7 32 10.7 32 10.7 32 10.7 32 10.7 32 10.7 32 10.7 32 10.7 32 10.7 32 10.7 32 10.7 32 10.7 32 10.7 32 10.7 128 42.7 64 21.3 4× Multiplexing fLCD (Hz) Frame Rate (Hz) 32 8 32 8 32 8 32 8 32 8 32 8 32 8 32 8 32 8 32 8 32 8 32 8 32 8 32 8 128 32 64 16 Table 81. LCD Segment Enable SFR (LCDSEGE, 0x97) Bit No. 7 6 5 4 3 2 1 to 0 Mnemonic FP25EN FP24EN FP23EN FP22EN FP21EN FP20EN Reserved Default 0 0 0 0 0 0 0 Description FP25 Function Select Bit. 0 = General-Purpose I/O, 1 = LCD function. FP24 Function Select Bit. 0 = General-Purpose I/O, 1 = LCD function. FP23 Function Select Bit. 0 = General-Purpose I/O, 1 = LCD function. FP22 Function Select Bit. 0 = General-Purpose I/O, 1 = LCD function. FP21 Function Select Bit. 0 = General-Purpose I/O, 1 = LCD function. FP20 Function Select Bit. 0 = General-Purpose I/O, 1 = LCD function. These bits should be left at 0 for proper operation Rev. PrA | Page 89 of 136 ADE7566/ADE7569 Preliminary Technical Data Table 82. LCD Pointer SFR (LCDPTR, 0xAC) Bit No. 7 Mnemonic W/R Default 0 6 5 to 0 RESERVED ADDRESS 0 0 Description Read or Write LCD Bit. If this bit is set (1), the data in LCDDAT is written to the address indicated by the LCDPTR[5:0] bits. Reserved. LCD Memory Address (see Table 85). Table 83. LCD Data SFR (LCDDAT, 0xAE) Bit No. 7 to 0 Mnemonic LCDDATA Default 0 Description Data to be written into or read out of the LCD Memory SFRs. Table 84. LCD Segment Enable 2 SFR (LCDSEGE2, 0xED) Bit No. 7 to 4 3 2 1 0 1 Mnemonic RESERVED FP19EN FP18EN FP17EN FP16EN Default 0 0 0 0 0 Description Reserved. FP19 Function Select Bit. 0 = General-Purpose I/O, 1 = LCD function. FP18 Function Select Bit. 0 = General-Purpose I/O, 1 = LCD function. FP17 Function Select Bit. 0 = General-Purpose I/O, 1 = LCD function. FP16 Function Select Bit. 0 = General-Purpose I/O, 1 = LCD function. Not within the range of typical LCD frame rates. LCD SETUP LCD TIMING AND WAVEFORMS The LCD Configuration SFR (LCDCON, 0x95) configures the LCD module to drive the type of LCD in the user end system. The BIAS and LMUX[1:0] bits in this SFR should be set according to the LCD specifications. An LCD segment acts like a capacitor that is charged and discharged at a certain rate. This rate, the refresh rate, determines the visual characteristics of the LCD. A slow refresh rate results in the LCD blinking on and off in between refreshes. A fast refresh rate presents a screen that appears to be continuously lit up. In addition, a faster refresh rate consumes more power. The COM2/FP28 and COM3/FP27 pins default to LCD segment lines. Selecting the 3× multiplex level in the LCD Configuration SFR (LCDCON, 0x95) by setting LMUX[1:0] to 2d changes the FP28 pin functionality to COM2. The 4× multiplex level selection, LMUX[1:0] = 3d, changes the FP28 pin functionality to COM2 and the FP27 pin functionality to COM3. LCD segments FP0 to FP15 and FP26 are enabled by default. Additional pins are selected for LCD functionality in the LCD Segment Enable SFR (LCDSEGE, 0x97) and LCD Segment Enable 2 SFR (LCDSEGE2, 0xED) where there are individual enable bits for segment pins FP16 to FP25. The LCD pins do not have to be enabled sequentially. For example, if the alternate function of FP23, the Timer 2 input, is required, any of the other shared pins, FP16 to FP25, can be enabled instead. The Display Element Control section contains details about setting up the LCD data memory to turn individual LCD segments on and off. Setting the LCDRST bit in the LCD Configuration SFR (LCDCON, 0x95) resets the LCD data memory to its default (0). A power-on reset also clears the LCD data memory. The frame rate, or refresh rate, for the LCD module is derived from the LCD clock, fLCDCLK. The LCD clock is selected as 2048 Hz or 128 Hz by the CLKSEL bit in the LCD Configuration SFR (LCDCON, 0x95). The minimum refresh rate needed for the LCD to appear solid (without blinking) is independent of the multiplex level. The LCD waveform frequency, fLCD, is the frequency at which the LCD switches which common line is active. Thus, the LCD waveform frequency depends heavily on the multiplex level. The frame rate and LCD waveform frequency are set by fLCDCLK, the multiplex level, and the FD[3:0] frame rate selection bits in the LCD Clock SFR (LCDCLK, 0x96). The LCD module provides 16 different frame rates for fLCDCLK = 2048 Hz, ranging from 8 Hz to 128 Hz for an LCD with 4× multiplexing. Fewer options are available with fLCDCLK = 128 Hz, ranging from 8 Hz to 32 Hz for a 4× multiplexed LCD. The 128 Hz clock is beneficial for battery operation because it consumes less power than the 2048 Hz clock. The frame rate is set by the FD[3:0] bits in the LCD Clock SFR (LCDCLK, 0x96); see Table 79 and Table 80. The LCD waveform is inverted at twice the LCD waveform frequency, fLCD. This way, each frame has an average DC offset of zero. ADC offset degrades the lifetime and performance of the LCD. Rev. PrA | Page 90 of 136 Preliminary Technical Data ADE7566/ADE7569 BLINK MODE Blink mode is enabled by setting the BLINKEN bit in the LCD Configuration SFR (LCDCON, 0x95). This mode is used to alternate between the LCD on state and LCD off state so that the LCD screen appears to blink. There are two blinking modes: a software controlled blink mode and an automatic blink mode. Software Controlled Blink Mode The LCD blink rate can be controlled by user code with the BLKMOD[1:0] bits in the LCD Clock SFR (LCDCLK, 0x96) by toggling the bits to turn the display on and off at a rate determined by the MCU code. Automatic Blink Mode There are five blink rates available if the RTC peripheral is enabled by setting the RTCEN bit in the RTC Configuration SFR (TIMECON, 0xA1). These blink rates are selected by the BLKMOD[1:0] and BLKFREQ[1:0] bits in the LCD Clock SFR (LCDCLK, 0x96); see Table 78. DISPLAY ELEMENT CONTROL A bank of 15 bytes of data memory located in the LCD module controls the on or off state of each LCD segment. The LCD data memory is stored in Address 0 through Address 14 in the LCD module. Each byte configures the on and off states of two segment lines. The LSBs store the state of the even numbered segment lines, and the MSBs store the state of the odd numbered segment lines. For example, LCD Data Address 0 refers to segment lines one and zero (see Table 85). Note that the LCD data memory is maintained in PSM2 operating mode. The LCD data memory is accessed indirectly through the LCD Pointer SFR (LCDPTR, 0xAC)and LCD Data SFR (LCDDAT, 0xAE). Moving a value to the LCD Pointer SFR (LCDPTR, 0xAC) selects the LCD data byte to be accessed and initiates a read or write operation (see Table 82). Writing to LCD Data Registers To update the LCD data memory, first set the LSB of the LCD Configuration Y SFR (LCDCONY, 0xB1) to freeze the data being displayed on the LCD while updating it. Then, move the data to the LCD Data SFR (LCDDAT, 0xAE) prior to accessing the LCD Pointer SFR (LCDPTR, 0xAC). When the MSB of the LCD Pointer SFR (LCDPTR, 0xAC) is set, the content of the LCD Data SFR (LCDDAT, 0xAE) is transferred to the internal LCD data memory designated by the address in the LCD Pointer SFR (LCDPTR, 0xAC). Clear the LSB of the LCD Configuration Y SFR (LCDCONY, 0xB1) when all of the data memory has been updated to allow the use of the new LCD setup for display. To update the segments attached to the FP10 and FP11 pins, use the following sample 8052 code: ORL LCDCONY,#01h the data MOV LCDDATA,#FFh MOV LCDPTR,#80h OR 05h ANL LCDCONY,#0FEh ;start updating ;update finished Reading LCD Data Registers When the MSB of the LCD Pointer SFR (LCDPTR, 0xAC) is cleared, the content of the LCD data memory address designated by LCDPTR is transferred to the LCD Data SFR (LCDDAT, 0xAE). Sample 8052 code to read the contents of LCD Data Memory Address 0x07, which holds the on and off state of the segments attached to FP14 and FP15, is shown below. MOV LCDPTR,#NOT 80h AND 07h MOV R1, LCDDATA Table 85. LCD Data Memory Accessed Indirectly Through LCD Pointer SFR (LCDPTR, 0xAC) and LCD Data SFR (LCDDAT, 0xAE) 1, 2 LCD Memory Address 0x0E 0x0D 0x0C 0x0B 0x0A 0x09 0x08 0x07 0x06 0x05 0x04 0x03 0x02 0x01 0x00 1 2 COM3 COM2 COM1 COM0 FP27 FP25 FP23 FP21 FP19 FP17 FP15 FP13 FP11 FP9 FP7 FP5 FP3 FP1 FP27 FP25 FP23 FP21 FP19 FP17 FP15 FP13 FP11 FP9 FP7 FP5 FP3 FP1 FP27 FP25 FP23 FP21 FP19 FP17 FP15 FP13 FP11 FP9 FP7 FP5 FP3 FP1 FP27 FP25 FP23 FP21 FP19 FP17 FP15 FP13 FP11 FP9 FP7 FP5 FP3 FP1 COM# designates the common lines. FP# designates the segment lines. Rev. PrA | Page 91 of 136 COM3 FP28 FP26 FP24 FP22 FP20 FP18 FP16 FP14 FP12 FP10 FP8 FP6 FP4 FP2 FP0 COM2 FP28 FP26 FP24 FP22 FP20 FP18 FP16 FP14 FP12 FP10 FP8 FP6 FP4 FP2 FP0 COM1 FP28 FP26 FP24 FP22 FP20 FP18 FP16 FP14 FP12 FP10 FP8 FP6 FP4 FP2 FP0 COM0 FP28 FP26 FP24 FP22 FP20 FP18 FP16 FP14 FP12 FP10 FP8 FP6 FP4 FP2 FP0 ADE7566/ADE7569 Preliminary Technical Data The ADE7566/ADE7569 provide two ways to generate the LCD waveform voltage levels. The on-chip charge pump option can generate 5 V. This makes it possible to use 5 V LCDs with the 3.3 V ADE7566/ADE7569. There is also an option to use an external resistor ladder with a 3.3 V LCD. The EXTRES bit in the LCD Configuration X SFR (LCDCONX, 0x9C) selects the resistor ladder or charge pump option. cleared by default for charge pump voltage generation, but can be set to enable an external resistor ladder. Charge Pump Voltage generation through the charge pump requires external capacitors to store charge. The external connections to LCDVA, LCDVB, and LCDVC, as well as LCDVP1 and LCDVP2, are shown in Figure 76. LCDVC When selecting how to generate the LCD waveform voltages, the following should be considered: Lifetime performance power consumption Contrast control 470nF LCDVB 470nF LCDVA 470nF LCDVP1 100nF LCDVP2 Lifetime Performance Power Consumption Figure 76. External Circuitry for Charge Pump Option In most LCDs, a high amount of current is required when the LCD waveforms change state. The external resistor ladder option draws a constant amount of current, whereas the charge pump circuitry allows dynamic current consumption. If the LCD module is used with the internal charge pump option when the display is disabled, the voltage generation is disabled, so that no power is consumed by the LCD function. This feature results in significant power savings if the display is turned off during battery operation. Contrast Control The electrical characteristics of the liquid in the LCD change over temperature. This requires adjustments in the LCD waveform voltages to ensure a readable display. An added benefit of the internal charge pump voltage generation is a configurable bias voltage that can be compensated over temperature and supply to maintain contrast on the LCD. These compensations can be performed based on the ADE7566/ADE7569 temperature and supply voltage measurements (see the Temperature, Battery, and Supply Voltage Measurements section). This dynamic contrast control is not easily implemented with external resistor ladder voltage generation. The LCD bias voltage sets the contrast of the display when the charge pump provides the LCD waveform voltages. The ADE7566/ ADE7569 provide 64 bias levels selected by the BIASLVL bits in the LCD Configuration X SFR (LCDCONX, 0x9C). The voltage level on LCDVA, LCDVB and LCDVC depend on the internal voltage reference value (VREF), BIASLVL[5:0] selection, and the biasing selected as described in Table 76. Lifetime Performance DC offset on a segment degrades its performance over time. The voltages generated through the internal charge pump switch faster than those generated by the external resistor ladder, reducing the likelihood of a dc voltage being applied to a segment and increasing the lifetime of the LCD. LCD EXTERNAL CIRCUITRY The voltage generation selection is made by bit EXTRES in the LCD Configuration X SFR (LCDCONX, 0x9C). This bit is External Resistor Ladder To enable the external resistor ladder option, set the EXTRES bit in the LCD Configuration X SFR (LCDCONX, 0x9C). When EXTRES = 1, the LCD waveform voltages are supplied by the external resistor ladder. Because the LCD voltages are not being generated on-chip, the LCD bias compensation implemented to maintain contrast over temperature and supply is not possible. The external circuitry needed for the resistor ladder option is shown in Figure 77. The resistors required should be in the range of 10 kΩ to 100 kΩ and based on the current required by the LCD being used. LCDVC LCDVB LCD WAVEFORM CIRCUITRY LCDVA LCDVP1 LCDVP2 06353-066 • • CHARGE PUMP AND LCD WAVEFORM CIRCUITRY 06353-065 VOLTAGE GENERATION Figure 77. External Circuitry for External Resistor Ladder Option LCD FUNCTION IN PSM2 The LCDPSM2 and LCDEN bits in the LCD Configuration SFR (LCDCON, 0x95) control LCD functionality in the PSM2 operating mode (see Table 86). Table 86. LCDPSM2 0 0 1 LCDEN 0 1 X Result The display is off in PSM2. The display is on in PSM2. The display is off in PSM2. Note that the LCD configuration and data memory is retained when the display is turned off. Example LCD Setup An example to set up the LCD peripheral for a specific LCD is described in this section with the following parameters: • • • Type of LCD: 5 V, 4× multiplexed with 1/3 bias, 96 segment Voltage generation: internal charge pump Refresh rate: 64 Hz Rev. PrA | Page 92 of 136 Preliminary Technical Data ADE7566/ADE7569 A 96 segment LCD with 4× multiplexing requires 96/4 = 24 segment lines. Sixteen pins, FP0 to FP15, are automatically dedicated for use as LCD segments. Eight more pins must be chosen for the LCD function. Because the LCD has 4× multiplexing, all four common lines are used. As a result, COM2/FP28 and COM3/FP27 cannot be utilized as segment lines. Based on the alternate functions of the pins used for FP16 through FP25, FP16 to F23 are chosen for the seven remaining segment lines. The LCD is setup with the following 8052 code: These pins are enabled for LCD functionality in the LCD Segment Enable SFR (LCDSEGE, 0x97) and LCD Segment Enable 2 SFR (LCDSEGE2, 0xED). To determine contrast setting for this 5 V LCD, Table 76 shows the BIASLVL[5:0] setting that corresponds to a VC of 5 V in 1/3 bias mode. The nominal bias level setting for this LCD is BIASLVL[5:0] = [111111]. ; setup LCD pins to have LCD functionality MOV LCDSEG, # FP20EN+FP21EN+FP22EN+FP23EN MOV LCDSEGX, #FP16EN+FP17EN+FP18EN+FP19EN ; setup LCDCON for fLCDCLK=2048Hz, 1/3 bias and 4x multiplexing MOV LCDCON, #BIAS+LMUX1+LMUX0 ; setup LCDCONX for charge pump and BIASLVL[1110111] MOV LCDCONX, #BIASLVL5+BIASLVL4+BIASLVL3+ BIASLVL2+BIASLVL1+BIASLVL0 ; set up refresh rate for 64Hz with fLCDCLK=2048Hz MOV LCDCLK, #FD3+FD2+FD1+FD0 ; set up LCD data registers with data to be displayed using ; LCDPTR and LCDDATA registers ; turn all segments on FP25 ON and FP26 OFF ORL LCDCONY,#01h ; start data memory refresh MOV LCDDAT, #F0H MOV LCDPTR, #80h OR 0DH ANL LCDCONY,#0FEh ; end of data memory refresh ORL LCDCON,#LCDEN ; enable LCD To setup the same 3.3 V LCD for use with an external resistor ladder: ; setup LCD pins to have LCD functionality MOV LCDSEG, #FP20EN+FP21EN+FP22EN+FP23EN MOV LCDSEGX, #FP16EN+FP17EN+FP18EN+FP19EN ; setup LCDCON for fLCDCLK=2048Hz, 1/3 bias and 4x multiplexing MOV LCDCON, #BIAS+LMUX1+LMUX0 ; setup LCDCONX for external resistor ladder MOV LCDCONX, #EXTRES ; set up refresh rate for 64Hz with fLCDCLK=2048Hz MOV LCDCLK, #FD3+FD2+FD1+FD0 ; set up LCD data registers with data to be displayed using ; LCDPTR and LCDDATA registers ; turn all segments on FP25 ON and FP26 OFF ORL LCDCONY,#01h ; start data memory refresh MOV LCDDAT, #F0H MOV LCDPTR, #80h OR 0DH ANL LCDCONY,#0FEh ; end of data memory refresh ORL LCDCON,#LCDEN ; enable LCD Rev. PrA | Page 93 of 136 ADE7566/ADE7569 Preliminary Technical Data FLASH MEMORY OVERVIEW Flash memory is a type of nonvolatile memory that is in-circuit programmable. The default state of a byte of flash memory is 0xFF (erased). When a byte of flash memory is programmed, the required bits change from 1 to 0. The flash memory must be erased to turn the 0s back to 1s. However, a byte of flash memory cannot be erased individually. The entire segment, or page, of flash memory that contains the byte must be erased. The ADE7566/ADE7569 provide 16 kB of flash program/ information memory. This memory is segmented into 32 pages of 512 bytes each. Therefore, to reprogram 1 byte of flash memory, the 511 bytes in that page must be erased. The flash memory can be erased by page or all at once in a mass erase. There is a command to verify that a flash write operation has completed successfully. The ADE7566/ADE7569 flash memory controller also offers configurable flash memory protection. The 16 kB of flash memory are provided on-chip to facilitate code execution without any external discrete ROM device requirements. The program memory can be programmed incircuit, using the serial download mode provided or using conventional third party memory programmers. In reliability qualification, every byte in both the program and data Flash/EE memory is cycled from 0x00 to 0xFF until a first fail is recorded, signifying the endurance limit of the on-chip Flash/EE memory. As indicated in the Specifications section, the ADE7566/ADE7569 flash memory endurance qualification has been carried out in accordance with JEDEC Retention Lifetime Specification (A117) over the industrial temperature range of −40°C, +25°C, and +85°C. The results allow the specification of a minimum endurance figure over supply and temperature of 100,000 cycles, with a minimum endurance figure of 20,000 cycles of operation at 25°C. Retention is the ability of the flash memory to retain its programmed data over time. Again, the part have been qualified in accordance with the formal JEDEC Retention Lifetime Specification (A117) at a specific junction temperature (TJ = 55°C). As part of this qualification procedure, the flash memory is cycled to its specified endurance limit before data retention is characterized. This means that the flash memory is guaranteed to retain its data for its full specified retention lifetime every time the flash memory is reprogrammed. It should also be noted that retention lifetime, based on an activation energy of 0.6 eV, derates with TJ as shown in Figure 78. Flash/EE Memory Reliability 300 Endurance quantifies the ability of the Flash/EE memory to be cycled through many program, read, and erase cycles. In real terms, a single endurance cycle is composed of four independent, sequential events. ANALOG DEVICES SPECIFICATION 100 YEARS MIN. AT TJ = 55°C 200 150 100 50 Initial page erase sequence. Read/verify sequence. Byte program sequence. Second read/verify sequence. 0 40 50 60 70 90 80 TJ JUNCTION TEMPERATURE (°C) 100 Figure 78. Flash/EE Memory Data Retention Rev. PrA | Page 94 of 136 110 06353-067 1. 2. 3. 4. 250 RETENTION (Years) The flash memory arrays on the ADE7566/ADE7569 are fully qualified for two key Flash/EE memory characteristics: Flash/EE memory cycling endurance and Flash/EE memory data retention. Preliminary Technical Data ADE7566/ADE7569 FLASH MEMORY ORGANIZATION The 16 kB of flash memory provided by the ADE7566/ADE7569 are segmented into 32 pages of 512 bytes each. It is up to the user to decide which flash memory to allocate for data memory. It is recommended that each page be dedicated solely to program memory or data memory. Doing so prevents the program counter from being loaded with data memory instead of an opcode from the program memory. It also prevents program memory used to update a byte of data memory from being erased. 0x3C00 0x3BFF 0x3A00 0x39FF 0x3800 0x37FF 0x3600 0x35FF 0x3400 0x33FF 0x3200 0x31FF 0x3000 0x2FFF 0x2E00 0x2DFF 0x2C00 0x2BFF 0x2A00 0x29FF 0x2800 0x27FF 0x2600 0x25FF 0x2400 0x23FF 0x2200 0x21FF 0x2000 PAGE 30 PAGE 29 READ PROTECT BIT 7 0x1800 0x17FF PAGE 27 PAGE 25 READ PROTECT BIT 6 0x0E00 0x0DFF READ PROTECT BIT 5 0x0800 0x07FF PAGE 19 PAGE 17 PAGE 16 0x0C00 0x0BFF 0x0A00 0x09FF PAGE 20 PAGE 18 0x1400 0x13FF 0x1000 0x0FFF PAGE 23 PAGE 21 0x1600 0x15FF 0x1200 0x11FF PAGE 24 PAGE 22 0x1C00 0x1BFF 0x1A00 0x19FF PAGE 28 PAGE 26 0x1E00 0x1DFF 0x0600 0x05FF READ PROTECT BIT 4 0x0400 0x03FF 0x0200 0x01FF 0x0000 PAGE 15 PAGE 14 PAGE 13 READ PROTECT BIT 3 USING THE FLASH MEMORY The 16 kB of flash memory are configured as 32 pages, each of 512 bytes. As with the other ADE7566/ADE7569 peripherals, the interface to this memory space is via a group of registers mapped in the SFR space (see Table 87). A data register, EDATA, holds the byte of data to be accessed. The byte of flash memory is addressed via the EADRH and EADRL registers. Finally, ECON is an 8-bit control register that can be written to with one of seven flash memory access commands to trigger various read, write, erase, and verify functions. PAGE 12 Table 87. The Flash SFRs PAGE 11 PAGE 10 PAGE 9 READ PROTECT BIT 2 PAGE 8 SFR ECON FLSHKY PROTKY Address 0xB9 0xBA 0xBB Default 0x00 0xFF 0xFF Bit Addressable No No No EDATA PROTB0 0xBC 0xBD 0x00 0xFF No No PROTB1 0xBE 0xFF No PROTR 0xBF 0xFF No EADRL 0xC6 0x00 No EADRH 0xC7 0x00 No PAGE 7 PAGE 6 PAGE 5 READ PROTECT BIT 1 PAGE 4 PAGE 3 PAGE 2 PAGE 1 READ PROTECT BIT 0 PAGE 0 CONTAINS PROTECTION SETTINGS. Figure 79. Flash Memory Organization The flash memory can be protected from read or write/erase (W/E) access. The protection is implemented in part of the last page of the flash memory, Page 31. Four of the bytes from this page are used to set up write/erase protection for each page. Another byte is used for configuring read protection of the flash memory. The read protection is selected for groups of four pages. Finally, one byte is used to store the key required for modifying the protection scheme. The last page of flash memory must be write/erase protected for any flash protection to be active. The implication of write/erase protecting the last page is that the content of the 506 bytes in this page that are available to the user must not change. Thus, if code protection is enabled, it is recommended to use this last page for program memory only (if the firmware does not need to be updated in the field). If the firmware must be protected and can be updated at a future date, the last page should be used only for constants utilized by the program code that do not need to be read during emulation or debug. Description Flash Control. Flash Key. Flash Protection Key. Flash Data. Flash W/E Protection 0. Flash W/E Protection 1. Flash Read Protection. Flash Low Address. Flash High Address. Figure 80 demonstrates the steps required for access to the flash memory. ECON COMMAND ADDRESS EADRH EADRL FLASH PROTECTION KEY FLSHKY ADDRESS DECODER PROTECTION DECODER ACCESS ALLOWED? FLSHKY = 0 × 3B? TRUE: ACCESS ALLOWED ECON = 0 FALSE: ACCESS DENIED ECON = 1 Figure 80. Flash Memory Read/Write/Erase Protection Block Diagram ECON—Flash/EE Memory Control SFR Programming flash memory is done through the Flash Control SFR (ECON, 0xB9). This SFR allows the user to read, write, erase, or verify the 16 kB of flash memory. As a method of security, a key must be written to the FLSHKY register to initiate any user access to the flash memory. Upon completion of the flash memory operation, the FLSHKY register is reset so that it must be written to prior to another flash memory operation. Requiring the key to be set before an access to the flash memory decreases the likelihood of user code or data being overwritten by a program inappropriately modified during its execution. Rev. PrA | Page 95 of 136 06353-069 0x3E00 0x3DFF PAGE 31 06353-068 0x1FFF 0x3FFF Therefore, Page 0 through Page 30 are for general program and data memory use. It is recommended that Page 31 be used for constants or code that do not need to be updated. Note that the last 6 bytes of Page 31 are reserved for protecting the flash memory. ADE7566/ADE7569 Preliminary Technical Data The program counter (PC) is held on the instruction where the ECON register is written to until the flash memory controller is done performing the requested operation. Then, the PC increments to continue with the next instruction. Any interrupt requests that occur while the flash controller is performing an operation are not handled until the flash operation is complete. All peripherals, such as timers and counters, continue to operate as configured throughout the flash memory access. Table 88. Flash Control SFR (ECON, 0xB9) Bit No. 7 to 0 Mnemonic ECON Value 1 2 3 4 5 8 Description Write Byte. The value in EDATA is written to the flash memory at the page address given by EADRH and EADRL. Note that the byte being addressed must be pre-erased. Erase Page. A 512-byte page of flash memory address is erased. The page is selected by the address in EADRH/EADRL. Any address in the page can be written to EADRH/EADRL to select it for erasure. Erase All. All 16 kB of the flash memory are erased. Note that this command is used during serial and parallel download modes but should not be executed by user code. Read Byte. The byte in the flash memory addressed by EADRH/EADRL is read into EDATA. Erase Page and Write Byte. The page that holds the byte addressed by EADRH/EADRL is erased. Data in EDATA is then written to the byte of flash memory addressed by EADRH/EADRL. Protect Code (see the Protecting the Flash section). Table 89. Flash Key SFR (FLSHKY, 0xBA) Bit No. 7 to 0 Mnemonic FLSHKY Default 0xFF Description The content of this SFR is compared to the flash key, 0x3B. If the two values match, the next ECON operation is allowed (see the Protecting the Flash section). Table 90. Flash Protection Key SFR (PROTKY, 0xBB) Bit No. 7 to 0 Mnemonic PROTKY Default 0xFF Description The content of this SFR is compared to the flash memory location at address 0x3FFA. If the two values match, the update of the write/erase and read protection set up is allowed (see the Protecting the Flash section). If the protection key in the flash is 0xFF, the PROTKY SFR value is not used for comparison. This SFR is also used to write the protection key in the flash. This is done by writing the desired value in PROTKY and by writing 0x08 in the ECON SFR. This operation can only be done once. Table 91. Flash Data SFR (EDATA, 0xBC) Bit No. 7 to 0 Mnemonic EDATA Default 0 Description Flash Pointer Data. Table 92. Flash Write/Erase Protection 0 SFR (PROTB0, 0xBD) Bit No. 7 to 0 Mnemonic PROTB0 Default 0xFF Description This SFR is used to write the write/erase protection bits for Page 0 to Page 7 of the flash memory (see the Protecting the Flash section). Clearing the bits enables the protection. PROTB0.7 PROTB0.6 PROTB0.5 PROTB0.4 PROTB0.3 PROTB0.2 PROTB0.1 PROTB0.0 Page 7 Page 6 Page 5 Page 4 Page 3 Page 2 Page 1 Page 0 Table 93. Flash Write/Erase Protection 1 SFR (PROTB1, 0xBE) Bit No. 7 to 0 Mnemonic PROTB1 Default 0xFF Description This SFR is used to write the write/erase protection bits for Page 8 to Page15 of the flash memory (see the Protecting the Flash section). Clearing the bits enables the protection. PROTB1.7 PROTB1.6 PROTB1.5 PROTB1.4 PROTB1.3 PROTB1.2 PROTB1.1 PROTB1.0 Page 15 Page 14 Page 13 Page 12 Page 11 Page 10 Page 9 Page 8 Rev. PrA | Page 96 of 136 Preliminary Technical Data ADE7566/ADE7569 Table 94. Flash Read Protection SFR (PROTR, 0xBF) Bit No. 7 to 0 Mnemonic PROTR Default 0xFF Description This SFR is used to write the read protection bits for Page 0 to Page 31 of the flash memory (see the Protecting the Flash section). Clearing the bits enables the protection. PROTR.7 PROTR.6 PROTR.5 PROTR.4 PROTR.3 PROTR.2 PROTR.1 Page 28 to Page 24 to Page 20 to Page 16 to Page 12 to Page 8 to Page 4 to Page 31 Page 27 Page 23 Page 19 Page 15 Page 11 Page 7 PROTR.0 Page 0 to Page 3 Table 95. Flash Low Byte Address SFR (EADRL, 0xC6) Bit No. 7 to 0 Mnemonic EADRL Default 0 Description Flash Pointer Low Byte Address. This SFR is also used to write the write/erase protection bits for Page 16 to Page 23 of the flash memory (see the Protecting the Flash section). Clearing the bits enables the protection. EADRL.7 EADRL.6 EADRL.5 EADRL.4 EADRL.3 EADRL.2 EADRL.1 EADRL.0 Page 23 Page 22 Page 21 Page 20 Page 19 Page 18 Page 17 Page 16 Table 96. Flash High Byte Address SFR (EADRH, 0xC7) Bit No. 7 to 0 Mnemonic EADRH Default 0 Description Flash Pointer High Byte Address. This SFR is also used to write the write/erase protection bits for Page 24 to Page 31 of the flash memory (see the Protecting the Flash section). Clearing the bits enables the protection. EADRH.7 EADRH.6 EADRH.5 EADRH.4 EADRH.3 EADRH.2 EADRH.1 EADRH.0 Page 31 Page 30 Page 29 Page 28 Page 27 Page 26 Page 25 Page 24 Flash Functions Erase All Sample 8051 code is provided in this section to demonstrate how to use the flash functions. For these examples, the byte of flash memory 0x3C00 is accessed. Erase all of the 16 kB flash memory. MOV FLSHKY, #3Bh key. ; Write Flash security Write Byte MOV ECON, #03H ; Erase All Write 0xF3 into flash memory byte 0x3C00. Read Byte MOV EDATA, #F3h ; Data to be written Read flash memory byte 0x3C00. MOV EADRH, #3Ch ; Setup byte address MOV EADRH, #3Ch MOV EADRL, #00h ; Setup byte address MOV EADRL, #00h MOV FLSHKY, #3Bh key. ; Write Flash security MOV FLSHKY, #3Bh key. ; Write Flash security MOV ECON, #01H ; Write Byte MOV ECON, #04H ; Read Byte Erase Page ; Data is ready in EDATA register Erase the page containing flash memory byte 0x3C00. Erase Page and Write Byte MOV EADRH, #3Ch byte address ; Select page through Erase the page containing flash memory byte 0x3C00 and then write 0xF3 to that address. Note that the other 511 bytes in this page are erased. MOV FLSHKY, #3Bh key. ; Write Flash security MOV EDATA, #F3h ; Data to be written MOV EADRH, #3Ch ; Setup byte address MOV ECON, #02H ; Erase Page MOV EADRL, #00h MOV EADRL, #00h MOV FLSHKY, #3Bh key. ; Write Flash security MOV ECON, #05H write byte ; Erase page and then Rev. PrA | Page 97 of 136 ADE7566/ADE7569 Preliminary Technical Data PROTECTING THE FLASH The sequence for writing the protection bits is as follows: Two forms of protection are offered for this flash memory: read protection and write/erase protection. The read protection ensures that any pages that are read protected are not able to be read by the end user. The write protection ensures that the flash memory cannot be erased or written over. This protects the end system from tampering and can prevent the code from being overwritten in the event of a unexpected disruption of the normal execution of the program. 1. Write/erase protection is individually selectable for all of the 32 pages. Read protection is selected in groups of 4 pages (see Figure 79 for the groupings). The protection bits are stored in the last flash memory locations, Address 0x3FFA through Address 0x3FFF (see Figure 81); 4 bytes are reserved for write/erase protection, 1 byte is for read protection, and another byte sets the protection security key. The user must enable read and write/erase protection for the last page for the entire protection scheme to work. 2. 3. Note that the read protection does not prevent MOVC commands to be executed within the code. There is an additional layer of protection offered by a protection security key. The user can set up this security key so that the protection scheme cannot be changed without this key. Once the protection key has been configured, it cannot be modified. 4. Set up the EADRH, EADRL, PROTB1, and PROTB0 registers with the write/erase protection bits. When erased, the protection bits default to 1 (like any other bit of flash memory). The default protection setting is for no protection. To enable protection, write a 0 to the bits corresponding to the pages that should be protected. Set up the PROTR register with the read protection bits. Note that every read protection bit protects four pages. To enable the read protection bit, write a 0 to the bits that should be read protected. To enable the protection key, write to the PROTKY register. If enabled, the protection key is required to modify the protection scheme. The protection key, Flash Memory Address 0x3FFA, defaults to 0xFF; if the PROTKY register is not written to, it remains 0xFF. If the protection key is written to, the PROTKY register must be written with this value every time the protection functionality is accessed. Note that once the protection key is configured, it cannot be modified. Also note that the most significant bit of Address 0x3FFA is used to enable a lock mechanism for the watchdog settings (see the Watchdog Timer section for more information). Run the protection command by writing 0x0 to the ECON register. Reset the chip to activate the new protection. Enabling Flash Protection by Code 5. The protection bytes in the flash memory can be programmed using flash controller command and programming ECON to 0x08. In this case, the EADRH, EADRL, PROTB1, and PROTB0 bytes are used to store the data to be written to the 32 bits of write protection. Note that the EADRH and EADRL registers are not used as data pointers here, but to store write protection data. To enable read and write/erase protection for the last page only, use the following 8051 code. Writing the flash protection command to the ECON register initiates programming the protection bits in the flash. 0x3FFF WP 30 WP 29 WP 28 WP 27 WP 26 WP 25 WP 24 MOV EADRL, #0FFH 0x3FFE WP 23 WP 22 WP 21 WP 20 WP 19 WP 18 WP 17 WP 16 MOV PROTB1, #FFH 0x3FFD WP 15 WP 14 WP 13 WP 12 WP 11 WP 10 WP 9 WP 8 0x3FFC WP 7 WP 6 WP 5 WP 4 WP 3 WP 2 WP 1 WP 0 RP RP RP RP RP RP 0x3FFB 31–28 27–24 23–20 19–16 15–12 11–8 RP 7–4 RP 3–0 EADRL PROTB1 PROTB0 WDOG 0x3FFA LOCK 0x3FF9 MOV PROTB0, #FFH ; enable read protection on the last four pages only MOV PROTR, #07FH ; set up a protection key of 0A3H. This command can be PROTECTION KEY ; omitted to use the default protection key of 0xFF MOV PROTKY, #0A3H ; write the flash key to the FLSHKY register to enable flash 0x3E00 Figure 81. Flash Protection in Page 31 06353-070 PROTKY MOV EADRH, #07FH WP 31 EADRH PROTR ; enable write/erase protection on the last page only ; access. The flash access key is not configurable. MOV FLSHKY, #3BH ; write flash protection command to the ECON register MOV ECON, #08H Rev. PrA | Page 98 of 136 Preliminary Technical Data ADE7566/ADE7569 Enabling Flash Protection by Emulator Commands Another way to set the flash protection bytes is to use some reserved emulator commands available only in download mode. These commands write directly to the SFRs and can be used to duplicate the operation mentioned in the Enabling Flash Protection by Code section. Once these flash bytes are written, the part can exit emulation mode by a reset and the protections are effective. This method can be used in production and implemented after downloading the program. The commands used for this operation are an extension of the commands listed in the Application Note uC004: Understanding the Serial Download Protocol. • • Command with ASCII code I or 0x49 write the data into R0. Command with ASCII code F or 0x46 write R0 into the SFR address defined in the data of this command. By omitting the protocol defined in the uC004: Understanding the Serial Download Protocol application note, the sequence to load protections are similar to the sequence presented in the Enabling Flash Protection by Code section, except that two emulator commands are necessary to replace one assembly command. For example, to write the protection value in EADRH, the two following commands need to be executed: • • Command I with data = value of protection byte 0x3FFF. Command F with data = 0xC7. Following this protocol, the protection can be written to the flash using the same sequence as mentioned in the Enabling Flash Protection by Code section. When the part is reset, the protection is effective. Protection bits can be modified from a 1 to a 0, even after the last page has been protected. In this way, more protection can be added but none can be removed. The protection scheme is intended to protect the end system. Protection should be disabled while developing and emulating code. Flash Memory Timing Typical program and erase times for the flash memory are shown in Table 97. Table 97. Command Write Byte Erase Page Erase All Read Byte Erase Page and Write Byte Verify Byte Bytes Affected 1 byte 512 bytes 16 kB 1 bytes 512 bytes Flash Memory Timing 30 μs 20 ms 200 ms 100 ns 21 ms 1 byte 100 ns Note that the core microcontroller operation is idled until the requested flash memory operation is complete. In practice, this means that even though the flash operation is typically initiated with a two-machine-cycle MOV instruction to write to the Flash Control SFR (ECON, 0xB9), the next instruction is not executed until the Flash/EE operation is complete. This means that the core cannot respond to interrupt requests until the Flash/EE operation is complete, although the core peripheral functions, such as counters and timers, continue to count as configured throughout this period. IN-CIRCUIT PROGRAMMING Notes on Flash Protection Serial Downloading The flash protection scheme is disabled by default so that none of the pages of the flash are protected from reading or writing/ erasing. The ADE7566/ADE7569 facilitate code download via the standard UART serial port. The parts enter serial download mode after a reset or a power cycle if the SDEN pin is pulled low through an external 1 kΩ resistor. When in serial download mode, the hidden embedded download kernel executes. This allows the user to download code to the full 16 kB of flash memory while the device is in-circuit in its target application hardware. The last page must be read and write/erase protected for the protection scheme to work. To activate the protection settings, the ADE7566/ADE7569 must be reset after configuring the protection. After configuring protection on the last page and resetting the part, protections that have been enabled can only be removed by mass erasing the flash memory. The protection bits are read and erase protected by enabling read and write/erase protection on the last page, but the protection bits are never truly write protected. Protection configured in the last page of the ADE7566/ADE7569 affects whether flash memory can be accessed in serial download mode. Read protected pages cannot be read. Write/erase protected pages cannot be written or erased. The configuration bits cannot be programmed in serial download mode. Rev. PrA | Page 99 of 136 ADE7566/ADE7569 Preliminary Technical Data TIMERS Each ADE7566/ADE7569 has three 16-bit timer/counters: Timer 0, Timer 1, and Timer 2. The timer/counter hardware is included on-chip to relieve the processor core of overhead inherent in implementing timer/counter functionality in software. Each timer/counter consists of two 8-bit registers: THx and TLx (x = 0, 1, or 2). All three can be configured to operate either as timers or as event counters. When functioning as a timer, the TLx register is incremented every machine cycle. Thus, users can think of it as counting machine cycles. Because a machine cycle on a single-cycle core consists of one core clock period, the maximum count rate is the core clock frequency. When functioning as a counter, the TLx register is incremented by a 1-to-0 transition at its corresponding external input pin: T0, T1, or T2. When the samples show a high in one cycle and a low in the next cycle, the count is incremented. Because it takes two machine cycles (two core clock periods) to recognize a 1-to-0 transition, the maximum count rate is half the core clock frequency. There are no restrictions on the duty cycle of the external input signal, but to ensure that a given level is sampled at least once before it changes, it must be held for a minimum of one full machine cycle. User configuration and control of all timer operating modes is achieved via the SFRs in Table 98. Table 98. Timer SFRs SFR TCON TMOD TL0 TL1 TH0 TH1 T2CON RCAP2L RCAP2H TL2 TH2 Address 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0xC8 0xCA 0xCB 0xCC 0xCD Bit Addressable Yes No No No No No Yes No No No No Description Timer0 and Timer1 Control Register (see Table 100). Timer0 and Timer1 Mode Register (see Table 99). Timer0 LSB (see Table 103). Timer1 LSB (see Table 105). Timer0 MSB (see Table 102). Timer1 MSB (see Table 104). Timer2 Control Register (see Table 101). Timer2 Reload/Capture LSB (see Table 109). Timer2 Reload/Capture MSB (see Table 108). Timer2 LSB (see Table 107). Timer2 MSB (see Table 106). TIMER SFR REGISTERS Table 99. Timer/Counter 0 and Timer/Counter 1 Mode SFR (TMOD, 0x89) Bit No. 7 Mnemonic Gate1 Default 0 6 C/T1 0 5 to 4 T1/M1, T1/M0 00 3 Gate0 0 2 C/T0 0 1 to 0 T0/M1, T0/M0 00 Description Timer 1 Gating Control. Set by software to enable Timer/Counter 1 only when the INT1 pin is high and the TR1 control is set. Cleared by software to enable Timer 1 whenever the TR1control bit is set. Timer 1 Timer or Counter Select Bit. Set by software to select counter operation (input from T1 pin). Cleared by software to select the timer operation (input from internal system clock). Timer 1 Mode Select Bits. T1/M[1:0] Result 00 TH1 operates as an 8-bit timer/counter. TL1 serves as 5-bit prescaler. 01 16-Bit Timer/Counter. TH1 and TL1 are cascaded; there is no prescaler. 10 8-Bit Autoreload Timer/Counter. TH1 holds a value that is to be reloaded into TL1 each time it overflows. 11 Timer/Counter 1 Stopped. Timer 0 Gating Control. Set by software to enable Timer/Counter 0 only when the INT0 pin is high and the TR0 control bit is set. Cleared by software to enable Timer 0 whenever the TR0 control bit is set. Timer 0 Timer or Counter Select Bit. Set by software to the select counter operation (input from T0 pin). Cleared by software to the select timer operation (input from internal system clock). Timer 0 Mode Select Bits. T0/M[1:0] Result 00 TH0 operates as an 8-bit timer/counter. TL0 serves as a 5-bit prescaler. 01 16-Bit Timer/Counter. TH0 and TL0 are cascaded; there is no prescaler. 10 8-Bit Autoreload Timer/Counter. TH0 holds a value that is to be reloaded into TL0 each time it overflows. 11 TL0 is an 8-bit timer/counter controlled by the standard Timer 0 control bits. TH0 is an 8-bit timer only, controlled by Timer 1 control bits. Rev. PrA | Page 100 of 136 Preliminary Technical Data ADE7566/ADE7569 Table 100. Timer/Counter 0 and Timer/Counter 1 Control SFR (TCON, 0x88) Bit No. 7 Address 0x8F Mnemonic TF1 Default 0 6 0x8E TR1 0 5 0x8D TF0 0 4 0x8C TR0 0 3 0x8B IE1 1 0 2 0x8A IT11 0 1 0x89 IE01 0 0 0x88 IT01 0 1 Description Timer 1 Overflow Flag. Set by hardware on a Timer/Counter 1 overflow. Cleared by hardware when the program counter (PC) vectors to the interrupt service routine. Timer 1 Run Control Bit. Set by the user to turn on Timer/Counter 1. Cleared by the user to turn off Timer/Counter 1. Timer 0 Overflow Flag. Set by hardware on a Timer/Counter 0 overflow. Cleared by hardware when the PC vectors to the interrupt service routine. Timer 0 Run Control Bit. Set by the user to turn on Timer/Counter 0. Cleared by the user to turn off Timer/Counter 0. External Interrupt 1 (INT1) Flag. Set by hardware by a falling edge or by a zero level applied to the external interrupt pin, INT1, depending on the state of Bit IT1. Cleared by hardware when the PC vectors to the interrupt service routine only if the interrupt was transition-activated. If level-activated, the external requesting source controls the request flag rather than the on-chip hardware. External Interrupt 1 (IE1) Trigger Type. Set by software to specify edge-sensitive detection, that is, 1-to-0 transition. Cleared by software to specify level-sensitive detection, that is, zero level. External Interrupt 0 (INT0) Flag. Set by hardware by a falling edge or by a zero level being applied to the external interrupt pin, INT0, depending on the state of Bit IT0. Cleared by hardware when the PC vectors to the interrupt service routine only if the interrupt was transition-activated. If level-activated, the external requesting source controls the request flag rather than the on-chip hardware. External Interrupt 0 (IE0) Trigger Type. Set by software to specify edge-sensitive detection, that is, 1-to-0 transition. Cleared by software to specify level-sensitive detection, that is, zero level. These bits are not used to control Timer/Counter 0 and Timer/Counter 1, but are instead used to control and monitor the external INT0 and INT1 interrupt pins. Table 101. Timer/Counter 2 Control SFR (T2CON, 0xC8) Bit No. 7 Address 0xCF Mnemonic TF2 Default 0 6 0xCE EXF2 0 5 0xCD RCLK 0 4 0xCC TCLK 0 3 0xCB EXEN2 0 2 1 0xCA 0xC9 TR2 C/T2 0 0 0 0xC8 CAP2 0 Description Timer 2 Overflow Flag. Set by hardware on a Timer 2 overflow. TF2 cannot be set when either RCLK = 1 or TCLK = 1. Cleared by user software. Timer 2 External Flag. Set by hardware when either a capture or reload is caused by a negative transition on T2EX pin and EXEN2 = 1. Cleared by user software. Receive Clock Enable Bit. Set by the user to enable the serial port to use Timer 2 overflow pulses for its receive clock in Serial Port Mode 1 and Serial Port Mode 3. Cleared by the user to enable Timer 1 overflow to be used for the receive clock. Transmit Clock Enable Bit. Set by the user to enable the serial port to use Timer 2 overflow pulses for its transmit clock in Serial Port Mode 1 and Serial Port Mode 3. Cleared by the user to enable Timer 1 overflow to be used for the transmit clock. Timer 2 External Enable Flag. Set by the user to enable a capture or reload to occur as a result of a negative transition on T2EX if Timer 2 is not being used to clock the serial port. Cleared by the user for Timer 2 to ignore events at T2EX. Timer 2 Start/Stop Control Bit. Set by the user to start Timer 2. Cleared by the user to stop Timer 2. Timer 2 Timer or Counter Function Select Bit. Set by the user to select the counter function (input from external T2 pin). Cleared by the user to select the timer function (input from onchip core clock). Timer 2 Capture/Reload Select Bit. Set by the user to enable captures on negative transitions at T2EX if EXEN2 = 1. Cleared by the user to enable autoreloads with Timer 2 overflows or negative transitions at T2EX when EXEN2 = 1. When either RCLK = 1 or TCLK = 1, this bit is ignored and the timer is forced to autoreload on Timer 2 overflow. Rev. PrA | Page 101 of 136 ADE7566/ADE7569 Preliminary Technical Data Table 102. Timer 0 High Byte SFR (TH0, 0x8C) Timer/Counter 0 and Timer/Counter 1 Operating Modes Bit No. 7 to 0 This section describes the operating modes for Timer/Counter 0 and Timer/Counter 1. Unless otherwise noted, these modes of operation are the same for both Timer 0 and Timer 1. Mnemonic TH0 Default 0 Description Timer 0 Data High Byte. Table 103. Timer 0 Low Byte SFR (TL0, 0x8A) Bit No. 7 to 0 Mnemonic TL0 Default 0 Description Timer 0 Data High Byte. Table 104. Timer 1 High Byte SFR (TH1, 0x8D) Bit No. 7 to 0 Mnemonic TH1 Default 0 Description Timer 1 Data High Byte. Mode 0 (13-Bit Timer/Counter) Mode 0 configures an 8-bit timer/counter. Figure 82 shows Mode 0 operation. Note that the divide-by-12 prescaler is not present on the single-cycle core. fCORE C/T0 = 0 TL0 TH0 (5 BITS) (8 BITS) Table 105. Timer 1 Low Byte SFR (TL1, 0x8B) Bit No. 7 to 0 Mnemonic TL1 Default 0 Description Timer 1 Data High Byte. INTERRUPT TF0 C/T0 = 1 P0.6/T0 CONTROL TR0 Mnemonic TH2 Default 0 Description Timer 2 Data High Byte. Mnemonic TL2 Default 0 Description Timer 2 Data High Byte. Table 108. Timer 2 Reload/Capture High Byte SFR (RACP2H, 0xCB) Bit No. 7 to 0 Mnemonic TH2 Default 0 Description Timer 2 Reload/ Capture High Byte. Table 109. Timer 2 Reload/Capture Low Byte SFR (RACP2L, 0xCA) Bit No. 7 to 0 Mnemonic TL2 Default 0 INT0 Figure 82. Timer/Counter 0, Mode 0 Table 107. Timer 2 Low Byte SFR (TL2, 0xCC) Bit No. 7 to 0 GATE Description Timer 2 Reload/ Capture Low Byte. TIMER 0 AND TIMER 1 In this mode, the timer register is configured as a 13-bit register. As the count rolls over from all 1s to all 0s, it sets the timer overflow flag, TF0. TF0 can then be used to request an interrupt. The counted input is enabled to the timer when TR0 = 1 and either Gate = 0 or INT0 = 1. Setting Gate0 = 1 allows the timer to be controlled by external input INT0 to facilitate pulse-width measurements. TR0 is a control bit in the Timer/Counter 0 and Timer/Counter 1 Control SFR (TCON, 0x88); the Gate bit is in Timer/Counter 0 and Timer/Counter 1 Mode SFR (TMOD, 0x89). The 13-bit register consists of all 8 bits of Timer 0 High Byte SFR (TH0, 0x8C) and the lower 5 bits of Timer 0 Low Byte SFR (TL0, 0x8A). The upper 3 bits of Timer 0 Low Byte SFR (TL0, 0x8A) are indeterminate and should be ignored. Setting the run flag (TR0) does not clear the registers. Mode 1 (16-Bit Timer/Counter) Timer/Counter 0 and Timer/Counter 1 Data Registers Each timer consists of two 8-bit registers. They are Timer 0 High Byte SFR (TH0, 0x8C), Timer 0 Low Byte SFR (TL0, 0x8A), Timer 1 High Byte SFR (TH1, 0x8D) and Timer 1 Low Byte SFR (TL1, 0x8B) These can be used as independent registers or combined into a single 16-bit register, depending on the timer mode configuration (see Table 102 to Table 105). Mode 1 is the same as Mode 0 except that the Mode 1 timer register runs with all 16 bits. Mode 1 is shown in Figure 83. fCORE C/T0 = 0 TL0 TH0 (8 BITS) (8 BITS) INTERRUPT TF0 C/T0 = 1 P0.6/T0 TR0 CONTROL 06353-072 Bit No. 7 to 0 06353-071 Table 106. Timer 2 High Byte SFR (TH2, 0xCD) GATE INT 0 Figure 83. Timer/Counter 0, Mode 1 Rev. PrA | Page 102 of 136 Preliminary Technical Data ADE7566/ADE7569 Mode 2 (8-Bit Timer/Counter with Autoreload) TIMER 2 Mode 2 configures the timer register as an 8-bit counter (TL0) with automatic reload as shown in Figure 84. Overflow from TL0 not only sets TF0, but also reloads TL0 with the contents of TH0, which is preset by software. The reload leaves TH0 unchanged. Timer/Counter 2 Data Registers fCORE C/T = 0 INTERRUPT TL0 (8 BITS) TF0 C/T = 1 Timer/Counter 2 Operating Modes P0.6/T0 CONTROL TR0 INT 0 06353-073 RELOAD TH0 (8 BITS) GATE Timer/Counter 2 also has two pairs of 8-bit data registers associated with it: Timer 2 High Byte SFR (TH2, 0xCD), Timer 2 Low Byte SFR (TL2, 0xCC), Timer 2 Reload/Capture High Byte SFR (RACP2H, 0xCB), and Timer 2 Reload/Capture Low Byte SFR (RACP2L, 0xCA). These are used as both timer data registers and as timer capture/reload registers (see Table 106 to Table 109). The following sections describe the operating modes for Timer/Counter 2. The operating modes are selected by bits in the Timer/Counter 2 Control SFR (T2CON, 0xC8), as shown in Table 101 and Table 110. Figure 84. Timer/Counter 0, Mode 2 Table 110. T2CON Operating Modes Mode 3 (Two 8-Bit Timer/Counters) Mode 3 has different effects on Timer 0 and Timer 1. Timer 1 in Mode 3 simply holds its count. The effect is the same as setting TR1 = 0. Timer 0 in Mode 3 establishes TL0 and TH0 as two separate counters. This configuration is shown in Figure 85. TL0 uses the Timer 0 control bits, C/T, Gate0 (see Table 99), TR0, TF0 (see Table 100), and INT0. TH0 is locked into a timer function (counting machine cycles) and takes over the use of TR1 and TF1 from Timer 1. Therefore, TH0 controls the Timer 1 interrupt. Mode 3 is provided for applications requiring an extra 8-bit timer or counter. When Timer 0 is in Mode 3, Timer 1 can be turned on and off by switching it out of and into its own Mode 3, or it can be used by the serial interface as a baud rate generator. In fact, Timer1 can be used in any application not requiring an interrupt from Timer 1 itself. CORE CLK/12 fCORE CAP2 0 1 X X TR2 1 1 1 0 Mode 16-Bit Autoreload 16-Bit Capture Baud Rate Off 16-Bit Autoreload Mode Autoreload mode has two options that are selected by Bit EXEN2 in Timer/Counter 2 Control SFR (T2CON, 0xC8). If EXEN2 = 0 when Timer 2 rolls over, it not only sets TF2 but also causes the Timer 2 registers to be reloaded with the 16-bit value in registers Timer 2 Reload/Capture High Byte SFR (RACP2H, 0xCB) and Timer 2 Reload/Capture Low Byte SFR (RACP2L, 0xCA), which are preset by software. If EXEN2 = 1, Timer 2 performs the same events as when EXEN2 = 0, but adds a 1-to-0 transition at external input T2EX, which triggers the 16-bit reload and sets EXF2. Autoreload mode is shown in Figure 86. 16-Bit Capture Mode C/T = 0 TL0 (8 BITS) INTERRUPT TF0 C/T = 1 P0.6/T0 CONTROL TR0 GATE INT0 TH0 (8 BITS) INTERRUPT TF1 TR1 Figure 85. Timer/Counter 0, Mode 3 06353-074 fCORE/12 RCLK (or) TCLK 0 0 1 X Capture mode has two options that are selected by Bit EXEN2 in Timer/Counter 2 Control SFR (T2CON, 0xC8). If EXEN2 = 0, Timer 2 is a 16-bit timer or counter that, upon overflowing, sets Bit TF2, the Timer 2 overflow bit, which can be used to generate an interrupt. If EXEN2 = 1, Timer 2 performs the same events as when EXEN2 = 0, but adds a l-to-0 transition on external input T2E, which causes the current value in the Timer 2 registers, TL2 and TH2, to be captured into the RCAP2L and RCAP2H registers, respectively. In addition, the transition at T2EX causes Bit EXF2 in T2CON to be set, and EXF2, like TF2, can generate an interrupt. Capture mode is shown in Figure 87. The baud rate generator mode is selected by RCLK = 1 and/or TCLK = 1. In either case, if Timer 2 is used to generate the baud rate, the TF2 interrupt flag does not occur. Therefore, Timer 2 interrupts do not occur and do not have to be disabled. In this mode, the EXF2 flag can, however, still cause interrupts that can be used as a third external interrupt. Baud rate generation is described as part of the UART serial port operation in UART Serial Interface section. Rev. PrA | Page 103 of 136 ADE7566/ADE7569 Preliminary Technical Data fCORE C/ T2 = 0 TL2 (8 BITS) TH2 (8 BITS) RCAP2L RCAP2H C/ T2 = 1 P1.4/T2 CONTROL TR2 RELOAD TRANSITION DETECTOR TF2 TIMER INTERRUPT P1.3/ T2EX EXF2 06353-075 CONTROL EXEN2 Figure 86. Timer/Counter 2, 16-Bit Autoreload Mode fCORE C/ T2 = 0 TL2 (8 BITS) C/ T2 = 1 P1.4/T2 TH2 (8 BITS) TF2 CONTROL TR2 TIMER INTERRUPT CAPTURE TRANSITION DETECTOR RCAP2L RCAP2H P1.3/ T2EX EXF2 CONTROL 06353-076 EXEN2 Figure 87. Timer/Counter 2, 16-Bit Capture Mode Rev. PrA | Page 104 of 136 Preliminary Technical Data ADE7566/ADE7569 PLL The ADE7566/ADE7569 are intended for use with a 32.768 kHz watch crystal. A PLL locks onto a multiple of this frequency to provide a stable 4.096 MHz clock for the system. The core can operate at this frequency or at binary submultiples of it to allow power savings when maximum core performance is not required. The default core clock is the PLL clock divided by 4 or 1.024 MHz. The ADE energy measurement clock is derived from the PLL clock and is maintained at 4.096 MHz/5 MHz, 819.2 kHz across all CD settings. The PLL is controlled by the CD[2:0] bits in the Power Control SFR (POWCON, 0xC5). To protect erroneous changes to the Power Control SFR (POWCON, 0xC5), a key is required to modify the register. First, the Key SFR (KYREG, 0xC1) is written with the key, 0xA7, and then a new value is written to the Power Control SFR (POWCON, 0xC5). If the PLL loses lock, the MCU is reset and the PLL_FLT bit is set in the Peripheral Configuration SFR (PERIPH, 0xF4). Set the PLLACK bit in the Start ADC Measurement SFR (ADCGO, 0xD8) to acknowledge the PLL fault, clearing the PLL_FLT bit. PLL SFR REGISTER LIST Table 111. Power Control SFR (POWCON, 0xC5) Bit No. 7 6 Mnemonic Reserved METER_OFF Default 0 0 5 4 3 2 to 0 Reserved COREOFF Reserved CD[2:0] 0 0 Description Reserved. Set this bit to turn off the modulators and energy metering DSP circuitry to reduce power if metering functions are not needed in PSM0 Reserved. Set this bit to shut down the core if in the PSM1 operating mode. Reserved. Controls the core clock frequency (fCORE). fCORE = 4.096 MHz/2CD CD[2:0] Result (fCORE in MHz) 000 4.096 001 2.048 010 1.024 011 0.512 100 0.256 101 0.128 110 0.064 111 0.032 010 Table 112. Key SFR (KYREG, 0xC1) Bit No. 7 to 0 Mnemonic KYREG Default 0 Description Write 0xA7 to the KYREG SFR before writing to the POWCON SFR to unlock it. Write 0xEA to the KYREG SFR before writing to the HTHSEC, SEC, MIN, or HOUR timekeeping registers to unlock it. Table 113. Peripheral Configuration SFR (PERIPH, 0xF4) Bit No. 7 6 Mnemonic RXFLAG VSWSOURCE Default 0 1 5 4 3 2 1 to 0 VDD_OK PLL_FLT Reserved EXTREFEN RXPROG[1:0] 0 0 0 00 Description If set, indicates that a Rx edge event triggered wake-up from PSM2. Indicates the power supply that is connected internally to VSW. If set, VSW = VDD. If cleared, VSW = VBAT. If set, indicates that VDD power supply is ok for operation. If set, indicates that PLL is not locked. Reserved. Set this bit if an external reference is connected to the REFIN pin. Controls the function of the P1.0/RxD pin. RXPROG [1:0] Result 00 GPIO 01 Rx with wake-up disabled 11 Rx with wake-up enabled Rev. PrA | Page 105 of 136 ADE7566/ADE7569 Preliminary Technical Data Table 114. Start ADC Measurement SFR (ADCGO, 0xD8) Bit No. 7 Address 0xDF Mnemonic PLL_FTL_ACK Default 0 6 to 3 2 0xDE to 0xDB 0xDA Reserved VDCIN_ADC_GO 0 0 1 0xD9 TEMP_ADC_GO 0 0 0xD8 BATT_ADC_GO 0 Description Set this bit to clear the PLL fault bit, PLL_FLT in the PERIPH register. A PLL fault is generated if a reset was caused because the PLL lost lock. Reserved. Set this bit to initiate an external voltage measurement. This bit is cleared when the measurement request is received by the ADC. Set this bit to initiate a temperature measurement. This bit is cleared when the measurement request is received by the ADC. Set this bit to initiate a battery measurement. This bit is cleared when the measurement request is received by the ADC. Rev. PrA | Page 106 of 136 Preliminary Technical Data ADE7566/ADE7569 REAL TIME CLOCK The ADE7566/ADE7569 have an embedded real time clock (RTC) as shown in Figure 88. The external 32.768 kHz crystal is used as the clock source for the RTC. Calibration is provided to compensate the nominal crystal frequency and for variations in the external crystal frequency over temperature. By default, the RTC is maintained active in all power-saving modes. The RTC counters retain their values through watchdog resets and external resets. They are only reset during a power-on reset. 32.768kHz CRYSTAL RTCCOMP TEMPCAL CALIBRATION CALIBRATED 32.768kHz RTCEN ITS1 ITS0 8-BIT PRESCALER HUNDREDTHS COUNTER HTHSEC INTERVAL TIMEBASE SELECTION MUX SECOND COUNTER SEC ITEN MINUTE COUNTER MIN MIDNIGHT EVENT 8-BIT INTERVAL COUNTER EQUAL? ALARM EVENT INTVAL SFR Figure 88. RTC Implementation RTC SFR REGISTER LIST Table 115. Real Time Clock SFR SFR TIMECON HTHSEC SEC MIN HOUR INTVAL RTCCOMP TEMPCAL Address 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xF6 0xF7 Bit Addressable No No No No No No No No Description RTC Configuration (see Table 116). Hundredths of a Second Counter (see Table 117). Seconds Counter (see Table 118). Minutes Counter (see Table 119). Hours Counter (see Table 120). Alarm Interval (see Table 121). RTC Nominal Compensation (see Table 122). RTC Temperature Compensation (see Table 123). Rev. PrA | Page 107 of 136 06353-077 HOUR COUNTER HOUR ADE7566/ADE7569 Preliminary Technical Data Table 116. RTC Configuration SFR (TIMECON, 0xA1) Bit No. 7 Mnemonic MIDNIGHT Default 0 6 TFH 0 5 to 4 ITS[1:0] 0 3 SIT 0 2 ALARM 0 1 ITEN 0 0 RTCEN 1 Description Midnight Flag. This bit is set when the RTC rolls over to 00:00:00:00. It can be cleared by the user to indicate that the midnight event has been serviced. In twenty-four hour mode, the midnight flag is raised once a day at midnight. Twenty-Four Hour Mode. This bit is retained during a watchdog reset or an external reset. It is reset after a power on reset (POR). TFH Result 0 256-Hour Mode. The HOUR register rolls over from 255 to 0. 1 24-Hour Mode. The HOUR register rolls over from 23 to 0. Interval Timer Time-Base Selection. ITS[1:0] Result (Time base) 00 1/128 sec. 01 Second. 10 Minute. 11 Hour. Interval Timer 1 Time Alarm. SIT Result 0 The ALARM flag is set after INTVAL counts and then another interval count starts. 1 The ALARM flag is set after one time interval. Interval Timer Alarm Flag. This bit is set when the configured time interval has elapsed. It can be cleared by the user to indicate that the alarm event has been serviced. This bit cannot be set to 1 by user code. Interval Timer Enable. ITEN Result 0 The interval timer is disabled. The 8-bit interval timer counter is reset. 1 Set this bit to enable the interval timer. The RTCEN bit must also be set to enable the interval timer. RTC Enable. Also Temperature, Battery and Supply ADC Background Strobe Enable. Note that the RTC is always enabled. Table 117. Hundredths of a Second Counter SFR (HTHSEC, 0xA2) Bit No. 7 to 0 Mnemonic HTHSEC Default 0 Description This counter updates every 1/128 sec, referenced from the calibrated 32 kHz clock. It overflows from 127 to 00, incrementing the seconds counter (SEC). This register is retained during a watchdog reset or an external reset. It is reset after a POR. Table 118. Seconds Counter SFR (SEC, 0xA3) Bit No. 7 to 0 Mnemonic SEC Default 0 Description This counter updates every second, referenced from the calibrated 32 kHz clock. It overflows from 59 to 00, incrementing the minutes counter (MIN). This register is retained during a watchdog reset or an external reset. It is reset after a POR. Table 119. Minutes Counter SFR (MIN, 0xA4) Bit No. 7 to 0 Mnemonic MIN Default 0 Description This counter updates every minute, referenced from the calibrated 32 kHz clock. It overflows from 59 to 00, incrementing the hours counter, HOUR. This register is retained during a watchdog reset or an external reset. It is reset after a POR. Table 120. Hours Counter SFR (HOUR, 0xA5) Bit No. 7 to 0 Mnemonic HOUR Default 0 Description This counter updates every hour, referenced from the calibrated 32 kHz clock. If the TFH bit in the RTC Configuration SFR (TIMECON, 0xA1) is set, the HOUR SFR overflows from 23 to 00, setting the MIDNIGHT bit and creating a pending RTC interrupt. If the TFH bit is cleared, the HOUR SFR overflows from 255 to 00, setting the MIDNIGHT bit and creating a pending RTC interrupt. This register is retained during a watchdog reset or an external reset. It is reset after a POR. Rev. PrA | Page 108 of 136 Preliminary Technical Data ADE7566/ADE7569 Table 121. Alarm Interval SFR (INTVAL, 0xA6) Bit No. 7 to 0 Mnemonic INTVAL Default 0 Description The interval timer counts according to the time base established in the ITS[1:0] bits of the RTC Configuration SFR (TIMECON, 0xA1). Once the number of counts is equal to INTVAL, the ALARM flag is set and a pending RTC interrupt is created. Note that the interval counter is 8-bits. Therefore, it could count up to 255 sec, for example. Table 122. RTC Nominal Compensation SFR (RTCCOMP, 0xF6) Bit No. 7 to 0 Mnemonic RTCCOMP Default 0 Description The RTCCOMP SFR holds the nominal RTC compensation value at 25°C. This register is retained during a watchdog reset or an external reset. It is reset after a POR. Table 123. RTC Temperature Compensation SFR (TEMPCAL, 0xF7) Bit No. 7 to 0 Mnemonic TEMPCAL Default 0 Description The TEMPCAL SFR is adjusted based on the temperature read in the TEMPADC to calibrate the RTC over temperature. This allows the external crystal shift to be compensated over temperature. This register is retained during a watchdog reset or an external reset. It is reset after a POR. Table 124. Interrupt Pins Configuration SFR (INTPR, 0xFF) Bit No. 7 Mnemonic RTCCAL 6 to 5 FSEL[1:0] 4 3 to 1 Reserved INT1PRG[2:0] Default 0 Description Controls the RTC calibration output. When set, the RTC calibration frequency selected by FSEL[1:0] is output on the P0.2/CF1/RTCCAL pin. Sets RTC calibration output frequency and calibration window. FSEL[1:0] Result (Calibration window, frequency) 0 0 30.5 sec, 1 Hz 0 1 30.5 sec, 512 Hz 1 0 0.244 sec, 500 Hz 1 1 0.244 sec, 16.384 kHz 000 Controls the function of INT1. INT1PRG[2:0] x 0 x 0 0 1 1 1 0 INT0PRG 0 0 1 x x Result GPIO BCTRL INT1 input disabled INT1 input enabled Controls the function of INT0. INT0PRG 0 1 Result INT0 input disabled INT0 input enabled Writing to the Interrupt Pins Configuration SFR (INTPR, 0xFF) To protect the RTC from runaway code, a key must be written to the KYREG register to obtain write access to the Interrupt Pins Configuration SFR (INTPR, 0xFF). The KYREG should be set to 0xEA to unlock this SFR and resets to zero after a timekeeping register is written to. The RTC registers can be written using the following 8052 assembly code: MOV KYREG, #0EAh MOV INTPR, #080h Table 125. Key SFR (KYREG, 0xC1) Bit No. 7 to 0 Mnemonic KYREG Default 0 Description Write 0xA7 to the this SFR before writing to the POWCON SFR, which unlocks KYREG. Write 0xEA to the this SFR before writing to the HTHSEC, SEC, MIN, or HOUR timekeeping registers to unlock KYREG. Rev. PrA | Page 109 of 136 ADE7566/ADE7569 Preliminary Technical Data READ AND WRITE OPERATIONS RTC MODES Writing to the RTC Registers The RTC can be configured in a 24-hour mode or a 256-hour mode. A midnight event is generated when the RTC hour counter rolls over from 23 to 0 or 255 to 0, depending on whether the TFH bit is set in the RTC Configuration SFR (TIMECON, 0xA1). The midnight event sets the MIDNIGHT flag in the RTC Configuration SFR (TIMECON, 0xA1) and a pending RTC interrupt is created. The RTC midnight event wakes the 8052 MCU core if the MCU is asleep in PSM2 when the midnight event occurs. The RTC circuitry runs off a 32.768 kHz clock. The timekeeping registers, Hundredths of a Second Counter SFR (HTHSEC, 0xA2), Seconds Counter SFR (SEC, 0xA3), Minutes Counter SFR (MIN, 0xA4), and Hours Counter SFR (HOUR, 0xA5) are updated with a 32.768 kHz clock. However, the RTC Configuration SFR (TIMECON, 0xA1) and Alarm Interval SFR (INTVAL, 0xA6) are updated with a 128 Hz clock. It takes up to two 128 Hz clock cycles from when the MCU writes to the RTC Configuration SFR (TIMECON, 0xA1) or Alarm Interval SFR (INTVAL, 0xA6) until it is successfully updated in the RTC. To protect the RTC timekeeping registers from runaway code, a key must be written to the Key SFR (KYREG, 0xC1) to obtain write access to the HTHSEC, SEC, MIN and HOUR SFRs. The Key SFR (KYREG, 0xC1) should be set to 0xEA to unlock the timekeeping registers and resets to 0 after a timekeeping register is written to. The RTC registers can be written using the following 8052 assembly code: MOV RTCKey, #0EAh CALL UpdateRTC … UpdateRTC: MOV KYREG, RTCKey MOV SEC, #30 MOV MIN, #05 MOV KYREG, RTCKey MOV HOUR, #04 RET Reading the RTC Counter SFRs The RTC cannot be stopped to read the current time because stopping the RTC would introduce an error in its timekeeping. So the RTC is read on the fly. Therefore, the counter registers must be checked for overflow. This can be accomplished through the following 8052 assembly code: ReadAgain: ; using Bank 0 MOV R1, SEC MOV R2, MIN MOV R3, HOUR MOV A, CJNE Bank 0 RTC INTERRUPTS The RTC midnight interrupt and alarm interrupt are enabled by setting the ETI bit in the Interrupt Enable and Priority 2 SFR (IEIP2, 0xA9). When a midnight or alarm event occurs, a pending RTC interrupt is generated. If the RTC interrupt is enabled, the program vectors to the RTC interrupt address and the pending interrupt is cleared. If the RTC interrupt is disabled, the RTC interrupt remains pending until the RTC interrupt is enabled. The program then vectors to the RTC interrupt address. The MIDNIGHT flag and ALARM flag are set when the midnight event and alarm event occur, respectively. The user should manage these flags to keep track of which event caused an RTC interrupt by servicing the event and clearing the appropriate flag in the RTC interrupt servicing routine. MOV KYREG, RTCKey MOV R0, HTHSEC In the 24-hour mode, the midnight event is generated once a day at midnight. The 24-hour mode is useful for updating a software calendar to keep track of the current day. The 256-hour mode results in power savings during extended operation in PSM2 because the MCU core wakes up less frequently. HTHSEC A, 00h, ReadAgain ; 00h is R0 in Note that if the ADE7566/ADE7569 are awakened by an RTC event, either by the MIDNIGHT event or ALARM event, the pending RTC interrupt must be serviced before the device can go back to sleep again. The ADE7566/ADE7569 will keep waking up until this interrupt has been serviced. Interval Timer Alarm The RTC can be used as an interval timer. When the interval timer is enabled by setting the ITEN bit in the RTC Configuration SFR (TIMECON, 0xA1), the interval timer clock source selected by the ITS1 and ITS0 bits is passed through an 8-bit counter. This counter increments on every interval timer clock pulse until it is equal to the value in the Alarm Interval SFR (INTVAL, 0xA6). Then, an alarm event is generated, setting the ALARM flag and creating a pending RTC interrupt. If the SIT bit in the RTC Configuration SFR (TIMECON, 0xA1) is cleared, the 8-bit counter is also cleared and starts counting again. If the SIT bit is set, the 8-bit counter is held in reset after the alarm occurs. Rev. PrA | Page 110 of 136 Preliminary Technical Data ADE7566/ADE7569 Take care when changing the interval timer time base. The recommended procedure is as follows: with FSEL[1:0] = 00 and 512 Hz with FSEL[1:0] = 01 in the Interrupt Pins Configuration SFR (INTPR, 0xFF). 1. A shorter window of 0.244 sec is offered for fast calibration during PSM0 or PSM1. Two output frequencies are offered for this RTC calibration output mode: 500 Hz with FSEL[1:0] = 10 and 16.384 kHz with FSEL[1:0] = 11 in the Interrupt Pins Configuration SFR (INTPR, 0xFF). Note that for the 0.244 sec calibration window, the RTC is clocked 125 times faster than in normal mode, resulting in timekeeping registers that represent seconds/125, minutes/125 and hours/125 instead of seconds, minutes, and hours. Therefore, this mode should be used for calibration only. 2. 3. 4. If the Alarm Interval SFR (INTVAL, 0xA6) is going to be modified, write to this register first. Then, wait for one 128 Hz clock cycle to synchronize with the RTC, 64,000 cycles at a 4.096 MHz instruction cycle clock. Disable the interval timer by clearing the ITEN bit in the RTC Configuration SFR (TIMECON, 0xA1). Then, wait for one 128 Hz clock cycle to synchronize with the RTC, 64,000 cycles at a 4.096 MHz instruction cycle clock. Read the RTC Configuration SFR (TIMECON, 0xA1) to ensure that the ITEN bit is clear. If it is not, wait for another 128 Hz clock cycle. Set the time-base bits (ITS[1:0]) in the RTC Configuration SFR (TIMECON, 0xA1) to configure the interval. Wait for a 128 Hz clock cycle for this change to take effect. The RTC alarm event wakes the 8052 MCU core if the MCU is in PSM2 when the alarm event occurs. RTC CALIBRATION The RTC provides registers to calibrate the nominal external crystal frequency and its variation over temperature. A frequency error up to ±248 ppm can be calibrated out by the RTC circuitry, which adds or subtracts pulses from the external crystal signal. The nominal crystal frequency should be calibrated with the RTC nominal compensation register so that the clock going into the RTC is precisely 32.768 kHz at 25°C. The RTC Temperature Compensation SFR (TEMPCAL, 0xF7) is used to compensate for the external crystal drift over temperature by adding or subtracting additional pulses based on temperature. The LSB of each RTC compensation register represents a ±2 ppm frequency error. The RTC compensation circuitry adds the RTC Temperature Compensation SFR (TEMPCAL, 0xF7) and the RTC Nominal Compensation SFR (RTCCOMP, 0xF6) to determine how much compensation is required. Note that the sum of these two registers is limited to ±248 ppm. Calibration Flow A RTC calibration pulse output is provided on the P0.2/CF1/ RTCCAL pin. Enable the RTC output by setting the RTCCAL bit in the Interrupt Pins Configuration SFR (INTPR, 0xFF). The RTC calibration is accurate to within ±2 ppm over a 30.5 sec window in all operational modes: PSM0, PSM1, and PSM2. Two output frequencies are offered for the normal RTC mode: 1 Hz Table 126. RTC Calibration Options Option Normal Mode 0 Normal Mode 1 Calibration Mode 0 Calibration Mode 1 FSEL[1:0] 00 01 10 11 Calibration Window (sec) 30.5 30.5 0.244 0.244 fRTCCAL (Hz) 1 512 500 16,384 When no RTC compensation is applied, that is, when RTC Nominal Compensation SFR (RTCCOMP, 0xF6) and RTC Temperature Compensation SFR (TEMPCAL, 0xF7) are equal to 0, the nominal compensation required to account for the error in the external crystal can be determined. In this case, it is not necessary to wait for an entire calibration window to determine the error in the pulse output. Calculating at the error in frequency between two consecutive pulses on the P0.2/CF1/RTCCAL pin is enough. The value to write to the RTC Nominal Compensation SFR (RTCCOMP, 0xF6) is calculated from the % error or seconds per day error on the frequency output. Each LSB of the RTC Nominal Compensation SFR (RTCCOMP, 0xF6) represents 2 ppm of correction where 1 sec/day error is equal to 11.57 ppm. RTCCOMP = 5000 × (% Error ) RTCCOMP = 1 × (sec/day Error ) 2 × 11.57 During calibration, user software writes the RTC with the current time. Refer to the Read and Write Operations section for more information on how to read and write the RTC timekeeping registers. Rev. PrA | Page 111 of 136 ADE7566/ADE7569 Preliminary Technical Data UART SERIAL INTERFACE The ADE7566/ADE7569 UART can be configured in one of four modes. pins, while the firmware interface is through the SFRs presented in Table 127. • • • • Both the serial port receive and transmit registers are accessed through the Serial Port Buffer SFR (SBUF, 0x99). Writing to SBUF loads the transmit register, and reading SBUF accesses a physically separate receive register. Shift register with baud rate fixed at fCORE/12 8-bit UART with variable baud rate 9-bit UART with baud rate fixed at fCORE/64 or fCORE/32 9-bit UART with variable baud rate Variable baud rates are defined by using an internal timer to generate any rate between 300 baud/sec and 115,200 baud/sec. The UART serial interface provided in the ADE7566/ADE7569 is a full-duplex serial interface. It is also receive buffered by storing the first received byte in a receive buffer until the reception of the second byte is complete. The physical interface to the UART is provided via the RxD (P1.0) and TxD (P1.1) An enhanced UART mode is offered by using the UART timer and by providing enhanced frame error, break error, and overwrite error detection. This mode is enabled by setting the EXTEN bit in the Configuration SFR (CFG, 0xAF) (see the UART Additional Features section). The Enhanced Serial Baud Rate Control SFR (SBAUDT, 0x9E) and UART Timer Fractional Divider SFR (SBAUDF, 0x9D) are used to configure UART timer and to indicate the enhanced UART errors. UART SFR REGISTERS Table 127. Serial Port SFRs SFR SCON SBUF SBAUDT SBAUDF Address 0x98 0x99 0x9E 0x9D Bit Addressable Yes No No No Description Serial Communications Control Register (see Table 128). Serial Port Buffer (see Table 129). Enhanced Error Checking (see Table 130). Enhanced Fractional Divider (see Table 131). Table 128. Serial Communications Control Register Bit Description SFR (SCON, 0x98) Bit No. 7 to 6 Address 0x9F, 0x9E Mnemonic SM0, SM1 Default 00 5 0x9D SM2 0 4 0x9C REN 0 3 0x9B TB8 0 2 0x9A RB8 0 1 0x99 TI 0 0 0x98 RI 0 Description UART Serial Mode Select Bits. These bits select the serial port operating mode. SM[0:1] Result (Selected Operating Mode) 00 Mode 0, shift register, fixed baud rate (fCORE/12). 01 Mode 1, 8-bit UART, variable baud rate. 10 Mode 2, 9-bit UART, fixed baud rate (fCORE/32) or (fCORE/16). 11 Mode 3, 9-bit UART, variable baud rate. Multiprocessor Communication Enable Bit. Enables multiprocessor communication in Mode 2 and Mode 3, and framing error detection in Mode 1. In Mode 0, SM2 should be cleared. In Mode 1, if SM2 is set, RI is not activated if a valid stop bit was not received. If SM2 is cleared, RI is set as soon as the byte of data is received. In Modes 2 or 3, if SM2 is set, RI is not activated if the received ninth data bit in RB8 is 0. If SM2 is cleared, RI is set as soon as the byte of data is received. Serial Port Receive Enable Bit. Set by user software to enable serial port reception. Cleared by user software to disable serial port reception. Serial Port Transmit (Bit 9). The data loaded into TB8 is the ninth data bit transmitted in Mode 2 and Mode 3. Serial Port Receiver Bit 9. The ninth data bit received in Mode 2 and Mode 3 is latched into RB8. For Mode 1, the stop bit is latched into RB8. Serial Port Transmit Interrupt Flag. Set by hardware at the end of the eighth bit in Mode 0 or at the beginning of the stop bit in Mode 1, Mode 2, and Mode 3. TI must be cleared by user software. Serial Port Receive Interrupt Flag. Set by hardware at the end of the eighth bit in Mode 0, or halfway through the stop bit in Mode 1, Mode 2, and Mode 3. RI must be cleared by user software. Rev. PrA | Page 112 of 136 Preliminary Technical Data ADE7566/ADE7569 Table 129. Serial Port Buffer SFR (SBUF, 0x99) Bit No. 7 to 0 Mnemonic SBUF Default 0 Description Serial Port Data Buffer. Table 130. Enhanced Serial Baud Rate Control SFR (SBAUDT, 0x9E) Bit No. 7 Mnemonic OWE Default 0 6 FE 0 5 BE 0 4, 3 2, 1, 0 SBTH1, SBTH0 DIV2, DIV1, DIV0 0 0 Description Overwrite Error. This bit is set when new data is received and RI = 1. It indicates that SBUF was not read before the next character was transferred in, causing the prior SBUF data to be lost. Write a 0 to this bit to clear it. Frame Error. This bit is set when the received frame did not have a valid stop bit. This bit is read only and updated every time a frame is received. Break Error. This bit is set whenever the receive data line (Rx) is low for longer than a full transmission frame, which is the time required for a start bit, 8 data bits, a parity bit, and half a stop bit. This bit is updated every time a frame is received. Extended divider ratio for baud rate setting as shown in Table 132. Binary Divider. DIV[2:0] Result 000 Divide by 1 (see Table 132). 001 Divide by 2 (see Table 132). 010 Divide by 4 (see Table 132). 011 Divide by 8 (see Table 132). 100 Divide by 16 (see Table 132). 101 Divide by 32 (see Table 132). 110 Divide by 64 (see Table 132). 111 Divide by 128 (see Table 132). Table 131. UART Timer Fractional Divider SFR (SBAUDF, 0x9D) Bit No. 7 Mnemonic UARTBAUDEN Default 0 6 5 4 3 2 1 0 – SBAUDF.5 SBAUDF.4 SBAUDF.3 SBAUDF.2 SBAUDF.1 SBAUDF.0 0 0 0 0 0 0 Description UART Baud Rate Enable. Set to enable UART timer to generate the baud rate. When set, PCON.7 (SMOD), T2CON.4 (TCLK), and T2CON.5 (RCLK) are ignored. Cleared to let the baud rate be generated as per a standard 8052. Not Implemented, Write Don’t Care. UART Timer Fractional Divider Bit 5. UART Timer Fractional Divider Bit 4. UART Timer Fractional Divider Bit 3. UART Timer Fractional Divider Bit 2. UART Timer Fractional Divider Bit 1. UART Timer Fractional Divider Bit 0. Rev. PrA | Page 113 of 136 ADE7566/ADE7569 Preliminary Technical Data Table 132. Common Baud Rates Using UART Timer with a 4.096 MHz PLL Clock Ideal Baud 115200 115200 57600 57600 38400 38400 38400 19200 19200 19200 19200 9600 9600 9600 9600 9600 4800 4800 4800 4800 4800 4800 2400 2400 2400 2400 2400 2400 2400 300 300 300 300 300 300 300 300 CD 0 1 0 1 0 1 2 0 1 2 3 0 1 2 3 4 0 1 2 3 4 5 0 1 2 3 4 5 6 0 1 2 3 4 5 6 7 SBTH 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 DIV 1 0 2 1 2 1 0 3 2 1 0 4 3 2 1 0 5 4 3 2 1 0 6 5 4 3 2 1 0 7 7 7 6 5 4 3 2 SBAUDT 0x01 0x00 0x02 0x01 0x02 0x01 0x00 0x03 0x02 0x01 0x00 0x04 0x03 0x02 0x01 0x00 0x05 0x04 0x03 0x02 0x01 0x00 0x06 0x05 0x04 0x03 0x02 0x01 0x00 0x17 0x0F 0x07 0x06 0x05 0x04 0x03 0x02 Rev. PrA | Page 114 of 136 SBAUDF 0x87 0x87 0x87 0x87 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB % Error +0.16 +0.16 +0.16 +0.16 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 −0.31 Preliminary Technical Data ADE7566/ADE7569 All of the following conditions must be met at the time the final shift pulse is generated to receive a character: UART OPERATION MODES Mode 0 (Shift Register with Baud Rate Fixed at fCORE/12) Mode 0 is selected when the SM0 and SM1 bits in the Serial Communications Control Register Bit Description SFR (SCON, 0x98) are cleared. In this shift register mode, serial data enters and exits through RxD. TxD outputs the shift clock. The baud rate is fixed at fCORE/12. Eight data bits are transmitted or received. Transmission is initiated by any instruction that writes to the Serial Port Buffer SFR (SBUF, 0x99). The data is shifted out of the RxD line. The 8 bits are transmitted with the least significant bit (LSB) first. Reception is initiated when the receive enable bit (REN) is 1 and the receive interrupt bit (RI) is 0. When RI is cleared, the data is clocked into the RxD line, and the clock pulses are output from the TxD line as shown in Figure 89. DATA BIT 0 DATA BIT 1 DATA BIT 6 DATA BIT 7 Mode 1 (8-Bit UART, Variable Baud Rate) Mode 1 is selected by clearing SM0 and setting SM1. Each data byte (LSB first) is preceded by a start bit (0) and followed by a stop bit (1). Therefore, each frame consists of 10 bits transmitted on TxD or received on RxD. The baud rate is set by a timer overflow rate. Timer 1 or Timer 2 can be used to generate baud rates, or both timers can be used simultaneously where one generates the transmit rate and the other generates the receive rate. There is also a dedicated timer for baud rate generation, the UART timer, which has a fractional divisor to precisely generate any baud rate (see the UART Timer Generated Baud Rates section). Transmission is initiated by a write to the Serial Port Buffer SFR (SBUF, 0x99) Next, a stop bit (1) is loaded into the ninth bit position of the transmit shift register. The data is output bit-bybit until the stop bit appears on TxD and the transmit interrupt flag (TI) is automatically set as shown in Figure 90. TxD STOP BIT D1 D2 D3 D4 D5 D6 • • The 8 bits in the receive shift register are latched into the SBUF SFR. The ninth bit (stop bit) is clocked into RB8 in the SCON SFR. The receiver interrupt flag (RI) is set. Mode 2 (9-Bit UART with Baud Fixed at fCORE/64 or fCORE/32) Figure 89. 8-Bit Shift Register Mode D0 If any of these conditions are not met, the received frame is irretrievably lost, and the receive interrupt flag (RI) is not set. • TxD (SHIFT CLOCK) START BIT • If the extended UART is disabled (EXTEN = 0 in the CFG SFR), RI must be 0 to receive a character. This ensures that the data in the SBUF SFR is not overwritten if the last received character has not been read. If frame error checking is enabled by setting SM2, the received stop bit must be set to receive a character. This ensures that every character received comes from a valid frame, with both a start bit and a stop bit. If the received frame has met the previous criteria, the following events occur: 06353-078 RxD (DATA OUT) • D7 SET INTERRUPT (FOR EXAMPLE, READY FOR MORE DATA) Figure 90. 8-Bit Variable Baud Rate Reception is initiated when a 1-to-0 transition is detected on RxD. Assuming that a valid start bit is detected, character reception continues. The 8 data bits are clocked into the serial port shift register. 06353-079 TI (SCON.1) Mode 2 is selected by setting SM0 and clearing SM1. In this mode, the UART operates in 9-bit mode with a fixed baud rate. The baud rate is fixed at fCORE/64 by default, although setting the SMOD bit in the Program Control SFR (PCON, 0x87) doubles the frequency to fCORE/32. Eleven bits are transmitted or received: a start bit (0), 8 data bits, a programmable ninth bit, and a stop bit (1). The ninth bit is most often used as a parity bit or as part of a multiprocessor communication protocol, although it can be used for anything, including a ninth data bit, if required. To use the ninth data bit as part of a communication protocol for a multiprocessor network such as RS-485, the ninth bit is set to indicate that the frame contains the address of the device that the master would like to communicate with. The devices on the network are always listening for a packet with the ninth bit set and are configured such that if the ninth bit is cleared, the frame is not valid, and a receive interrupt is not generated. If the ninth bit is set, all devices on the network receive the address and obtain a receive character interrupt. The devices examine the address and if it matches one of the device’s preprogrammed address, that device configures itself to listen to all incoming frames, even those with the ninth bit cleared. Because the master has initiated communication with that device, all the following packets with the ninth bit cleared are intended specifically for that addressed device until another packet with the ninth bit set is received. If the address does not match, the device continues to listen for address packets. Rev. PrA | Page 115 of 136 ADE7566/ADE7569 Preliminary Technical Data To transmit, the 8 data bits must be written into the Serial Port Buffer SFR (SBUF, 0x99). The ninth bit must be written to TB8 in the Serial Communications Control Register Bit Description SFR (SCON, 0x98). When transmission is initiated, the 8 data bits from SBUF are loaded into the transmit shift register (LSB first). The ninth data bit, held in TB8, is loaded into the ninth bit position of the transmit shift register. The transmission starts at the next valid baud rate clock. The transmit interrupt flag (TI) is set as soon as the transmission completes, when the stop bit appears on TxD. All of the following conditions must be met at the time the final shift pulse is generated to receive a character: • • If the extended UART is disabled (EXTEN = 0 in the CFG SFR), RI must be 0 to receive a character. This ensures that the data in SBUF is not overwritten if the last received character has not been read. If multiprocessor communication is enabled by setting SM2, the received ninth bit must be set to receive a character. This ensures that only frames with the ninth bit set, frames that contain addresses, generate a receive interrupt. If any of these conditions are not met, the received frame is irretrievably lost, and the receive interrupt flag (RI) is not set. Reception for Mode 2 is similar to that of Mode 1. The 8 data bytes are input at RxD (LSB first) and loaded onto the receive shift register. If the received frame has met the previous criteria, the following events occur: • • • The 8 bits in the receive shift register are latched into the SBUF SFR. The ninth data bit is latched into RB8 in the SCON SFR. The receiver interrupt flag (RI) is set. Mode 3 (9-Bit UART with Variable Baud Rate) Mode 3 is selected by setting both SM0 and SM1. In this mode, the 8051 UART serial port operates in 9-bit mode with a variable baud rate. The baud rate is set by a timer overflow rate. Timer 1 or Timer 2 can be used to generate baud rates, or both timers can be used simultaneously where one generates the transmit rate and the other generates the receive rate. There is also a dedicated timer for baud rate generation, the UART timer, which has a fractional divisor to precisely generate any baud rate (see the UART Timer Generated Baud Rates section). The operation of the 9-bit UART is the same as for Mode 2, but the baud rate can be varied. In all four modes, transmission is initiated by any instruction that uses SBUF as a destination register. Reception is initiated in Mode 0 when RI = 0 and REN = 1. Reception is initiated in the other modes by the incoming start bit if REN = 1. UART BAUD RATE GENERATION Mode 0 Baud Rate Generation The baud rate in Mode 0 is fixed. ⎛f ⎞ Mode 0 Baud Rate = ⎜ core ⎟ ⎝ 12 ⎠ Mode 2 Baud Rate Generation The baud rate in Mode 2 depends on the value of the PCON.7 (SMOD) bit in the Program Control SFR (PCON, 0x87). If SMOD = 0, the baud rate is 1/32 of the core clock. If SMOD = 1, the baud rate is 1/16 of the core clock. Mode 2 Baud Rate = 2 SMOD × fCORE 32 Mode 1 and Mode 3 Baud Rate Generation The baud rates in Mode 1 and Mode 3 are determined by the overflow rate of the timer generating the baud rate, that is, either Timer 1, Timer 2, or the dedicated baud rate generator, UART timer, which has an integer and fractional divisor. Timer 1 Generated Baud Rates When Timer 1 is used as the baud rate generator, the baud rates in Mode 1 and Mode 3 are determined by the Timer 1 overflow rate. The value of SMOD is as follows: Mode 1 and Mode 3 Baud Rate = 2 SMOD × Timer 1 Overflow Rate 32 The Timer 1 interrupt should be disabled in this application. The timer itself can be configured for either timer or counter operation, and in any of its three running modes. In the most typical application, it is configured for timer operation in autoreload mode (high nibble of TMOD = 0010 binary). In that case, the baud rate is given by the following formula: f core 2 SMOD Mode 1 and Mode 3 Baud Rate = × 32 (256 − TH1) Timer 2 Generated Baud Rates Baud rates can also be generated by using Timer 2. Using Timer 2 is similar to using Timer 1 in that the timer must overflow 16 times before a bit is transmitted or received. Because Timer 2 has a 16-bit autoreload mode, a wider range of baud rates is possible. Mode 1 and Mode 3 Baud Rate = 1 × Timer 2 Overflow Rate 16 Therefore, when Timer 2 is used to generate baud rates, the timer increments every two clock cycles rather than every core machine cycle as before. It increments six times faster than Timer 1, and, therefore, baud rates six times faster are possible. Because Timer 2 has 16-bit autoreload capability, very low baud rates are still possible. Rev. PrA | Page 116 of 136 Preliminary Technical Data ADE7566/ADE7569 Timer 2 is selected as the baud rate generator by setting TCLK and/or RCLK in Timer/Counter 2 Control SFR (T2CON, 0xC8). The baud rates for transmit and receive can be simultaneously different. Setting RCLK and/or TCLK puts Timer 2 into its baud rate generator mode as shown in Figure 92. fCORE TIMER 1/TIMER 2 Tx CLOCK FRACTIONAL ÷(1 + SBAUDF/64) DIVIDER TIMER 1/TIMER 2 Rx CLOCK 1 0 1 0 ÷2DIV + SBTH In this case, the baud rate is given by the following formula: ÷32 f CORE UARTBAUDEN UART TIMER Rx/Tx CLOCK (16 × [65536 − (RCAP 2H : RCAP 2L )]) Tx CLOCK Figure 91. UART Timer, UART Baud Rate UART Timer Generated Baud Rates Two SFRs, Enhanced Serial Baud Rate Control SFR (SBAUDT, 0x9E) and UART Timer Fractional Divider SFR (SBAUDF, 0x9D), are used to control the UART timer. SBAUDT is the baud rate control SFR; it sets up the integer divider (DIV) and the extended divider (SBTH) for the UART timer. The high integer dividers in a UART block mean that high speed baud rates are not always possible. In addition, generating baud rates requires the exclusive use of a timer, rendering it unusable for other applications when the UART is required. To address this problem, each ADE7566/ADE7569 has a dedicated baud rate timer (UART timer) specifically for generating highly accurate baud rates. The UART timer can be used instead of Timer 1 or Timer 2 for generating very accurate high speed UART baud rates, including 115,200 bps. This timer also allows a much wider range of baud rates to be obtained. In fact, every desired bit rate from 12 bps to 393,216 bps can be generated to within an error of ±0.8%. The UART timer also frees up the other three timers, allowing them to be used for different applications. A block diagram of the UART timer is shown in Figure 91. The appropriate value to write to the DIV[2:0] and SBTH[1:0] bits can be calculated using the following formula where fCORE is defined in the POWCON SFR (see Table 23). Note that the DIV value must be rounded down to the nearest integer. ⎛ ⎞ f CORE ⎟ log⎜ ⎜ 16 × Baud Rate ⎟ ⎝ ⎠ DIV + SBTH = log(2) TIMER 1 OVERFLOW 2 0 fCORE SMOD C/ T2 = 0 TH2 (8 BITS) TIMER 2 OVERFLOW 1 0 RCLK C/ T2 = 1 16 1 TR2 T2EX PIN Rx CLOCK 0 TCLK RELOAD NOTE: AVAILABILITY OF ADDITIONAL EXTERNAL INTERRUPT 16 RCAP2L EXF 2 RCAP2H Tx CLOCK TIMER 2 INTERRUPT CONTROL EXEN2 06353-080 TRANSITION DETECTOR 1 CONTROL TL2 (8 BITS) T2 PIN 06353-081 Rx CLOCK Mode 1 and Mode 3 Baud Rate = Figure 92. Timer 2, UART Baud Rates Rev. PrA | Page 117 of 136 ADE7566/ADE7569 Preliminary Technical Data ⎛ ⎞ f CORE SBAUDF = 64 × ⎜ − 1⎟ ⎜ 16 × 2 DIV + SBTH × Baud Rate ⎟ ⎝ ⎠ Rx D1 D2 D3 D4 D5 D6 D7 STOP D8 STOP RI Figure 93. UART Timing in Mode 1 RX f CORE START D0 D1 D2 D3 D4 D5 D6 D7 RI SBAUDF ⎞ × ⎛⎜1 + ⎟ 64 ⎝ ⎠ 06353-083 16 × 2 DIV + SBTH D0 FE EXTEN = 1 Note that SBAUDF should be rounded to the nearest integer. Once the values for DIV and SBAUDF are calculated, the actual baud rate can be calculated with the following formula: Actual Baud Rate = START 06353-082 SBAUDF is the fractional divider ratio required to achieve the required baud rate. The appropriate value for SBAUDF can be calculated with the following formula: FE EXTEN = 1 Figure 94. UART Timing in Mode 2 and Mode 3 For example, to obtain a baud rate of 9600 bps while operating at a core clock frequency of 4.096 MHz with the PLL CD bits equal to 0, 4,096,000 ⎞ log⎛⎜ ⎟ ⎝ 16 × 9600 ⎠ = 4.74 = 4 DIV + SBTH = log(2) Note that the DIV result is rounded down. 4,096,000 SBAUDF = 64 × ⎛⎜ − 1⎞⎟ = 42.67 = 0 x 2 B ⎝ 16 × 2 3 × 9600 ⎠ Thus, the actual baud rate is 9570 bps, resulting in a 0.31% error. UART ADDITIONAL FEATURES Enhanced Error Checking The extended UART provides frame error, break error, and overwrite error detection. Framing errors occur when a stop bit is not present at the end of the frame. A missing stop bit implies that the data in the frame may not have been received properly. Break error detection indicates if the Rx line has been low for longer than a 9-bit frame. It indicates that the data just received, a 0 or NUL character, is not valid because the master has disconnected. Overwrite error detection indicates when the received data has not been read fast enough and, as result, a byte of data has been lost. The 8052 standard UART offers frame-error checking for an 8-bit UART through the SM2 and RB8 bits. Setting the SM2 bit prevents frames without a stop bit from being received. The stop bit is latched into the RB8 bit in the Serial Communications Control Register Bit Description SFR (SCON, 0x98). This bit can be examined to determine if a valid frame was received. The 8052 does not, however, provide frame error checking for a 9-bit UART. This enhanced error checking functionality is available through the frame error bit, FE in the Enhanced Serial Baud Rate Control SFR (SBAUDT, 0x9E). The FE bit is set on framing errors for both 8-bit and 9-bit UARTs. The 8052 standard UART does not provide break error detection. However, for an 8-bit UART, a break error can be detected when the received character is 0, a NUL character, and when there is no stop bit because the RB8 bit is low. Break error detection is not possible for a 9-bit 8052 UART because the stop bit is not recorded. The ADE7566/ADE7569 enhanced break error detection is available through the BE bit in the SBAUDT SFR. The 8052 standard UART prevents overwrite errors by not allowing a character to be received when the RI, receive interrupt flag, is set. However, it does not indicate if a character has been lost because the RI bit is set when the frame is received. The enhanced UART overwrite error detection provides this information. When the enhanced 8052 UART is enabled, a frame is received regardless of the state of the RI flag. If RI = 1 when a new byte is received, the byte in SCON is overwritten, and the overwrite error flag is set. The overwrite error flag is cleared when SBUF is read. The extended UART is enabled by setting the EXTEN bit in the Configuration SFR (CFG, 0xAF). UART TxD Signal Modulation There is an internal 38 kHz signal that can be OR’ed with the UART transmit signal for use in remote control applications (see the 38 kHz Modulation section). One of the events that can wake the MCU from sleep mode is activity on the Rx pin (see the 3.3 V Peripherals and Wake-Up Events section). Rev. PrA | Page 118 of 136 Preliminary Technical Data ADE7566/ADE7569 SERIAL PERIPHERAL INTERFACE (SPI) The ADE7566/ADE7569 integrate a complete hardware serial peripheral interface on-chip. The SPI is full duplex so that 8 bits of data are synchronously transmitted and simultaneously received. This SPI implementation is double buffered, allowing users to read the last byte of received data while a new byte is shifted in. The next byte to be transmitted can be loaded while the current byte is shifted out. The SPI port can be configured for master or slave operation. The physical interface to the SPI is via MISO (P0.5), MOSI (P0.4), SCLK (P0.6), and SS (P0.7) pins, while the firmware interface is via the SPI Configuration Register SFR (SPIMOD1, 0xE8), the SPI Configuration Register SFR (SPIMOD2, 0xE9), the SPI Interrupt Status Register SFR (SPISTAT, 0xEA), the SPI/I2C Transmit Buffer SFR (SPI2CTx, 0x9A), and the SPI/I2C Receive Buffer SFR (SPI2CRx, 0x9B). Note that the SPI pins are shared with the I2C pins. Therefore, the user can enable only one interface at a time. The SCPS bit in the Configuration SFR (CFG, 0xAF) selects which peripheral is active. SPI SFR REGISTER LIST Table 133. SPI SFR Register List SFR Address 0x9A 0x9B 0xE8 0xE9 0xEA Name SPI2CTx SPI2CRx SPIMOD1 SPIMOD2 SPISTAT R/W W R R/W R/W R/W Length 8 8 8 8 8 Default 0 0x10 0 0 Description SPI/I2C Data Out Register (see Table 134). SPI/I2C Data in Register (see Table 135). SPI Configuration Register (see Table 136). SPI Configuration Register. (see Table 137). SPI/I2C Interrupt Status Register (see Table 138). Table 134. SPI/I2C Transmit Buffer SFR (SPI2CTx, 0x9A) Bit No. 7 to 0 Mnemonic SPI2CTx Default 0 Description SPI or I2C Transmit Buffer. When SPI2CTx SFR is written, its content is transferred to the transmit FIFO input. When a write is requested, the FIFO output is sent on the SPI or I2C bus. Table 135. SPI/I2C Receive Buffer SFR (SPI2CRx, 0x9B) Bit No. 7 to 0 Mnemonic SPI2CRx Default 0 Description SPI or I2C Receive Buffer. When SPI2CRx SFR is read, one byte from the receive FIFO output is transferred to SPI2CRx SFR. A new data byte from the SPI or I2C bus is written to the FIFO input. Rev. PrA | Page 119 of 136 ADE7566/ADE7569 Preliminary Technical Data Table 136. SPI Configuration Register SFR (SPIMOD1, 0xE8) Bit No. 7 to 5 5 Address 0xEF to 0xEE 0xED Mnemonic Reserved INTMOD Default 0 0 4 0xEC AUTO_SS 1 Description Reserved. SPI Interrupt Mode. INTMOD Result 0 SPI interrupt set when SPI Rx buffer is full. 1 SPI interrupt set when SPI Tx buffer is empty. Master Mode, SS Output Control (see Figure 95). AUTO_SS 0 3 0xEB SS_EN 0 2 0xEA RxOFW 0 1 to 0 0xE9 to 0xE8 SPIR[1:0] 0 Result The SS is held low while this bit is cleared. This allows manual chip select control using the SS pin. 1 Single Byte Read or Write. The SS goes low during a single byte transmission and then returns high. Continuous Transfer. The SS goes low during the duration of the multibyte continuous transfer and then returns high. Slave Mode, SS Input Enable. When this bit is set to Logic 1, the SS pin is defined as the slave select input pin for the SPI slave interface. Receive Buffer Overflow Write Enable. RxOFW Result 0 If the SPI2CRx SFR has not been read when a new data byte is received, the new byte is discarded. 1 If the SPI2CRx SFR has not been read when a new data byte is received, the new byte overwrites the old data. Master Mode, SPI SCLK Frequency. SPIR[1:0] Result 00 fCORE/8 = 512 kHz (if fCORE = 4.096 MHz) 01 fCORE/16 = 256 kHz (if fCORE = 4.096 MHz) 10 fCORE/32 = 128 kHz (if fCORE = 4.096 MHz) 11 fCORE/64 = 64 kHz (if fCORE = 4.096 MHz) Rev. PrA | Page 120 of 136 Preliminary Technical Data ADE7566/ADE7569 Table 137. SPI Configuration Register SFR (SPIMOD2, 0xE9) Bit No. 7 Mnemonic SPICONT Default 0 Description Master Mode, SPI Continuous Transfer Mode Enable Bit. SPICONT Result 0 The SPI interface stops after one byte is transferred and SS is deasserted. A new data transfer can be initiated after a stalled period. 1 The SPI interface continues to transfer data until no valid data is available in the SPI2CTx SFR. SS remains asserted until the SPI2CTx SFR and the transmit shift register is empty. 6 SPIEN 0 5 SPIODO 0 4 SPIMS_b 0 3 SPICPOL 0 2 SPICPHA 0 1 SPILSBF 0 0 TIMODE 0 SPI Interface Enable Bit. SPIEN Result 0 The SPI interface is disabled. 1 The SPI interface is enabled. SPI Open Drain Output Configuration Bit. SPIODO Result 0 Internal pull-up resistors are connected to the SPI outputs. 1 The SPI outputs are open-drain and need external pull-up resistors. SPI Master Mode Enable Bit. SPIMS_b Result 0 The SPI interface is defined as a slave. 1 The SPI interface is defined as a master. SPI Clock Polarity Configuration Bit (see Figure 97). SPICPOL Result 0 The default state of SCLK is low, and the first SCLK edge is rising. Depending on SPICPHA bit, the SPI data output changes state on the falling or rising edge of SCLK while the SPI data input is sampled on the rising or falling edge of SCLK. 1 The default state of SCLK is high, and the first SCLK edge is falling. Depending on SPICPHA bit, the SPI data output changes state on the rising or falling edge of SCLK while the SPI data input is sampled on the falling or rising edge of SCLK. SPI Clock Phase Configuration Bit (see Figure 97). SPICPHA Result 0 The SPI data output changes state when SS goes low at the second edge of SCLK and then every two subsequent edges while the SPI data input is sampled at the first SCLK edge and then every two subsequent edges. 1 The SPI data output changes state at the first edge of SCLK and then every two subsequent edges while the SPI data input is sampled at the second SCLK edge and then every two subsequent edges. Master Mode, LSB First Configuration Bit. SPILSBF Result 0 The MSB of the SPI outputs is transmitted first. 1 The LSB of the SPI outputs is transmitted first. Transfer and Interrupt Mode of the SPI Interface. TIMODE Result 0 Transfer is initiated when data is read from the SPI2CRx SFR, and an interrupt is generated when there is new data in the SPI2CRx SFR. 1 Transfer is initiated when data is written to the SPI2CTx SFR, and an interrupt is generated when the SPI2CTx SFR is empty. Rev. PrA | Page 121 of 136 ADE7566/ADE7569 Preliminary Technical Data Table 138. SPI Interrupt Status Register SFR (SPISTAT, 0xEA) Bit No. 7 Mnemonic BUSY Default 0 6 MMERR 0 5 SPIRxOF 0 4 SPIRxIRQ 0 3 2 SPIRxBF SPITxUF 0 0 1 SPITxIRQ 0 0 SPITxBF 0 Description SPI Peripheral Busy Flag. BUSY Result 0 The SPI peripheral is idle. 1 The SPI peripheral is busy transferring data in slave or master mode. SPI Multi-Master Error Flag. MMERR Result 0 A multiple master error has not occurred. 1 If the SS_EN bit is set, enabling the slave select input and asserting the SS while the SPI peripheral is transferring data as a master, this flag is raised to indicate the error. Write a 0 to this bit to clear it. SPI Receive Overflow Error Flag. Reading the SPI2CRx SFR clears this bit. SPIRxOF TIMODE Result 0 X The SPI2CRx register contains valid data 1 1 This bit is set if the SPI2CRx register is not read before the end of the next byte transfer. If the RxOFW bit is set and this condition occurs, SPI2CRx is overwritten. SPI Receive Mode Interrupt Flag. Reading the SPI2CRx SFR clears this bit. SPIRxIRQ TIMODE Result 0 X The SPI2CRx register does not contain new data. 1 0 This bit is set when the SPI2CRx register contains new data. If the SPI/I2C interrupt is enabled, an interrupt is generated when this bit is set. If the SPI2CRx register is not read before the end of the current byte transfer, the transfer stop and the SS is deasserted. 1 1 The SPI2CRx register contains new data. Status Bit for SPI Rx Buffer. When set, the Rx FIFO is full. A read of the SPI2CRx clears this flag Status Bit for SPI Tx Buffer. When set, the Tx FIFO is underflowing and data can be written into SPI2CTx. Write a 0 to this bit to clear it. SPI Transmit Mode Interrupt Flag. Writing new data to the SPI2CTx SFR clears this bit. SPITxIRQ TIMODE Result 0 X The SPI2CTx register is full. 1 0 The SPI2CTx register is empty. 1 1 This bit is set when the SPI2CTx register is empty. If the SPI/I2C interrupt is enabled, an interrupt is generated when this bit is set. If new data is not written into the SPI2CTx SFR before the end of the current byte transfer, the transfer stops, and the SS is deasserted. Write a 0 to this bit to clear it. Status Bit for SPI Tx Buffer. When set, the SPI Tx buffer is full. Write a 0 to this bit to clear it. SPI PINS SCLK (Serial Clock I/O Pin) MISO (Master in, Slave out Data I/O Pin) The master serial clock (SCLK) is used to synchronize the data being transmitted and received through the MOSI and MISO data lines. The SCLK pin is configured as an output in master mode and as an input in slave mode. The MISO pin is configured as an input line in master mode and as an output line in slave mode. The MISO line on the master (data in) should be connected to the MISO line in the slave device (data out). The data is transferred as byte-wide (8-bit) serial data, MSB first. MOSI (Master out, Slave in Pin) The MOSI pin is configured as an output line in master mode and as an input line in slave mode. The MOSI line on the master (data out) should be connected to the MOSI line in the slave device (data in).The data is transferred as byte-wide (8-bit) serial data, MSB first. In master mode, the bit rate, polarity, and phase of the clock are controlled by the SPI Configuration Register SFR (SPIMOD1, 0xE8) and SPI Configuration Register SFR (SPIMOD2, 0xE9). In slave mode, the SPI Configuration Register SFR (SPIMOD2, 0xE9) must be configured with the phase and polarity of the expected input clock. In both master and slave modes, the data is transmitted on one edge of the SCLK signal and sampled on the other. It is important, therefore, that the SPICPHA and SPICPOL bits are configured the same for the master and slave devices. Rev. PrA | Page 122 of 136 Preliminary Technical Data ADE7566/ADE7569 SS (Slave Select Pin) SS In SPI slave mode, a transfer is initiated by the assertion of SS low. The SPI port then transmits and receives 8-bit data until the data is concluded by the deassertion of SS. In slave mode, SS is always an input. SCLK AUTO_SS = 1 SPICONT = 1 In SPI master mode, the SS can be used to control data transfer to a slave device. In the automatic slave select control mode, the SS is asserted low to select the slave device and then raised to deselect the slave device after the transfer is complete. Automatic slave select control is enabled by setting the AUTO_SS bit in the SPI Configuration Register SFR (SPIMOD1, 0xE8). DIN DOUT DOUT1 DOUT2 SCLK AUTO_SS = 1 SPICONT = 0 SPI MASTER OPERATING MODES DIN DOUT In master mode, the type of transfer is handled automatically, depending on the configuration of the TIMODE and SPICONT bits in the SPI Configuration Register SFR (SPIMOD2, 0xE9). Table 139 shows the sequence of events that should be performed for each master operating mode. Based on the SS configuration, some of these events take place automatically. DIN2 SS In a multimaster system, the SS can be configured as an input so that the SPI peripheral can operate as a slave in some situations and as a master in others. In this case, the slave selects for the slaves controlled by this SPI peripheral should be generated with general I/O pins. DIN1 DIN2 DOUT1 DOUT2 DIN1 DIN2 SS SCLK AUTO_SS = 0 SPICONT = 0 (MANUAL SS CONTROL) DIN DOUT DOUT1 DOUT2 Figure 95. Automatic Chip Select and Continuous Mode Output Note that reading the content of the SPI/I2C Receive Buffer SFR (SPI2CRx, 0x9B) should be done using a 2-cycle instruction set such as MOV A or SPI2CRX. Using a 3-cycle instruction such as MOV 0x3D or SPI2CRX will not transfer the right information into the target register. Figure 95 shows the SPI output for certain automatic chip select and continuous mode selections. Note that if the continuous mode is not used, a short delay is inserted between transfers. Table 139. Procedures for Using SPI as a Master Mode Single Byte Write SPIMOD2[7] = SPICONT Bit 0 Continuous 1 06353-084 The double buffered receive and transmit registers can be used to maximize the throughput of the SPI peripheral by continuously streaming out data in master mode. The continuous transmit mode is designed to use the full capacity of the SPI. In this mode, the master transmits and receives data until the SPI/I2C Transmit Buffer SFR (SPI2CTx, 0x9A) is empty at the start of a byte transfer. Continuous mode is enabled by setting the SPICONT bit in the SPI Configuration Register SFR (SPIMOD2, 0xE9).The SPI peripheral also offers a single byte read and a single byte write function. DIN1 Description of Operation Step 1. Write to SPI2CTx SFR. Step 2. SS is asserted low and a write routine is initiated. Step 3. SPITxIRQ interrupt flag is set when SPI2CTx register is empty. Step 4. SS is deasserted high. Step 5. Write to SPI2CTx SFR to clear SPITxIRQ interrupt flag. Step 1. Write to SPI2CTx SFR. Step 2. SS is asserted low and write routine is initiated. Step 3. Wait for SPITxIRQ interrupt flag to write to SPI2CTx SFR. Transfer continues until the SPI2CTx register and transmit shift registers are empty. Step 4. SPITxIRQ interrupt flag is set when SPI2CTx register is empty. Step 5. SS is deasserted high. Step 6. Write to SPI2CTx SFR to clear SPITxIRQ interrupt flag. Rev. PrA | Page 123 of 136 ADE7566/ADE7569 Preliminary Technical Data The SPI interface has several status flags that indicate the status of the double buffered receive and transmit registers. Figure 96 shows when the status and interrupt flags are raised. The transmit interrupt occurs when the transmit shift register is loaded with the data in the SPI/I2C Transmit Buffer SFR (SPI2CTx, 0x9A) register. If the SPI master is in transmit operating mode, and the SPI/I2C Transmit Buffer SFR (SPI2CTx, 0x9A) register has not been written with new data by the beginning of the next byte transfer, the transmit operation stops. When a new byte of data is received in the SPI/I2C Receive Buffer SFR (SPI2CRx, 0x9B) register, the SPI receive interrupt SPITx SPIRx SPITxIRQ = 1 TRANSMIT SHIFT REGISTER SPIRxIRQ = 1 RECEIVE SHIFT REGISTER SPITx (EMPTY) SPIRx (FULL) STOPS TRANSFER IF TIMODE = 1 TRANSMIT SHIFT REGISTER Figure 96. SPI Receive and Transmit Interrupt and Status Flags SCLK (SPICPOL = 1) SCLK (SPICPOL=0) SS_b SPICPHA = 1 MISO ? MSB BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 LSB MOSI ? MSB BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 LSB SPIRx AND SPITx FLAGS WITH INTMOD = 1 SPIRx AND SPITx FLAGS WITH INTMOD = 0 MISO MSB BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 LSB ? MOSI MSB BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 LSB ? SPIRx AND SPITx FLAGS WITH INTMOD = 1 SPIRx AND SPITx FLAGS WITH INTMOD = 0 06353-086 SPICPHA = 0 Figure 97. SPI Timing Configurations Rev. PrA | Page 124 of 136 SPIRxOF = 1 RECEIVE SHIFT REGISTER 06353-085 SPI INTERRUPT AND STATUS FLAGS flag is raised. If the data in the SPI/I2C Receive Buffer SFR (SPI2CRx, 0x9B) register is not read before new data is ready to be loaded into the SPI/I2C Receive Buffer SFR (SPI2CRx, 0x9B), an overflow condition has occurred. This overflow condition, indicated by the SPIRxOF flag, forces the new data to be discarded or overwritten if the RxOFW bit is set. Preliminary Technical Data ADE7566/ADE7569 I2C COMPATIBLE INTERFACE The bit rate is defined in the I2CMOD SFR as follows: The ADE7566/ADE7569 support a fully licensed I2C interface. The I2C interface is implemented as a full hardware master. f SCLK = SDATA is the data I/O pin, and SCLK is the serial clock. These two pins are shared with the MOSI and SCLK pins of the on-chip SPI interface. Therefore, the user can enable only one interface or the other on these pins at any given time. The SCPS bit in the Configuration SFR (CFG, 0xAF) selects which peripheral is active. f CORE 16 × 2 I 2CR[1:0] SLAVE ADDRESSES The I2C Slave Address SFR (I2CADR, 0xE9) contains the slave device ID. The LSB of this register contains a read/write request. A write to this SFR starts the I2C communication. I2C SFR REGISTER LIST The two pins used for data transfer, SDATA and SCLK, are configured in a wire-AND format that allows arbitration in a multimaster system. The I2C peripheral interface consists of five SFRs: • • • • • 2 The transfer sequence of a I C system consists of a master device initiating a transfer by generating a start condition while the bus is idle. The master transmits the address of the slave device and the direction of the data transfer in the initial address transfer. If the slave acknowledges, the data transfer is initiated. This continues until the master issues a stop condition and the bus becomes idle. I2CMOD SPI2CSTAT I2CADR SPI2CTx SPI2CRx Because the SPI and I2C serial interfaces share the same pins, they also share the same SFRs, such as the SPI2CTx and SPIXCRx SFRs. In addition, the I2CMOD, I2CADR, SPI2CSTAT, and SPI2CTx SFRs are shared with the SPIMOD1, SPIMOD2, and SPISTAT SFRs, respectively. SERIAL CLOCK GENERATION The I2C master in the system generates the serial clock for a transfer. The master channel can be configured to operate in fast mode (256 kHz) or standard mode (32 kHz). Table 140. I2C SFR Register List SFR Address 0x9A 0x9B 0xE8 0xE9 0xEA Name SPI2CTx SPI2CRx I2CMOD I2CADR SPI2CSTAT R/W W R R/W R/W R/W Length 8 8 8 8 8 Default 0 0 0 0 Description SPI/I2C Data out Register (see Table 134). SPI/I2C Data in Register (see Table 135). I2C Configuration Register (see Table 141). I2C Configuration Register (see Table 142). SPI/I2C Interrupt Status Register (see Table 143). Table 141. I2C Mode Register SFR (I2CMOD, 0xE8) Bit No. 7 Address 0xEF Mnemonic I2CEN Default 0 6 to 5 0xEE to 0xED I2CR[1:0] 0 4 to 0 0xEC to 0xE8 I2CRCT[4:0] 0 Description I2C Enable Bit. When this bit is set to Logic 1, the I2C interface is enabled. A write to the I2CADR SFR starts a communication. I2C SCLK Frequency. I2CR[1:0] Result 00 fCORE/16 = 256 kHz if fCORE = 4.096 MHz 01 fCORE/32 = 128 kHz if fCORE = 4.096 MHz 10 fCORE/64 = 64 Hz if fCORE = 4.096 MHz 11 fCORE/128= 32 kHz if fCORE = 4.096 MHz Configures the length of the I2C received FIFO buffer. The I2C peripheral stops when I2CRCT, Bit[4:0] + 1 byte have been read or if an error has occurred. Rev. PrA | Page 125 of 136 ADE7566/ADE7569 Preliminary Technical Data Table 142. I2C Slave Address SFR (I2CADR, 0xE9) Bit No. 7 to 1 0 Mnemonic I2CSLVADR I2CR_W Default 0 0 Description Address of the I2C Slave Being Addressed. Writing to this register starts the I2C transmission (read or write). Command Bit for Read or Write. When this bit is set to Logic 1, a read command is transmitted on the I2C bus. Data from slave in the SPI2CRx SFR is expected after command byte. When this bit is set to Logic 0, a write command is transmitted on the I2C bus. Data to slave is expected in the SPI2CTx SFR. Table 143. I2C Interrupt Status Register SFR (SPI2CSTAT, 0xEA) Bit No. 7 6 Mnemonic I2CBUSY I2CNOACK Default 0 0 5 I2CRxIRQ 0 4 I2CTxIRQ 0 3 to 2 I2CFIFOSTAT[1:0] 0 1 0 I2CACC_ERR I2CTxWR_ERR 0 0 Description This bit is set to Logic 1 when the I2C interface is used. When set, the Tx FIFO is emptied I2C No Acknowledgement Transmit Interrupt. This bit is set to Logic 1 when the slave device does not send an acknowledgement. The I2C communication is stopped after this event. Write a 0 to this bit to clear it. I2C Receive Interrupt. This bit is set to Logic 1 when the receive FIFO is not empty. Write a 0 to this bit to clear it. I2C Transmit Interrupt. This bit is set to Logic 1 when the transmit FIFO is empty. Write a 0 to this bit to clear it. Status Bits for 3- or 4-Bytes Deep I2C FIFO. The FIFO monitored in these 2 bits is the one currently used in I2C communication (receive or transmit) because only one FIFO is active at a time. I2CFIFOSTAT[1:0] Result 00 FIFO empty 01 Reserved 10 FIFO half full 11 FIFO full Set when trying to write and read at the same time. Write a 0 to this bit to clear it. Set when write was attempted when I2C transmit FIFO was full. Write a 0 to this bit to clear it. READ AND WRITE OPERATIONS Figure 98 and Figure 99 depict I2C read and write operations, respectively. Note that the LSB of the I2CADR register is used to select whether a read or write operation is performed on the slave device. During the read operation, the master acknowledges are generated automatically by the I2C peripheral. The master generated NACK before the end of a read operation is also automatically generated after the I2CRCT, Bits[4:0] bits have been read from the slave. If the I2CADR register is updated during a transmission, instead of generating a stop at the end of the read or write operation, the master generates a start condition and continues with the next communication. Reading the SPI/I2C Receive Buffer SFR (SPI2CRx, 0x9B) Reading the SPI2CRx SFR should be done with a 2-cycle instruction, such as Mov a, spi2crx or Mov R0, spi2crx. A 3-cycle instruction such as Mov 3dh, spi2crx will not transfer the right data into RAM Address 0x3d. 1 9 1 9 1 9 SCLK A6 A5 A4 A3 A2 A1 A0 R/W D7 D6 ACK BY SLAVE FRAME 1 SERIAL BUS ADDRESS BYTE D5 D4 D3 D2 D1 D0 FRAME 2 DATA BYTE 1 FROM MASTER D7 D6 ACK BY MASTER D5 D4 D3 D2 D1 D0 FRAME N + 1 DATA BYTE N FROM SLAVE Figure 98. I2C Read Operation 1 9 1 9 SCLK SDATA START BY MASTER A6 A5 A4 A3 A2 A1 A0 FRAME 1 SERIAL BUS ADDRESS BYTE R/W ACK BY SLAVE D7 D6 D5 D4 D3 D2 D1 D0 FRAME 2 DATA BYTE 1 FROM MASTER Figure 99. I2C Write Operation Rev. PrA | Page 126 of 136 ACK BY SLAVE STOP BY MASTER NACK BY STOP BY MASTER MASTER 06353-087 START BY MASTER 06353-088 SDATA Preliminary Technical Data ADE7566/ADE7569 The I2C peripheral has a 4 byte receive FIFO and a 4 byte transmit FIFO. The buffers reduce the overhead associated with using the I2C peripheral. Figure 100 shows the operation of the I2C receive and transmit FIFOs. The Tx FIFO can be loaded with four bytes to be transmitted to the slave at the beginning of a write operation. When the transmit FIFO is empty, the I2C transmit interrupt flag is set, and the PC vectors to the I2C interrupt vector if this interrupt is enabled. If a new byte is not loaded into the Tx FIFO before it is needed in the transmit shift register, the communication stops. An error, such as not receiving an acknowledge, also causes the communication to terminate. In case of an error during a write operation, the Tx FIFO is flushed. be generated after each byte is received or when the Rx FIFO is full. If the peripheral is reading from a slave address, the communication stops once the number of received bytes equals the number set in the I2CRCT, Bits[4:0]. An error, such as not receiving an acknowledge, also causes the communication to terminate. CODE TO READ Rx FIFO: CODE TO FILL Tx FIFO: MOV MOV MOV MOV I2CTx, I2CTx, I2CTx, I2CTx, TxDATA1 TxDATA2 TxDATA3 TxDATA4 MOV A, MOV A, MOV A, MOV A, I2CRx; I2CRx; I2CRx; I2CRx; I2CRx I2CTx RxDATA1 TxDATA4 4 BYTE FIFO The Rx FIFO allows four bytes to be read in from the slave before the MCU has to read the data. A receive interrupt can Rev. PrA | Page 127 of 136 TxDATA3 TxDATA2 RESULT: A = RxDATA1 RESULT: A = RxDATA2 RESULT: A = RxDATA3 RESULT: A = RxDATA4 4 BYTE FIFO RxDATA2 RxDATA3 TxDATA1 RxDATA4 TRANSMIT SHIFT REGISTER RECEIVE SHIFT REGISTER Figure 100. I2C FIFO Operation 06353-089 I2C RECEIVE AND TRANSMIT FIFOS ADE7566/ADE7569 Preliminary Technical Data DUAL DATA POINTERS Each ADE7566/ADE7569 incorporates two data pointers. The second data pointer is a shadow data pointer and is selected via the Data Pointer Control SFR SFR (DPCON, 0xA7). DPCON features automatic hardware post-increment and postdecrement, as well as an automatic data pointer toggle. Note that this section of the data sheet is the only place where the main and shadow data pointers are distinguished. Whenever the data pointer (DPTR) is mentioned elsewhere in the data sheet, active DPTR is implied. In addition, only the MOVC/MOVX @DPTR instructions automatically post-increment and post-decrement the DPTR. Other MOVC/MOVX instructions, such as MOVC PC or MOVC @Ri, do not cause the DPTR to automatically postincrement and post-decrement. To illustrate the operation of DPCON, the following code copies 256 bytes of code memory at Address 0xD000 into XRAM, starting from Address 0x0000: MOV DPTR,#0 MOV DPCON,#55H ;Main DPTR = 0 ;Select shadow DPTR ;DPTR1 increment mode ;DPTR0 increment mode ;DPTR auto toggling ON MOV DPTR,#0D000H ;DPTR = D000H MOVELOOP: CLR A MOVC A,@A+DPTR ;Get data ;Post Inc DPTR ;Swap to Main DPTR(Data) MOVX @DPTR,A ;Put ACC in XRAM ;Increment main DPTR ;Swap Shadow DPTR(Code) MOV A, DPL JNZ MOVELOOP Table 144. Data Pointer Control SFR SFR (DPCON, 0xA7) Bit No. 7 6 Mnemonic – DPT Default 0 0 5, 4 DP1m1, DP1m0 0 3, 2 DP0m1, DP0m0 0 1 0 – DPSEL 0 0 Description Not Implemented, Write Don’t Care. Data Pointer Automatic Toggle Enable. Cleared by the user to disable auto swapping of the DPTR. Set in user software to enable automatic toggling of the DPTR after each MOVX or MOVC instruction. Shadow Data Pointer Mode. These bits enable extra modes of the shadow data pointer operation, allowing more compact and more efficient code size and execution. DP1m1 DP1m0 Result (Behavior of the Shadow Data Pointer) 0 0 8052 behavior. 0 1 DPTR is post-incremented after a MOVX or a MOVC instruction. 1 0 DPTR is post-decremented after a MOVX or MOVC instruction. 1 1 DPTR LSB is toggled after a MOVX or MOVC instruction. This instruction can be useful for moving 8-bit blocks to/from 16-bit devices. Main Data Pointer Mode. These bits enable extra modes of the main data pointer operation, allowing more compact and more efficient code size and execution. DP0m1 DP0m0 Result (Behavior of the Main Data Pointer) 0 0 8052 behavior. 0 1 DPTR is post-incremented after a MOVX or a MOVC instruction. 1 0 DPTR is post-decremented after a MOVX or MOVC instruction. 1 1 DPTR LSB is toggled after a MOVX or MOVC instruction. This instruction is useful for moving 8-bit blocks to/from 16-bit devices. Not Implemented, Write Don’t Care. Data Pointer Select. Cleared by the user to select the main data pointer, meaning that the contents of this 16-bit register are placed into the DPL SFR and DPH SFR. Set by the user to select the shadow data pointer, meaning that the contents of a separate 16-bit register appear in the DPL SRF and DPH SFR. Rev. PrA | Page 128 of 136 Preliminary Technical Data ADE7566/ADE7569 I/O PORTS PARALLEL I/O Weak Internal Pull-Ups Enabled The ADE7566/ADE7569 use three input/output ports to exchange data with external devices. In addition to performing general-purpose I/O, some are capable of driving an LCD or performing alternate functions for the peripherals available onchip. In general, when a peripheral is enabled, the pins associated with it cannot be used as a general-purpose I/O. The I/O port can be configured through the SFRs in Table 145. A pin with weak internal pull-up enabled is used as an input by writing a 1 to the pin. The pin is pulled high by the internal pullups, and the pin is read using the circuitry shown in Figure 101. If the pin is driven low externally, it sources current because of the internal pull-ups. Table 145. I/O Port SFRs Address 0x80 0x90 0xA0 0x9F Bit Addressable Yes Yes Yes No PINMAP0 0xB2 No PINMAP1 0xB3 No PINMAP2 0xB4 No Open Drain (Weak Internal Pull-Ups Disabled) Description Port 0 Register. Port 1 Register. Port 2 Register. Extended Port Configuration. Port 0 Weak Pull-Up Enable. Port 1 Weak Pull-Up Enable. Port 2 Weak Pull-Up Enable. When the weak internal pull-up on a pin is disabled, the pin becomes open-drain. Use this open-drain pin as a high impedance input by writing a 1 to the pin. The pin is read using the circuitry shown in Figure 101. The open drain option is preferable for inputs because it draws less current than the internal pull-ups that were enabled. The three bidirectional I/O ports have internal pull-ups that can be enabled or disabled individually for each pin. The internal pull-ups are enabled by default. Disabling an internal pull-up causes a pin to become open-drain. Weak internal pull-ups are configured through the PINMAPx SFRs. Figure 101 shows a typical bit latch and I/O buffer for an I/O pin. The bit latch (one bit in the each port’s SFR) is represented as a Type D flip-flop, which clocks in a value from the internal bus in response to a write-to-latch signal from the CPU. The Q output of the flip-flop is placed on the internal bus in response to a read-latch signal from the CPU. The level of the port pin itself is placed on the internal bus in response to a read pin signal from the CPU. Some instructions that read a port activate the read latch signal, and others activate the read pin signal. See the Read-Modify-Write Instructions section for details. To use an open-drain pin as a general-purpose output, an external pull-up resistor is required. Open drain outputs are convenient for changing the voltage to a logic high. The ADE7566/ADE7569 are 3.3 V devices, so an external resistor pulled up to 5 V may ease interfacing to a 5 V IC, although most 5 V ICs are tolerant of 3.3 V inputs. Pins with 0s written to them drive a logic low output voltage (VOL) and are capable of sinking 1.6 mA. 38 kHz Modulation Every ADE7566/ADE7569 provides a 38 kHz modulation signal. The 38 kHz modulation is accomplished by internally XOR’ing the level written to the I/O pin with a 38 kHz square wave. Then, when a 0 is written to the I/O pin, it is modulated as shown in Figure 102. LEVEL WRITTEN TO MOD38 38kHz MODULATION SIGNAL OUTPUT AT MOD38 PIN Figure 102. 38 kHz Modulation DVDD ALTERNATE OUTPUT FUNCTION READ LATCH WRITE TO LATCH READ PIN D Uses for this 38 kHz modulation include IR modulation of a UART transmit signal or a low power signal to drive an LED. The modulation can be enabled or disabled with the MOD38EN bit in the CFG SFR. The 38 kHz modulation is available on 8 pins, selected by the MOD38[7:0] bits in the Extended Port Configuration SFR (EPCFG, 0x9F). INTERNAL PULL-UP CLOSED: PINMAPx.x = 0 OPEN: PINMAPx.x = 1 Px.x PIN Q CL Q LATCH ALTERNATE INPUT FUNCTION 06353-090 INTERNAL BUS 06353-091 SFR P0 P1 P2 EPCFG A pin with internal pull-up enabled is used as an output by writing a 1 or a 0 to the pin to control the level of the output. If a 0 is written to the pin, it drives a logic low output voltage (VOL) and is capable of sinking TBD mA. Figure 101. Port 0 Bit Latch and I/O Buffer Rev. PrA | Page 129 of 136 ADE7566/ADE7569 Preliminary Technical Data I/O SFR REGISTER LIST Table 146. Extended Port Configuration SFR (EPCFG, 0x9F) Bit No. 7 6 5 4 3 2 1 0 Mnemonic MOD38_FP21 MOD38_FP22 MOD38_FP23 MOD38_TxD MOD38_CF1 MOD38_SSb MOD38_MISO MOD38_CF2 Default 0 0 0 0 0 0 0 0 Description Enable 38 kHz modulation on P1.6/FP21 pin. Enable 38 kHz modulation on P1.5/FP22 pin. Enable 38 kHz modulation on P1.4/T2/FP23 pin. Enable 38 kHz modulation on P1.1/TxD pin. Enable 38 kHz modulation on P0.2/CF1 pin. Enable 38 kHz modulation on P0.7/SS/T1pin. Enable 38 kHz modulation on P0.5/MISO pin. Enable 38 kHz modulation on P0.3/CF2 pin. Table 147. Port 0 Weak Pull-Up Enable SFR (PINMAP0, 0xB2) Bit No. 7 6 5 4 3 2 1 0 Mnemonic PINMAP0.7 PINMAP0.6 PINMAP0.5 PINMAP0.4 PINMAP0.3 PINMAP0.2 PINMAP0.1 PINMAP0.0 Default 0 0 0 0 0 0 0 0 Description The weak pull-up on P0.7 is disabled when this bit is set. The weak pull-up on P0.6 is disabled when this bit is set. The weak pull-up on P0.5 is disabled when this bit is set. The weak pull-up on P0.4 is disabled when this bit is set. The weak pull-up on P0.3 is disabled when this bit is set. The weak pull-up on P0.2 is disabled when this bit is set. The weak pull-up on P0.1 is disabled when this bit is set. The weak pull-up on P0.0 is disabled when this bit is set. Table 148. Port 1 Weak Pull-Up Enable SFR (PINMAP1, 0xB3) Bit No. 7 6 5 4 3 2 1 0 Mnemonic PINMAP1.7 PINMAP1.6 PINMAP1.5 PINMAP1.4 PINMAP1.3 PINMAP1.2 PINMAP1.1 PINMAP1.0 Default 0 0 0 0 0 0 0 0 Description The weak pull-up on P1.7 is disabled when this bit is set. The weak pull-up on P1.6 is disabled when this bit is set. The weak pull-up on P1.5 is disabled when this bit is set. The weak pull-up on P1.4 is disabled when this bit is set. The weak pull-up on P1.3 is disabled when this bit is set. The weak pull-up on P1.2 is disabled when this bit is set. The weak pull-up on P1.1 is disabled when this bit is set. The weak pull-up on P1.0 is disabled when this bit is set. Table 149. Port 2 Weak Pull-Up Enable SFR (PINMAP2, 0xB4) Bit No. 7 to 6 5 4 3 2 1 0 Mnemonic Reserved PINMAP2.5 Reserved PINMAP2.3 PINMAP2.2 PINMAP2.1 PINMAP2.0 Default 0 0 0 0 0 0 0 Description Reserved. Should be left cleared. The weak pull-up on RESET is disabled when this bit is set. The weak pull-up on EA is disabled when this bit is set. Reserved. Should be left cleared. The weak pull-up on P2.2 is disabled when this bit is set. The weak pull-up on P2.1 is disabled when this bit is set. The weak pull-up on P2.0 is disabled when this bit is set. Rev. PrA | Page 130 of 136 Preliminary Technical Data ADE7566/ADE7569 Table 150. Port 0 SFR (P0, 0x80) Bit No. 7 6 5 4 3 2 1 0 1 Address 0x87 0x86 0x85 0x84 0x83 0x82 0x81 0x80 Mnemonic T1 T0 CF2 CF1 INT1 Default 1 1 1 1 1 1 1 1 Description 1 This bit reflects the state of P0.7/SS/T1 pin. It can be written or read. This bit reflects the state of P0.6/SCLK/T0 pin. It can be written or read. This bit reflects the state of P0.5/MISO pin. It can be written or read. This bit reflects the state of P0.4/MOSI/SDATA pin. It can be written or read. This bit reflects the state of P0.3/CF2 pin. It can be written or read. This bit reflects the state of P0.2/CF1 pin. It can be written or read. This bit reflects the state of P0.1/FP19 pin. It can be written or read. This bit reflects the state of BCTRL/INT1/P0.0 pin. It can be written or read. When an alternate function is chosen for a pin of this port, the bit controlling this pin should always be set. Table 151. Port 1 SFR (P1, 0x90) Bit No. 7 6 5 4 3 2 1 0 1 Address 0x97 0x96 0x95 0x94 0x93 0x92 0x91 0x90 Mnemonic T2 T2EX TxD RxD Default 1 1 1 1 1 1 1 1 Description 1 This bit reflects the state of P1.7/FP20 pin. It can be written or read. This bit reflects the state of P1.6/FP2 pin. It can be written or read. This bit reflects the state of P1.5/FP22 pin. It can be written or read. This bit reflects the state of P1.4/T2/FP23 pin. It can be written or read. This bit reflects the state of P1.3/T2EX/FP24 pin. It can be written or read. This bit reflects the state of P1.2/FP25 pin. It can be written or read. This bit reflects the state of P1.1/TxD pin. It can be written or read. This bit reflects the state of P1.0/RxD pin. It can be written or read. When an alternate function is chosen for a pin of this port, the bit controlling this pin should always be set. Table 152. Port 2 SFR (P2, 0xA0) Bit No. 7 to 2 1 0 1 Address 0x97 to 0x92 0x91 0x90 Mnemonic P2.1 P2.0 Default 0x3F 1 1 Description 1 These bits are unused and should be left set. This bit reflects the state of P2.1/FP17 pin. It can be written or read. This bit reflects the state of P2.0/FP18 pin. It can be written or read. When an alternate function is chosen for a pin of this port, the bit controlling this pin should always be set. Rev. PrA | Page 131 of 136 ADE7566/ADE7569 Preliminary Technical Data Table 153. Port 0 Alternate Functions Pin No. P0.0 P0.1 P0.2 P0.3 P0.4 Alternate Function BCTRL External Battery Control Input INT1 External Interrupt Alternate Function Enable Set INT1PROG[2:0] = X01 in the Interrupt Pins Configuration SFR (INTPR, 0xFF). Set EX1 in the Interrupt Enable SFR (IE, 0xA8). INT1 Wake-up from PSM2 Operating Mode Set INT1PROG[2:0] = 11X in the Interrupt Pins Configuration SFR (INTPR, 0xFF). FP19 LCD Segment Pin CF1 ADE Calibration Frequency Output CF2 ADE Calibration Frequency Output MOSI SPI Data Line Set FP19EN in the LCD Segment Enable 2 SFR (LCDSEGE2, 0xED). Clear the DISCF1 bit in the ADE energy measurement internal MODE1 Register (0x0B). Clear the DISCF2 bit in the ADE energy measurement internal MODE1 Register (0x0B). Set the SCPS bit in the Configuration SFR (CFG, 0xAF) and set the SPIEN bit in the SPI Configuration Register SFR (SPIMOD2, 0xE9). Clear the SCPS bit in the Configuration SFR (CFG, 0xAF) and set the I2CEN bit in the I2C Mode Register SFR (I2CMOD, 0xE8). Set the SCPS bit in the Configuration SFR (CFG, 0xAF) and set the SPIEN bit in the SPI Configuration Register SFR (SPIMOD2, 0xE9). Set the I2CEN bit in the I2C Mode Register SFR (I2CMOD, 0xE8) or the SPIEN bit in the SPI Configuration Register SFR (SPIMOD2, 0xE9) to enable the I2C or SPI interface. Set the C/T0 bit in the Timer/Counter 0 and Timer/Counter 1 Mode SFR (TMOD, 0x89) to enable T0 as an external event counter. Set the SS_EN bit in the SPI Configuration Register SFR (SPIMOD1, 0xE8). SDATA I2C Data Line P0.5 MISO SPI Data Line P0.6 SCLK Serial Clock for I2C or SPI T0 Timer0 Input P0.7 SS SPI Slave Select Input for SPI in Slave Mode SS SPI Slave Select Output for SPI in Master Mode T1 Timer 1 Input Set the SPIMS_b bit in the SPI Configuration Register SFR (SPIMOD2, 0xE9). Set the C/T1 bit in the Timer/Counter 0 and Timer/Counter 1 Mode SFR (TMOD, 0x89) to enable T1 as an external event counter. Table 154. Port 1 Alternate Functions Pin No. P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 Alternate Function RxD Receiver Data Input for UART Rx Edge Wake-up from PSM2 Operating Mode TxD Transmitter Data Output for UART FP25 LCD Segment Pin FP24 LCD Segment Pin T2EX Timer 2 Control Input FP23 LCD Segment Pin T2 Timer 2 Input FP22 LCD Segment Pin FP21 LCD Segment Pin FP20 LCD Segment Pin Alternate Function Enable Set the REN bit in the Serial Communications Control Register Bit Description SFR (SCON, 0x98). Set RXPROG[1:0]=11 in the Peripheral Configuration SFR (PERIPH, 0xF4). This pin becomes TxD as soon as data is written into SBUF. Set FP25EN in the LCD Segment Enable SFR (LCDSEGE, 0x97). Set FP24EN in the LCD Segment Enable SFR (LCDSEGE, 0x97). Set EXEN2 in the Timer/Counter 2 Control SFR (T2CON, 0xC8). Set FP23EN in the LCD Segment Enable SFR (LCDSEGE, 0x97). Set the C/T2 bit in the Timer/Counter 2 Control SFR (T2CON, 0xC8) to enable T2 as an external event counter. Set FP22EN in the LCD Segment Enable SFR (LCDSEGE, 0x97). Set FP21EN in the LCD Segment Enable SFR (LCDSEGE, 0x97). Set FP20EN in the LCD Segment Enable SFR (LCDSEGE, 0x97). Table 155. Port 2 Alternate Functions Pin No. P2.0 Alternate Function FP18 LCD Segment Pin P2.1 FP17 LCD Segment Pin P2.2 FP16 LCD Segment Pin P2.3 SDEN serial download pin sampled on reset. P2.3 is an output only. Alternate Function Enable Set FP18EN in the LCD Segment Enable 2 SFR (LCDSEGE2, 0xED). Set FP17EN in the LCD Segment Enable 2 SFR (LCDSEGE2, 0xED). Set FP16EN in the LCD Segment Enable 2 SFR (LCDSEGE2, 0xED). Enabled by default. Rev. PrA | Page 132 of 136 Preliminary Technical Data ADE7566/ADE7569 PORT 0 Port 0 is controlled directly through the bit-addressable Port 0 SFR (P0, 0x80). The weak internal pull-ups for Port 0 are configured through the Port 0 Weak Pull-Up Enable SFR (PINMAP0, 0xB2); they are enabled by default. The weak internal pull-up is disabled by writing a 1 to PINMAP0.x. Port 0 pins also have various secondary functions as described in Table 153. The alternate functions of Port 0 pins can be activated only if the corresponding bit latch in the Port 0 SFR contains a 1. Otherwise, the port pin remains at 0. PORT 1 Port 1 is an 8-bit bidirectional port controlled directly through the bit-addressable Port 1 SFR (P1, 0x90). The weak internal pull-ups for Port 1 are configured through the Port 1 Weak Pull-Up Enable SFR (PINMAP1, 0xB3); they are enabled by default. The weak internal pull-up is disabled by writing a 1 to PINMAP1.x. Port 1 pins also have various secondary functions as described in Table 154. The alternate functions of Port 1 pins can be activated only if the corresponding bit latch in the Port 1 SFR contains a 1. Otherwise, the port pin remains at 0. PORT 2 Port 2 is a 4-bit bidirectional port controlled directly through the bit-addressable Port 2 SFR (P2, 0xA0). Note that P2.3 can be used as an output only. The weak internal pull-ups for Port 2 are configured through the Port 2 Weak Pull-Up Enable SFR (PINMAP2, 0xB4); they are enabled by default. The weak internal pull-up is disabled by writing a 1 to PINMAP2.x. Port 2 pins also have various secondary functions as described in Table 155. The alternate functions of Port 2 pins can be activated only if the corresponding bit latch in the Port 2 SFR contains a 1. Otherwise, the port pin remains at 0. Rev. PrA | Page 133 of 136 ADE7566/ADE7569 Preliminary Technical Data DETERMINING THE VERSION OF THE ADE7566/ADE7569 Each ADE7566/ADE7569 holds in its internal flash registers a value that defines its version. This value helps to determine if users have the latest version of the part. The ADE7566/ADE756 version corresponding to this datasheet is ADE7566/ADE7569V3.4. To access this value, the following procedure should be followed: 1. 2. 3. 4. 5. Launch HyperTerminal with a 9600 baud rate. Put the part in serial download mode. Hold the SDEN button. Press and release the RESET button. The following string should appear on the HyperTerminal screen: ADE7566/ADE7569V3.4. Rev. PrA | Page 134 of 136 Preliminary Technical Data ADE7566/ADE7569 OUTLINE DIMENSIONS 0.75 0.60 0.45 12.20 12.00 SQ 11.80 1.60 MAX 64 49 1 48 PIN 1 10.20 10.00 SQ 9.80 TOP VIEW (PINS DOWN) 1.45 1.40 1.35 0.15 0.05 0.20 0.09 7° 3.5° 0° SEATING PLANE 16 33 32 17 0.08 COPLANARITY VIEW A VIEW A 0.27 0.22 0.17 0.50 BSC LEAD PITCH 051706-A ROTATED 90° CCW COMPLIANT TO JEDEC STANDARDS MS-026-BCD Figure 103. 64-Lead Low Profile Quad Flat Package [LQFP] (ST-64-2) Dimensions shown in millimeters 9.00 BSC SQ 0.60 MAX 8.75 BSC SQ TOP VIEW 17 16 7.50 REF 0.80 MAX 0.65 TYP 0.05 MAX 0.02 NOM 0.50 BSC 0.20 REF COMPLIANT TO JEDEC STANDARDS MO-220-VMMD-4 Figure 104. 64-Lead Lead Frame Chip Scale Package [LFCSP_VQ] 9 mm x 9 mm Body, Very Thin Quad (CP-64-4) Dimensions shown in millimeters Rev. PrA | Page 135 of 136 063006-B SEATING PLANE 33 32 PIN 1 INDICATOR 6.35 6.20 SQ 6.05 EXPOSED PAD (BOTTOM VIEW) 0.50 0.40 0.30 12° MAX 64 1 49 48 PIN 1 INDICATOR 1.00 0.85 0.80 0.30 0.25 0.18 0.60 MAX ADE7566/ADE7569 Preliminary Technical Data ORDERING GUIDE Model 1 ADE7566ACPZF8 2 ADE7566ACPZF8-RL2 ADE7566ACPZF162 ADE7566ACPZF16-RL12 ADE7566ASTZF82 ADE7566ASTZF8-RL2 ADE7566ASTZF162 ADE7566ASTZF16-RL2 ADE7569ACPZF162 ADE7569ACPZF16-RL2 ADE7569ASTZF162 ADE7569ASTZF16-RL2 EVAL- ADE7566F16EB EVAL- ADE7569F16EB 1 2 Antitaper No No No No No No No No No No No No VAR No No No No No No No No Yes Yes Yes Yes Flash (kB) 8 8 16 16 8 8 16 16 16 16 16 16 Temperature Range −40°C to +85°C −40°C to +85°C −40°C to +85°C −40°C to +85°C −40°C to +85°C −40°C to +85°C −40°C to +85°C −40°C to +85°C −40°C to +85°C −40°C to +85°C −40°C to +85°C −40°C to +85°C −40°C to +85°C −40°C to +85°C All models have W + VA + rms, 5 V LCD, and RTC. Z = RoHS Compliant Part. ©2007 Analog Devices, Inc. All rights reserved. Trademarks and registered trademarks are the property of their respective owners. PR06353-0-8/07(PrA) Rev. PrA | Page 136 of 136 Package Description 64-Lead LFCSP 64-Lead LFCSP in Reel 64-Lead LFCSP 64-Lead LFCSP in Reel 64-Lead LQFP 64-Lead LQFP in Reel 64-Lead LQFP 64-Lead LQFP in Reel 64-Lead LFCSP 64-Lead LFCSP in Reel 64-Lead LQFP 64-Lead LQFP in Reel ADE7566 Evaluation Board ADE7569 Evaluation Board Package Option CP-64-4 CP-64-4 CP-64-4 CP-64-4 ST-64-2 ST-64-2 ST-64-2 ST-64-2 CP-64-4 CP-64-4 ST-64-2 ST-64-2