How to set nPM1300 BCHISETDISCHARGEMSB/-LSB

Hi,

We want to set the PMIC's battery discharge limit via the registers BCHISETDISCHARGEMSB and BCHISETDISCHARGELSB to 1200mA but the nPM1300 PS does not describe how to translate a current to a register setting.

This post that poses the same question:
nPM1300 BCHGISETDISCHARGE - Nordic Q&A - Nordic DevZone - Nordic DevZone

But we don't understand how to do the conversion from that answer. Could you explain how the translation works?

Thank you

/ Silvia

Parents
  • Hi  ,

    the nPM1300 datasheet was changed from originally showing a wider range of discharge limits to now only two limits, high (1000 mA) and low (200 mA). The electrical specification states a typical value of 1470 mA for the high limit, but this can be lower due to device variation. The 1000 mA and 200 mA limits are guaranteed however.

    Best regards,

    Audun

  • Hi Audun,

    I'm not quite understanding what you mean. Are you saying the high limit is 1000 mA or 1470 mA?

    We have tried setting the limit to 1000 mA by following the settings described in the data sheet and have read the registers back to confirm they were set correctly. We have also used only the zephyr device tree property

     

    dischg-limit-microamp = <1000000>;

    With both of these methods, we have manage to load the system with 1600 mA.

    We are using a battery that can handle maximum 1200 mA so this is way too high.

    If we can't get exactly 1200 mA, how can we at least get the guaranteed 1000 mA limit?

    Best regards,

    Silvia

    Edit: 

    When I first posted we were working with an nPM1300 with hardware version code 'C' and tracking code '2503AG' and on that one we did manage to set a discharge current limit slightly below 1200 mA. Just now we saw that in the new version of our hardware, we have an nPM1300 with hardware version code 'D' and tracking code '2521AA' instead (the rest of the IC marking is the same as before).

    Could the hardware version have something to do with why the discharge current limit setting no longer works?

  • Thank you!

    sillvi said:
    3. We are using registers 0x030A and 0x030B

    And what values did you write to them?

    Best regards,

    Michal

  • When we set the limit to ~1200 mA we set BCHISETDISCHARGEMSB to 0xBA and BCHISETDISCHARGELSB to 0x00

    When we tried setting it to 1000 mA according to the data sheet, we set BCHISETDISCHARGEMSB to 0xCF and BCHISETDISCHARGELSB to 0x01

    Best regards,

    Silvia

  • Thank you Silvia, that sounds correct.

    I am discussing this internally and I will let you know when I will have more information (or questions).

    Best regards,

    Michal

  • Okay. Thank you for looking into it

    Best regards,

    Silvia

  • Hello again Silvia,

    I have learnt that the 200 mA and 1 A are not hard limits and can also vary quite a bit based on the device. Those are just the lowest values that we guarantee for the limit, but then it may take for example around 290 mA or 1400 mA for the limit to drop the VSYS enough depending on the device.

    Also it will cause a reset, so for a proper current limiting you may need some external circuitry (for example in case of a continuous overcurrent).

    Best rergards,

    Michal

Reply
  • Hello again Silvia,

    I have learnt that the 200 mA and 1 A are not hard limits and can also vary quite a bit based on the device. Those are just the lowest values that we guarantee for the limit, but then it may take for example around 290 mA or 1400 mA for the limit to drop the VSYS enough depending on the device.

    Also it will cause a reset, so for a proper current limiting you may need some external circuitry (for example in case of a continuous overcurrent).

    Best rergards,

    Michal

Children
Related