1 Reply Latest reply on Feb 4, 2015 6:47 PM by DaKn_263916

    CS5490 Power Metering IC

      I have a PSOC 5 front end interface collecting data from a Cirrus Logic CS5490. I successfully am reading all registers except for the temperature, which for some reason is refusing to update. I know it is not my register read code because the status bit showing an update happened never fires.



      Any ideas on what is happening? I have been working at this issue for a few days now.

      Here is the datasheet and my project is attached.


      The PSOC program puts the CS5490 into continuous conversion mode. When the UART interfacing to the PC sends an upload command (command ID 1), the PSoC polls the status register until it is set, indicating data is available. Then the PSoC program uploads all the data from the registers I specified, except for the temperature. A timer in a VB app issues the command every 1060 mS.

        • 1. Re: CS5490 Power Metering IC

          Not sure if this will make a difference but should this -




              // Write bytes to register.  
              METER_PutChar((data & 0x000000FF) >> 0);
              METER_PutChar((data & 0x0000FF00) >> 8);
              METER_PutChar((data & 0x00FF0000) >> 16);


          change to -




              // Write bytes to register.  
              METER_PutChar( (uint8) ( ( data & 0x000000FF ) >> 0 ) );
              METER_PutChar( (uint8) ( ( data & 0x0000FF00 ) >> 8 ) );
              METER_PutChar( (uint8) ( ( data & 0x00FF0000 ) >> 16 ) );


          Regards, Dana.