1. 사용 Pin
1) Harmonic
7, 8 IAP, IAN Analog Inputs for Current Channel A.
9, 12 IBP, IBN Analog Inputs for Current Channel B.
13, 14 ICP, ICN Analog Inputs for Current Channel C
2) 순환전류
15, 16 INP, INN Analog Inputs for Neutral Current Channel N.
3) 누설전류 (VN 제외)
18, 19, 22, 23 VN, VCP, VBP, VAP Analog Inputs for the Voltage Channel.
4) 인터럽트
29, 32 IRQ0, IRQ1 Interrupt Request Outputs. These are active low logic outputs.
(1) IRQ0 - 하모닉 관련 .. 레지스터 MASK0, STATUS0
(2) IRQ1 - ZC 관련 .. 레지스터 MASK1, STATUS1
2. POWER MANAGEMENT
PSM0, Normal Power Mode (PM0 : High .. PM1 : Low )
PSM0에서 하드웨어 리셋시
- 모든 레지스터 초기화된다(LPOILVL, CONFIG2 포함)
- I2C enabled
- DSP is in idle mode.
3. Bit 15 (RSTDONE) in the STATUS1 register
ADE7880은 IRQ1 interrupt pin을 LOW로 만들고 STATUS1 레지스터의 Bit 15 (RSTDONE)를 1로 설정하여 전이 상태(transition period)의 끝을 알린다.
전이 상태 동안 STATUS1 레지스터의 Bit 15 (RSTDONE)는 0을 유지하고, 이 전이 상태가 끝나면 1로된다.
해당 비트가 1로 설정된 상태에서 STATUS1 레지스터에 쓰면 상태 비트가 지워지고 IRQ1 핀이 다시 하이로 설정된다.
STATUS1 레지스터의 비트 15 (RSTDONE)가 1로 설정된 경우 IRQ1 핀이 낮아 지더라도 인터럽트 마스크 레지스터의 비트 15 (RSTDONE)에는 기능이 연결되지 않습니다.
이는 RSTDONE 인터럽트를 마스크 할 수 없게 만든다.
4. POWER-UP PROCEDURE
3.3V 전압이 인가된 후 초기화 시간은 66ms가 필요하다.
5. SPI 사용
(1) When the ADE7880 enters PSM0 mode, the I2C port is the active serial port.
To use the SPI port, toggle the SS/HSA pin three times from high to low.
(2) If SPI is the active serial port, any write to the CONFIG2 register locks the port,
and a switch to the I2C port is no longer possible
6. Initial the DSP
DSP를 시작하기 전에 (RUN 레지스터를 0x01로 설정) 다음의 쓰기 작업 순서를 수행하십시오
1) 8-bit write: 0xAD is written at Address 0xE7FE.
2) 8-bit write: 0x14 is written at Address 0xE7E2.
3) Wait 200 μs.
4) 8-bit write: 0xAD is written at Address 0xE7FE.
5) 8-bit write: 0x04 is written at Address 0xE7E2.
6) RUN 레지스터를 0x01로 설정
7. ANALOG INPUTS
The ADE7880 has seven analog inputs forming current and voltage channels.
(1) 전류
The current channels consist of four pairs of fully differential voltage inputs:
- IAP and IAN,
- IBP and IBN,
- ICP and ICN,
- and INP and INN.
These voltage input pairs have a maximum differential signal of ±0.5 V
< Programmable Gain Amplifier (PGA)>
1) Gain 값
All inputs have a programmable gain amplifier (PGA)
- with a possible gain selection of 1, 2, 4, 8, or 16.
000: gain = 1.
001: gain = 2.
010: gain = 4.
011: gain = 8.
100: gain = 16.
101, 110, 111: reserved
2) Gain 레지스터
PGA1[2:0] : Phase currents gain (IA, IB, and IC )
PGA2[2:0] : Neutral current gain (IN)
PGA3[2:0] : Phase voltages gain
The gain of IA, IB, and IC inputs is set in Bits[2:0] (PGA1[2:0]) of the Gain register.
The gain of the IN input is set in Bits[5:3] (PGA2[2:0]) of the Gain register;
thus, a different gain from the IA, IB, or IC inputs is possible.
(2) 전압
The voltage channel has three single-ended voltage inputs:
- VAP,
- VBP, and
- VCP.
These single-ended voltage inputs have a maximum input voltage of ±0.5 V with respect to VN.
The maximum signal level on analog inputs for VxP and VN is also ±0.5 V with respect to AGND.
The maximum common-mode signal allowed on the inputs is ±25 mV.
8. ANALOG-TO-DIGITAL CONVERSION
In the ADE7880, the sampling clock is equal to 1.024 MHz (CLKIN/16).
and the bandwidth of interest is 40 Hz to 3.3 kHz.
All ADCs in the ADE7880 are designed to produce the same 24-bit signed output code for the same input signal level.
값 : 0x800000 (−8,388,608) ~ 0x7FFFFF (+8,388,607)
9. CURRENT CHANNEL ADC
출력 값 형식 : signed twos complement 24-bit data-words
셈플링 : rate of 8 kSPS (thousand samples per second).
값 : −5,326,737 (0xAEB86F) ~ +5,326,737 (0x514791).
10. Current Waveform Gain Registers
출력 값 형식 : 24-bit signed current waveform gain registers
레지스터 : AIGAIN, BIGAIN, CIGAIN, NIGAIN
For example,
가. if 0x400000 is written to those registers, the ADC output is scaled up by 50%.
나. To scalethe input by −50%, write 0xC00000 to the registers. Equation 4
<Equation 4>
Current Waveform = ADCOutput ×(1+ (Content of Current GainRegister/(2^23)))
** 2^23 = 8388608
출력값 형태
24-Bit xIGAIN Transmitted as 32-Bit Words
(MSB first)
------------------------------------------------
32 ~ 28bit : 0s
27 ~ 24bit : BITS[27:24] ARE EQUAL TO BIT 23
23 ~ 0bit : BIT 23 IS A SIGN BIT
------------------------------------------------
11. Current Channel HPF
High-pass filters (HPFs)
- 상전류, neutral currents 와 상전압 측정 path에 위치한다.
- DC offset을 재거한다.
- 초기 설정 값은 활성화이다.
레지스터 비트 설정 :
Bit 0 (HPFEN) of the CONFIG3[7:0]
- 1 : 활성화 (default)
- 0 : 비활성화
12. Current Channel Sampling
HPF의 출력에서 얻는 값
24-bit signed registers에 저장
샘플링 주파수 : 8 kSPS.
레지스터 : IAWV, IBWV, ICWV, INWV
읽는 방법
All power and rms calculations remain uninterrupted during this process.
Bit 17 (DREADY) in the STATUS0 register is set when the IAWV, IBWV, ICWV, and INWV registers are available
to be read using the I2C or SPI serial port.
Setting Bit 17 (DREADY) in the MASK0 register enables an interrupt to be set when the DREADY flag is set.
출력값 형태
(MSB first)
------------------------------------------------
32 ~ 24bit : BITS[31:24] ARE EQUAL TO BIT 23
23 ~ 0bit : BIT 23 IS A SIGN BIT
------------------------------------------------
13. di/dt CURRENT SENSOR AND DIGITAL INTEGRATO
The di/dt sensor detects changes in the magnetic field caused by the ac current.
관련 레지스터:
- Bit 0 (INTEN) / CONFIG register
- Bit 3 (ININTEN) / CONFIG3 register.
Bit 0 (INTEN) : 상전류 채널(phase current)의 integrators 제어
Bit 3 (ININTEN) : neutral current channel의 integrator제어
- 0 : disabled.
- 1 : enabled.
13.1 DICOEFF 24-bit signed register
재 시동후 초기 값은 0x000000
integrator을 ON 하기 전에 반드시 0xFFF8000로 초기화 하여야 한다.
DICOEFF는 integrator가 turned off 되고 0x000000인 경우에 동작하지 안는다.
입력값 형태 (figure 44)
(MSB first)
------------------------------------------------
32 ~ 28bit : 0s
27 ~ 24bit : BITS[27:24] ARE EQUAL TO BIT 23
23 ~ 0bit : BIT 23 IS A SIGN BIT
------------------------------------------------
When the digital integrator is switched off, the ADE7880 can be used directly with a conventional current sensor,
such as a current transformer (CT)
14. VOLTAGE CHANNEL ADC
출력 형태 : signed twos complement 24-bit words
샘플링 레이트 : 8 kSPS.
입력 범위 : full-scale analog input signal of ±0.5 V
ADC 출력 범위 : −5,326,737 (0xAEB86F) ~ +5,326,737 (0x514791)
15. Voltage Waveform Gain Registers
입력 형태 : 24-bit signed voltage waveform gain registers
레지스터 : AVGAIN, BVGAIN, CVGAIN
For example,
if 0x400000 is written to those registers, the ADC output is scaled up by 50%.
To scale the input by −50%, write 0xC00000 to the registers.
< Equation 5 >
Voltage Waveform = ADC Output × (1+ (Content of Voltage GainRegister/(2^23)))
** 2^23 = 8388608
입력값 형태 (figure 44)
32 ZPSE
(MSB first)
------------------------------------------------
32 ~ 28bit : 0s
27 ~ 24bit : BITS[27:24] ARE EQUAL TO BIT 23
23 ~ 0bit : BIT 23 IS A SIGN BIT
------------------------------------------------
16. Voltage Channel HPF
레지스터 : Bit 0 (HPFEN) / CONFIG3 register
- 1 : 활성화
- 0 : 비활성화
Current Channel HPF section 참조
17. Voltage Channel Sampling
HPF의 출력값
샘플링 : 8 kSPS.
레지스터 : VAWV, VBWV, VCWV (24-bit signed registers)
읽는 방법
STATUS0 레지스터의 Bit 17 (DREADY)은 VAWV, VBWV 및 VCWV 레지스터를 읽을 수 있는 경우 설정됩니다.
MASK0 레지스터의 비트 17 (DREADY)을 설정하면 DREADY 플래그가 설정 될 때 인터럽트를 설정할 수 있습니다.
17. CHANGING PHASE VOLTAGE DATA PATH
The ADE7880 can direct one phase voltage input to the computational data path of another phase.
For example,
Phase A voltage can be introduced in the Phase B computational data path,
which means all powers computed by the ADE7880 in Phase B are based on Phase A voltage and Phase B current.
Bits[9:8] (VTOIA[1:0]) of the CONFIG register manage which phase voltage is directed to the Phase A computational data path.
If VTOIA[1:0] = 00 (default value), the Phase A voltage is directed to the Phase A computational data path.
If VTOIA[1:0] = 01, the Phase B voltage is directed to the Phase A computational data path.
If VTOIA[1:0] = 10, the Phase C voltage is directed to the Phase A computational data path.
If VTOIA[1:0] = 11, the ADE7880 behaves as if VTOIA[1:0] = 00.
Bits[11:10] (VTOIB[1:0]) of the CONFIG register manage which phase voltage is directed to the Phase B computational data path.
If VTOIB[1:0] = 00 (default value), the Phase B voltage is directed to the Phase B computational data path.
If VTOIB[1:0] = 01, the Phase C voltage is directed to the Phase B computational data path.
If VTOIB[1:0] = 10, the Phase A voltage is directed to the Phase B computational data path.
If VTOIB[1:0] = 11, the ADE7880 behaves as if VTOIB[1:0] = 00.
Bits[13:12] (VTOIC[1:0]) of the CONFIG register manage which phase voltage is directed to the Phase C computational data path.
If VTOIC[1:0] = 00 (default value), the Phase C voltage is directed to the Phase C computational data path,
if VTOIC[1:0] = 01, the Phase A voltage is directed to the Phase C computational data path.
If VTOIC[1:0] = 10, the Phase B voltage is directed to the Phase C computational data path.
If VTOIC[1:0] = 11, the ADE7880 behaves as if VTOIC[1:0] = 00.
18. DIGITAL SIGNAL PROCESSOR
<DSP 연산 종료>
연산 종료는 STATUS0 레지스터에서 비트 17 (DREADY)을 1로 설정하여 신호를 보냅니다.
<인터럽트 사용>
이 플래그에 첨부 된 인터럽트는 MASK0 레지스터에서 비트 17 (DREADY)을 설정하여 활성화 할 수 있습니다.
활성화되면 IRQ0 핀이 낮게 설정되고 계산 종료시 상태 비트 DREADY가 1로 설정됩니다.
비트 17 (DREADY)이 1로 설정된 상태에서 STATUS0 레지스터에 쓰면 상태 비트가 지워지고 IRQ0 핀이 high로 설정됩니다.
DSP에 의해 사용되는 레지스터 범위 : 0x4380 ~ 0x43BE
이것은 두 가지를 의미합니다.
- 하나의 레지스터 만 초기화해야하는 경우 RAM에 값이 기록되도록 두 번 더 기록하십시오.
- 두 개 이상의 레지스터를 초기화해야하는 경우 값을 RAM에 쓰도록 큐의 마지막 레지스터를 두 번 더 쓰십시오.
전원을 켤 때 또는 하드웨어 또는 소프트웨어를 재설정 한 후 전원 켜기 절차 섹션에 설명 된대로 DSP는 유휴 모드입니다.
명령이 실행되지 않습니다. 데이터 메모리 RAM에있는 모든 레지스터는 기본값 인 0으로 초기화되며 제한없이 읽거나 쓸 수 있습니다.
DSP를 시작하고 중지하는 데 사용되는 Run 레지스터는 0x0000으로 지워집니다.
DSP가 코드 실행을 시작하려면 Run 레지스터를 0x0001로 기록해야합니다.
먼저 데이터 메모리 RAM에있는 모든 ADE7880 레지스터를 원하는 값으로 초기화하는 것이 좋습니다.
그런 다음 파이프 라인을 플러시하기 위해 큐에 마지막 레지스터를 두 번 더 쓴 다음 0x0001로 실행 레지스터를 씁니다.
이러한 방식으로 DSP는 원하는 구성에서 계산을 시작합니다.
** 0xE228 / Run / unsigned 16bit length : Run register starts and stops the DSP
< 쓰기 보호 모드 >
DSP의 데이터 메모리 RAM (주소 0x4380과 주소 0x43BE 사이)에 저장된 데이터의 무결성을 보호하기 위해 쓰기 방지 메커니즘을 사용할 수 있습니다.
기본적으로 보호는 비활성화되어 있으며 0x4380과 0x43BE 사이에있는 레지스터는 제한없이 쓸 수 있습니다.
보호가 활성화되면 이러한 레지스터에 대한 쓰기가 허용되지 않습니다.
쓰기 방지 상태에 관계없이 레지스터를 항상 제한없이 읽을 수 있습니다.
- 보호 모드 활성화
내부 8 비트 레지스터
1) 0xAD (Address 0xE7FE)
2) 0x80 (Address 0xE7E3)
- 보호 모드 비활성화
1) 0xAD (Address 0xE7FE)
2) 0x00 (Address 0xE7E3)
DSP를 시작하기 전에 쓰기 방지를 활성화하는 것이 좋습니다.
데이터 메모리 RAM 기반 레지스터를 변경해야하는 경우 보호를 비활성화하고 값을 변경 한 다음 보호를 다시 활성화하십시오.
이러한 레지스터를 변경하기 위해 DSP를 중지 할 필요는 없습니다.
< Initial the DSP >
DSP를 시작하기 전에 (RUN 레지스터를 0x01로 설정) 다음의 쓰기 작업 순서를 수행하십시오
1) 8-bit write: 0xAD is written at Address 0xE7FE.
2) 8-bit write: 0x14 is written at Address 0xE7E2.
3) Wait 200 μs.
4) 8-bit write: 0xAD is written at Address 0xE7FE.
5) 8-bit write: 0x04 is written at Address 0xE7E2.
6) RUN 레지스터를 0x01로 설정
19. ADE7880 시동시 레지스터 초기화 절차 :
1) PGA 설정
Select the PGA gains in the phase currents, voltages, and neutral current channels:
Bits [2:0] (PGA1), Bits [5:3] (PGA2) and Bits [8:6] (PGA3) in the Gain register.
2) digital integrator 활성화
If Rogowski coils are used, enable the digital integrators in the phase and neutral currents:
Bit 0 (INTEN) set to 1 in CONFIG register.
Initialize DICOEFF register to 0xFF8000 before setting the INTEN bit in the CONFIG register.
3) Bit 14 (SELFREQ) / COMPMODE register 설정
If fn is between 55 Hz and 66 Hz, set Bit 14 (SELFREQ) in COMPMODE register.
4) 모든 레지스터(memory RAM registers)를 초기화 한다.
Initialize all the other data memory RAM registers.
Write the last register in the queue three times to ensure that its value is written into the RAM.
5) 레지스터 (WTHR, VARTHR, VATHR, VLEVEL, VNOM) 초기화
Initialize WTHR, VARTHR, VATHR, VLEVEL and VNOM registers based on
- Equation 26,
- Equation 37,
- Equation 44,
- Equation 22, and
- Equation 42, respectively.
6) 레지스터 CF1DEN, CF2DEN, CF3DEN 초기화
Initialize CF1DEN, CF2DEN, and CF3DEN based on
- Equation 49.
- CF1DEN : CF1 denominator.
7) data memory RAM 보호 모드 설정
- 보호 모드 활성화
1) 0xAD (Address 0xE7FE)
2) 0x80 (Address 0xE7E3)
Enable the data memory RAM protection
by writing 0xAD to an internal 8-bit register located at Address 0xE7FE
followed by a write of 0x80 to an internal 8-bit register located at Address 0xE7E3.
8) RAM 레지스터 초기화
원하는 값으로 초기화되도록 모든 데이터 메모리 RAM 레지스터를 다시 읽습니다.
하나 이상의 레지스터가 올바르게 초기화되지 않는 경우 주소 0xE7FE에있는 내부 8 비트 레지스터에 0xAD를 기록한 다음
주소 0xE7E3에있는 내부 8 비트 레지스터에 0x00을 기록하여 보호를 비활성화하십시오.
레지스터를 다시 초기화하고 큐의 마지막 레지스터를 세 번 씁니다.
0xAD를 Address 0xE7FE에있는 내부 8 비트 레지스터에 쓴 다음 0x80을 Address 0xE7E3에있는 내부 8 비트 레지스터에 쓴 다음 쓰기 방지를 활성화하십시오.
9) DSP Start
Start the DSP by setting Run = 1.
10) xWATTHR, xVAHR, xFWATTHR, xFVARHR 레지스터 읽고 시작.
Read the energy registers xWATTHR, xVAHR, xFWATTHR, and xFVARHR
to erase their content and start energy accumulation from a known state.
11) CF1, CF2 and CF3 frequency converter outputs 활성화
CFMODE 레지스터에서 bit 9, 10 및 11 (CF1DIS, CF2DIS 및 CF3DIS)을 0으로 지워서 CF1, CF2 및 CF3 주파수 변환기 출력을 활성화합니다.
Enable the CF1, CF2 and CF3 frequency converter outputs by clearing bits 9, 10 and 11
(CF1DIS, CF2DIS, and CF3DIS) to 0 in CFMODE register.
ADE7880이 PSM0 일반 모드로 유지되는 경우 DSP를 중지 할 분명한 이유가 없습니다.
데이터 메모리 RAM에있는 것을 포함한 모든 ADE7880 레지스터는 DSP를 멈추지 않고 수정할 수 있습니다.
그러나 DSP를 중지하려면 Run 레지스터에 0x0000을 씁니다.
DSP를 다시 시작하려면 다음 절차 중 하나를 수행하십시오.
• 데이터 메모리 RAM에있는 ADE7880 레지스터가 수정되지 않은 경우 0x0001을 Run 레지스터에 기록하여 DSP를 시작하십시오.
• 데이터 메모리 RAM에있는 ADE7880 레지스터를 수정해야하는 경우 먼저 소프트웨어 또는 하드웨어 리셋을 실행하고 모든 ADE7880 레지스터를 원하는 값으로 초기화 한 다음 활성화하십시오.
쓰기 보호 후 0x0001을 Run 레지스터에 기록하여 DSP를 시작하십시오.
20. ADE7880 QUICK SETUP AS ENERGY METER
An energy meter is usually characterized by the nominal current In, nominal voltage Vn, nominal frequency fn, and the meter constant MC.
To quickly set up the ADE7880, execute the following steps:
1. Select the PGA gains in the phase currents, voltages and neutral current channels:
Bits[2:0] (PGA1),
Bits[5:3] (PGA2) and
Bits[8:6] (PGA3)
in the Gain register.
2. If Rogowski coils are used,
enable the digital integrators in the phase and neutral currents:
Bit 0 (INTEN)set to 1 in the CONFIG register.
Initialize the DICOEFF register to 0xFF8000
before setting the INTEN bit in the CONFIG register.
3. If fn is between 55 Hz and 66 Hz,
set Bit 14 (SELFREQ) in the COMPMODE register.
4. Initialize all the other data memory RAM registers.
Write the last register in the queue three times to ensure that its value is written into the RAM.
5. Initialize the WTHR, VARTHR, VATHR, VLEVEL and VNOM registers
based on Equation 26, Equation 37, Equation 44, Equation 22, and Equation 42, respectively.
default)
WTHR = VARTHR = VATHR = 3
VNOM = 0
VLEVEL = 0
6. Initialize CF1DEN, CF2DEN, and CF3DEN based on Equation 49.
7. Enable the data memory RAM protection
by writing 0xAD to an internal 8-bit register located at Address 0xE7FE
followed by a write of 0x80 to an internal 8-bit register located at Address 0xE7E3.
8. Read back all data memory RAM registers to ensure that they initialized with the desired values.
If one or more registers did not initialize correctly, disable the protection
by writing 0xAD to an internal 8-bit register at Address 0xE7FE,
followed by a write of 0x00 to an internal 8-bit register located at Address 0xE7E3.
Reinitialize the registers, and write the last register in the queue three times.
Enable the write protection
by writing 0xAD to an internal 8-bit register located at Address 0xE7FE,
followed by a write of 0x80 to an internal 8-bit register located at Address 0xE7E3.
9. Start the DSP by setting Run = 1.
10. Read the energy registers xWATTHR, xVAHR, xFWATTHR, and xFVARHR
to erase their content and start energy accumulation from a known state.
11. Enable the CF1, CF2, and CF3 frequency converter outputs
by clearing bits 9, 10, and 11 (CF1DIS, CF2DIS, and CF3DIS) to 0 in the CFMODE register.
For a quick setup of the ADE7880 harmonic calculations, see the Recommended Approach to Managing Harmonic Calculations section
21. Interrupt
2개의 인터럽트 핀 : /IRQ0, /IRQ1
2개의 32-bit interrupt mask registers : MASK0, MASK1
- enable : 1
- disable : 0
2개의 32-bit status registers : STATUS0, STATUS1
When an interrupt event occurs
in the ADE7880, the corresponding flag in the interrupt status
register is set to a logic 1 (see Table 36 and Table 37).
인터럽트 이벤트가 발생하면 interrupt status register 에 있는 관련 flag가 1로 설정된다.
- Table 36 STATUS0 Register (Address 0xE502)
- Table 37 STATUS1 Register (Address 0xE503)
1) 인터럽트 발생
인터럽트 마스크 레지스터에서이 인터럽트에 대한 마스크 비트가 로직 1이면 IRQx 로직 출력이 액티브 로우가됩니다.
인터럽트 상태 레지스터의 플래그 비트는 마스크 비트의 상태에 관계없이 설정된다.
2) 인터럽트 식별
인터럽트 소스를 확인하려면 MCU가 해당 STATUSx 레지스터를 읽고 1로 설정된 비트를 식별해야합니다.
3) 인터럽트 해지
상태 레지스터에서 플래그를 지우려면 플래그가 1로 설정된 상태에서 STATUSx 레지스터에 다시 씁니다.
인터럽트 핀이 로우가되면 상태 레지스터를 읽고 인터럽트 소스를 식별합니다.
그런 다음 상태 플래그를 변경하지 않고 상태 플래그를 다시 기록하여 상태 플래그를 0으로 지 웁니다.
IRQx 핀은 상태 플래그가 취소 될 때까지 낮게 유지됩니다.
4) 인터럽트 기본값
기본적으로 모든 인터럽트는 비활성화되어 있습니다.
5) RSTDONE 인터럽트
그러나 RSTDONE 인터럽트는 예외입니다.
이 인터럽트는 마스킹 (비활성화) 될 수 없으므로 MASK1 레지스터의 비트 15 (RSTDONE)에는 기능이 없습니다.
IRQ1 핀은 항상 로우가되고 STATUS1 레지스터의 비트 15 (RSTDONE)는 전원 공급 또는 하드웨어 / 소프트웨어 리셋 프로세스가 종료 될 때마다 1로 설정됩니다.
상태 플래그를 취소하려면 비트 15 (RSTDONE)를 1로 설정하여 STATUS1 레지스터를 작성해야합니다.
6) MASK 레지스터의 다른 상태 레지스터와 연동
특정 인터럽트는 다른 상태 레지스터와 함께 사용됩니다.
MASK1 레지스터의 다음 비트는 PHNOLOAD 레지스터의 상태 비트와 함께 작동합니다.
• Bit 0 (NLOAD) : The phase is indicated in Bits[2:0] (NLPHASE[x]) in the PHNOLOAD register (see Table 41.)
• Bit 1 (FNLOAD) : The phase is indicated in Bits[5:3] (FNLPHASE[x]) in the PHNOLOAD register (see Table 41).
• Bit 2 (VANLOAD) : The phase is indicated in Bits[8:6] (VANLPHASE[x]) in the PHNOLOAD register (see Table 41).
MASK1 레지스터의 다음 비트는 PHSTATUS 레지스터의 상태 비트와 함께 작동합니다.
• Bit 16, (SAG) : The phase is indicated by Bits[14:12] (VSPHASE[x]) in the PHSTATUS register (see Table 40).
• Bit 17 (OI) : occurred on one of the phases indicated by Bits[5:3] (OIPHASE[x]) in the PHSTATUS register (see Table 40).
• Bit 18 (OV) : occurred on one of the phases indicated by Bits[11:9] (OVPHASE[x]) in the PHSTATUS register (see Table 40).
MASK1 레지스터의 다음 비트는 각각 IPEAK 및 VPEAK 레지스터의 상태 비트와 작동합니다.
• Bit 23 (PKI)
• Bit 24 (PKV)
MASK0 레지스터의 다음 비트는 PHSIGN 레지스터의 상태 비트와 함께 작동합니다.
• Bits[6:8] (REVAPx)
• Bits[10:12] (REVRPx)
• Bit 9, Bit 13, and Bit 18 (REVPSUMx)
STATUSx 레지스터를 읽고이 비트 중 하나를 1로 설정하면
비트와 연관된 상태 레지스터는 인터럽트를 트리거 한 위상을 식별하기 위해 즉시 읽히고 그 시점에서만 비트가 1로 설정된 상태에서 STATUSx 레지스터를 다시 쓸 수 있습니다.
21-1. Using the Interrupts with an MCU
시간 t1에서 IRQx 핀은 액티브 로우가되어 ADE7880에서 하나 이상의 인터럽트 이벤트가 발생했음을 나타내며,이 시점에서 다음 단계를 수행하십시오.
1. IRQx 핀을 MCU의 네거티브 에지 트리거 외부 인터럽트에 연결하십시오.
2. 네거티브 에지가 감지되면, ISR (Interrupt Service Routine) 실행을 시작하도록 MCU를 구성하십시오.
3. ISR에 들어가면, 전역 인터럽트 마스크 비트를 사용하여 모든 인터럽트를 비활성화합니다.
이 시점에서 현재 외부 ISR 중에 발생하는 인터럽트 이벤트를 캡처하기 위해 MCU 외부 인터럽트 플래그를 지울 수 있습니다.
4. MCU 인터럽트 플래그가 지워지면 인터럽트 상태 레지스터 인 STATUSx에서 읽습니다.
인터럽트 상태 레지스터 내용은 인터럽트 소스를 결정하는 데 사용되므로 적절한 조치를 취해야합니다.
5. 동일한 STATUSx 컨텐츠가 ADE7880에 다시 기록되어 상태 플래그를 지우고 IRQx 라인을 로직 하이 (t2)로 재설정합니다.
<Interrupt Management>
1) /IRQx -> polling
2) JUMP TO ISR
3) GLOBAL INTERRUPT MASK
4) CLEAR MCU INTERRUPT FLAG
5) READ STATUSx
Option 5-1) READ PHx : (when PHSTATUS, IPEAK, VPEAK, or PHSIGN Registers are Involved)
6) WRITE BACK STATUSx
7) /IRQx -> raising
8) ISR ACTION (BASED ON STATUSx CONTENTS)
9) ISR RETURN GLOBAL INTERRUPT MASK RESET
10) JUMP TO ISR
23. Communication Verification
ADE7880에는 I2C 또는 SPI를 통한 통신을 확인할 수있는 3 개의 레지스터 세트가 포함되어 있습니다.
- LAST_OP (주소 0xEA01)
- LAST_ADD (주소 0xE9FE)
- LAST_RWDATA 레지스터 [8bit/16bit/32bit]
LAST_RWDATA 레지스터에는 성공적인 통신 길이에 따라 3 개의 개별 주소가 있습니다.
ADE7880과 성공적으로 통신 한 후 마지막으로 액세스 한 레지스터의 주소가 16 비트에 저장됩니다.
LAST_ADD 레지스터 (주소 0xE9FE).
다음 읽기 또는 쓰기가 완료 될 때까지 값을 저장하는 읽기 전용 레지스터입니다.
LAST_OP 레지스터 (주소 0xEA01)는 작업의 특성을 저장합니다.
즉, 읽기 또는 쓰기가 수행되었는지 여부를 나타냅니다.
마지막 작업이 쓰기 인 경우 LAST_OP 레지스터는 0xCA 값을 저장합니다.
마지막 작업이 읽기 인 경우 LAST_OP 레지스터는 0x35 값을 저장합니다.
LAST_RWDATA 레지스터는 레지스터에서 쓰거나 읽은 데이터를 저장합니다.
실패한 읽기 또는 쓰기 작업은이 레지스터에 반영되지 않습니다.
LAST_OP, LAST_ADD 및 LAST_RWDATA 레지스터를 읽을 때 해당 값은 자체적으로 저장되지 않습니다.
< 41페이지 RMS >
[ ROOT MEAN SQUARE MEASUREMENT ]
22. Current RMS Calculation
현재 rms 값은 부호있는 24 비트 값
AIRMS, BIRMS, CIRMS, NIRMS 레지스터에 저장됩니다.
현재 rms 측정의 업데이트 속도는 8kHz입니다.
1) 레지스터
AIRMS, BIRMS, CIRMS, NIRMS
2) 활성화 설정
- bit 2 (INSEL) / CONFIG3 레지스터
- 0 : (default)
If Bit 2 (INSEL) of the CONFIG3 register is 0 (default), the NIRMS register contains the rms value of the neutral current.
If the INSEL bit is 1, the NIRMS register contains the rms value of the sum of the instantaneous values of the phase currents.
CONFIG3 레지스터의 비트 2 (INSEL)가 0 (기본값) 인 경우 NIRMS 레지스터는 중성 전류의 rms 값을 포함합니다.
INSEL 비트가 1 인 경우 NIRMS 레지스터에는 위상 전류의 순간 값 합계의 rms 값이 포함됩니다.
0.5V의 지정된 풀 스케일 아날로그 입력 신호로 ADC는 약 ± 5,326,737의 출력 코드를 생성합니다.
풀 스케일 정현파 신호의 등가 rms 값은 라인 주파수와 상관없이 3,766,572 (0x39792C)입니다.
적분기가 활성화 된 경우,
즉 CONFIG 레지스터의 비트 0 (INTEN)이 1로 설정된 경우
- 50Hz에서 풀 스케일 사인파 신호의 해당 rms 값은 3,759,718 (0x395E66)이고
- 60Hz에서 3,133,207 (0x2FCF17) .
2) 측정을 위해 안정화 되는 시간
DSP RUN(RUN register is set to 0x01) 후에 약1.3초
IRQ1 인터럽트는 제로 크로싱이 발생한 시점을 나타내는 데 사용할 수 있습니다 (인터럽트 섹션 참조).
표 12는 I rms 측정을위한 안정화 시간을 보여줍니다.
이는 rms 레지스터가 0에서 풀 스케일로 시작할 때 현재 채널에 대한 입력의 99.5 % 내에서 안정화되는 데 걸리는 시간입니다.
--------------------------------------------------------------------
Table 12. Settling Time for I rms Measurement
--------------------------------------------------------------------
Integrator Status 50 Hz Input Signals 60 Hz Input Signals
--------------------------------------------------------------------
Integrator Off 580 ms 580 ms
Integrator On 700 ms 700 ms
--------------------------------------------------------------------
그러나 IC 전원 공급 및 DSP 리셋의 경우 FS / 1000 신호가 99.5 % 정산되기 위해 RUN 레지스터가 0x01로 설정되는 순간부터 약 1.3 초가 소요됩니다.
3) 값
(MSB first)
--------------------------------------------------------------------
32 ~ 24bit : 0s (0000 0000)
23 ~ 0bit : 24-BIT NUMBER / 24-bit signed registers
--------------------------------------------------------------------
23. Current RMS Offset Compensation
레지스터 : AIRMSOS, BIRMSOS, CIRMSOS, NIRMSOS.
These are 24-bit signed registers
값
(MSB First)
--------------------------------------------------------------------
32 ~ 28bit : 0s
27 ~ 24bit : BITS[27:24] ARE EQUAL TO BIT 23
23 ~ 0bit : BIT 23 IS A SIGN BIT
--------------------------------------------------------------------
24. Current Mean Absolute Value(mav) Calculation
레지스터 : AIMAV, BIMAV, CIMAV
업데이트 주기 : 8 kHz.
unsigned 20-bit values
(MSB First)
--------------------------------------------------------------------
32 ~ 21bit : 0s (0000 0000 0000)
19 ~ 0bit : 20-BIT UNSIGNED NUMBER
--------------------------------------------------------------------
25. Current MAV Gain and Offset Compensation
26. Voltage Channel RMS Calculation
레지스터 : AVRMS, BVRMS, CVRMS
업데이트 주기 : 8 kHz
signed 24-bit values
specified full-scale analog input signal of 0.5 V
the ADC produces an output code that is approximately ±5,326,737
The equivalent rms value of a full-scale sinusoidal signal is 3,766,572 (0x39792C)
안정성을 보장하기 위해 전압 제로 크로싱과 동기식으로 rms 레지스터를 읽는 것이 좋습니다.
IRQ1 인터럽트는 제로 크로싱이 발생한 시점을 나타내는 데 사용할 수 있습니다 (인터럽트 섹션 참조).
Vrms 측정 안정화 시간은 50Hz 및 60Hz 입력 신호 모두에 대해 580ms입니다.
V rms 측정 안정화 시간은 rms 레지스터가 0에서 시작할 때 전압 채널에 대한 입력 값을 반영하는 데 걸리는 시간입니다.
(MSB first)
--------------------------------------------------------------------
32 ~ 24bit : 0s (0000 0000)
23 ~ 0bit : 24-BIT NUMBER / 24-bit signed registers
--------------------------------------------------------------------
27. Voltage RMS Offset Compensation
AVRMSOS, BVRMSOS, CVRMSOS
(MSB first)
--------------------------------------------------------------------
32 ~ 28bit : 0s
27 ~ 24bit : BITS[27:24] ARE EQUAL TO BIT 23
23 ~ 0bit : BIT 23 IS A SIGN BIT
--------------------------------------------------------------------
** 28. Voltage RMS in 3-Phase, 3-Wire Delta Configurations
레지스터 : CONSEL 비트 / ACCMODE 레지스터
상 3 선 델타 구성에서 위상 B는 시스템의 접지로 간주되며 위상 A 및 위상 C 전압이 이에 대해 측정됩니다.
이 구성은 ACCMODE 레지스터에서 01과 동일한 CONSEL 비트를 사용하여 선택됩니다.
(ADE7880을 사용할 수있는 모든 구성은 표 15 참조).
----------------------------------------------
Table 15. Meter Form Configuration
----------------------------------------------
ANSI Meter Form Configuration CONSEL
----------------------------------------------
5S/13S 3-wire delta 01
6S/14S 4-wire wye 10
8S/15S 4-wire delta 11
9S/16S 4-wire wye 00
----------------------------------------------
이 상황에서 모든 B 상 활성, 무효 및 피상 전력은 0입니다.
이 구성에서 ADE7880은 Phase A와 Phase C 사이의 라인 전압의 rms 값을 계산하고 결과를 BVRMS 레지스터에 저장합니다.
BVGAIN 및 BVRMSOS 레지스터는이 구성에서 계산 된 BVRMS 레지스터를 교정하는 데 사용될 수 있습니다.
[ACTIVE POWER CALCULATION]
[APPARENT POWER CALCULATION]
[POWER FACTOR CALCULATION]
[HARMONICS CALCULATIONS]
1. Configuring the Harmonic Calculations
1) this phase voltage 선택
레지스터 : Bit 9 and Bit 8 (ACTPHSEL) / HCONFIG[15:0]register
ACTPHSEL = 00, phase A
ACTPHSEL = 01, Phase B
ACTPHSEL = 10, Phase C
2) The phase under analysis 선택
레지스터 : Bit 2 and Bit 1 (HPHASE) / HCONFIG[15:0]register
HPHASE = 00, the Phase A
HPHASE = 01, the Phase B
HPHASE = 10, the Phase C
HPHASE = 11, the neutral
2. Harmonic Calculations When a Phase is Monitored
1) 하모닉 차수 설정 레지스터
동시에 모니터링되는 3 개의 추가 고조파의 인덱스는 8 비트 레지스터 HX, HY 및 HZ에 의해 제공됩니다.
2) maximum index (allowed in HX, HY, and HZ register)
63
3. Harmonic Engine Outputs When Phase A, Phase B, or Phase C is Analyzed
1) RMS of the Fundamental Component
FVRMS, FIRMS
2) RMS of a Harmonic Component
HXVRMS, HXIRMS
HYVRMS, HYIRMS
HZVRMS, HZIRMS
3) offset compensation registers:
- HXIRMSOS, HXVRMSOS,
- HYIRMSOS, HYVRMSOS,
- HZIRMSOS, HZVRMSOS.
It is recommended to leave the offset compensation registers at 0, the default value.
4) Harmonic Engine Outputs when Neutral Current and ISUM are Analyze
RMS of a Harmonic Component (Including the Fundamental) of the Neutral Current :
- HXIRMS
- HYIRMS
- HZIRMS
5) Harmonic Calculations When the Neutral is Monitored
-- skip --
6) Configuring Harmonic Calculations Update Rate
- harmonic indexes are set in the HX, HY and HZ index registers
- update rate of the harmonic engine
: Bits[7:5] (HRATE) / HCONFIG register
- 000 : 125 μs (default)
- 001 : 250 μs
- 010 : 1 ms
- 011 : 16 ms
- 100 : 128 ms
- 101 : 512 ms
- 110 : 1.024 sec
- 111 : disabled **
The ADE7880 provides two ways to manage the harmonic computations.
<고조파 계산을 관리하는 두 가지 방법>
레지스터 : 비트 0 (HRCFG) / HCONFIG 레지스터
1) 비트 0 (HRCFG) : 기본값 0
일정 시간이 지난 후 STATUS0 레지스터의 비트 19 (HREADY)를 1로 설정 한 다음 HRATE 주파수에서 고조파 계산이 업데이트 될 때마다 활성화됩니다.
시간은 HCONFIG 레지스터의 비트 [4:3] (HSTIME) 상태에 의해 결정됩니다.
기본값 01은 시간을 750ms, 고조파 계산의 안정화 시간으로 설정합니다.
다른 가능한 값은 500ms (HSTIME = 00), 1 초 (10) 및 1250ms (11)입니다.
2) 비트 0 (HRCFG) : 1
고조파 계산이 완료되기를 기다리지 않고 HRATE 비트에 의해 결정된 업데이트 주파수에서 고조파 계산이 업데이트 될 때마다 STATUS0 레지스터의 비트 19 (HREADY)를 1로 설정합니다.
MASK0 인터럽트 마스크 레지스터의 해당 마스크 비트가 활성화되면 IRQ 핀도 활성 로우가됩니다.
해당 비트가 1로 설정된 상태에서 STATUS0 레지스터에 쓰면 상태 비트가 지워지고 핀 IRQ가 다시 하이로 설정됩니다.
< CF2 / HREADY 핀 사용 >
또한 ADE7880은 고조파 레지스터에서 고조파 계산이 업데이트되는 순간에 동기하여 CF2 / HREADY 핀에서 HREADY라는 주기적인 출력 신호를 제공합니다.
이 기능은 CONFIG 레지스터에서 비트 2 (CF2DIS)가 1로 설정된 경우에 선택됩니다. CF2DIS가 0 (기본값)으로 설정되면 CF2 에너지 대 주파수 변환기 출력은 CF2 / HREADY 핀에 제공됩니다. 이 신호의 기본 상태는 높습니다.
HCONFIG 레지스터의 HRATE 비트를 기준으로 고조파 레지스터가 업데이트 될 때마다 신호 HREADY가 약 10 µs 동안 낮아지고 다시 높아집니다. HCONFIG 레지스터의 비트 0 (HRCFG)이 1로 설정된 경우, STATUS0 레지스터의 HREADY 비트는 고조파 계산이 시작된 직후 HRATE주기마다 1로 설정되며 HREADY 신호는 동기적으로 높음, 낮음 및 뒤로 토글됩니다.
HRCFG 비트가 0으로 설정되면 HSTIME 기간 후에 STATUS0 레지스터의 HREADY 비트가 1로 설정되고 HREADY 신호는 동 높음, 낮음 및 뒤로 전환됩니다.
HREADY 신호를 사용하면 MASK0 레지스터에서 HREADY 인터럽트를 사용할 필요없이 고조파 레지스터에 빠르게 액세스 할 수 있습니다,
7. Recommended Approach to Managing Harmonic Calculations
The recommended approach to managing the ADE7880 harmonic calculations is the following:
• Set up Bit 2 (CF2DIS) in the CONFIG register.
Set the CF2DIS bit to 1 to use the CF2/HREADY pin to signal when the harmonic calculations have settled and are updated.
The high to low transition of HREADY signal indicates when to read the harmonic registers.
Use the burst reading mode to read the harmonic registers as it is the most efficient way to read them.
• Choose the harmonics to be monitored by setting HX, HY and HZ appropriately.
• Select all the HCONFIG register bits.
• Initialize the gain registers used in the harmonic calculations. Leave the offset registers to 0.
• Read the registers in which the harmonic information is stored using the burst or regular reading mode at high to low transitions of CF2/HREADY pin.
ADE7880 고조파 계산 관리에 권장되는 접근 방식은 다음과 같습니다.
• CONFIG 레지스터에서 비트 2 (CF2DIS)를 설정하십시오.
고조파 계산이 완료되고 업데이트 될 때 CF2 / HREADY 핀을 사용하여 신호를 보내려면 CF2DIS 비트를 1로 설정하십시오.
HREADY 신호의 하이에서 로우 전환은 고조파 레지스터를 읽을시기를 나타냅니다.
버스트 판독 모드를 사용하면 가장 효율적인 고조파 레지스터이므로 고조파 레지스터를 읽을 수 있습니다.
• HX, HY 및 HZ를 적절히 설정하여 모니터링 할 고조파를 선택하십시오.
• 모든 HCONFIG 레지스터 비트를 선택하십시오.
• 고조파 계산에 사용 된 게인 레지스터를 초기화하십시오. 오프셋 레지스터를 0으로 두십시오.
• CF2 / HREADY 핀의 하이에서 로우 트랜지션으로 버스트 또는 일반 읽기 모드를 사용하여 고조파 정보가 저장된 레지스터를 읽습니다.
[ WAVEFORM SAMPLING MODE ]
The waveform samples of the current and voltage waveform, the active, reactive, and apparent power outputs are stored every 125 µs (8 kHz rate) into 24-bit signed registers that can be accessed through various serial ports of the ADE7880.
Table 22 provides a list of registers and their descriptions.
------------------------------------------
Waveform Registers List (table 22)
------------------------------------------
IAWV Phase A current
VAWV Phase A voltage
IBWV Phase B current
VBWV Phase B voltage
ICWV Phase C current
VCWV Phase C voltage
INWV Neutral current
AVA Phase A apparent power
BVA Phase B apparent power
CVA Phase C apparent power
AWATT Phase A active power
BWATT Phase B active power
CWATT Phase C active power
------------------------------------------
Bit 17 (DREADY) in the STATUS0 register can be used to
signal when the registers listed in Table 22 can be read using
I2C or SPI serial ports. An interrupt attached to the flag can be
enabled by setting Bit 17 (DREADY) in the MASK0 register. (see
the Digital Signal Processor section for more details on
Bit DREADY).
As stated in the Current Waveform Gain Registers section, the
serial ports of the ADE7880 work on 32-, 16-, or 8-bit words.
All registers listed in Table 22 are transmitted signed extended
from 24 bits to 32 bits (see Figure 45).
(MSB first)
------------------------------------------------
32 ~ 24bit : BITS[31:24] ARE EQUAL TO BIT 23
23 ~ 0bit : BIT 23 IS A SIGN BIT
------------------------------------------------
[ ENERGY-TO-FREQUENCY CONVERSION ]
[INTERRUPTS]
The ADE7880 has two interrupt pins, IRQ0 and IRQ1.
Each of the pins is managed by a 32-bit interrupt mask register, MASK0 and MASK1, respectively.
To enable an interrupt, a bit in the MASKx register must be set to 1.
To disable it, the bit must be cleared to 0. Two 32-bit status registers, STATUS0 and STATUS1, are associated with the interrupts.
When an interrupt event occurs in the ADE7880, the corresponding flag in the interrupt status register is set to a logic 1 (see Table 36 and Table 37).
If the mask bit for this interrupt in the interrupt mask register is logic 1, then the IRQx logic output goes active low.
The flag bits in the interrupt status register are set irrespective of the state of the mask bits.
To determine the source of the interrupt, the MCU must perform a read of the corresponding STATUSx register and identify which bit is set to 1. To erase the flag in the status register, write back to the STATUSx register with the flag set to 1.
After an interrupt pin goes low, the status register is read and the source of the interrupt is identified. Then, the status register is written back without any change to clear the status flag to 0.
The IRQx pin remains low until the status flag is cancelled.
By default, all interrupts are disabled. However, the RSTDONE interrupt is an exception. This interrupt can never be masked (disabled) and, therefore, Bit 15 (RSTDONE) in the MASK1 register does not have any functionality.
The IRQ1 pin always goes low, and Bit 15 (RSTDONE) in the STATUS1 register is set to 1 whenever a power-up or a hardware/software reset process ends.
To cancel the status flag, the STATUS1 register has to be written with Bit 15 (RSTDONE) set to 1.
Certain interrupts are used in conjunction with other status registers.
The following bits in the MASK1 register work in conjunction with the status bits in the PHNOLOAD register:
• Bit 0 (NLOAD)
• Bit 1 (FNLOAD)
• Bit 2 (VANLOAD)
The following bits in the MASK1 register work with the status bits in the PHSTATUS register:
• Bit 16, (SAG)
• Bit 17 (OI)
• Bit 18 (OV)
The following bits in the MASK1 register work with the status bits in the IPEAK and VPEAK registers, respectively:
• Bit 23 (PKI)
• Bit 24 (PKV)
The following bits in the MASK0 register work with the status bits in the PHSIGN register:
• Bits[6:8] (REVAPx)
• Bits[10:12] (REVRPx)
• Bit 9, Bit 13, and Bit 18 (REVPSUMx)
When the STATUSx register is read and one of these bits is set to 1, the status register associated with the bit is immediately read to identify the phase that triggered the interrupt and only at that time can the STATUSx register be written back with the bit set to 1.
Using the Interrupts with an MCU Figure 101 shows a timing diagram that illustrates a suggested implementation of the ADE7880 interrupt management using an MCU.
At Time t1, the IRQx pin goes active low indicating that one or more interrupt events have occurred in the ADE7880, at which point, take the following steps:
1. Tie the IRQx pin to a negative-edge-triggered external interrupt on the MCU.
2. On detection of the negative edge, configure the MCU to start executing its interrupt service routine (ISR).
3. On entering the ISR, disable all interrupts using the global interrupt mask bit. At this point, the MCU external interrupt flag can be cleared to capture interrupt events that occur during the current ISR.
4. When the MCU interrupt flag is cleared, a read from STATUSx, the interrupt status register, is carried out. The interrupt status register content is used to determine the source of the interrupt(s) and, therefore, the appropriate action to be taken.
5. The same STATUSx content is written back into the ADE7880 to clear the status flag(s) and reset the IRQx line to logic high (t2).
If a subsequent interrupt event occurs during the ISR (t3), that event is recorded by the MCU external interrupt flag being
set again.
On returning from the ISR, the global interrupt mask bit is cleared (same instruction cycle) and the external interrupt flag uses the MCU to jump to its ISR once again.
This ensures that the MCU does not miss any external interrupts.
Figure 102 shows a recommended timing diagram when the status bits in the STATUSx registers work in conjunction with bits in other registers. When the IRQx pin goes active low, the STATUSx register is read, and if one of these bits is 1, a second status register is read immediately to identify the phase that triggered the interrupt.
The name, PHx, in Figure 102 denotes one of the PHSTATUS, IPEAK, VPEAK, or PHSIGN registers.
Then, STATUSx is written back to clear the status flag(s).
---------------------------------------------------------------------
ADE7880에는 IRQ0 및 IRQ1의 두 개의 인터럽트 핀이 있습니다.
각 핀은 각각 32 비트 인터럽트 마스크 레지스터 MASK0 및 MASK1에 의해 관리됩니다.
인터럽트를 활성화하려면 MASKx 레지스터의 비트를 1로 설정해야합니다.
이를 비활성화하려면 비트를 0으로 지워야합니다.
두 개의 32 비트 상태 레지스터 인 STATUS0 및 STATUS1은 인터럽트와 연관되어 있습니다.
인터럽트 이벤트가 발생하면 인터럽트 상태 레지스터의 해당 플래그가 로직 1로 설정됩니다 (표 36 및 표 37 참조).
인터럽트 마스크 레지스터에서이 인터럽트에 대한 마스크 비트가 로직 1이면 IRQx 로직 출력이 액티브 로우가됩니다.
인터럽트 상태 레지스터의 플래그 비트는 마스크 비트의 상태에 관계없이 설정된다.
인터럽트 소스를 확인하려면 MCU가 해당 STATUSx 레지스터를 읽고 어떤 비트가 1로 설정되어 있는지 확인해야합니다.
상태 레지스터에서 플래그를 지우려면 플래그가 1로 설정된 상태에서 STATUSx 레지스터에 다시 씁니다.
인터럽트 핀이 로우가되면 상태 레지스터를 읽고 인터럽트 소스를 식별합니다.
그런 다음 상태 플래그를 변경하지 않고 상태 플래그를 다시 기록하여 상태 플래그를 0으로 지 웁니다.
IRQx 핀은 상태 플래그가 취소 될 때까지 낮게 유지됩니다.
기본적으로 모든 인터럽트는 비활성화되어 있습니다.
그러나 RSTDONE 인터럽트는 예외입니다.
이 인터럽트는 마스킹 (비활성화) 될 수 없으므로 MASK1 레지스터의 비트 15 (RSTDONE)에는 기능이 없습니다.
IRQ1 핀은 항상 로우가되고 전원을 켜거나 하드웨어 / 소프트웨어 리셋 프로세스가 종료 될 때마다 STATUS1 레지스터의 비트 15 (RSTDONE)가 1로 설정됩니다.
상태 플래그를 취소하려면 비트 15 (RSTDONE)를 1로 설정하여 STATUS1 레지스터를 작성해야합니다.
특정 인터럽트는 다른 상태 레지스터와 함께 사용됩니다.
MASK1 레지스터의 다음 비트는 PHNOLOAD 레지스터의 상태 비트와 함께 작동합니다.
• 비트 0 (NLOAD)
• 비트 1 (FNLOAD)
• 비트 2 (VANLOAD)
MASK1 레지스터의 다음 비트는 PHSTATUS 레지스터의 상태 비트와 함께 작동합니다.
• 비트 16 (SAG)
• 비트 17 (OI)
• 비트 18 (OV)
MASK1 레지스터의 다음 비트는 각각 IPEAK 및 VPEAK 레지스터의 상태 비트와 작동합니다.
• 비트 23 (PKI)
• 비트 24 (PKV)
MASK0 레지스터의 다음 비트는 PHSIGN 레지스터의 상태 비트와 함께 작동합니다.
• 비트 [6 : 8] (REVAPx)
• 비트 [10:12] (REVRPx)
• 비트 9, 비트 13 및 비트 18 (REVPSUMx)
STATUSx 레지스터를 읽고이 비트 중 하나를 1로 설정하면,
비트와 관련된 상태 레지스터는 인터럽트를 트리거 한 위상을 식별하기 위해 즉시 읽히고
그 때에 만 비트가 "1"로 설정된 상태에서 STATUSx 레지스터를 다시 쓸 수 있습니다.
MCU와 함께 인터럽트 사용 그림 101은 MCU를 사용하여 제안 된 ADE7880 인터럽트 관리 구현을 보여주는 타이밍 다이어그램입니다.
시간 t1에서 IRQx 핀은 액티브 로우가되어 ADE7880에서 하나 이상의 인터럽트 이벤트가 발생했음을 나타내며,이 시점에서 다음 단계를 수행하십시오.
1. IRQx 핀을 MCU의 네거티브 에지 트리거 외부 인터럽트에 연결하십시오.
2. 네거티브 에지가 감지되면 ISR (Interrupt Service Routine) 실행을 시작하도록 MCU를 구성하십시오.
3. ISR에 들어가면 전역 인터럽트 마스크 비트를 사용하여 모든 인터럽트를 비활성화합니다. 이 시점에서 현재 외부 ISR 중에 발생하는 인터럽트 이벤트를 캡처하기 위해 MCU 외부 인터럽트 플래그를 지울 수 있습니다.
4. MCU 인터럽트 플래그가 지워지면 인터럽트 상태 레지스터 인 STATUSx에서 읽습니다. 인터럽트 상태 레지스터 내용은 인터럽트 소스를 결정하는 데 사용되므로 적절한 조치를 취해야합니다.
5. 동일한 STATUSx 내용이 ADE7880에 다시 기록되어 상태 플래그를 지우고 IRQx 라인을 로직 하이 (t2)로 재설정합니다.
ISR (t3) 동안 후속 인터럽트 이벤트가 발생하면 해당 이벤트는 MCU 외부 인터럽트 플래그로 기록됩니다.
다시 설정하십시오.
ISR에서 복귀하면 전역 인터럽트 마스크 비트가 지워지고 (동일한 명령 사이클) 외부 인터럽트 플래그가 MCU를 사용하여 ISR로 다시 점프합니다.
이는 MCU가 외부 인터럽트를 놓치지 않도록합니다.
그림 102는 STATUSx 레지스터의 상태 비트가 다른 레지스터의 비트와 함께 작동 할 때 권장되는 타이밍 다이어그램을 보여줍니다. IRQx 핀이 액티브 로우가되면 STATUSx 레지스터가 읽히고이 비트 중 하나가 1이면 인터럽트를 트리거 한 위상을 식별하기 위해 두 번째 상태 레지스터가 즉시 읽 힙니다.
그림 102에서 이름 PHx는 PHSTATUS, IPEAK, VPEAK 또는 PHSIGN 레지스터 중 하나를 나타냅니다.
그런 다음 STATUSx를 다시 작성하여 상태 플래그를 지 웁니다.
[Communication Verification]
The ADE7880 includes a set of three registers that allow any communication via I2C or SPI to be verified.
The LAST_OP (Address 0xEA01), LAST_ADD (Address 0xE9FE) and LAST_RWDATA registers record the nature,
address and data of the last successful communication respectively.
The LAST_RWDATA register has three separate addresses depending on the length of the successful communication.
Table 24. LAST_RWDATA Register Locations
---------------------------------------------------------------------
Communication Type Address
---------------------------------------------------------------------
8-Bit Read/Write 0xE7FD
16-Bit Read/Write 0xE9FF
32-Bit Read/Write 0xE5FF
---------------------------------------------------------------------
0xE9FE LAST_ADD
0xEA01 LAST_OP
After each successful communication with the ADE7880, the address of the last accessed register is stored in the 16-bit LAST_ADD register (Address 0xE9FE).
This is a read only register that stores the value until the next successful read or write is complete.
The LAST_OP register (Address 0xEA01) stores the nature of the operation.
That is, it indicates whether a read or a write was performed.
If the last operation is a write, the LAST_OP register stores the value 0xCA.
If the last operation is a read, the LAST_OP register stores the value 0x35.
The LAST_RWDATA register stores the data that was written or read from the register. Any unsuccessful read or write operation is not reflected in these registers.
When LAST_OP, LAST_ADD and LAST_RWDATA registers are read, their values are not stored into themselves.
[SPI-Compatible Interface]
1) SPI Read Operation
The read operation using the SPI interface of the ADE7880 initiates when the master sets the SS/HSA pin low and begins sending one byte, representing the address of the ADE7880, on the MOSI line.
The master sets data on the MOSI line starting with the first high-to-low transition of SCLK. The SPI of the ADE7880 samples data on the low-to-high transitions of SCLK.
The most significant seven bits of the address byte can have any value, but as a good programming practice, it is recommended they be different from 0111000b, the seven bits used in the I2C protocol.
Bit 0 (read/write) of the address byte must be 1 for a read operation. Next, the master sends the 16-bit address of the register that is read.
After the ADE7880 receives the last bit of address of the register on a low-to-high transition of SCLK, it begins to transmit its contents on the MISO line when the next SCLK high-to-low transition occurs; thus, the master can sample the data on a low-to-high SCLK transition.
After the master receives the last bit, it sets the SS and SCLK lines high and the communication ends.
The data lines, MOSI and MISO, go into a high impedance state.
See Figure 107 for details of the SPI read operation.
ADE7880의 SPI 인터페이스를 사용한 읽기 작업은 마스터가 SS / HSA 핀을 낮게 설정하고
MOSI 라인에서 ADE7880의 주소를 나타내는 1 바이트를 보내기 시작할 때 시작됩니다.
마스터는 SCLK의 첫 번째 높고 낮은 전환으로 시작하여 MOSI 라인에 데이터를 설정합니다.
ADE7880의 SPI는 SCLK의 로우에서 하이 전환에 대한 데이터를 샘플링합니다.
주소 바이트의 최상위 7 비트는 값을 가질 수 있지만, 좋은 프로그래밍 방법으로 I2C 프로토콜에서 사용되는 7 비트 인 0111000b와는 다른 것이 좋습니다.
** 읽기 작업을하려면 주소 바이트의 비트 0 (읽기 / 쓰기)이 1이어야합니다.
다음으로 마스터는 읽은 레지스터의 16 비트 주소를 보냅니다.
ADE7880은 SCLK의 Low-to-High 전환에서 레지스터의 마지막 비트 주소를 수신 한 후
다음 SCLK High-to-Low 전환이 발생할 때 MISO 라인에서 내용을 전송하기 시작합니다.
따라서 마스터는 SCLK 전환에서 SCLK 전환시 데이터를 샘플링 할 수 있습니다.
마스터는 마지막 비트를 수신 한 후 SS 및 SCLK 라인을 높게 설정하고 통신을 종료합니다.
데이터 라인 MOSI 및 MISO는 높은 임피던스 상태가됩니다.
SPI 읽기 조작에 대한 자세한 내용은 그림 107을 참조하십시오.
2) SPI Read Operation of Harmonic Calculations Registers
The registers containing the harmonic calculation results are located starting at Address 0xE880 and are all 32-bit width.
They can be read in two ways: one register at a time (see the SPI Read Operation section for details) or multiple consecutive registers at a time in a burst mode.
The burst mode initiates when the master sets the SS/HSA pin low and begins sending one byte, representing the address of the ADE7880, on the MOSI line.
The address is the same address byte used for reading only one register. The master sets data on the MOSI line starting with the first high-to-low transition of SCLK.
The SPI of the ADE7880 samples data on the low-to-high transitions of SCLK.
Next, the master sends the 16-bit address of the first harmonic calculations register that is read.
After the ADE7880 receives the last bit of the address of the register on a low-tohigh transition of SCLK,
it begins to transmit its contents on the MISO line when the next SCLK high-to-low transition occurs;
thus, the master can sample the data on a low-to-high SCLK transition.
After the master receives the last bit of the first register, the ADE7880 sends the harmonic calculations register placed at the next location and so forth until the master sets the SS and SCLK lines high and the communication ends.
The data lines, MOSI and MISO, go into a high impedance state.
See Figure 108 for details of the SPI read operation of harmonic calculations registers.
고조파 계산 결과를 포함하는 레지스터는 주소 0xE880에서 시작하여 모두 32 비트 폭입니다.
버스트 모드에서는
한 번에 하나의 레지스터 (자세한 내용은 SPI 읽기 작업 섹션 참조) 또는
한 번에 여러 개의 연속 레지스터로
두 가지 방식으로 읽을 수 있습니다.
버스트 모드는 마스터가 SS / HSA 핀을 낮게 설정하고
MOSI 라인에서 ADE7880의 주소를 나타내는 1 바이트를 보내기 시작할 때 시작됩니다.
주소는 하나의 레지스터 만 읽는 데 사용되는 것과 동일한 주소 바이트입니다.
마스터는 SCLK의 첫 번째 높고 낮은 전환으로 시작하여 MOSI 라인에 데이터를 설정합니다.
ADE7880의 SPI는 SCLK의 로우에서 하이 전환에 대한 데이터를 샘플링합니다.
다음으로 마스터는 읽은 첫 번째 고조파 계산 레지스터의 16 비트 주소를 보냅니다.
ADE7880이 SCLK의 저 / 고 전환에서 레지스터 주소의 마지막 비트를 수신 한 후,
다음 SCLK의 하이에서 로우로의 전환이 발생하면 MISO 라인으로 내용을 전송하기 시작합니다.
따라서 마스터는 SCLK 전환에서 SCLK 전환시 데이터를 샘플링 할 수 있습니다.
마스터가 첫 번째 레지스터의 마지막 비트를 수신 한 후 ADE7880은 마스터가 SS 및 SCLK 라인을 높게 설정하고
통신이 종료 될 때까지 다음 위치에 배치 된 고조파 계산 레지스터를 보냅니다.
데이터 라인 MOSI 및 MISO는 높은 임피던스 상태가됩니다.
고조파 계산 레지스터의 SPI 읽기 작업에 대한 자세한 내용은 그림 108을 참조하십시오.
3) SPI Write Operation
The write operation using the SPI interface of the ADE7880 initiates when the master sets the SS/HSA pin low and begins sending one byte representing the address of the ADE7880 on the MOSI line.
The master sets data on the MOSI line starting with the first high-to-low transition of SCLK. The SPI of the ADE7880 samples data on the low-to-high transitions of SCLK.
The most significant seven bits of the address byte can have any value, but as a good programming practice, it is recommended they be different from 0111000b, the seven bits used in the I2C protocol.
Bit 0 (read/write) of the address byte must be 0 for a write operation.
Next, the master sends the 16-bit address of the register that is written and the 32-, 16-, or 8-bit value of that register without losing any SCLK cycle.
After the last bit is transmitted, the master sets the SS and SCLK lines high at the end of the SCLK cycle and the communication ends.
The data lines, MOSI and MISO, go into a high impedance state.
See Figure 109 for details of the SPI write operation
ADE7880의 SPI 인터페이스를 사용한 쓰기 작업은 마스터가 SS / HSA 핀을 낮게 설정하고
MOSI 라인에서 ADE7880의 주소를 나타내는 1 바이트를 보내기 시작할 때 시작됩니다.
마스터는 SCLK의 첫 번째 높고 낮은 전환으로 시작하여 MOSI 라인에 데이터를 설정합니다.
ADE7880의 SPI는 SCLK의 로우에서 하이 전환에 대한 데이터를 샘플링합니다.
주소 바이트의 최상위 7 비트는 값을 가질 수 있지만, 좋은 프로그래밍 방법으로 I2C 프로토콜에서 사용되는 7 비트 인 0111000b와는 다른 것이 좋습니다.
** 쓰기 작업을하려면 주소 바이트의 비트 0 (읽기 / 쓰기)이 0이어야합니다.
다음으로, 마스터는 기록 된 레지스터의 16 비트 주소와 해당 레지스터의 32 비트, 16 비트 또는 8 비트 값을 SCLK주기 손실없이 전송합니다.
마지막 비트가 전송 된 후, 마스터는 SCLK주기의 끝에서 SS 및 SCLK 라인을 높게 설정하고 통신이 종료됩니다.
데이터 라인 MOSI 및 MISO는 높은 임피던스 상태가됩니다.
SPI 쓰기 조작에 대한 자세한 내용은 그림 109를 참조하십시오.
<address 8bit(must bit7 = 0)> + <register address 32bit> + <contents x byte>
=================================================================================================
Table 44. CFMODE Register (Address 0xE610)
CF1SEL[2:0]
000: the CF1 frequency is proportional to the sum of total active powers on each phase identified by Bits[2:0] (TERMSEL1[x]) in the COMPMODE register.
010: the CF1 frequency is proportional to the sum of apparent powers on each phase identified by Bits[2:0] (TERMSEL1[x]) in the COMPMODE register.
011: the CF1 frequency is proportional to the sum of fundamental active powers on each phase identified by Bits[2:0] (TERMSEL1[x]) in the COMPMODE register.
100: the CF1 frequency is proportional to the sum of fundamental reactive powers on each phase identified by Bits[2:0] (TERMSEL1[x]) in the COMPMODE register.
001, 101, 110, 111: reserved.
<default>
- CF1SEL[2:0] : 000
- CF2SEL[2:0] : 100
- CF3SEL[2:0] : 101
CF1DIS
When this bit is set to 1, the CF1 output is disabled. The respective digital to frequency converter remains enabled even if CF1DIS = 1.
When this bit is set to 0, the CF1 output is enabled.
<default>
- CFxDIS : 1
Table 36. STATUS0 Register (Address 0xE502)
CF1
When this bit is set to 1, it indicates a high-to-low transition has occurred at CF1 pin;
that is, an active low pulse has been generated.
The bit is set even if the CF1 output is disabled by setting Bit 9 (CF1DIS) to 1 in the CFMODE register.
The type of power used at the CF1 pin is determined by Bits[2:0] (CF1SEL[2:0]) in the CFMODE register (see Table 44).
<default>
- CFx : none (read value)
COMPMODE Register (Address 0xE60E)
TERMSEL1[0]
Setting all TERMSEL1[2:0] to 1 signifies the sum of all three phases is included in the CF1 output.
Phase A is included in the CF1 outputs calculations.
TERMSEL1[1]
Phase B is included in the CF1 outputs calculations.
TERMSEL1[2]
Phase C is included in the CF1 outputs calculations.
<default>
-all : 1
댓글 없음:
댓글 쓰기