SBOA511A March 2021 – September 2021 INA209 , INA219 , INA220 , INA220-Q1 , INA226 , INA226-Q1 , INA228 , INA228-Q1 , INA229 , INA229-Q1 , INA230 , INA231 , INA232 , INA233 , INA234 , INA236 , INA237 , INA237-Q1 , INA238 , INA238-Q1 , INA239 , INA239-Q1 , INA260 , INA3221 , INA3221-Q1
The primary principle to understand is that all power monitors measure voltages. These voltages can then be used to calculate current and power provided the user knows the value of the shunt resistance being used. Voltage registers have fixed LSB values defined in the data sheet electrical characteristics section, whereas current and power registers have flexible LSBs based upon design criteria. The device needs the user tell it what those LSB values are. For convenience, we recommend scaling the LSB according the register bits and the max current you plan to measure. Consequently, we provide the Equation 4.
Upon determining the current LSB, you can then determine the appropriate calibration coefficient. Depending on the device you will use an Equation 5 or an Equation 6. Refer to the device data sheet implementation section to determine which is appropriate.
After calculating the coefficient, you need to verify that the value does not exceed the register size. The following Equation 7 will help you determine if the value satisfies that criteria. If you find your calibration coefficient to be too large, you have three options that include choosing a larger shunt, scaling the register to a higher max current than what is expected, or choosing a different device or ensemble of devices with greater measurement range.
Several calibration registers have 16 bits, yet not all of the bits may be writable for the user as can be seen from the Table 7-1.
BIT # | D15 | D14 | D13 | D12 | D11 | D10 | D9 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
BIT NAME | — | FS14 | FS13 | FS12 | FS11 | FS10 | FS9 | FS8 | FS7 | FS6 | FS5 | FS4 | FS3 | FS2 | FS1 | FS0 |
POR VALUE | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
One subtle nuance to recognize is that your CURRENT_LSB as well as several other values may be impossible to read from the device. The only values you can possibly read correspond to values that directly relate to the shunt voltage register. This issue can become quite noticeable if the difference between RSHUNT MAX and RSHUNT MIN is quite large and you proceed with a shunt value close to RSHUNT MIN to minimize power dissipation. In these cases, your current LSB will be significantly smaller than what can actually be resolved. To realize this, consider a simple high level example where the max shunt voltage is 80mV and the chosen shunt results in 40mV for the highest expected current, which you decide to program the calibration register to scale to. If the shunt voltage register has the same number of numerical bits as the current register, the CURRENT_LSB will be directly equivalent to half a shunt voltage LSB. As the current is actually calculated from the shunt voltage register, reading a single bit from the current register will not be attainable even if in reality the measurable current matches the CURRENT_LSB.