I2C Class

class Acroname::BrainStem::I2CClass : public Acroname::BrainStem::EntityClass

I2CClass. Interface the I2C buses on BrainStem modules. The class provides a way to send read and write commands to I2C devices on the entities bus.

Public Functions

I2CClass(void)

Constructor.

~I2CClass(void)

Destructor.

void init(Module *pModule, const uint8_t index)

Initialize the class.

Parameters
  • pModule: The module to which this entity belongs.

  • index: The index of the digital entity being initialized.

aErr read(const uint8_t address, const uint8_t length, uint8_t *result)

Read from a device on this I2C bus.

Return

Returns common entity return values

Parameters
  • address: - The I2C address (7bit <XXXX-XXX0>) of the device to read.

  • length: - The length of the data to read in bytes.

  • result: - The array of bytes that will be filled with the result, upon success. This array should be larger or equivalent to aBRAINSTEM_MAXPACKETBYTES - 5

aErr write(const uint8_t address, const uint8_t length, const uint8_t *data)

Write to a device on this I2C bus.

Return

Returns common entity return values

Parameters
  • address: - The I2C address (7bit <XXXX-XXX0>) of the device to write.

  • length: - The length of the data to write in bytes.

  • data: - The data to send to the device, This array should be no larger than aBRAINSTEM_MAXPACKETBYTES - 5

aErr setPullup(const bool bEnable)

Set bus pull-up state. This call only works with stems that have software controlled pull-ups. Check the datasheet for more information. This parameter is saved when system.save is called.

Return

Returns common entity return values

Parameters
  • bEnable: - true enables pull-ups false disables them.

aErr setSpeed(const uint8_t speed)

Set I2C bus speed.

This call sets the communication speed for I2C transactions through this API. Speed is an enumeration value which can take the following values. 1 - 100Khz 2 - 400Khz 3 - 1MHz

Return

Returns common entity return values

Parameters
  • speed: - The speed setting value.

aErr getSpeed(uint8_t *speed)

Get I2C bus speed.

This call gets the communication speed for I2C transactions through this API. Speed is an enumeration value which can take the following values. 1 - 100Khz 2 - 400Khz 3 - 1MHz

Return

Returns common entity return values

Parameters
  • speed: - The speed setting value.