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.

BQ34Z100: SMBus Read/Write Communication Error

Part Number: BQ34Z100
Other Parts Discussed in Thread: BQ78350, , EV2400,

Tool/software:

Greetings,

In my first project, I was using Renesas MCU with BQ78350 Gauge. I was performing write/read operations via SMBus without any problems.

In my new project, we decided to change the Gauge and started using BQ34Z100. Since the protocol is similar, I thought that only the changes in the SMBus configuration below would be suitable for this transition. However, I continue to receive the TRANSFER_ABORTED error from the API during the SMBus write process.

I am trying to read the State of Charge (register: 0x02) value from the Gauge. But the error code returns every time.

 

My question is;

When I reviewed the necessary technical documents, I thought the following changes would be sufficient, but are there any other differences that I did not notice?

 

 

OLD (BQ78350)

NEW (BQ34Z100)

SMBus Slave Address

0x0B

0x55

Write Command

0x16

0xAA

Read Command

0x17

0xAB

 

(I also changed the register values ​​I want to read and write)

Also, I could not find any statement about PEC (packet error check) in the BQ34Z100 Gauge. I wonder if this Gauge doesn't add PEC to messages?

 

Please let me know if you have any information.

Thank you so much.

  • Hi,

    The BQ34z100 does not support SMBus communication, only i2c and HDQ.

    Regards,

    Evan

  • Hi Evan,

    First of all, thank you very much for your answer.

    Yes, I saw in the documents that it communicates with I2C. That's why I changed the SMBus frameworks I used before to I2C. But I still keep getting the same error.

     

    #define I2C0_TIMEOUT        (200*ms)             // 200msec

    ssp_err_t status = SSP_SUCCESS;

    status = p_i2c0_fw->p_api->write (p_i2c0_fw->p_ctrl, p_data, size, b_restart, I2C0_TIMEOUT);

     

    The response of this API returns (SSP_ERR_TRANSFER_ABORTED = 300, ///< The data transfer was aborted.) every time. In my previous reviews, I noticed that this error occurs when the slave address is incorrect and the slave does not send an ACK message.

    When I examine the messages with logic analyzer, a change in the SCL line is seen while the message is being sent, but there is no change in the SDA line. I'm working with Renesas Synergy S5D5 target board and BQ34Z100. I am using I2C Channel 0 of the MCU.

    But when I examine the document now, I think the 0x55 slave address is correct. How can I proceed to resolve the error in this regard?

  • Hi, 

    You are using the BQ34z100 on the EVM or a custom PCB?

    Has the process you are following worked with other i2c devices?

    Regards,

    Evan

  • Hi,

    I am using BQ34z100 EVM Board and I just tried with this module. I haven't tried it with other i2c modules.

    Best Regards.

  • Hi,

    The BQ34z100EVM is typically used with the EV2400 MCU to communicate with, I mention this because the EV2400 has internal pull ups. Does your host MCU have pull up resistors on the i2c lines?

    Is it possible for you to verify if this is an issue with the BQ34z100 specifically or is a problem with all i2c communication.

    Regards,

    Evan