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

Files at this revision

API Documentation at this revision

Comitter:
okano
Date:
Tue Jul 01 00:24:32 2014 +0000
Parent:
0:662ab6a5aa97
Child:
2:c3459a955c8c
Commit message:
API document (doxygen format) added

Changed in this revision

PCA9547.cpp Show annotated file Show diff for this revision Revisions of this file
PCA9547.h Show annotated file Show diff for this revision Revisions of this file
--- a/PCA9547.cpp	Tue Jul 01 00:10:04 2014 +0000
+++ b/PCA9547.cpp	Tue Jul 01 00:24:32 2014 +0000
@@ -1,3 +1,20 @@
+/* Copyright (c) 2012 cstyles, MIT License
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software 
+ * and associated documentation files (the "Software"), to deal in the Software without restriction, 
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute, 
+ * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is 
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all copies or 
+ * substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING 
+ * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
 #include "PCA9547.h"
 
 PCA9547::PCA9547( PinName sda, PinName scl, char i2c_address ) : i2c( sda, scl ), _i2c_addr( i2c_address )
--- 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: