Linduino  1.3.0
Linear Technology Arduino-Compatible Demonstration Board
LT_SMBusGroup Class Reference

Detailed Description

Definition at line 60 of file LT_SMBusGroup.h.

Inheritance diagram for LT_SMBusGroup:
LT_SMBusBase LT_SMBus

Public Member Functions

 LT_SMBusGroup (LT_SMBus *)
 
 LT_SMBusGroup (LT_SMBus *, uint32_t speed)
 
virtual ~LT_SMBusGroup ()
 
void writeByte (uint8_t address, uint8_t command, uint8_t data)
 SMBus write byte command. More...
 
void writeBytes (uint8_t *addresses, uint8_t *commands, uint8_t *data, uint8_t no_addresses)
 SMBus write byte command for a list of addresses. More...
 
uint8_t readByte (uint8_t address, uint8_t command)
 SMBus read byte command. More...
 
void writeWord (uint8_t address, uint8_t command, uint16_t data)
 SMBus write word command. More...
 
uint16_t readWord (uint8_t address, uint8_t command)
 SMBus read word command. More...
 
void writeBlock (uint8_t address, uint8_t command, uint8_t *block, uint16_t block_size)
 SMBus write block command. More...
 
uint8_t writeReadBlock (uint8_t address, uint8_t command, uint8_t *block_out, uint16_t block_out_size, uint8_t *block_in, uint16_t block_in_size)
 SMBus write then read block command. More...
 
uint8_t readBlock (uint8_t address, uint8_t command, uint8_t *block, uint16_t block_size)
 SMBus read block command. More...
 
void sendByte (uint8_t address, uint8_t command)
 SMBus send byte command. More...
 
void beginStoring ()
 Group Protocol Begin. More...
 
void execute ()
 Group Protocol Execute queued commands. More...
 
- Public Member Functions inherited from LT_SMBusBase
LT_I2CBusi2cbus (void)
 
void i2cbus (LT_I2CBus *i2cbus)
 
uint8_t readAlert (void)
 Perform ARA. More...
 
uint8_t waitForAck (uint8_t address, uint8_t command)
 Read with the address and command in loop until ack, then issue stop. More...
 
uint8_t * probe (uint8_t command)
 SMBus bus probe. More...
 
uint8_t * probeUnique (uint8_t command)
 SMBus bus probe. More...
 
- Public Member Functions inherited from LT_SMBus
virtual ~LT_SMBus ()
 
bool pecEnabled (void)
 Check if PEC is enabled. More...
 
void pecClear (void)
 Clear the pec value so it can start a new calculation. More...
 
void pecAdd (uint8_t byte_value)
 Add a byte to the pec calculation. More...
 
uint8_t pecGet (void)
 Get the current pec result. More...
 
bool checkCRC (uint8_t *data)
 Check CRC of block data organized as 31 data bytes plus CRC. More...
 
uint8_t getCRC (uint8_t *data)
 Get CRC of block data organized as 31 bytes pluse CRC. More...
 
uint8_t calculate (uint8_t *data, uint8_t begining_value, uint8_t start_index, uint8_t length)
 Helper function for pec. More...
 

Additional Inherited Members

- Protected Member Functions inherited from LT_SMBusBase
 LT_SMBusBase ()
 
 LT_SMBusBase (uint32_t speed)
 
virtual ~LT_SMBusBase ()
 
- Protected Member Functions inherited from LT_SMBus
void constructTable (uint16_t user_polynomial)
 Initialize the table used to speed up pec calculations. More...
 
uint8_t doCalculate (uint8_t data, uint8_t begining_value)
 Helper function for pec. More...
 
 LT_SMBus ()
 
- Protected Attributes inherited from LT_SMBusBase
LT_I2CBusi2cbus_
 
- Protected Attributes inherited from LT_SMBus
bool pec_enabled_
 
uint8_t running_pec_
 Temporary pec calc value. More...
 
unsigned char poly_
 The poly used in the calc. More...
 
uint16_t crc_polynomial_
 The crc poly used in the calc. More...
 
- Static Protected Attributes inherited from LT_SMBusBase
static bool open_ = false
 Used to ensure initialisation of i2c once. More...
 
static uint8_t found_address_ []
 

Member Function Documentation

◆ beginStoring()

void LT_SMBusGroup::beginStoring ( )

Group Protocol Begin.

Returns
void

Definition at line 151 of file LT_SMBusGroup.cpp.

◆ execute()

void LT_SMBusGroup::execute ( )

