libDaisy
Hardware Library for Daisy
Loading...
Searching...
No Matches
daisy::Tca9534 Class Reference

Detailed Description

Driver for the Texas Instruments TCA9534 (and TCA9534A) 8-bit I2C GPIO expander.

Address range is typically 0x20–0x27 depending on A0/A1/A2 (TCA9534A uses 0x38–0x3F).

Two init styles are supported:

  • Owned bus: Init(Config) creates/initializes an I2C peripheral (like Mcp23017).
  • Shared bus: Init(I2CHandle&, address) reuses an already-configured I2CHandle (useful when LEDs / codecs already own the same bus).

Usage (shared bus):

i2c.Init(...);
Tca9534 exp;
exp.Init(i2c, 0x21);
exp.SetConfig(0xFE); // P0 output, P1–P7 inputs
exp.WritePin(0, true);
uint8_t port = 0;
exp.ReadInput(port);
Definition i2c.h:26
Result Init(const Config &config)
Definition tca9534.h:59
bool ReadInput(uint8_t &value)
Definition tca9534.h:159
void Init()
Definition tca9534.h:90
bool WritePin(uint8_t pin, bool high)
Definition tca9534.h:148
bool SetConfig(uint8_t config)
Definition tca9534.h:125

#include <tca9534.h>

Classes

struct  Config
 

Public Member Functions

 Tca9534 ()
 
void Init ()
 
void Init (const Config &config)
 
void Init (I2CHandle &i2c, uint8_t address=0x20)
 
bool SetConfig (uint8_t config)
 
bool SetOutputState (uint8_t output)
 
bool PinMode (uint8_t pin, Tca9534Mode mode)
 
bool WritePin (uint8_t pin, bool high)
 
bool ReadInput (uint8_t &value)
 
bool ReadPin (uint8_t pin, bool &high)
 
bool LastTransferOk () const
 
bool LastReadOk () const
 
uint8_t OutputState () const
 
uint8_t ConfigRegister () const
 
uint8_t Address () const
 

Constructor & Destructor Documentation

◆ Tca9534()

daisy::Tca9534::Tca9534 ( )
inline

Member Function Documentation

◆ Address()

uint8_t daisy::Tca9534::Address ( ) const
inline

◆ ConfigRegister()

uint8_t daisy::Tca9534::ConfigRegister ( ) const
inline

◆ Init() [1/3]

void daisy::Tca9534::Init ( )
inline

Initialize with default Seed I2C1 pins and address 0x20.

◆ Init() [2/3]

void daisy::Tca9534::Init ( const Config & config)
inline

Initialize and own a dedicated I2C peripheral.

◆ Init() [3/3]

void daisy::Tca9534::Init ( I2CHandle & i2c,
uint8_t address = 0x20 )
inline

Attach to an already-initialized I2CHandle (shared bus). Does not re-init the peripheral.

◆ LastReadOk()

bool daisy::Tca9534::LastReadOk ( ) const
inline

Alias matching early Cosmolab naming.

◆ LastTransferOk()

bool daisy::Tca9534::LastTransferOk ( ) const
inline

◆ OutputState()

uint8_t daisy::Tca9534::OutputState ( ) const
inline

◆ PinMode()

bool daisy::Tca9534::PinMode ( uint8_t pin,
Tca9534Mode mode )
inline

◆ ReadInput()

bool daisy::Tca9534::ReadInput ( uint8_t & value)
inline

◆ ReadPin()

bool daisy::Tca9534::ReadPin ( uint8_t pin,
bool & high )
inline

◆ SetConfig()

bool daisy::Tca9534::SetConfig ( uint8_t config)
inline

1 = input, 0 = output for each bit.

◆ SetOutputState()

bool daisy::Tca9534::SetOutputState ( uint8_t output)
inline

◆ WritePin()

bool daisy::Tca9534::WritePin ( uint8_t pin,
bool high )
inline

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