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.

Files at this revision

API Documentation at this revision

Comitter:
okano
Date:
Mon Feb 23 06:28:51 2015 +0000
Parent:
4:3569774a7472
Commit message:
Sample code update: instance declaration as global

Changed in this revision

PCA9547.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/PCA9547.lib	Tue Jul 01 00:41:00 2014 +0000
+++ b/PCA9547.lib	Mon Feb 23 06:28:51 2015 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/okano/code/PCA9547/#3c0af4c37587
+http://mbed.org/users/okano/code/PCA9547/#33ef755248e0
--- 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 );
     }