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
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.
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