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.

TPS25751EVM: PD reads data from BQ25798 register through IIC

Part Number: TPS25751EVM
Other Parts Discussed in Thread: BQ25798, TPS25751

Tool/software:

Hi Team,

I encountered an issue while using tps25751 (PD) to read bq25798 (charger) data through IIC; The problem is as follows
(1) When I read the value of the 0x01 register, the default value I read is 0x0348, which is the same as the value on its Register Map. After writing data to the register and reading it again, the result is also correct, as shown in "0x01_log. txt"
(2) However, when I read the value of the 0x0A register, the default value I read was 0x0063, which is correct. After writing data to the register and reading it again, the result is also incorrect, as shown in "0x0A_log. txt"
(3) When I was reading the value of the 0x03 register, the value I read was 0x000F, which is inconsistent with the value on its Register Map. I then wrote data to the register and read it again, and the result was the same as the written data
I don't know why situations (2) and (3) occur. Could you please help me identify the problem? The code is shown as "readw_rite_code, txt".

#define TPS25751_REG_CMD1   0x08
#define TPS25751_REG_DATA1  0x09

static int tps25751_write_bq25798_iindpm(const msdk_device_t *dev)
{
    int ret = MSDK_STATUS__ERROR;
    uint8_t data1_setup[] = { 0x05, 0x6B, 0x03, 0x0A, 0x00, 0x58 };

    ret = write_reg(dev, TPS25751_REG_DATA1, data1_setup, sizeof(data1_setup));
    if (ret != MSDK_STATUS__OK) {
        MSDK_LOG_ERR("Failed to write TPS25751 DATA1");
        return ret;
    }

    // Optional: Verify write to DATA1
    uint8_t data1_readback[6] = {0};
    ret = read_reg(dev, TPS25751_REG_DATA1, data1_readback, sizeof(data1_readback));
    if (ret != MSDK_STATUS__OK) {
        MSDK_LOG_ERR("Failed to read back TPS25750 DATA1");
        return ret;
    }
    MSDK_LOG_DBG("DATA1 Readback: %02X %02X %02X %02X %02X %02X",
        data1_readback[0], data1_readback[1], data1_readback[2],
        data1_readback[3], data1_readback[4], data1_readback[5]);

    // Step 2: Write 'I2Cw' to CMD1 register (0x08)
    uint8_t i2cw_cmd[] = { 0x04, 'I', '2', 'C', 'w' };  
    ret = write_reg(dev, TPS25751_REG_CMD1, i2cw_cmd, sizeof(i2cw_cmd));
    if (ret != MSDK_STATUS__OK) {
        MSDK_LOG_ERR("Failed to send I2Cw command to CMD1");
        return ret;
    }

    // Step 3: Read back CMD1 status
    uint8_t cmd_status[5] = {0};
    ret = read_reg(dev, TPS25751_REG_CMD1, cmd_status, sizeof(cmd_status));
    if (ret != MSDK_STATUS__OK) {
        MSDK_LOG_ERR("Failed to read CMD1 status\n");
        return ret;
    }

    MSDK_LOG_DBG("CMD1 Status: %02X %02X %02X %02X %02X",
        cmd_status[0], cmd_status[1], cmd_status[2], cmd_status[3],cmd_status[4]);


    return MSDK_STATUS__OK;
}

