![]() |
LPCOpen Platform
LPCOpen Platform for NXP LPC Microcontrollers
|
Go to the source code of this file.
Data Structures | |
struct | IP_I2C_001_Type |
I2C register block structure. More... | |
struct | I2C_M_SETUP_Type |
Master transfer setup data structure definitions. More... | |
struct | I2C_S_SETUP_Type |
Slave transfer setup data structure definitions. More... | |
struct | I2C_OWNSLAVEADDR_CFG_Type |
I2C Own slave address setting structure. More... | |
Macros | |
#define | I2C_STA_STO_RECV 0x20 |
I2C state handle return values. | |
#define | I2C_I2CONSET_AA ((0x04)) |
I2C Control Set register description. | |
#define | I2C_I2CONSET_SI ((0x08)) |
#define | I2C_I2CONSET_STO ((0x10)) |
#define | I2C_I2CONSET_STA ((0x20)) |
#define | I2C_I2CONSET_I2EN ((0x40)) |
#define | I2C_I2CONCLR_AAC ((1 << 2)) |
I2C Control Clear register description. | |
#define | I2C_I2CONCLR_SIC ((1 << 3)) |
#define | I2C_I2CONCLR_STOC ((1 << 4)) |
#define | I2C_I2CONCLR_STAC ((1 << 5)) |
#define | I2C_I2CONCLR_I2ENC ((1 << 6)) |
#define | I2C_STAT_CODE_BITMASK ((0xF8)) |
I2C Status Code definition (I2C Status register) | |
#define | I2C_STAT_CODE_ERROR ((0xFF)) |
#define | I2C_I2STAT_NO_INF ((0xF8)) |
I2C return status code definitions. | |
#define | I2C_I2STAT_BUS_ERROR ((0x00)) |
#define | I2C_I2STAT_M_TX_START ((0x08)) |
I2C Master transmit mode. | |
#define | I2C_I2STAT_M_TX_RESTART ((0x10)) |
#define | I2C_I2STAT_M_TX_SLAW_ACK ((0x18)) |
#define | I2C_I2STAT_M_TX_SLAW_NACK ((0x20)) |
#define | I2C_I2STAT_M_TX_DAT_ACK ((0x28)) |
#define | I2C_I2STAT_M_TX_DAT_NACK ((0x30)) |
#define | I2C_I2STAT_M_TX_ARB_LOST ((0x38)) |
#define | I2C_I2STAT_M_RX_START ((0x08)) |
I2C Master receive mode. | |
#define | I2C_I2STAT_M_RX_RESTART ((0x10)) |
#define | I2C_I2STAT_M_RX_ARB_LOST ((0x38)) |
#define | I2C_I2STAT_M_RX_SLAR_ACK ((0x40)) |
#define | I2C_I2STAT_M_RX_SLAR_NACK ((0x48)) |
#define | I2C_I2STAT_M_RX_DAT_ACK ((0x50)) |
#define | I2C_I2STAT_M_RX_DAT_NACK ((0x58)) |
#define | I2C_I2STAT_S_RX_SLAW_ACK ((0x60)) |
I2C Slave receive mode. | |
#define | I2C_I2STAT_S_RX_ARB_LOST_M_SLA ((0x68)) |
#define | I2C_I2STAT_S_RX_GENCALL_ACK ((0x70)) |
#define | I2C_I2STAT_S_RX_ARB_LOST_M_GENCALL ((0x78)) |
#define | I2C_I2STAT_S_RX_PRE_SLA_DAT_ACK ((0x80)) |
#define | I2C_I2STAT_S_RX_PRE_SLA_DAT_NACK ((0x88)) |
#define | I2C_I2STAT_S_RX_PRE_GENCALL_DAT_ACK ((0x90)) |
#define | I2C_I2STAT_S_RX_PRE_GENCALL_DAT_NACK ((0x98)) |
#define | I2C_I2STAT_S_RX_STA_STO_SLVREC_SLVTRX ((0xA0)) |
#define | I2C_I2STAT_S_TX_SLAR_ACK ((0xA8)) |
I2C Slave transmit mode. | |
#define | I2C_I2STAT_S_TX_ARB_LOST_M_SLA ((0xB0)) |
#define | I2C_I2STAT_S_TX_DAT_ACK ((0xB8)) |
#define | I2C_I2STAT_S_TX_DAT_NACK ((0xC0)) |
#define | I2C_I2STAT_S_TX_LAST_DAT_ACK ((0xC8)) |
#define | I2C_SLAVE_TIME_OUT 0x10000000UL |
#define | I2C_I2DAT_BITMASK ((0xFF)) |
I2C Data register definition. | |
#define | I2C_I2DAT_IDLE_CHAR (0xFF) |
#define | I2C_I2MMCTRL_MM_ENA ((1 << 0)) |
I2C Monitor mode control register description. | |
#define | I2C_I2MMCTRL_ENA_SCL ((1 << 1)) |
#define | I2C_I2MMCTRL_MATCH_ALL ((1 << 2)) |
#define | I2C_I2MMCTRL_BITMASK ((0x07)) |
#define | I2DATA_BUFFER_BITMASK ((0xFF)) |
I2C Data buffer register description. | |
#define | I2C_I2ADR_GC ((1 << 0)) |
I2C Slave Address registers definition. | |
#define | I2C_I2ADR_BITMASK ((0xFF)) |
#define | I2C_I2MASK_MASK(n) ((n & 0xFE)) |
I2C Mask Register definition. | |
#define | I2C_I2SCLH_BITMASK ((0xFFFF)) |
I2C SCL HIGH duty cycle Register definition. | |
#define | I2C_I2SCLL_BITMASK ((0xFFFF)) |
I2C SCL LOW duty cycle Register definition. | |
#define | I2C_SETUP_STATUS_ARBF (1 << 8) |
I2C status values. | |
#define | I2C_SETUP_STATUS_NOACKF (1 << 9) |
#define | I2C_SETUP_STATUS_DONE (1 << 10) |
#define | I2C_OK 0x00 |
I2C state handle return values. | |
#define | I2C_BYTE_SENT 0x01 |
#define | I2C_BYTE_RECV 0x02 |
#define | I2C_LAST_BYTE_RECV 0x04 |
#define | I2C_SEND_END 0x08 |
#define | I2C_RECV_END 0x10 |
#define | I2C_STA_STO_RECV 0x20 |
I2C state handle return values. | |
#define | I2C_ERR (0x10000000) |
#define | I2C_NAK_RECV (0x10000000 | 0x01) |
#define | I2C_CheckError(ErrorCode) (ErrorCode & 0x10000000) |
#define | I2C_MONITOR_CFG_SCL_OUTPUT I2C_I2MMCTRL_ENA_SCL |
I2C monitor control configuration defines. | |
#define | I2C_MONITOR_CFG_MATCHALL I2C_I2MMCTRL_MATCH_ALL |
Enumerations | |
enum | I2C_TRANSFER_OPT_Type { I2C_TRANSFER_POLLING = 0, I2C_TRANSFER_INTERRUPT } |
Transfer option type definitions. More... | |
enum | I2C_Mode { I2C_MASTER_MODE, I2C_SLAVE_MODE, I2C_GENERAL_MODE } |
enum | I2C_ID_Type { I2C0 = 0 } |
Functions | |
void | IP_I2C_Init (IP_I2C_001_Type *LPC_I2C) |
Initializes the LPC_I2C peripheral. | |
void | IP_I2C_DeInit (IP_I2C_001_Type *LPC_I2C) |
De-initializes the I2C peripheral registers to their default reset values. | |
void | IP_I2C_SetClockRate (IP_I2C_001_Type *LPC_I2C, uint32_t SCLValue) |
Set up clock rate for I2Cx. | |
void | IP_I2C_Cmd (IP_I2C_001_Type *LPC_I2C, I2C_Mode Mode, FunctionalState NewState) |
Enable or disable I2C peripheral's operation. | |
void | IP_I2C_Interrupt_MasterHandler (IP_I2C_001_Type *LPC_I2C, I2C_ID_Type I2C_Num) |
General Master Interrupt handler for I2C peripheral. | |
void | IP_I2C_Interrupt_SlaveHandler (IP_I2C_001_Type *LPC_I2C, I2C_ID_Type I2C_Num) |
General Slave Interrupt handler for I2C peripheral. | |
Status | IP_I2C_MasterTransferData (IP_I2C_001_Type *LPC_I2C, I2C_ID_Type I2C_Num, I2C_M_SETUP_Type *TransferCfg, I2C_TRANSFER_OPT_Type Opt) |
Transmit and Receive data in master mode. | |
Status | IP_I2C_SlaveTransferData (IP_I2C_001_Type *LPC_I2C, I2C_ID_Type I2C_Num, I2C_S_SETUP_Type *TransferCfg, I2C_TRANSFER_OPT_Type Opt) |
Receive and Transmit data in slave mode. | |
bool | IP_I2C_Interrupt_MasterTransferComplete (I2C_ID_Type I2C_Num) |
Get status of Master Transfer. | |
bool | IP_I2C_Interrupt_SlaveTransferComplete (I2C_ID_Type I2C_Num) |
Get status of Slave Transfer. | |
void | IP_I2C_SetOwnSlaveAddr (IP_I2C_001_Type *LPC_I2C, I2C_OWNSLAVEADDR_CFG_Type *OwnSlaveAddrConfigStruct) |
Set Own slave address in I2C peripheral corresponding to parameter specified in OwnSlaveAddrConfigStruct. | |