nPM1300 max battery discharge current (Vsys).

Hi,

We have 2 projects where we are using the nPM1300.

In both cases we have peak currents. 

In de documentations I thought I read some where that the current limit was 1A-2A.

Default 1.0A at reset but discharge current can be set to 1.34A. 

The datasheet register description does not mention the max current limit of 1.34A only the provided driver source files by Nordic. (so far I know)

For the first project I have bypassed the nPM1300 for the motor control because of the peak current are above 2A.

For a good working fuel gauge (libnrf_fuel_gauge.a and battery model) SOC measurement the fuel gauge updates are halted for the time when the motor is running.  

when motor control is shutdown ( quiescent current <0.1 uA) the fuel gauge updates start again.

This works fine for this project.

For the second project the peak currents are less intense and not so often and we hoping to not have to bypass the nPM1300.

Question:

- Wat is the max discharge current that the nPM1300 can handle and how to configer the chip?

-  Are there solutions to increase the time needed before the nPM1300 discharge current feature intervenes? (this to allow the short inrush current)

  • Hi Rob

    Max discharge current from the battery is 1460 mA, see https://docs.nordicsemi.com/bundle/ps_npm1300/page/chapters/charger.html#ariaid-title12

    Note "If the system load exceeds the discharge current limit, VSYS voltage drops below VSYSPOF causing the device to reset"

    Large capacitors should prevent the most of the inrush current, but it depends a bit how much current you need to draw.

    Best regards,

    Ketil Aas-Johansen

  • Hi Rob,

    The default setting for the battery discharge current limit is High as per table below from Product Specification v1.1:

    This is to say that it's recommended for applications with max current under 1A. 

    To try and answer your second question, can you detail a bit more how would you configure the nPM1300, more specifically what BUCKs output voltage you plan to set. There is no setting you can use to alter the time before the discharge current feature intervenes, but you may be able to get away with short pulses of inrush current, if they can be supplied by the VSYS capacitor.

    All the best,

    Dan

  • Hi,

    we are using only using BUCK2 because it can be set to 3V3 and provides with the external resistor, current is max 30mA (AVG )

    and no load switches are used.

    Vsys also powers a TI buck/boost converter. after investigation we found out that, that is where the problems seems to be. 

    it has no soft start and has a very high start-up current that is higher than the highest possible setting of the nPM1300.

    With the information provided by this post we are going to focus on reducing the start-up current to below the current limit set by the nP1300.

    thank you for you support and quick responses.

    I would like to make a make Nordic aware that the max current limit in the documentation is not the same in the provided driver source code.

    https://github.com/NordicSemiconductor/npmx 

    npmx_error_t npmx_charger_discharging_current_set(npmx_charger_t * p_instance, uint16_t current)
    {
        NPMX_ASSERT(p_instance);
    
        if ((current < NPM_BCHARGER_DISCHARGING_CURRENT_MIN_MA) ||
            (current > NPM_BCHARGER_DISCHARGING_CURRENT_MAX_MA))
        {
            return NPMX_ERROR_INVALID_PARAM;
        }
    
        uint32_t code = (uint32_t)current * NPM_BCHARGER_DISCHARGING_MULTIPLIER;
        uint32_t mod  = code % NPM_BCHARGER_DISCHARGING_CONST;
    
        code /= NPM_BCHARGER_DISCHARGING_CONST;
    
        if (mod > (NPM_BCHARGER_DISCHARGING_CONST / 2UL))
        {
            code++;
        }
    
        uint8_t data[2] =
        {
            [0] = (uint8_t)(code >> NPM_BCHARGER_DISCHARGING_CODE_MSB_SHIFT),
            [1] = (uint8_t)(code & 1UL)
        };
    
        return npmx_backend_register_write(p_instance->p_pmic->p_backend,
                                           NPMX_REG_TO_ADDR(NPM_BCHARGER->BCHGISETDISCHARGEMSB),
                                           data,
                                           2);
    }

    "adk/npm1300_peripherals.h"

    #define NPM_BCHARGER_DISCHARGING_CURRENT_MIN_MA  270UL   ///< Minimum possible discharging current in milliamperes, from the product specification.
    #define NPM_BCHARGER_DISCHARGING_CURRENT_MAX_MA  1340UL  ///< Maximum possible discharging current in milliamperes, from the product specification.

Related