Hi all
I am using the DMA function of the IIC slave, but the maximum length that IIC can receive at once is only 8 bytes. Data exceeding 8 bytes cannot be retrieved from the buffer. I have uploaded the project, can you help me identify the problem.
Thanks
Thank you for your help. Although there is a problem with this routine, it can be used to compare the errors in my current project. I have identified the cause
Hi @Reyna_pan45
I have observed that the project is based on the application provided in Example S32K312 I2C Transmit & Receive Using DMA DS3.5 RTD300. Just to confirm, if no modifications are made to the project, presents the same behavior?
As you said :The number of bytes that can be transmitted per transfer is not restricted.
The received data length I set is 18 bytes ,Why can't I receive data exceeding 8 bytes?
Hi @Reyna_pan45
The I2C bus specification defines that each byte transmitted on the SDA line must be 8 bits long. The number of bytes that can be transmitted per transfer is not restricted.
While the hardware itself does not impose a limit on the read transfer size, it requires the software to queue multiple read commands for larger transfers. Currently, the driver can receive between 1 and 256 bytes of data, and it can also be configured to discard received data instead of storing it in the receive FIFO.
BR, VaneB