PCA9547: an I2C bus multiplexer control library. PCA9547 is an I2C multiplexer which enables to select 1:8 multiplexed I2C bus. The multiplexer is useful for deviding I2C bus to avoiding slave address conflict and separating capacitive loads. For more information about PCA9547: http://www.nxp.com/documents/data_sheet/PCA9547.pdf

Dependents:   pca9547_Hello m3Dpi

/media/uploads/okano/pca9547_connections.png

Information

For more information, please visit component page.

The PCA9547 is an octal bidirectional translating multiplexer controlled by the I2C-bus. The SCL/SDA upstream pair fans out to eight downstream pairs, or channels.

pca9547

Revision:
5:f4f72501148a
Parent:
4:3c0af4c37587
Child:
6:33ef755248e0
--- a/PCA9547.h	Tue Jul 01 00:37:01 2014 +0000
+++ b/PCA9547.h	Mon Feb 23 06:25:45 2015 +0000
@@ -36,10 +36,10 @@
  *  #include "LM75B.h"
  *  #include "PCA9547.h"
  *
+ *  PCA9547 mux( p28, p27, 0xE0 );
+ *
  *  int main()
  *  {
- *      PCA9547 mux( p28, p27, 0xE0 );
- *
  *      mux.select( 0 );
  *
  *      LM75B   tmp0( p28, p27 );   //  making instance after a branch of I2C bus (which is connecting the LM75B) enabled
@@ -64,6 +64,13 @@
      */
     PCA9547( PinName sda, PinName scl, char i2c_address = 0xE0 );
 
+    /** Create a PCA9546A instance connected to specified I2C pins with specified address
+     *
+     * @param &i2c_ I2C object (instance)
+     * @param i2c_address I2C-bus address (default: 0xE0)
+     */
+    PCA9547( I2C &i2c_, char i2c_address = 0xE0 );
+
     /** Destructor of PCA9547
      */
     ~PCA9547();
@@ -83,8 +90,9 @@
     void disable( void );
 
 private:
-    I2C     i2c;
-    char    _i2c_addr;
+    I2C     *i2c_p;
+    I2C     &i2c;
+    char    i2c_addr;
 };
 
 #endif  //  MBED_PCA9547_H
\ No newline at end of file