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.

TDA4VM-Q1: I2C write data exception

Part Number: TDA4VM-Q1

Tool/software:

Hi,

  We are currently using MCU-I2C0. When writing 80 bytes to EEP, it gets stuck in the I2C_transfer function:

If writing 50 bytes is not a problem, can you help me investigate this issue?

Regards,

Yang

  • Hi Yang,

    Our I2C engineer is out for next week. I will try to see if I can fill in by asking some initial questions.

    Looking through the code, I see that I2C_transfer should call the I2C_transfer_v1 function within pdk*/packages/ti/drv/i2c/src/i2c_api.c. Could you check which line within I2C_transfer_v1 function is blocking?

    Regards,

    Takuma

  • Hi Yang,

    The I2C controller has a built-in FIFO buffer that is programmable between 8 bytes and 64 bytes. The FIFO depth is based on the I2C_BUFSTAT[15-14] register where 0x0: 8 bytes, 0x1: 16 bytes, 0x2: 32 bytes, and 0x3: 64 bytes.

    However, you will need to manage the bytes in the TX FIFO in order to send more than 64 bytes within on transaction. Take a look at the I2C FIFO Management section 12.1.3.4.7 within the TRM for more information on this.

    Thanks,

    Neehar