2024-12-01 10:10 AM - last edited on 2024-12-06 08:23 AM by Amel NASRI
Hello,
Currently I implement a I3C function of mass readback data from the target device.
I use the HAL_I3C_Ctrl_MultipleTransfer_IT, the mass write data into target device that is worked.
But readback data operation is not worked well.
If it readback data under 16 bytes, it is worked.
Therefore, readback data above 16 bytes, that data is limited in 16 bytes.
For example, the first operation that it is setup to readback 32 bytes data, but the waveform shows the readback data is 16 bytes.
And repeat again the same read data operation, it is stucked.
If any specific setting is needed to modify to unlock the read data 16 bytes limitation?
on the controller side, function as below:
Solved! Go to Solution.
2024-12-03 09:11 PM
Hello Imen.D.
I found out the solution.
Firstable, it must to be set "SETMWL" and "SETMRL" commands.
To setup the write/read length, and then count of read back data that is correct.
Thanks,
2024-12-01 10:34 AM
Hello @Goldberg ,
Please refer to the STM32H5 errata sheet, in the limitation related to "I3C controller: unexpected read data bytes during a legacy I2C read".
2024-12-03 07:13 AM
Hello Imen.D,
I could not find the clue from the errata.
Even the fuction changed to HAL_I3C_Ctrl_Receive_DMA, the readback data that is also limited in 16 bytes.
The phenomenon is the same as last post.
My request is that I3C can mass read data up to 2K bytes in one operation.
Any specific setting is needed to modify to extend the read data more than 16 bytes in one operation?
Thanks for your reponse.
2024-12-03 09:11 PM
Hello Imen.D.
I found out the solution.
Firstable, it must to be set "SETMWL" and "SETMRL" commands.
To setup the write/read length, and then count of read back data that is correct.
Thanks,