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:10:04 2014 +0000
Child:
1:47f2cf4c6619
Commit message:
first library test

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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PCA9547.cpp	Tue Jul 01 00:10:04 2014 +0000
@@ -0,0 +1,19 @@
+#include "PCA9547.h"
+
+PCA9547::PCA9547( PinName sda, PinName scl, char i2c_address ) : i2c( sda, scl ), _i2c_addr( i2c_address )
+{
+    //  do nothing.
+    //  leave it in default state.
+}
+
+PCA9547::~PCA9547()
+{
+
+}
+
+void PCA9547::select( char channel )
+{
+    char    data    = 0x08 | channel;
+
+    i2c.write( _i2c_addr, &data, 1);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PCA9547.h	Tue Jul 01 00:10:04 2014 +0000
@@ -0,0 +1,20 @@
+#ifndef MBED_PCA9547_H
+#define MBED_PCA9547_H
+
+#include "mbed.h"
+
+class PCA9547
+{
+public:
+    PCA9547( PinName sda, PinName scl, char i2c_address = 0xE0 );
+
+    ~PCA9547();
+
+    void select( char channel );
+
+private:
+    I2C     i2c;
+    char    _i2c_addr;
+};
+
+#endif  //  MBED_PCA9547_H
\ No newline at end of file