HelloWorld program for 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

Dependencies:   LM75B PCA9547 mbed

What is this?

This is a sample code to demonstrate the PCA9547. The PCA9547 is a 8 channel multiplexer for I2C bus.
The code shows how the bed can access the I2C device (LM75B) through PCA9547.

PCA9547_and_LM75B
Demo hardware block diagram

/media/uploads/okano/pca9547_connections.png
Connection between mbed and PCA9547

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.

Revision:
5:c6450501913e
Parent:
3:e8697f8b6da5
--- a/main.cpp	Tue Jul 01 00:41:00 2014 +0000
+++ b/main.cpp	Mon Feb 23 06:28:51 2015 +0000
@@ -2,8 +2,8 @@
  *  PCA9547 library "Hello world" sample 
  *
  *  @author  Tedd OKANO
- *  @version 0.1
- *  @date    July-2014
+ *  @version 0.2
+ *  @date    Feb-2015
  *
  *  PCA9547: an I2C bus multiplexer control library
  *
@@ -19,15 +19,15 @@
 #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
 
-    while(1) {
+    while( 1 ) {
         printf( "%.3f\r\n", tmp0.read() );
         wait( 1.0 );
     }