static int tps25751_read_bq25798_iindpm(const msdk_device_t *dev, uint8_t *data_out)
{
    int ret = MSDK_STATUS__ERROR;
 
    // Step 1: Write DATA1 (0x09), with data to set up TPS25751 to read from BQ25798
    uint8_t setup_data[4];
    setup_data[0] = 0x03;       // length = 3 bytes
    setup_data[1] = 0x6B;       // BQ25798 I2C slave address
    setup_data[2] = 0x0A;       // target register in BQ25798
    setup_data[3] = 0x02;       // read 2 bytes
    ret = write_reg(dev, TPS25751_REG_DATA1, setup_data, sizeof(setup_data));
    if (ret != MSDK_STATUS__OK) {
        MSDK_LOG_ERR("Failed to write TPS25751 DATA1");
        return ret;
    }
 
    // Step 2: Write CMD1 (0x08) with 'I2Cr' command
    uint8_t i2cr_cmd[5] = { 0x04, 'I', '2', 'C', 'r' };
    ret = write_reg(dev, TPS25751_REG_CMD1 , i2cr_cmd, sizeof(i2cr_cmd));
    if (ret != MSDK_STATUS__OK) {
        MSDK_LOG_ERR("Failed to write TPS25751 CMD1 for I2Cr");
        return ret;
    }
 
    // Step 3: Read CMD1 back to confirm command executed (should return 0x00 0x00 0x00 0x00)
    uint8_t cmd_status[4] = {0};
    ret = read_reg(dev, TPS25751_REG_CMD1, cmd_status, sizeof(cmd_status));
    if (ret != MSDK_STATUS__OK) {
        MSDK_LOG_ERR("Failed to read TPS25751 CMD1 status");
        return ret;
    }
	MSDK_LOG_DBG("CMD1 Status: %02X %02X %02X %02X", 
              cmd_status[0], cmd_status[1], cmd_status[2], cmd_status[3]);
    /*if (cmd_status[0] != 0x00 || cmd_status[1] != 0x00 || cmd_status[2] != 0x00 || cmd_status[3] != 0x00) {
        MSDK_LOG_ERR("TPS25751 I2Cr command failed to execute properly");
        return MSDK_STATUS__ERROR;
    }*/
 
    // Step 4: Read back the 2 bytes result from DATA1 (0x09)
    ret = read_reg(dev, TPS25751_REG_DATA1, data_out, 8);
    if (ret != MSDK_STATUS__OK) {
        MSDK_LOG_ERR("Failed to read response from TPS25750 DATA1");
        return ret;
    }
	MSDK_LOG_DBG("Read Data from BQ25798: %02X %02X  %02X %02X %02X %02X  %02X %02X", data_out[0], data_out[1],data_out[2], data_out[3], data_out[4], data_out[5],data_out[6], data_out[7]);
    return MSDK_STATUS__OK;   
}  

void tps25751_download_patch(void)
{
	uint8_t buf[8] = {};
    tps25751_download_patch_bundle(&nina_tps25751_device, tps25751_patch_data, tps25751_patch_size);
    msdk_time_delay_ms(500);
    tps25751_read_bq25798_iindpm(&nina_tps25751_device, buf);
    msdk_time_delay_ms(500);
	
    MSDK_LOG_DBG("Start to write BQ25798 register!");
    tps25751_write_bq25798_iindpm(&nina_tps25751_device);
    msdk_time_delay_ms(500);
    tps25751_read_bq25798_iindpm(&nina_tps25751_device, buf);
    msdk_time_delay_ms(500);
    
}
    159 4.299813       179        MCU  20         [M:msdk C:info F: L: ]: [MSDK][TPS25751] tps25751_init: dev 0x082dfb80
    160 4.299817       180        MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] tps25751 init
    161 4.299819       180        MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] i2c initial success.
    162 4.299820       185        MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] tps25751_init_success
    163 4.299823       185        MCU  20         [M:msdk C:info F: L: ]: [MSDK][TPS25751] tps25751_init: dev 0x082dfba0
    164 4.299826       185        MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] tps25751 init
    166 4.299831       185        MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] i2c initial success.
    167 4.299832       190        MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] tps25751_init_patch_success
    770 4.382013       281        MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 14, value 0b
    771 4.382016       281        MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] INT_EVENT1 ReadyForPatch bit is ready for patching.
    772 4.382018       281        MCU  64         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 1:  0B 00 00 00 00 00 00 00 00 00 00 02
    775 4.382028       283        MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 03, value 04
    776 4.382030       283        MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] PD controller is ready for patching.
    777 4.382032       283        MCU  36         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 2: 04 50 54 43 48 
    780 4.382039       284        MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 09, value 06
    781 4.382042       285        MCU  44         [M:msdk C:info F: L: ]: [MSDK][TPS25751]  Step 3: 06 80 33 00 00 35 32
    795 4.434709       292        MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 08, value 04
    796 4.434714       292        MCU  36         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 4: 04 50 42 4D 73
    846 4.434903       301        MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
    847 4.434906       301        MCU  40         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 5: 04 00 00 00 00 00
    862 4.434949       303        MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 09, value 40
    863 4.434964       303        MCU  88         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 6: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    864 4.434973       303        MCU  20         [M:msdk C:info F: L: ]: [MSDK][TPS25751] tps25751_write_patch patch size 13184
    988 5.810467       1688       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 08, value 04
    989 5.810476       1688       MCU  40         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 8: 04 50 42 4D 63 06
    990 5.810481       1689       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
    991 5.810484       1701       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
    992 5.810486       1712       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
    993 5.826377       1723       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
    994 5.840423       1734       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
    995 5.840431       1745       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
    996 5.857490       1756       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
    997 5.874495       1767       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
    998 5.874503       1767       MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Confirm CMD1 is cleared.
    999 5.874505       1767       MCU  40         [M:msdk C:info F: L: ]: [MSDK][TPS25751]  Step 9 :04 00 00 00 00 00
   1000 5.909375       1790       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 09, value 40
   1001 5.909384       1790       MCU  88         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 10: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
   1002 5.909393       1790       MCU  88         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
   1003 5.909398       1790       MCU  32         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 10 :00 00 00 00
   1004 5.909400       1802       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 14, value 0b
   1005 5.909403       1802       MCU  40         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 11: 0B 00 00 00 00 00
   1006 5.930426       1822       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 03, value 04
   1007 5.930452       1823       MCU  40         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 12:04 41 50 50 20 00
   1008 5.930460       1823       MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] TPS25751 patch bundle loaded successfully, device is in APP mode
   1009 6.437102       2324       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 09, value 03
   1010 6.437109       2325       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 08, value 04
   1011 6.437111       2327       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
   1012 6.437113       2327       MCU  32         [M:msdk C:info F: L: ]: [MSDK][TPS25751] CMD1 Status: 04 00 00 00
   1013 6.437116       2329       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 09, value 40
   1014 6.437117       2329       MCU  48         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Read Data from BQ25798: 40 00  63 00 00 00  00 00
   1015 6.945619       2830       MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Start to write BQ25798 register!
   1016 6.945627       2831       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 09, value 05
   1017 6.945631       2833       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 09, value 40
   1018 6.945632       2833       MCU  40         [M:msdk C:info F: L: ]: [MSDK][TPS25751] DATA1 Readback: 40 6B 03 0A 00 58
   1019 6.945635       2834       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 08, value 04
   1020 6.945636       2837       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
   1021 6.945638       2837       MCU  36         [M:msdk C:info F: L: ]: [MSDK][TPS25751] CMD1 Status: 04 00 00 00 00
   1026 7.452874       3339       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 09, value 03
   1027 7.452898       3340       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 08, value 04
   1028 7.452904       3342       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
   1029 7.452911       3342       MCU  32         [M:msdk C:info F: L: ]: [MSDK][TPS25751] CMD1 Status: 04 00 00 00
   1030 7.452921       3344       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 09, value 40
   1031 7.452927       3344       MCU  48         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Read Data from BQ25798: 40 00  00 00 00 00  00 00
    173 6.437885       179        MCU  20         [M:msdk C:info F: L: ]: [MSDK][TPS25751] tps25751_init: dev 0x082dfb80
    174 6.437886       179        MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] tps25751 init
    175 6.437887       179        MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] i2c initial success.
    176 6.437888       184        MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] tps25751_init_success
    177 6.437889       184        MCU  20         [M:msdk C:info F: L: ]: [MSDK][TPS25751] tps25751_init: dev 0x082dfba0
    178 6.437891       185        MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] tps25751 init
    180 6.437893       185        MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] i2c initial success.
    181 6.437896       190        MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] tps25751_init_patch_success
    784 6.520185       280        MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 14, value 0b
    785 6.520188       280        MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] INT_EVENT1 ReadyForPatch bit is ready for patching.
    786 6.520189       281        MCU  64         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 1:  0B 00 00 00 00 00 00 00 00 00 00 02
    789 6.520197       282        MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 03, value 04
    790 6.520201       282        MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] PD controller is ready for patching.
    791 6.520202       282        MCU  36         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 2: 04 50 54 43 48 
    794 6.520208       284        MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 09, value 06
    795 6.520210       284        MCU  44         [M:msdk C:info F: L: ]: [MSDK][TPS25751]  Step 3: 06 80 33 00 00 35 32
    809 6.574056       292        MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 08, value 04
    810 6.574063       292        MCU  36         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 4: 04 50 42 4D 73
    860 6.574358       300        MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
    861 6.574363       300        MCU  40         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 5: 04 00 00 00 00 00
    876 6.574439       302        MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 09, value 40
    877 6.574443       302        MCU  88         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 6: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    878 6.574453       302        MCU  20         [M:msdk C:info F: L: ]: [MSDK][TPS25751] tps25751_write_patch patch size 13184
   1002 7.947456       1687       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 08, value 04
   1003 7.947464       1687       MCU  40         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 8: 04 50 42 4D 63 06
   1004 7.947468       1689       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
   1005 7.947471       1700       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
   1006 7.947475       1711       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
   1007 7.963472       1722       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
   1008 7.978464       1733       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
   1009 7.978473       1744       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
   1010 7.995470       1755       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
   1011 8.014477       1766       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
   1012 8.014488       1767       MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Confirm CMD1 is cleared.
   1013 8.014490       1767       MCU  40         [M:msdk C:info F: L: ]: [MSDK][TPS25751]  Step 9 :04 00 00 00 00 00
   1014 8.047417       1789       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 09, value 40
   1015 8.047427       1789       MCU  88         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 10: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
   1016 8.047433       1789       MCU  88         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
   1017 8.047437       1790       MCU  32         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 10 :00 00 00 00
   1018 8.047441       1801       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 14, value 0b
   1019 8.047444       1801       MCU  40         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 11: 0B 00 00 00 00 00
   1020 8.070561       1823       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 03, value 04
   1021 8.070580       1823       MCU  40         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Step 12:04 41 50 50 20 00
   1022 8.070587       1823       MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] TPS25751 patch bundle loaded successfully, device is in APP mode
   1023 8.575531       2324       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 09, value 03
   1024 8.575547       2325       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 08, value 04
   1025 8.575550       2327       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
   1026 8.575552       2327       MCU  32         [M:msdk C:info F: L: ]: [MSDK][TPS25751] CMD1 Status: 04 00 00 00
   1027 8.575558       2329       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 09, value 40
   1028 8.575560       2329       MCU  48         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Read Data from BQ25798: 40 00  03 48 00 00  00 00
   1029 9.083041       2830       MCU  16         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Start to write BQ25798 register!
   1030 9.083049       2832       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 09, value 05
   1031 9.083053       2833       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 09, value 40
   1032 9.083056       2833       MCU  40         [M:msdk C:info F: L: ]: [MSDK][TPS25751] DATA1 Readback: 40 6B 03 01 03 46
   1033 9.083061       2835       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 08, value 04
   1034 9.083063       2837       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
   1035 9.083066       2837       MCU  36         [M:msdk C:info F: L: ]: [MSDK][TPS25751] CMD1 Status: 04 00 00 00 00
   1040 9.592729       3339       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 09, value 03
   1041 9.592738       3340       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] write_reg: reg 08, value 04
   1042 9.592740       3342       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 08, value 04
   1043 9.592743       3342       MCU  32         [M:msdk C:info F: L: ]: [MSDK][TPS25751] CMD1 Status: 04 00 00 00
   1044 9.592748       3344       MCU  24         [M:msdk C:info F: L: ]: [MSDK][TPS25751] read_reg: reg 09, value 40
   1045 9.592751       3344       MCU  48         [M:msdk C:info F: L: ]: [MSDK][TPS25751] Read Data from BQ25798: 40 00  03 46 00 00  00 00

Best Regards!

Iris

  • Hi Iris

    r, the default value I read is 0x0348, which is the same as the value on its Register Map.

    What do you mean by default value here?

    Can you capture and provide a trace log of the I2C lines for the failing case?

    I'm still reviewing some of your logs, but is there supposed to be an I2Cw payload here?

    Thanks and Regards,

    Chris

  • Hi Chris,

    I found through analyzing the data captured by the logic analyzer that PD automatically writes data to the charger's register when powered on. Then I read the value of the charger's register, which is consistent with the PD configuration, but not consistent with the value in the register map table. In this case, which one should be used as the reference standard?
    Writing to registers is also okay, I ignored the valid position of each register

    (The file captured by the logic analyzer is in the compressed file uploaded to the LAN. You need to install the "KingstFIS-v3.6.4. exe" tool in the compressed file first, and then open the file)

    Bset Regards!

    Iris

  • What do you mean by default value here?

    Hi Chris,
    The default value here refers to the value value corresponding to each register in the register map, as shown in the following figure


    Best Regards!

    Iris

  • https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/196/4251.document.7z

  • Hi Iris,

    Yes, as you noticed, the TPS25751 will program some of the BQ25798 registers on boot, so they will not necessarily be in the default state according to the BQ tool.

    I read the value of the charger's register, which is consistent with the PD configuration, but not consistent with the value in the register map table. In this case, which one should be used as the reference standard?

    You should expect these register to be modified and use the PD configuration writes.

    On bootup, the TPS25751 modifies registers 0x01, 0x03, 0x08, 0x09, 0x0b, 0x0d, 0x0f, 0x10, 0x11, 0x12, 0x14, and 0x2e.

    During normal runtime, the TPS25751 will write and modify other BQ registers to configure it properly regarding operating mode (source/sink), power, voltage, and current level, and connect and disconnect states.

    Thanks and Regards,

    Chris

  • Hi Chris,

    Thank you very much for your help!

    Best Regards!

    Iris

  • Thanks,

    Closing this thread now.