1300 ibat task problem

hi support team,

customer is asking about ibat problem:

here is our devzone ticket: https://devzone.nordicsemi.com/f/nordic-q-a/119470/npm1300-ibat-0-and-adcibatmeasstatus-00, and the customer’s issue is almost identical to what is described in this post.

customer writes register 0x524 and register 0x509 and expect the ibat can be read automatically like vbat:

however it doesn't work, i saw into our SDK and we called this API to trigger ibat measurement:
ret = mfd_npm13xx_reg_write_burst(config->mfd, ADC_BASE, ADC_OFFSET_TASK_VBAT,(uint8_t []){1U, 1U, 1U}, 3U);

 the question is how to get ibat like vbat for every second , not manully trigger the ibat measurement?

Regards,

William.

Parents
  • Hi William, 

    What NCS version are you using?

    Regards,
    Amanda H.

  • Hi Amanda,

    I don't think it is related to NCS version.Writing vbat registers makes vbat measurement working, however,for ibat, it doesn't.

    Customer is using 52832 with nrf5 SDK.

    Regards,

    William.

  • Hi William,

    Writing ADCCONFIG.AUTOENABLE = 1 seems to start the automatic measurements right away (I start getting interrupts for the VBATRDY event), no need to write TASKVBATMEASURE = 1 after that. However, ADCIBATMEASEN = 1 (auto IBAT measurement after VBAT) doesn't seem to have any effect when used with automatic measurements. IBAT won't be triggered automatically

     

    Another thing I've noticed with these automatic VBAT measurements is that they seem to be triggered way more often than specified in the datasheet. Instead of getting an interrupt once a second, I get it almost instantly after clearing the previous one which can be as soon as 2ms between individual interrupts. I am going to check this with the design team.

     

    My recommendation then would be to stick to the manually triggered VBAT measurements. This way the measurement rate can be fully controlled by the host, and the IBAT measurement will be properly triggered after VBAT.

    -Amanda H.

Reply
  • Hi William,

    Writing ADCCONFIG.AUTOENABLE = 1 seems to start the automatic measurements right away (I start getting interrupts for the VBATRDY event), no need to write TASKVBATMEASURE = 1 after that. However, ADCIBATMEASEN = 1 (auto IBAT measurement after VBAT) doesn't seem to have any effect when used with automatic measurements. IBAT won't be triggered automatically

     

    Another thing I've noticed with these automatic VBAT measurements is that they seem to be triggered way more often than specified in the datasheet. Instead of getting an interrupt once a second, I get it almost instantly after clearing the previous one which can be as soon as 2ms between individual interrupts. I am going to check this with the design team.

     

    My recommendation then would be to stick to the manually triggered VBAT measurements. This way the measurement rate can be fully controlled by the host, and the IBAT measurement will be properly triggered after VBAT.

    -Amanda H.

Children
Related