K22 I2C eDMA Send 1 data byte

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

K22 I2C eDMA Send 1 data byte

Jump to solution
716 Views
Marc852
Contributor II

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.

0 Kudos
1 Solution
579 Views
FelipeGarcia
NXP Employee
NXP Employee

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

View solution in original post

0 Kudos
1 Reply
580 Views
FelipeGarcia
NXP Employee
NXP Employee

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

0 Kudos