60 #include <ti/devices/msp/msp.h> 61 #include <ti/driverlib/driverlib.h> 62 #include <ti/driverlib/m0p/dl_core.h> 73 #define SMB_PEC_SUPPORTED (1) 85 #define SMB_CRC8_USE_LOOKUP_TABLE (1) 92 #define SMB_MAX_PAYLOAD_SIZE (255) 99 #define SMB_MAX_PACKET_SIZE (SMB_MAX_PAYLOAD_SIZE + 3) 106 #define RESPONSE_NTR 0x00 113 #define SMBUS_RET_OK (1) 120 #define SMBUS_RET_ERROR (-1) 133 SMBus_Stop_After_Transfer = 0,
134 SMBus_No_Stop_After_Transfer
144 SMBus_Start_Before_Transfer = 0,
145 SMBus_No_Start_Before_Transfer
155 SMBus_Auto_Ack_Last_Byte = 0,
156 SMBus_No_Auto_Ack_Last_Byte
182 uint8_t controller : 1;
184 uint8_t reserved2 : 3;
194 uint8_t writeBits : 1;
196 uint8_t reserved : 7;
276 #if (SMB_PEC_SUPPORTED == 1) 358 uint8_t packOvrErr : 1;
360 uint8_t byteOvrErr : 1;
364 uint8_t reserved : 2;
434 #if (SMB_PEC_SUPPORTED == 1) 575 SMBus_ErrorCode errorCode);
867 extern int8_t SMBus_controllerReceiveByte(
SMBus *smbus,
927 extern int8_t SMBus_controllerReadBlock(
SMBus *smbus,
982 extern int8_t SMBus_controllerWriteBlock(
SMBus *smbus,
1172 #endif //__SMBUS_H__
uint8_t ownTargetAddr
Definition: smbus.h:388
SMBus_Auto_Ack
List of auto ack codes used within the NWK and PHY layers.
Definition: smbus.h:153
void SMBus_controllerReset(SMBus *smbus)
Force reset to SMBus controller interface.
Definition: smbus.c:211
uint8_t SMBus_targetClearStatusReg(SMBus *smbus, uint8_t val)
Clear the target's status register.
Definition: smbus.c:160
uint16_t rxLen
Definition: smbus.h:261
int8_t SMBus_controllerProcessCallBlock(SMBus *smbus, uint8_t targetAddr, uint8_t command, uint8_t *txData, uint8_t txSize, uint8_t *rxData)
Sends a block write-block read process call.
Definition: smbus.c:240
int8_t SMBus_controllerQuickCommand(SMBus *smbus, uint8_t targetAddr, bool write)
Send a SMBus "quick command".
Definition: smbus.c:414
uint8_t currentCmd
Definition: smbus.h:257
SMBus_State SMBus_controllerProcessInt(SMBus *smbus)
I2C Interrupt Service routine for a controller.
Definition: smbus.c:206
SMBus_Nwk nwk
Definition: smbus.h:380
uint16_t txIndex
Definition: smbus.h:267
SMBus_Ctrl ctrl
Definition: smbus.h:382
SMBus_Stop SMBus_Phy_stop
Definition: smbus.h:212
SMBus_Phy phy
Definition: smbus.h:378
SMBus_ErrorCode
List of error codes used by the application to indicate an error to the library.
Definition: smbus.h:287
uint8_t u8byte
Definition: smbus.h:367
void SMBus_targetReportError(SMBus *smbus, SMBus_ErrorCode errorCode)
Reports an error to SMBus driver from the target.
Definition: smbus.c:137
SMBus control register.
Definition: smbus.h:164
volatile SMBus_NwkState eState
Definition: smbus.h:253
uint8_t * txBuffPtr
Definition: smbus.h:271
SMBus_State SMBus_targetProcessInt(SMBus *smbus)
I2C Interrupt Service routine for a target.
Definition: smbus.c:99
SMBus_State state
Definition: smbus.h:386
void SMBus_controllerInit(SMBus *smbus, I2C_Regs *i2cAddr, uint32_t busClk)
Initialize the SMBus Interface for a controller.
Definition: smbus.c:175
void SMBus_disablePEC(SMBus *smbus)
Disables PEC support.
Definition: smbus.c:62
void SMBus_targetSetRxBuffer(SMBus *smbus, uint8_t *data, uint16_t size)
Initialize the reception buffer for target.
Definition: smbus.c:119
int8_t SMBus_controllerSendByte(SMBus *smbus, uint8_t targetAddr, uint8_t txData)
Sends byte to the target.
Definition: smbus.c:270
uint16_t rxIndex
Definition: smbus.h:259
void SMBus_processDone(SMBus *smbus)
Clears the current state of SMBus.
Definition: smbus.c:40
int8_t SMBus_controllerReadByteWord(SMBus *smbus, uint8_t targetAddr, uint8_t command, uint8_t *rxData, uint8_t rxSize)
Receive a byte from the target.
Definition: smbus.c:358
int8_t SMBus_controllerWaitUntilDone(SMBus *smbus, int32_t timeout)
Wait until the previous SMBus command is executed.
Definition: smbus.c:441
int8_t SMBus_controllerProcessCall(SMBus *smbus, uint8_t targetAddr, uint8_t command, uint8_t *txData, uint8_t *rxData)
Sends a process call to a target.
Definition: smbus.c:216
void SMBus_targetSetTxBuffer(SMBus *smbus, uint8_t *data, uint16_t size)
Initialize the transmission buffer for target.
Definition: smbus.c:128
uint8_t u8byte
Definition: smbus.h:199
void SMBus_enablePEC(SMBus *smbus)
Enables PEC support.
Definition: smbus.c:57
uint16_t txSize
Definition: smbus.h:275
uint8_t * recByteTxPtr
Definition: smbus.h:273
SMBus_State SMBus_getState(SMBus *smbus)
Returns the state of the SMBus module.
Definition: smbus.c:51
uint8_t SMBus_targetGetCommand(SMBus *smbus)
Return the current command (Rxbuffer[0]) received by the target.
Definition: smbus.c:155
void SMBus_controllerEnableInt(SMBus *smbus)
Enables the I2C interrupts for a controller.
Definition: smbus.c:201
SMBus_NwkState
SMBus network layer states.
Definition: smbus.h:220
uint8_t * rxBuffPtr
Definition: smbus.h:265
SMBus_Status status
Definition: smbus.h:384
SMBus_State
SMBus state sent to application layer.
Definition: smbus.h:302
void SMBus_targetSetAddress(SMBus *smbus, uint8_t targetAddr)
Set the target's own I2C address.
Definition: smbus.c:112
Physical and Data Link Layer object.
Definition: smbus.h:207
uint8_t currentAddr
Definition: smbus.h:255
void SMBus_targetInit(SMBus *smbus, I2C_Regs *i2cAddr)
Initialize the SMBus interface as a target.
Definition: smbus.c:69
Main SMBus object.
Definition: smbus.h:375
void SMBus_targetEnableInt(SMBus *smbus)
Enables the I2C interrupts for a target.
Definition: smbus.c:94
uint8_t pec
Definition: smbus.h:278
SMBus_Stop
List of stop codes used within the NWK and PHY layers.
Definition: smbus.h:131
I2C_Regs * SMBus_Phy_i2cBase
Definition: smbus.h:210
int8_t SMBus_controllerWriteByteWord(SMBus *smbus, uint8_t targetAddr, uint8_t command, uint8_t *txData, uint8_t txSize)
Send a command transmitting a byte or word of data from the target.
Definition: smbus.c:386
uint8_t SMBus_targetWriteCtrlReg(SMBus *smbus, uint8_t val)
Write a value to the target's control register.
Definition: smbus.c:167
uint16_t txLen
Definition: smbus.h:269
SMBus Status Register.
Definition: smbus.h:342
Definition of SMBus Network structure.
Definition: smbus.h:250
uint16_t rxSize
Definition: smbus.h:263
SMBus_Start
List of start codes used within the NWK and PHY layers.
Definition: smbus.h:142
uint16_t SMBus_getRxPayloadAvailable(SMBus *smbus)
Returns the number of received bytes from last transaction.
Definition: smbus.c:46