This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

INA229_239EVM: Unable to get correct current value: INA229, INA229EVB

Part Number: INA229
Other Parts Discussed in Thread: INA229, SYSCONFIG

Tool/software:

Hi TI Experts,

I am going to use INA229 for my power management system. I am now testing the INA229 using INA229EVB. I am using Microchip SAMD51, every things is ok such as reading/writing registers and getting Vbus, except the current reading are incorrect. So, to make it simple and easy, I am now evaluating using an Arduino UNO. Here is the snapshot of the configurations (default), CHIP_ID = 2291, Manufacture_ID= 5449, noted that Vbus is read properly.

   

(WITHOUT R_SHUNT connected) I have tried to apply voltage to IN+ and IN- to read V_SHUNT, I apply around 145mV and others, It reads properly:

Then to measure/evaluating the current, I connect the R_SHUNT of 1 mili ohm and apply the same V_shunt voltage around 145mV:

The Vshunt and current are the same value which is also wrong. It happens also when I use microcontroller SAMD51. In addition, I have also calculate the shunt_cal and program it as in Datasheet.

Best regards,

Fajar

  • I would like to add some information and pictures,

    From the pictures above, VBUS = 4.14V, Current 0.931A

    Connections of the 229EVB J1: IN+ connected to RSHUNT (0.001 ohm) and VBUS; IN- connected to RSHUNT (0.001 ohm) and Resistors (2+2= 4 ohm); VBUS to VBUS 4.14V; and GND to Resistor and gnd of power suply.

    You can see the VBUS is close, I also check using multimeter. The VSHUNT and current are the same (note that this code similar to the sysconfig provided by TI).
    Here is my calculation:

    equation 2: SHUNT_CAL = 13107.2 x 10^6 x CURRENT_LSB x RSHUNT
    equation 3: CURRENT_LSB = Maximum Expected Current/2^19 =

    +-V_SENSE_MAX = +-163.84 mV
    RSHUNT 0.001 
    IMAX = 163.84 (as I choose 1 m ohm then the current max should be this value)

    CURRENT_LSB =0.0003125 A/LSB = 312.5 uA/LSB
    SHUNT_CAL = 13107.2 x 10^6 x 312.5 10^-6 x 0.001 = 4096 which is 0x1000

    Can you help me with this in which part I am wrong? I also try this setup with SAMD51 and result the same issue.

    Best regards,

    Fajar 

  • Hi Fajar,

    Thank you for the clear and detailed description, it does make our job easier!

    Your calculation seems to be correct. The fact that all measurements are correct with a 145mV voltage input is reassuring.

    The way the shunt is connected is problematic to say the least however. It needs to be soldered to the EVM footprint (R1) if you want to use a current load.

    To verify the input voltage, please measure across the pads of C3, or the two adjacent test points.

    Regards

    Guang

  • Hi Guang,

    Thank you for your response. I connected this way to check later for different value of Rsense. The INA229EVB user guides stated that I can connect this way. Is it because of cable/wiring resistance that make a measurement errors? I don't get it why the value of Vshunt and current are the same. 

    I will try to solder the Rsense to the footprint to verify again tomorrow.

    Best regards,

    Fajar

  • Hi Fajar,

    It is ok to connect through the terminals when Rsense is much larger. Even then, the measurement results should be taken as a somewhat rough verification. For accurate measurements, Rsense should be soldered.

    To avoid soldering, maybe replace Rsense with a 0.1ohm or 1ohm to see if it makes a difference. I wouldn't worry about current for now, just Vshunt.

    There might be other issues, but this is one variable that can be eliminated.

    Regards

    Guang

  • Hi Guang,

    You are right. I have soldered the Rsense, and it measure correctly. Then, I used adc range 1 to be more precise with this small current. 

    Another thing that I still don't get it why the value of VSHUNT is also the current value. Currently, I use similar code from sysconfig, here the snapshot

    I have one issue that I would like to confirm, I use spi with dma in my SAMD51. Can INA229 use "burst read", for example I send only command to read register register current 07h, then I get current and the next register 08h for power and so on?

    Best regards,

    Fajar

  • Hi Fajar,

    There might be something I don’t see, but take the first pair of readings – Vshunt=0.4938mV; current=0.4937A. Isn’t this correct considering Rshunt=1mOhm? I think the numbers should look the same between Vshunt and Current in this particular case.

    As far as addressing auto increment, it is available for certain devices, but not this one. We need to send the complete command, though there is no limit to how many commands can be sent continuously, without toggling CS pin.  

    Regards

    Guang