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
Information
For more information, please visit component page.
Revision 1:47f2cf4c6619, committed 2014-07-01
- 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: