MCUXpresso SDK API Reference Manual  Rev 2.15.000
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages

Overview

Files

file  fsl_i2c.h
 

Macros

#define I2C_RETRY_TIMES   0U /* Define to zero means keep waiting until the flag is assert/deassert. */
 Retry times for waiting flag. More...
 
#define I2C_MASTER_TRANSMIT_IGNORE_LAST_NACK   1U /* Define to one means master ignores the last byte's nack and considers the transfer successful. */
 Whether to ignore the nack signal of the last byte during master transmit. More...
 
#define I2C_STAT_MSTCODE_IDLE   (0U)
 Master Idle State Code.
 
#define I2C_STAT_MSTCODE_RXREADY   (1U)
 Master Receive Ready State Code.
 
#define I2C_STAT_MSTCODE_TXREADY   (2U)
 Master Transmit Ready State Code.
 
#define I2C_STAT_MSTCODE_NACKADR   (3U)
 Master NACK by slave on address State Code.
 
#define I2C_STAT_MSTCODE_NACKDAT   (4U)
 Master NACK by slave on data State Code.
 

Enumerations

enum  {
  kStatus_I2C_Busy = MAKE_STATUS(kStatusGroup_FLEXCOMM_I2C, 0),
  kStatus_I2C_Idle = MAKE_STATUS(kStatusGroup_FLEXCOMM_I2C, 1),
  kStatus_I2C_Nak,
  kStatus_I2C_InvalidParameter,
  kStatus_I2C_BitError = MAKE_STATUS(kStatusGroup_FLEXCOMM_I2C, 4),
  kStatus_I2C_ArbitrationLost = MAKE_STATUS(kStatusGroup_FLEXCOMM_I2C, 5),
  kStatus_I2C_NoTransferInProgress,
  kStatus_I2C_DmaRequestFail = MAKE_STATUS(kStatusGroup_FLEXCOMM_I2C, 7),
  kStatus_I2C_StartStopError = MAKE_STATUS(kStatusGroup_FLEXCOMM_I2C, 8),
  kStatus_I2C_UnexpectedState = MAKE_STATUS(kStatusGroup_FLEXCOMM_I2C, 9),
  kStatus_I2C_Timeout,
  kStatus_I2C_Addr_Nak = MAKE_STATUS(kStatusGroup_FLEXCOMM_I2C, 11),
  kStatus_I2C_EventTimeout = MAKE_STATUS(kStatusGroup_FLEXCOMM_I2C, 12),
  kStatus_I2C_SclLowTimeout = MAKE_STATUS(kStatusGroup_FLEXCOMM_I2C, 13)
}
 I2C status return codes. More...
 
enum  _i2c_status_flags {
  kI2C_MasterPendingFlag = I2C_STAT_MSTPENDING_MASK,
  kI2C_MasterArbitrationLostFlag,
  kI2C_MasterStartStopErrorFlag,
  kI2C_MasterIdleFlag = 1UL << 5U,
  kI2C_MasterRxReadyFlag = 1UL << I2C_STAT_MSTSTATE_SHIFT,
  kI2C_MasterTxReadyFlag = 1UL << (I2C_STAT_MSTSTATE_SHIFT + 1U),
  kI2C_MasterAddrNackFlag = 1UL << 7U,
  kI2C_MasterDataNackFlag = 1UL << (I2C_STAT_MSTSTATE_SHIFT + 2U),
  kI2C_SlavePendingFlag = I2C_STAT_SLVPENDING_MASK,
  kI2C_SlaveNotStretching = I2C_STAT_SLVNOTSTR_MASK,
  kI2C_SlaveSelected,
  kI2C_SaveDeselected = I2C_STAT_SLVDESEL_MASK,
  kI2C_SlaveAddressedFlag = 1UL << 22U,
  kI2C_SlaveReceiveFlag = 1UL << I2C_STAT_SLVSTATE_SHIFT,
  kI2C_SlaveTransmitFlag = 1UL << (I2C_STAT_SLVSTATE_SHIFT + 1U),
  kI2C_SlaveAddress0MatchFlag = 1UL << 20U,
  kI2C_SlaveAddress1MatchFlag = 1UL << I2C_STAT_SLVIDX_SHIFT,
  kI2C_SlaveAddress2MatchFlag = 1UL << (I2C_STAT_SLVIDX_SHIFT + 1U),
  kI2C_SlaveAddress3MatchFlag = 1UL << 21U,
  kI2C_MonitorReadyFlag = I2C_STAT_MONRDY_MASK,
  kI2C_MonitorOverflowFlag = I2C_STAT_MONOV_MASK,
  kI2C_MonitorActiveFlag = I2C_STAT_MONACTIVE_MASK,
  kI2C_MonitorIdleFlag = I2C_STAT_MONIDLE_MASK,
  kI2C_EventTimeoutFlag = I2C_STAT_EVENTTIMEOUT_MASK,
  kI2C_SclTimeoutFlag = I2C_STAT_SCLTIMEOUT_MASK
}
 I2C status flags. More...
 
enum  _i2c_interrupt_enable {
  kI2C_MasterPendingInterruptEnable,
  kI2C_MasterArbitrationLostInterruptEnable,
  kI2C_MasterStartStopErrorInterruptEnable,
  kI2C_SlavePendingInterruptEnable = I2C_STAT_SLVPENDING_MASK,
  kI2C_SlaveNotStretchingInterruptEnable,
  kI2C_SlaveDeselectedInterruptEnable = I2C_STAT_SLVDESEL_MASK,
  kI2C_MonitorReadyInterruptEnable = I2C_STAT_MONRDY_MASK,
  kI2C_MonitorOverflowInterruptEnable = I2C_STAT_MONOV_MASK,
  kI2C_MonitorIdleInterruptEnable = I2C_STAT_MONIDLE_MASK,
  kI2C_EventTimeoutInterruptEnable = I2C_STAT_EVENTTIMEOUT_MASK,
  kI2C_SclTimeoutInterruptEnable = I2C_STAT_SCLTIMEOUT_MASK
}
 I2C interrupt enable. More...
 

Driver version

#define FSL_I2C_DRIVER_VERSION   (MAKE_VERSION(2, 3, 3))
 I2C driver version. More...
 

Macro Definition Documentation

#define FSL_I2C_DRIVER_VERSION   (MAKE_VERSION(2, 3, 3))
#define I2C_RETRY_TIMES   0U /* Define to zero means keep waiting until the flag is assert/deassert. */
#define I2C_MASTER_TRANSMIT_IGNORE_LAST_NACK   1U /* Define to one means master ignores the last byte's nack and considers the transfer successful. */

Enumeration Type Documentation

anonymous enum
Enumerator
kStatus_I2C_Busy 

The master is already performing a transfer.

kStatus_I2C_Idle 

The slave driver is idle.

kStatus_I2C_Nak 

The slave device sent a NAK in response to a byte.

kStatus_I2C_InvalidParameter 

Unable to proceed due to invalid parameter.

kStatus_I2C_BitError 

Transferred bit was not seen on the bus.

kStatus_I2C_ArbitrationLost 

Arbitration lost error.

kStatus_I2C_NoTransferInProgress 

Attempt to abort a transfer when one is not in progress.

kStatus_I2C_DmaRequestFail 

DMA request failed.

kStatus_I2C_StartStopError 

Start and stop error.

kStatus_I2C_UnexpectedState 

Unexpected state.

kStatus_I2C_Timeout 

Timeout when waiting for I2C master/slave pending status to set to continue transfer.

kStatus_I2C_Addr_Nak 

NAK received for Address.

kStatus_I2C_EventTimeout 

Timeout waiting for bus event.

kStatus_I2C_SclLowTimeout 

Timeout SCL signal remains low.

Note
These enums are meant to be OR'd together to form a bit mask.
Enumerator
kI2C_MasterPendingFlag 

The I2C module is waiting for software interaction.

bit 0

kI2C_MasterArbitrationLostFlag 

The arbitration of the bus was lost.

There was collision on the bus. bit 4

kI2C_MasterStartStopErrorFlag 

There was an error during start or stop phase of the transaction.

bit 6

kI2C_MasterIdleFlag 

The I2C master idle status.

bit 5

kI2C_MasterRxReadyFlag 

The I2C master rx ready status.

bit 1

kI2C_MasterTxReadyFlag 

The I2C master tx ready status.

bit 2

kI2C_MasterAddrNackFlag 

The I2C master address nack status.

bit 7

kI2C_MasterDataNackFlag 

The I2C master data nack status.

bit 3

kI2C_SlavePendingFlag 

The I2C module is waiting for software interaction.

bit 8

kI2C_SlaveNotStretching 

Indicates whether the slave is currently stretching clock (0 = yes, 1 = no).

bit 11

kI2C_SlaveSelected 

Indicates whether the slave is selected by an address match.

bit 14

kI2C_SaveDeselected 

Indicates that slave was previously deselected (deselect event took place, w1c).

bit 15

kI2C_SlaveAddressedFlag 

One of the I2C slave's 4 addresses is matched.

bit 22

kI2C_SlaveReceiveFlag 

Slave receive data available.

bit 9

kI2C_SlaveTransmitFlag 

Slave data can be transmitted.

bit 10

kI2C_SlaveAddress0MatchFlag 

Slave address0 match.

bit 20

kI2C_SlaveAddress1MatchFlag 

Slave address1 match.

bit 12

kI2C_SlaveAddress2MatchFlag 

Slave address2 match.

bit 13

kI2C_SlaveAddress3MatchFlag 

Slave address3 match.

bit 21

kI2C_MonitorReadyFlag 

The I2C monitor ready interrupt.

bit 16

kI2C_MonitorOverflowFlag 

The monitor data overrun interrupt.

bit 17

kI2C_MonitorActiveFlag 

The monitor is active.

bit 18

kI2C_MonitorIdleFlag 

The monitor idle interrupt.

bit 19

kI2C_EventTimeoutFlag 

The bus event timeout interrupt.

bit 24

kI2C_SclTimeoutFlag 

The SCL timeout interrupt.

bit 25

Note
These enums are meant to be OR'd together to form a bit mask.
Enumerator
kI2C_MasterPendingInterruptEnable 

The I2C master communication pending interrupt.

kI2C_MasterArbitrationLostInterruptEnable 

The I2C master arbitration lost interrupt.

kI2C_MasterStartStopErrorInterruptEnable 

The I2C master start/stop timing error interrupt.

kI2C_SlavePendingInterruptEnable 

The I2C slave communication pending interrupt.

kI2C_SlaveNotStretchingInterruptEnable 

The I2C slave not streching interrupt, deep-sleep mode can be entered only when this interrupt occurs.

kI2C_SlaveDeselectedInterruptEnable 

The I2C slave deselection interrupt.

kI2C_MonitorReadyInterruptEnable 

The I2C monitor ready interrupt.

kI2C_MonitorOverflowInterruptEnable 

The monitor data overrun interrupt.

kI2C_MonitorIdleInterruptEnable 

The monitor idle interrupt.

kI2C_EventTimeoutInterruptEnable 

The bus event timeout interrupt.

kI2C_SclTimeoutInterruptEnable 

The SCL timeout interrupt.