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.

BQ25155: BQ25155EVM Charging operation

Part Number: BQ25155

Operation has been confirmed using BQ25155EVM.
The app used is "Battery Management Studio".
I would like to perform a charging operation, but the charging current does not flow.
The current flowing to VIN5.0V is 10mA or less.
There is no change even if I set 100mA with ICHG_CTRL 0x13.
Do I need to configure any other settings?
Please professor.

  • Hi 

    Can you please share other register values?

    Also, can you please share the status of your /CE, /LP, and MR pins?

    Best Regards,

    Juan Ospina

  • Attach Save data.
    Initial value and changed value.

    設定変更値_Setting change value.txt
    * Created: Fri Feb 16 07:46:22 JST 2024
    *
    * Format: Register Name  tab Character,\t  Register Address  tab Character,\t  Hexadecimal register value.
    * Device: bq25155
    * BQZ Container: Charger_1_00-bq25155.bqz
    *
    STAT0	01
    STAT1	00
    STAT2	00
    FLAG0	01
    FLAG1	00
    FLAG2	00
    FLAG3	00
    MASK0	00
    MASK1	00
    MASK2	71
    MASK3	00
    VBAT_CTRL	3C
    ICHG_CTRL	28
    PCHRGCTRL	84
    TERMCTRL	14
    BUVLO	00
    CHARGERCTRL0	82
    CHARGERCTRL1	C2
    ILIMCTRL	06
    LDOCTRL	E0
    MRCTRL	2A
    ICCTRL0	10
    ICCTRL1	00
    ICCTRL2	40
    ADCCTRL0	02
    ADCCTRL1	40
    ADCDATA_VBAT_M	9DDE
    ADCDATA_TS_M	556C
    ADCDATA_ICHG_M	0030
    ADCDATA_ADCIN_M	6ACC
    ADCDATA_VIN_M	D52C
    ADCDATA_PMID_M	C206
    ADCDATA_IIN_M	040A
    ADCALARM_COMP1_M	2320
    ADCALARM_COMP2_M	3890
    ADCALARM_COMP3_M	0000
    ADC_READ_EN	00
    TS_FASTCHGCTRL	34
    TS_COLD	7C
    TS_COOL	6D
    TS_WARM	38
    TS_HOT	27
    DEVICE_ID	35
    初期値_initial value.txt
    * Created: Fri Feb 16 07:41:45 JST 2024
    *
    * Format: Register Name  tab Character,\t  Register Address  tab Character,\t  Hexadecimal register value.
    * Device: bq25155
    * BQZ Container: Charger_1_00-bq25155.bqz
    *
    STAT0	01
    STAT1	00
    STAT2	00
    FLAG0	01
    FLAG1	00
    FLAG2	00
    FLAG3	00
    MASK0	00
    MASK1	00
    MASK2	71
    MASK3	00
    VBAT_CTRL	3C
    ICHG_CTRL	08
    PCHRGCTRL	02
    TERMCTRL	14
    BUVLO	00
    CHARGERCTRL0	82
    CHARGERCTRL1	C2
    ILIMCTRL	06
    LDOCTRL	B0
    MRCTRL	2A
    ICCTRL0	10
    ICCTRL1	00
    ICCTRL2	40
    ADCCTRL0	02
    ADCCTRL1	40
    ADCDATA_VBAT_M	9DDE
    ADCDATA_TS_M	556C
    ADCDATA_ICHG_M	0030
    ADCDATA_ADCIN_M	6ACC
    ADCDATA_VIN_M	D52C
    ADCDATA_PMID_M	C206
    ADCDATA_IIN_M	040A
    ADCALARM_COMP1_M	2320
    ADCALARM_COMP2_M	3890
    ADCALARM_COMP3_M	0000
    ADC_READ_EN	00
    TS_FASTCHGCTRL	34
    TS_COLD	7C
    TS_COOL	6D
    TS_WARM	38
    TS_HOT	27
    DEVICE_ID	35

  • LP=VIO. MR=Open.
    I set the CE pin to Open (L).
    Charging will start, but if you leave it for a few minutes, the current will drop to around 10mA again.
    Why isn't it retained?

    For example, even if you change LDOCTRL to 3.0V and press "ReadRegister" to read it, it will remain at 3.0V.
    ICHG_CTRL will change to 10mA.

    I wonder why?

  • Is it working with some kind of timer, or is the timer setting incorrect?

  • In addition, if you disconnect VIN while BATT is connected,
    Even if I perform "ReadRegister" to read the ADC, the ADC value is not updated.
    ADCDATA_VBAT_M 0x42~0x4E
    What is the cause of this?

  • Hi,

    This is likely the watchdog timer which resets charging related registers to default values if 50 seconds pass without an I2C transaction. You can resolve this by reading I2C at least once every 50 seconds or by disabling watch dog (CHARGECTRL0 Register 0x17, bit 4 is WATCHDOG_DISABLE).

    When VIN is connected the ADC runs automatically, but when in battery only mode it has to be enabled and configured using registers 0x40 and 0x58 to set the reading rate, sampling time, and enabled channels.

    Best Regards.

  • Disable watchdog register.
    The charging issue has been resolved. Thank you.

    Regarding the ADC, I was able to read it, but the problem remained.

    If you check Ballot box with checkADC Conv Start and click ReadRegister, it will be updated, but the check for Ballot box with checkADC Conv Start will be cleared and you will need to check it again.
    Also, even if the ADC Read Rate is set to every second, it will not be updated and a ReadRegister will be required.

    Is this behavior correct?
    Is there something wrong with using it?

    I don't really understand how to use ADC Read Rate. Please explain.

  • Just to confirm, is there no ADC that monitors BATT's discharge current or PMID's output current?
    Please let me know if there is anything that can be substituted.

  • Please also tell me about SaveRegister and LoadRegister.
    The register is saved and then read, but it seems to be reflected in the register on the screen, but it does not seem to be written to the actual EV board.
    Even if I set UpdateMode to Mnual and write, it doesn't seem to be reflected.
    Why?

  • Hi,

    The ADC Conv Start bit is meant to be self clearing once the ADC read begins, though for the 1s mode it should be reading again once per second. Can you try setting it to continuous mode to see if it updates on its own?

    ADC Read Rate should set the rate at which the channels are sampled (continously, once per second, once per minute, or manually). Please refer to the ADC section of the datasheet for more information.

    Read Register executes I2C reads of the device register memories so it will reflect the existing register values on the device.

    Write register allows for manually writing of the I2C commands. Typically this won't have an effect if you are in "immediate" write mode since it will write the I2C as soon as the value is changed. If you have manual write mode then write register is when the register values will be written.

    Even if I set UpdateMode to Mnual and write, it doesn't seem to be reflected.

    Is this true for all register values (where none of them are updated) or only some register values? Some register values require certain conditions to be writable.

    Just to confirm, is there no ADC that monitors BATT's discharge current or PMID's output current?

    No, there isn't an ADC channel that measures discharge current for this device, only charge current.

    Best Regards,

    Juan Ospina

  • The setting value is recorded to the File using SaveRegister.
    If you load this ↑ File with LoadRegister,
    I believe that the data will be reflected on the EVM board.
    However, register is not reflected. (All Registers)
    Is my understanding wrong?

  • Hi Yuuzi,

    In that case you will have to set the software to manual write and press the write register button to write all the register values to the EVM.

    Best Regards,

    Juan Ospina

  • I've already tried it, and I also tried it manually, but the result is the same.

  • Can you please share a screen shot after LoadRegister but before manual write, then after manual write, then after a read? The writable registers should be changed in value, the non-writable fields may not change.

  • Writable Registers are also not reflected.

  • Hi Yuuzi,

    I've done some investigating and it looks like the software logic won't execute a write for the register loaded values on the default view, only on the field view. So you will have to open the device with field view 

    Save registers there (the register save file has different format from field view and default view), then they can be loaded and written as expected.

    Best Regards.