Group Protocol Execute queued commands.

Returns
void

Definition at line 175 of file LT_SMBusGroup.cpp.

◆ readBlock()

uint8_t LT_SMBusGroup::readBlock ( uint8_t  address,
uint8_t  command,
uint8_t *  block,
uint16_t  block_size 
)
virtual

SMBus read block command.

Returns
actual size
Parameters
addressSlave Address
commandCommand byte
blockMemory to receive data
block_sizeSize of receive data memory

Reimplemented from LT_SMBusBase.

Definition at line 133 of file LT_SMBusGroup.cpp.

◆ readByte()

uint8_t LT_SMBusGroup::readByte ( uint8_t  address,
uint8_t  command 
)
virtual

SMBus read byte command.

Returns
byte
Parameters
addressSlave Address
commandCommand byte

Reimplemented from LT_SMBusBase.

Definition at line 91 of file LT_SMBusGroup.cpp.

◆ readWord()

uint16_t LT_SMBusGroup::readWord ( uint8_t  address,
uint8_t  command 
)
virtual

SMBus read word command.

Returns
word
Parameters
addressSlave Address
commandCommand byte

Reimplemented from LT_SMBusBase.

Definition at line 107 of file LT_SMBusGroup.cpp.

◆ sendByte()

void LT_SMBusGroup::sendByte ( uint8_t  address,
uint8_t  command 
)
virtual

SMBus send byte command.

Returns
void
Parameters
addressSlave Address
commandCommand byte

Reimplemented from LT_SMBusBase.

Definition at line 142 of file LT_SMBusGroup.cpp.

◆ writeBlock()

void LT_SMBusGroup::writeBlock ( uint8_t  address,
uint8_t  command,
uint8_t *  block,
uint16_t  block_size 
)
virtual

SMBus write block command.

Returns
void
Parameters
addressSlave Address
commandCommand byte
blockData to send

Reimplemented from LT_SMBusBase.

Definition at line 115 of file LT_SMBusGroup.cpp.

◆ writeByte()

void LT_SMBusGroup::writeByte ( uint8_t  address,
uint8_t  command,
uint8_t  data 
)
virtual

SMBus write byte command.

Returns
void
Parameters
addressSlave address
commandCommand byte
dataData to send

Reimplemented from LT_SMBusBase.

Definition at line 75 of file LT_SMBusGroup.cpp.

◆ writeBytes()

void LT_SMBusGroup::writeBytes ( uint8_t *  addresses,
uint8_t *  commands,
uint8_t *  data,
uint8_t  no_addresses 
)
virtual

SMBus write byte command for a list of addresses.

Returns
void
Parameters
addressesSlave Addresses
commandsCommand bytes
dataData to send

Reimplemented from LT_SMBusBase.

Definition at line 83 of file LT_SMBusGroup.cpp.

◆ writeReadBlock()

uint8_t LT_SMBusGroup::writeReadBlock ( uint8_t  address,
uint8_t  command,
uint8_t *  block_out,
uint16_t  block_out_size,
uint8_t *  block_in,
uint16_t  block_in_size 
)
virtual

SMBus write then read block command.

Returns
actual size
Parameters
addressSlave Address
commandCommand byte
block_outData to send
block_out_sizeSize of data to send
block_inMemory to receive data
block_in_sizeSize of receive data memory

Reimplemented from LT_SMBusBase.

Definition at line 124 of file LT_SMBusGroup.cpp.

◆ writeWord()

void LT_SMBusGroup::writeWord ( uint8_t  address,
uint8_t  command,
uint16_t  data 
)
virtual

SMBus write word command.

Returns
void
Parameters
addressSlave Address
commandCommand byte
dataData to send

Reimplemented from LT_SMBusBase.

Definition at line 99 of file LT_SMBusGroup.cpp.

Constructor & Destructor Documentation

◆ LT_SMBusGroup() [1/2]

LT_SMBusGroup::LT_SMBusGroup ( LT_SMBus smbus)

Definition at line 59 of file LT_SMBusGroup.cpp.

◆ LT_SMBusGroup() [2/2]

LT_SMBusGroup::LT_SMBusGroup ( LT_SMBus smbus,
uint32_t  speed 
)

Definition at line 67 of file LT_SMBusGroup.cpp.

◆ ~LT_SMBusGroup()

virtual LT_SMBusGroup::~LT_SMBusGroup ( )
virtual

Definition at line 151 of file LT_SMBusGroup.h.


The documentation for this class was generated from the following files: