AnsweredAssumed Answered

CMSIS driver I2C, support for DMA?

Question asked by Gunnar Bohlen on Nov 14, 2017
Latest reply on Dec 14, 2017 by jeremyzhou

Hello,

I'm writing code for LPC54618.

I want to use the CMSIS drivers for I2C, SPI and USART that I can find in the SDK.

File name that I found in the SDK_2.2_LPC54618J512 is "fsl_i2c_cmsis.c", unfortunately I cannot find a file version number in this file ...:-(

 

If I set in RTE_Device.h

#define RTE_I2C0 1
#define RTE_I2C0_DMA_EN 0

I2C0 is working as expected.

 

If I set

#define RTE_I2C0 1
#define RTE_I2C0_DMA_EN 1

I2C is not working. E.g. I see that in AHBCLKCTRL the clock for DMA is not enabled.

 

I see in the initialization for SPI :

case ARM_POWER_FULL:

...

   if (!spi->status.isPowerOn)
   {
          /* Enable flexcomm clock gate */
           CLOCK_EnableClock(s_flexcommClocks[spi->resource->instance]);
           /* Init DMA */

           ...

   }

 

but I cannot find the equivalent code in i2c code.

Could anyone give me an advice how to get the DMA working for i2c?

 

Thank you.

Outcomes