Tedd OKANO / PCA9546A

Dependents:   PCA9546A_Hello

Embed: (wiki syntax)

« Back to documentation index

PCA9546A Class Reference

PCA9546A Class Reference

PCA9546A class. More...

#include <PCA9546A.h>

Public Member Functions

 PCA9546A (PinName sda, PinName scl, char i2c_address=0xE0)
 Create a PCA9546A instance connected to specified I2C pins with specified address.
 PCA9546A (I2C &i2c_, char i2c_address=0xE0)
 Create a PCA9546A instance connected to specified I2C pins with specified address.
 ~PCA9546A ()
 Destructor of PCA9546A.
void on (char channel)
 Turning-ON a channel.
void off (char channel)
 Turning-OFF a channel.
void bitpattern (char pattern)
 Switching by bit pattern.

Detailed Description

PCA9546A class.

PCA9546A: an I2C bus switch control library

The PCA9546A is a quad bidirectional translating switch controlled via the I2C-bus. The SCL/SDA upstream pair fans out to four downstream pairs, or channels. Any individual SCx/SDx channel or combination of channels can be selected, determined by the contents of the programmable control register.

For more information about PCA9546A: http://www.nxp.com/documents/data_sheet/PCA9546A.pdf

Example:

  #include "mbed.h"
  #include "LM75B.h"
  #include "PCA9546A.h"
  
  PCA9546A    i2c_sw( p28, p27, 0xE0 );
  
  int main()
  {
      //  all PCA9546A's downstream ports are OFF after power-up and hardware-reset
      
      i2c_sw.on( 0 );     //  turn-ON  the channel 0
  
      LM75B   tmp0( p28, p27 );   //  making instance after a branch of I2C bus (which is connecting the LM75B) enabled
  
      i2c_sw.off( 0 );    //  turn-OFF the channel 0
      i2c_sw.on( 1 );     //  turn-ON  the channel 1
  
      LM75B   tmp1( p28, p27 );   //  making instance after a branch of I2C bus (which is connecting the LM75B) enabled
  
      while(1) {
          
          i2c_sw.off( 1 );    //  turn-OFF the channel 1
          i2c_sw.on( 0 );     //  turn-ON  the channel 0
          printf( "%.3f\r\n", tmp0.read() );
  
          i2c_sw.off( 0 );    //  turn-OFF the channel 0
          i2c_sw.on( 1 );     //  turn-ON  the channel 1
          printf( "%.3f\r\n", tmp1.read() );
  
          wait( 1.0 );
      }
  }

Definition at line 76 of file PCA9546A.h.


Constructor & Destructor Documentation

PCA9546A ( PinName  sda,
PinName  scl,
char  i2c_address = 0xE0 
)

Create a PCA9546A instance connected to specified I2C pins with specified address.

PCA9546A library.

Parameters:
sdaI2C-bus SDA pin
sclI2C-bus SCL pin
i2c_addressI2C-bus address (default: 0xE0)
Author:
Tedd OKANO
Version:
0.1
Date:
Feb-2015

PCA9546A: an I2C bus switch control library

The PCA9546A is a quad bidirectional translating switch controlled via the I2C-bus. The SCL/SDA upstream pair fans out to four downstream pairs, or channels. Any individual SCx/SDx channel or combination of channels can be selected, determined by the contents of the programmable control register.

For more information about PCA9546A: http://www.nxp.com/documents/data_sheet/PCA9546A.pdf

Definition at line 23 of file PCA9546A.cpp.

PCA9546A ( I2C &  i2c_,
char  i2c_address = 0xE0 
)

Create a PCA9546A instance connected to specified I2C pins with specified address.

Parameters:
&i2c_I2C object (instance)
i2c_addressI2C-bus address (default: 0xE0)

Definition at line 30 of file PCA9546A.cpp.

~PCA9546A (  )

Destructor of PCA9546A.

Definition at line 37 of file PCA9546A.cpp.


Member Function Documentation

void bitpattern ( char  pattern )

Switching by bit pattern.

Switch setting by bit pattern. Set '1' for ON, set '0' for OFF LSB is channel 0. Channels 1, 2 and 3 are mapped in shifted position from LSB

Parameters:
patternON/OFF bit pattern for channels

Definition at line 57 of file PCA9546A.cpp.

void off ( char  channel )

Turning-OFF a channel.

Switching a channel OFF

Parameters:
channelchannel number

Definition at line 50 of file PCA9546A.cpp.

void on ( char  channel )

Turning-ON a channel.

Switching a channel ON

Parameters:
channelchannel number

Definition at line 43 of file PCA9546A.cpp.