60 #include <ti/devices/msp/msp.h> 61 #include <ti/driverlib/driverlib.h> 62 #include <ti/driverlib/m0p/dl_core.h> 78 #define SMB_CRC8_USE_LOOKUP_TABLE (1) 85 #define SMB_MAX_PAYLOAD_SIZE (255) 92 #define SMB_MAX_PACKET_SIZE (SMB_MAX_PAYLOAD_SIZE + 3) 99 #define SMB_HOST_ALERT_PACKET_SIZE (3) 106 #define SMB_HOST_DEFAULT_ADDRESS (0x08) 113 #define RESPONSE_NTR 0x00 120 #define SMBUS_RET_OK (1) 127 #define SMBUS_RET_ERROR (-1) 140 SMBus_Stop_After_Transfer = 0,
141 SMBus_No_Stop_After_Transfer
151 SMBus_Start_Before_Transfer = 0,
152 SMBus_No_Start_Before_Transfer
162 SMBus_Auto_Ack_Last_Byte = 0,
163 SMBus_No_Auto_Ack_Last_Byte
183 uint8_t hostNotifyEn : 1;
191 uint8_t controller : 1;
193 uint8_t reserved2 : 2;
203 uint8_t writeBits : 2;
205 uint8_t reserved : 6;
371 uint8_t packOvrErr : 1;
373 uint8_t byteOvrErr : 1;
377 uint8_t reserved : 2;
586 SMBus_ErrorCode errorCode);
657 uint8_t deviceAddress,
912 extern int8_t SMBus_controllerReceiveByte(
SMBus *smbus,
972 extern int8_t SMBus_controllerReadBlock(
SMBus *smbus,
1027 extern int8_t SMBus_controllerWriteBlock(
SMBus *smbus,
1246 #endif //__SMBUS_H__
uint8_t ownTargetAddr
Definition: smbus.h:401
SMBus_Auto_Ack
List of auto ack codes used within the NWK and PHY layers.
Definition: smbus.h:160
void SMBus_controllerReset(SMBus *smbus)
Force reset to SMBus controller interface.
Definition: smbus.c:228
uint8_t SMBus_targetClearStatusReg(SMBus *smbus, uint8_t val)
Clear the target's status register.
Definition: smbus.c:158
uint16_t rxLen
Definition: smbus.h:272
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:257
int8_t SMBus_controllerQuickCommand(SMBus *smbus, uint8_t targetAddr, bool write)
Send a SMBus "quick command".
Definition: smbus.c:431
uint8_t currentCmd
Definition: smbus.h:268
SMBus_State SMBus_controllerProcessInt(SMBus *smbus)
I2C Interrupt Service routine for a controller.
Definition: smbus.c:223
SMBus_Nwk nwk
Definition: smbus.h:393
uint16_t txIndex
Definition: smbus.h:278
SMBus_Ctrl ctrl
Definition: smbus.h:395
SMBus_Stop SMBus_Phy_stop
Definition: smbus.h:221
SMBus_Phy phy
Definition: smbus.h:391
SMBus_ErrorCode
List of error codes used by the application to indicate an error to the library.
Definition: smbus.h:298
uint8_t u8byte
Definition: smbus.h:380
void SMBus_targetReportError(SMBus *smbus, SMBus_ErrorCode errorCode)
Reports an error to SMBus driver from the target.
Definition: smbus.c:135
SMBus control register.
Definition: smbus.h:171
void SMBus_controllerDisableHostNotify(SMBus *smbus)
Disable support for Host Notify Protocol.
Definition: smbus.c:483
volatile SMBus_NwkState eState
Definition: smbus.h:264
uint8_t * txBuffPtr
Definition: smbus.h:282
uint8_t * hostNotifyRxBuffPtr
Definition: smbus.h:290
SMBus_State SMBus_targetProcessInt(SMBus *smbus)
I2C Interrupt Service routine for a target.
Definition: smbus.c:97
SMBus_State state
Definition: smbus.h:399
void SMBus_controllerInit(SMBus *smbus, I2C_Regs *i2cAddr, uint32_t busClk)
Initialize the SMBus Interface for a controller.
Definition: smbus.c:194
void SMBus_disablePEC(SMBus *smbus)
Disables PEC support.
Definition: smbus.c:63
void SMBus_targetSetRxBuffer(SMBus *smbus, uint8_t *data, uint16_t size)
Initialize the reception buffer for target.
Definition: smbus.c:117
int8_t SMBus_controllerSendByte(SMBus *smbus, uint8_t targetAddr, uint8_t txData)
Sends byte to the target.
Definition: smbus.c:287
uint16_t rxIndex
Definition: smbus.h:270
void SMBus_processDone(SMBus *smbus)
Clears the current state of SMBus.
Definition: smbus.c:41
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:375
int8_t SMBus_controllerWaitUntilDone(SMBus *smbus, int32_t timeout)
Wait until the previous SMBus command is executed.
Definition: smbus.c:458
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:233
void SMBus_targetSetTxBuffer(SMBus *smbus, uint8_t *data, uint16_t size)
Initialize the transmission buffer for target.
Definition: smbus.c:126
uint8_t u8byte
Definition: smbus.h:208
void SMBus_enablePEC(SMBus *smbus)
Enables PEC support.
Definition: smbus.c:58
uint16_t txSize
Definition: smbus.h:286
uint8_t * recByteTxPtr
Definition: smbus.h:284
SMBus_State SMBus_getState(SMBus *smbus)
Returns the state of the SMBus module.
Definition: smbus.c:52
uint8_t SMBus_targetGetCommand(SMBus *smbus)
Return the current command (Rxbuffer[0]) received by the target.
Definition: smbus.c:153
void SMBus_controllerEnableInt(SMBus *smbus)
Enables the I2C interrupts for a controller.
Definition: smbus.c:218
SMBus_NwkState
SMBus network layer states.
Definition: smbus.h:229
uint8_t * rxBuffPtr
Definition: smbus.h:276
SMBus_Status status
Definition: smbus.h:397
SMBus_State
SMBus state sent to application layer.
Definition: smbus.h:313
int8_t SMBus_targetHostAlert(SMBus *smbus, uint8_t deviceAddress, uint8_t *txData)
Send a Host Alert from the target.
Definition: smbus.c:173
void SMBus_targetSetAddress(SMBus *smbus, uint8_t targetAddr)
Set the target's own I2C address.
Definition: smbus.c:110
Physical and Data Link Layer object.
Definition: smbus.h:216
uint8_t currentAddr
Definition: smbus.h:266
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:388
void SMBus_targetEnableInt(SMBus *smbus)
Enables the I2C interrupts for a target.
Definition: smbus.c:92
uint8_t pec
Definition: smbus.h:288
SMBus_Stop
List of stop codes used within the NWK and PHY layers.
Definition: smbus.h:138
I2C_Regs * SMBus_Phy_i2cBase
Definition: smbus.h:219
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:403
uint8_t SMBus_targetWriteCtrlReg(SMBus *smbus, uint8_t val)
Write a value to the target's control register.
Definition: smbus.c:165
uint16_t txLen
Definition: smbus.h:280
SMBus Status Register.
Definition: smbus.h:355
Definition of SMBus Network structure.
Definition: smbus.h:261
void SMBus_controllerEnableHostNotify(SMBus *smbus, uint8_t *hostAlertBuffer)
Enable support for Host Notify Protocol.
Definition: smbus.c:476
uint16_t rxSize
Definition: smbus.h:274
SMBus_Start
List of start codes used within the NWK and PHY layers.
Definition: smbus.h:149
uint16_t SMBus_getRxPayloadAvailable(SMBus *smbus)
Returns the number of received bytes from last transaction.
Definition: smbus.c:47