MCUXpresso SDK API Reference Manual  Rev 2.16.000
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
I2C_EDMA: EDMA based I2C Driver

Overview

The I2C_EDMA module provide a method for I2C transfer operation based on EDMA.

Data Structures

struct  _i2c_master_edma_transfer_handle
 I2C master eDMA transfer structure. More...
 

Typedefs

typedef struct
_i2c_master_edma_transfer_handle 
i2c_master_edma_transfer_handle_t
 Retry times for waiting flag. More...
 
typedef void(* i2c_master_edma_transfer_callback_t )(i2c_master_edma_transfer_handle_t *handle)
 I2C master eDMA transfer callback typedef. More...
 

Driver version

#define FSL_I2C_EDMA_DRIVER_VERSION   (MAKE_VERSION(2, 0, 0))
 I2C EDMA driver version. More...
 

I2C Block eDMA Transfer Operation

void I2C_MasterCreateEDMAHandle (I2C_Type *base, i2c_master_edma_transfer_handle_t *psHandle, i2c_master_edma_transfer_callback_t pfCallback, void *pUserData, DMA_Type *edmaBase, edma_channel_t eEdmaChannel)
 Initializes the I2C handle which is used in transactional functions. More...
 
status_t I2C_MasterTransferEDMA (i2c_master_edma_transfer_handle_t *psHandle, i2c_master_transfer_t *psTransfer)
 Performs a master eDMA non-blocking transfer on the I2C bus. More...
 
status_t I2C_MasterTransferGetCountEDMA (i2c_master_edma_transfer_handle_t *psHandle, uint16_t *pu16Count)
 Gets a master transfer status during the eDMA non-blocking transfer. More...
 
void I2C_MasterTransferAbortEDMA (i2c_master_edma_transfer_handle_t *psHandle)
 Aborts a master eDMA non-blocking transfer early. More...
 

Data Structure Documentation

struct _i2c_master_edma_transfer_handle

This struct address should be sizeof(edma_channel_tcd_t) aligned.

Data Fields

edma_channel_tcd_t sTcd
 TCD for EDMA transfer. More...
 
I2C_Type * base
 I2C base pointer to the I2C instance that assigned to this handle. More...
 
i2c_master_transfer_t sTransfer
 I2C master transfer structure. More...
 
uint16_t u16TransferSize
 Total bytes to be transferred. More...
 
uint8_t u8State
 I2C master transfer status. More...
 
edma_handle_t sEdmaHandle
 The eDMA handler used. More...
 
status_t completionStatus
 I2C master transfer complete status, indicating how the transfer ends. More...
 
i2c_master_edma_transfer_callback_t pfCallback
 A callback function called after the eDMA transfer is finished. More...
 
void * pUserData
 
     User configurable pointer to any data, function, structure etc that user wish to use in the

callback

 

Field Documentation

edma_channel_tcd_t _i2c_master_edma_transfer_handle::sTcd
I2C_Type* _i2c_master_edma_transfer_handle::base
i2c_master_transfer_t _i2c_master_edma_transfer_handle::sTransfer
uint16_t _i2c_master_edma_transfer_handle::u16TransferSize
uint8_t _i2c_master_edma_transfer_handle::u8State
edma_handle_t _i2c_master_edma_transfer_handle::sEdmaHandle
status_t _i2c_master_edma_transfer_handle::completionStatus
i2c_master_edma_transfer_callback_t _i2c_master_edma_transfer_handle::pfCallback

Macro Definition Documentation

#define FSL_I2C_EDMA_DRIVER_VERSION   (MAKE_VERSION(2, 0, 0))

Typedef Documentation

I2C master eDMA handle typedef.

typedef void(* i2c_master_edma_transfer_callback_t)(i2c_master_edma_transfer_handle_t *handle)

Function Documentation

void I2C_MasterCreateEDMAHandle ( I2C_Type *  base,
i2c_master_edma_transfer_handle_t psHandle,
i2c_master_edma_transfer_callback_t  pfCallback,
void *  pUserData,
DMA_Type *  edmaBase,
edma_channel_t  eEdmaChannel 
)
Parameters
baseI2C peripheral base address.
psHandleA pointer to the i2c_master_edma_transfer_handle_t structure.
pfCallbackA pointer to the user callback function.
pUserDataA user parameter passed to the callback function.
edmaBaseEdma base address.
eEdmaChanneleDMA channel for master transfer.
status_t I2C_MasterTransferEDMA ( i2c_master_edma_transfer_handle_t psHandle,
i2c_master_transfer_t psTransfer 
)
Parameters
psHandleA pointer to the i2c_master_edma_transfer_handle_t structure.
psTransferA pointer to the transfer structure of i2c_master_transfer_t.
Return values
kStatus_SuccessSuccessfully completed the data transmission.
kStatus_I2C_BusyA previous transmission is still not finished.
kStatus_I2C_TimeoutTransfer error, waits for a signal timeout.
kStatus_I2C_ArbitrationLostTransfer error, arbitration lost.
kStataus_I2C_NakTransfer error, receive NAK during transfer.
status_t I2C_MasterTransferGetCountEDMA ( i2c_master_edma_transfer_handle_t psHandle,
uint16_t *  pu16Count 
)
Parameters
psHandleA pointer to the i2c_master_edma_transfer_handle_t structure.
pu16CountA number of bytes transferred by the non-blocking transaction.
void I2C_MasterTransferAbortEDMA ( i2c_master_edma_transfer_handle_t psHandle)
Parameters
psHandleA pointer to the i2c_master_edma_transfer_handle_t structure.