Post Go back to editing

ADE7880 - Rogowski coil not working

Hello,

I designed a circuit for energy monitoring using CT and Rogowski , this is done by  closing and opening appropriate jumpers across burden resistor, fig shown below

I tested the circuit for Rogowski with all jumpers open,  and on the software side I turned ON integrator by 

// SPIWrite2Bytes(DICOEFF,0xFF8000);
SPIWrite2Bytes(CONFIG,0x0001);  // integrator on

But the output is not correct

IC is not changing .

But in the case of CT, it's working i closed jumpers for CT as mentioned in the ADE7880_userguide.

what is the issue with Rogowski, 
please Help.




[edited by: vivekpkd at 11:29 AM (GMT -4) on 21 Mar 2022]
Parents Reply Children
  • Hi,   from the debugging, I found that the issue is before the calibration, ie the Current value IC is always "8388607" (integrator ON) with and without connecting Rogowski cable, 

    my code for Reg config is 

    void ADE7880_REG_Config(void)
    {
        SPIWrite2Bytes(COMPMODE,0x00FF);
    
    
       // SPIWrite4Bytes(VLEVEL,0x00B3DA8D);
    
        SPIWrite2Bytes(APHCAL,0x032F);//powrfactor calliberation32f
        SPIWrite2Bytes(BPHCAL,0x032F);
        SPIWrite2Bytes(CPHCAL,0x032F);
    
    	SPIWrite2Bytes(Gain,0x0000);	//0000		  //config the  Gain of the PGA , which is before the ADC of ADE7878
    	SPIWrite2Bytes(CONFIG,0x0000);
    	  SPIWrite2Bytes(DICOEFF,0xFF8000);
    	SPIWrite2Bytes(CONFIG,0x0001);			  // integrator on
    
    	SPIWrite1Byte(CONFIG3,0x00);			  //enabled high-pass filters
    
    	SPIWrite4Bytes(AIGAIN,0x00000000);		  //calibration
    	SPIWrite4Bytes(AVGAIN,0x00000000);
    	SPIWrite4Bytes(BIGAIN,0x00000000);
    	SPIWrite4Bytes(BVGAIN,0x00000000);
    	SPIWrite4Bytes(CIGAIN,0x00000000);
    	SPIWrite4Bytes(CVGAIN,0x00000000);
    	SPIWrite4Bytes(NIGAIN,0x00000000);
    
     	SPIWrite4Bytes(AIRMSOS,0x00000000);
    	SPIWrite4Bytes(AVRMSOS,0x00000000);
    	SPIWrite4Bytes(BIRMSOS,0x00000000);
    	SPIWrite4Bytes(BVRMSOS,0x00000000);
    	SPIWrite4Bytes(CIRMSOS,0x00000000);
    	SPIWrite4Bytes(CVRMSOS,0x00000000);//F06E
    	SPIWrite4Bytes(NIRMSOS,0x00000000);
    
     	SPIWrite4Bytes(APGAIN,0x00000000);
    	SPIWrite4Bytes(AWATTOS,0x00000000);
    	SPIWrite4Bytes(BPGAIN,0x00000000);
    	SPIWrite4Bytes(BWATTOS,0x00000000);
    	SPIWrite4Bytes(CPGAIN,0x00000000);
    	SPIWrite4Bytes(CWATTOS,0x00000000);
    
    	SPIWrite2Bytes(APHCAL,0x0000);
    	SPIWrite2Bytes(BPHCAL,0x0000);
    	SPIWrite2Bytes(CPHCAL,0x0000);
    
    	SPIWrite2Bytes(CF1DEN,0x00A7);	  		  //configure the ENERGY-TO-FREQUENCY
    	SPIWrite2Bytes(CF2DEN,0x00A7);
    	SPIWrite2Bytes(CF3DEN,0x00A7);
    	SPIWrite2Bytes(CFMODE,0x0E88);
                                        //CF1-total active power, disable; CF2-total reactvie power, disable; CF3- fundamental avtive power, disable
        //SPIWrite4Bytes(HCONFIG,0x000002A2);
         SPIWrite2Bytes(HCONFIG, 0x0000);
    
    	SPIWrite2Bytes(ACCMODE,0x0000);
    
    
    //	SPIWrite2Bytes(COMPMODE,0x00FF);
    
    	SPIWrite1Byte(MMODE,0x00);
    
    	SPIWrite1Byte(HX_reg,0x03);
    	SPIWrite1Byte(HY_reg,0x03);
    	SPIWrite1Byte(HZ_reg,0x03);
    
    
    	SPIWrite4Bytes(WTHR,0x007BBE61);			  //PMAX = 33,516,139	  0.001WH/LSB	 //page 47 datasheet Rev. E
    //	SPIWrite4Bytes(WTHR1,0x00000017);
    	SPIWrite4Bytes(VATHR,0x007BBE61);		  //PMAX = 33,516,139
    //	SPIWrite4Bytes(VATHR1,0x00000017);
    	SPIWrite4Bytes(VARTHR,0x007BBE61);		  //PMAX = 33,516,139
    //	SPIWrite4Bytes(VARTHR1,0x00000017);
    //    SPIWrite4Bytes(VLEVEL,0x007BBE61);
       //SPIWrite4Bytes(VLEVEL,0x005DD633);
          SPIWrite4Bytes(VLEVEL,0x000C1ECC);
        //0xB3DA8D
    
    	SPIWrite1Byte(LCYCMODE,0x08);				  //phase B is selected for zero cross
    	SPIWrite2Bytes(LINECYC,0x0064);
    
    	SPIWrite4Bytes(MASK0,0x00000020);			  //line cycle interrupt enable
    	SPIWrite4Bytes(MASK1,0x00000000);
    // for flushing the data  write additional 2 times
    	SPIWrite4Bytes(MASK1,0x00000000);
    	SPIWrite4Bytes(MASK1,0x00000000);
    
    }

  • Please verify input ckt is configured like this

    I don't see the run bit being set in the code above. you could be doing in somewhere else just verifying the run bit is set. 

    What is the state of the psm0 and 1 pins. 

    If the Rogowski is not connected or is connected but not correctly (see ckt above) there may be to much noise. 

    you are using a PGA gain of 1 for the current channel is this correct for your Rogowski coil? 

    Dave

  • Actually the code is perfectly working for normal CTs (integrator OFF)all other config done in different function.In the circuit capacitor c55 and load resister is not soldered.. But still not getting.

    When i tried with integrator OFF then its getting correct wave for one phase.

    Issue is when integrator ON its reads constant value.

  • Could you verify the dicoeff you are writing.  Looks like you are writing 

     SPIWrite2Bytes(DICOEFF,0xFF8000); should be 0xFFF8000

    https://www.analog.com/media/en/technical-documentation/data-sheets/ADE7880.pdf

    pg 29 bottom

    " Before turning on the integrator, this register must be initialized with 0xFFF8000"

     

    Dave

  •  i changed dicoeff to 0xFFF8000 and tested still the value of IC is "8388607".

    In order to verify if there is any hardware problem, i dumbed the same code to another board. But same result . 

  • SPIWrite2Bytes(DICOEFF,0xFF8000); should be 0xFFF8000

    You seem to be using 2 byte write for a 4 byte write. 

    Please verify you are using the correct byte length for your writes. 

    Dave

  • Just a note about register writes. 

    If you write a register read it back to see if it is what you expect. 

    When writing a 4 byte register if you write 2 bytes then pull chip select high, the write should not happen. The spi expects x bytes depending on register address.  Reading the register will have a different value than what you write. 

    This would have exposed a problem with the writes.

    Dave