hi!
Its still doesnt work may be i need to set specific DMA channel for i2c6?
its fails to write to i2c with
thanks
#define EXAMPLE_LPI2C_DMAMUX_BASEADDR (DMAMUX0)
#define EXAMPLE_LPI2C_DMA_BASEADDR (DMA0)
void BOARD_LPI2C_Init_DMA(LPI2C_Type *base, uint32_t clkSrc_Hz)
{
lpi2c_master_config_t lpi2cConfig = {0};
CLOCK_EnableClock(kCLOCK_Lpi2c6);
LPI2C_MasterGetDefaultConfig(&lpi2cConfig);
lpi2cConfig.debugEnable = false;
lpi2cConfig.ignoreAck = false;
lpi2cConfig.pinConfig = kLPI2C_2PinOpenDrain;
lpi2cConfig.baudRate_Hz = 1000000U;
lpi2cConfig.busIdleTimeout_ns = 0;
lpi2cConfig.pinLowTimeout_ns = 0;
lpi2cConfig.sdaGlitchFilterWidth_ns = 0;
lpi2cConfig.sclGlitchFilterWidth_ns = 0;
LPI2C_MasterInit(base, &lpi2cConfig, clkSrc_Hz);
DMAMUX_Init(EXAMPLE_LPI2C_DMAMUX_BASEADDR);
edma_config_t edmaConfig = {0};
EDMA_GetDefaultConfig(&edmaConfig);
EDMA_Init(EXAMPLE_LPI2C_DMA_BASEADDR, &edmaConfig);
edma_handle_t edmaHandle;
EDMA_CreateHandle(&g_edma_tx_handle, DMA0, 0);
LPI2C_MasterCreateEDMAHandle(base, &g_edma_handle, &g_edma_tx_handle, &g_edma_tx_handle,lpi2c_master_edma_transfer_callback,NULL);
}
please see the code
void BOARD_LPI2C_Init_DMA(LPI2C_Type *base, uint32_t clkSrc_Hz)
{
lpi2c_master_config_t lpi2cConfig = {0};
CLOCK_EnableClock(kCLOCK_Lpi2c6);
LPI2C_MasterGetDefaultConfig(&lpi2cConfig);
lpi2cConfig.debugEnable = false;
lpi2cConfig.ignoreAck = false;
lpi2cConfig.pinConfig = kLPI2C_2PinOpenDrain;
lpi2cConfig.baudRate_Hz = 1000000U;
lpi2cConfig.busIdleTimeout_ns = 0;
lpi2cConfig.pinLowTimeout_ns = 0;
lpi2cConfig.sdaGlitchFilterWidth_ns = 0;
lpi2cConfig.sclGlitchFilterWidth_ns = 0;
LPI2C_MasterInit(base, &lpi2cConfig, clkSrc_Hz);
DMAMUX_Init(EXAMPLE_LPI2C_DMAMUX_BASEADDR);
edma_config_t edmaConfig = {0};
EDMA_GetDefaultConfig(&edmaConfig);
EDMA_Init(EXAMPLE_LPI2C_DMA_BASEADDR, &edmaConfig);
edma_handle_t edmaHandle;
EDMA_CreateHandle(&g_edma_tx_handle, DMA0, 0);
LPI2C_MasterCreateEDMAHandle(base, &g_edma_handle, &g_edma_tx_handle, &g_edma_tx_handle,lpi2c_master_edma_transfer_callback,NULL);
}