Part Number: MSPM0G1507
Other Parts Discussed in Thread: SYSCONFIG, , MSPM0G3507
Hi experts,
When communicating in Fast-mode (400kHz), the controller side shifts the data by 1 byte. Clock Stretch is enabled on both the controller and the target, but the issue still occurs.
- i2c_controller_rw_multibyte_fifo_interrupts
- i2c_target_rw_multibyte_fifo_interrupts
-
I only set the controller side to 400kHz from Sysconfig and switched the clock stretching function ON/OFF for both sides, and Ichanged the compiler optimization level to 0. I have not modified the .c file.
Q1: Is there any setting I might have overlooked?
Q2: Also, besides using DMA, are there any effective countermeasures for this kind of situation?
In conclusion, it seems that the target side transmission is not keeping up. When I look at the waveform, the target side sends dummy data for the first byte. If Clock Stretch is enabled on the target side, 0x08 is sent as dummy data; if disabled, 0x00 is sent. From the second byte onward, data is sent in order as 0x00, 0x01, etc. The receive buffer (gRxPacket) on the target side is receiving correctly, and the transmit buffer (gTxPacket) is also copying data correctly. Since I cannot directly check TXFIFO, I looked at STXDATA, and 0x0F is stored.
Best regards,
O,H









