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:
1:47f2cf4c6619
Parent:
0:662ab6a5aa97
Child:
2:c3459a955c8c
--- a/PCA9547.h	Tue Jul 01 00:10:04 2014 +0000
+++ b/PCA9547.h	Tue Jul 01 00:24:32 2014 +0000
@@ -1,15 +1,79 @@
+/**
+ *  PCA9547 library
+ *
+ *  @author  Tedd OKANO
+ *  @version 0.1
+ *  @date    July-2014
+ *
+ *  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 informatioj about PCA9547:
+ *    http://www.nxp.com/documents/data_sheet/PCA9547.pdf
+ *
+ */
+
 #ifndef MBED_PCA9547_H
 #define MBED_PCA9547_H
 
 #include "mbed.h"
 
+/** PCA9547 class
+ *
+ *  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 informatioj about PCA9547:
+ *    http://www.nxp.com/documents/data_sheet/PCA9547.pdf
+ *
+ *  Example:
+ *  @code
+ *  #include "mbed.h"
+ *  #include "LM75B.h"
+ *  #include "PCA9547.h"
+ *
+ *  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
+ *
+ *      while(1) {
+ *          printf( "%.3f\r\n", tmp0.read() );
+ *          wait( 1.0 );
+ *      }
+ *  }
+ *  @endcode
+ */
+
 class PCA9547
 {
 public:
+
+    /** Create a PCA9547 instance connected to specified I2C pins with specified address
+     *
+     * @param sda I2C-bus SDA pin
+     * @param scl I2C-bus SCL pin
+     * @param i2c_address I2C-bus address (default: 0xE0)
+     */
     PCA9547( PinName sda, PinName scl, char i2c_address = 0xE0 );
 
+    /** Destructor of PCA9547
+     */
     ~PCA9547();
 
+    /** Channel select
+     *
+     *  Enable and selecting a channel 
+     *
+     * @param channel channel number
+     */
     void select( char channel );
 
 private: