My implementation of Bosh BMI160 Only I2C is tested so far.

Dependents:   test_BMI160 TFT_test_MAX32630FTHR

Committer:
Rhyme
Date:
Fri Aug 25 05:07:26 2017 +0000
Revision:
0:9aed6f5a35c0
Child:
1:d56df81c389b
Register bit description entered

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rhyme 0:9aed6f5a35c0 1 #ifndef _BMI160_H_
Rhyme 0:9aed6f5a35c0 2 #define _BMI160_H_
Rhyme 0:9aed6f5a35c0 3 class BMI160 {
Rhyme 0:9aed6f5a35c0 4 public:
Rhyme 0:9aed6f5a35c0 5 /**
Rhyme 0:9aed6f5a35c0 6 * BMI160 I2C Interface
Rhyme 0:9aed6f5a35c0 7 *
Rhyme 0:9aed6f5a35c0 8 * @param sda SDA pin
Rhyme 0:9aed6f5a35c0 9 * @param scl SCL pin
Rhyme 0:9aed6f5a35c0 10 * @param addr address of the I2C peripheral
Rhyme 0:9aed6f5a35c0 11 */
Rhyme 0:9aed6f5a35c0 12 BMI160(PinName sda, PinName scl, int addr) ;
Rhyme 0:9aed6f5a35c0 13
Rhyme 0:9aed6f5a35c0 14 /**
Rhyme 0:9aed6f5a35c0 15 * BMI160 SPI Interface
Rhyme 0:9aed6f5a35c0 16 *
Rhyme 0:9aed6f5a35c0 17 * @param sck SPI SCKL pin
Rhyme 0:9aed6f5a35c0 18 * @param miso SPI Master In Slave Out pin
Rhyme 0:9aed6f5a35c0 19 * @param mosi SPI Master Out Slave In pin
Rhyme 0:9aed6f5a35c0 20 * @param cs SPI Chip Select pin
Rhyme 0:9aed6f5a35c0 21 */
Rhyme 0:9aed6f5a35c0 22 BMI160(PinName sck, PinName miso, PinName mosi, PinName cs) ;
Rhyme 0:9aed6f5a35c0 23
Rhyme 0:9aed6f5a35c0 24 /**
Rhyme 0:9aed6f5a35c0 25 * BMI160 destructor
Rhyme 0:9aed6f5a35c0 26 */
Rhyme 0:9aed6f5a35c0 27 ~BMI160() ;
Rhyme 0:9aed6f5a35c0 28
Rhyme 0:9aed6f5a35c0 29 uint8_t getChipID(void) ;
Rhyme 0:9aed6f5a35c0 30
Rhyme 0:9aed6f5a35c0 31 private:
Rhyme 0:9aed6f5a35c0 32 SPI *m_spi ;
Rhyme 0:9aed6f5a35c0 33 I2C *m_i2c ;
Rhyme 0:9aed6f5a35c0 34 DigitalOut *m_cs ;
Rhyme 0:9aed6f5a35c0 35 int m_addr ;
Rhyme 0:9aed6f5a35c0 36
Rhyme 0:9aed6f5a35c0 37 void init(void) ;
Rhyme 0:9aed6f5a35c0 38 void i2c_readRegs(int addr, uint8_t *data, int len) ;
Rhyme 0:9aed6f5a35c0 39 void i2c_writeRegs(uint8_t *data, int len) ;
Rhyme 0:9aed6f5a35c0 40 void spi_readRegs(int addr, uint8_t *data, int len) ;
Rhyme 0:9aed6f5a35c0 41 void spi_writeRegs(uint8_t *data, int len) ;
Rhyme 0:9aed6f5a35c0 42 void readRegs(int addr, uint8_t *data, int len) ;
Rhyme 0:9aed6f5a35c0 43 void writeRegs(uint8_t *data, int len) ;
Rhyme 0:9aed6f5a35c0 44 } ;
Rhyme 0:9aed6f5a35c0 45
Rhyme 0:9aed6f5a35c0 46 #endif /* _BMI160_H_ */