Original
Fork of PCA9547 by
Diff: PCA9547.h
- 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: