Hi everyone,
I made a project using fsl_i2c_edma on a k22.
The project works except when i send 1 data byte through i2c, the callback never happened.
I read later in the file fsl_i2c_edma.c :
If transfer size is 1, use polling method
I don't understand why, can someone explain me ?
And, is it possible anyway to use the callback; stay in "standart" edma operation ?
MCUXpresso v11.0.0
SDK FRDM_K22F 2.6.0
Based on the example project "i2c_edma_b2b_transfer_master"
Thanks in advance.
Marc.
Solved! Go to Solution.
Hello Marc,
This implementation is because for i2c send, you need to send 1 byte first to trigger the dma. In other words, because there must be an interrupt of complete 1-byte transfer to trigger the DMA, the address byte should be filled into I2Cx_D by the CPU itself.
Hope it helps!
Have a great day,
Felipe
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Hello Marc,
This implementation is because for i2c send, you need to send 1 byte first to trigger the dma. In other words, because there must be an interrupt of complete 1-byte transfer to trigger the DMA, the address byte should be filled into I2Cx_D by the CPU itself.
Hope it helps!
Have a great day,
Felipe
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------