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.

INA236: ADC Range switch for higher resolution

Part Number: INA236

Hi,

I am considering using the INA236 for several DC-DC converters in a power tree.

According to the datasheet the ADC can be set to either +-81,92 mV or +-20,48mV.

So my idea was to use a resistor that can be used for between both ranges. Lets say, when the system is at low power( which is 80% of the time) I use the ADC range +-20,48mV to achieve higher resolution and lower power desipation on the Shunt resistor.

When it is close or out of bounds (in scale 20,48mv)I switch to the +-81,92 mV scale.

 .

Is this advisevable ?Is there any downside by using the +-20,48mV Scale? Well besides being more prone to noise.

Thanks,

Pedro

MAny Thanks

  • Hi Pedro,

    I think that there are many other error sources in a typical application making the 16bit resolution of an ADC look like overengineering. If you really want to achieve 16bit precision, then your shunt must show a total error of less than about 1 / 65536 x 100% = 0.0015% = 15ppm, including manufacturing tolerances, long term drift, temperature drift, non-linearity errors, etc. I don't know of any shunt resistor that is such precise.

    There's another issue. When you carefully look at the specification of ADC of INA236 you will notice that the gain error of ADC is up to 0.1% = 1000ppm. This translates to a gain error of up to 66LSB. So, for highest precision you will have to perform a two point calibration of ADC in software.

    Kai

  • Hi , thank you for your input. My idea was not only to achieve the 16-bit precision but also reduce power losses.

    For example: one DC-DC provides 5V and max 6 Amps

    If I chose the 81.92mv Scale I need a 13,65 mOhm shunt(Pd=0.5W) , but if I use the 20.48mV Scale I will need a 3,41mOhm(Pd=0,123W)

    I am not only worried about the accuracy but also the power dissipation and component dimension. My application is battery powered and size constrained.

    My idea with the shunt resistor that can be used between both scales (for example 8 mOhm for the 6Amps DC-DC) and then switch between both scales was more to reduce power dissipation and still achieve relatively good current measurements.

    There will have to be a compromise between Price, Accuracy, Power dissipated and size. Just trying to achieve the best possible solution with those constrains.

    What do you think ? Good idea or bad ? 

    Pedro

  • Hi Pedro,

    My idea was not only to achieve the 16-bit precision but also reduce power losses.

    Yes, this is a really good idea Relaxed

    Do I understand you correctly that you only want to switch between the ADC ranges but not between different shunts? I ask, because when switiching between different shunts additional errors may occur.

    Kai

  • Hi Pedro,

    Your idea should work, like Kai mentioned.

    The advantage of using lower range when allowed is better resolution with low level shunt voltage. Switching between ADC ranges is achieved by toggling the ADCRANGE bit in the Configuration Register (Address = 0h).

    Switching between ranges however won’t affect power dissipated by the shunt resistor; nor will it affect noise performance of the part.

    Regards, Guang

  • Do I understand you correctly that you only want to switch between the ADC ranges but not between different shunts?

    No No, I will just have one shunt that covers half range in the lower scale and the remaining in the upper range.

    Yes calibration will have to be mandatory

    I just started doing some calculations for setting the registers. And I must say I am starting to have some doubts.

    Here my Circuit values:

    IMax=6 A   RShunt=8 mOhm

    This gives me the calculcated CURRENT_LSB = 183,11 uA/LSB. So I set CURRENT_LSB  to 200 uA/LSB.

    At ADC_RANGE = 0  (-+81,192 mV)  SHUNT_CAL = 3200d

    At ADC_RANGE =1 (-+20,48 mV)  SHUNT_CAL = 800d

    This brings me to the question where is the out-of-range value when ADC_RANGE 0 or 1 ?

    Or better said: How is the CURRENT register value returned when I switch between both ADC and Shunt ranges ?

    Below you may find my calculations for this device.

    INA_236_Calcs.ods

    https://we.tl/t-xAWj5LDUmy

    Many thankss for your help!

    Pedro

  • Hi Pedro,

    If you choose to change the Calibration value when switching ADC range - when converting Current Register value to Ampere, simply multiply it with the current LSB, ie, 200uA, for either range. In addition, if you need to read power, multiply POWER register value by (32*current LSB) to convert to Watts.

    If you choose to keep the Calibration value unchanged (3200d) when switching ADC range - when converting Current Register to Ampere for the 20mV range, simply multiply it with the current LSB 200uA, and then divide by 4. For power in Watts, multiply POWER register by (32*current LSB), but then divide by 4. For 80mV range, no need to divide by 4 for current or power.

    Regards, Guang

  • Hi many thanks for your help. I will try this once I have the circuit up and running.