This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

BMI160 + NRF52832 + I2C

HI,

I want to develop a program to access Accelerometer and gyroscope value from BMI160 sensor. I have used this BMI160 library 

I alter the TWI_SENSOR code and it works for self testing ACC code. but i need to calibrate the x, y, z axis value and i want to add BLE stack to read in mobile app.

1. How to collect all the X,Y,Z axis value

2. i need to see the LOGS in Bluetooth app by using BLE_UART. how to edit the BLE_UART code to get the respective ACC and GYRO value in BLE APP.

Is there any code for reading X,Y,Z axis for BMI160??

Parents Reply Children
  • I print the data which in Acc_i2c_Read() and Acc_i2c_Write();

    <info> app: BMI160 get started.

    <info> app: success
    <info> app: READ: dev_id: 69 reg_addr: 0 reg_data: 200006D0 len: 1

    <info> app: WRITE: dev_id: 69 reg_addr: 7E reg_data: 2000FFBF len: 1

    <info> app: BMI160 Initialized...

    <info> app: READ: dev_id: 69 reg_addr: 40 reg_data: 2000FFC4 len: 2

    <info> app: WRITE: dev_id: 69 reg_addr: 40 reg_data: 2000FFC4 len: 1

    <info> app: WRITE: dev_id: 69 reg_addr: 41 reg_data: 2000FFC5 len: 1

    <info> app: READ: dev_id: 69 reg_addr: 42 reg_data: 2000FFC4 len: 2

    <info> app: WRITE: dev_id: 69 reg_addr: 42 reg_data: 2000FFC4 len: 1

    <info> app: WRITE: dev_id: 69 reg_addr: 43 reg_data: 2000FFC5 len: 1

    <info> app: READ: dev_id: 69 reg_addr: 40 reg_data: 2000FFAE len: 1

    <info> app: WRITE: dev_id: 69 reg_addr: 7E reg_data: 200006D4 len: 1

    <info> app: WRITE: dev_id: 69 reg_addr: 7E reg_data: 200006DC len: 1

    <info> app: READ: dev_id: 69 reg_addr: 2 reg_data: 2000FFC4 len: 1

    <info> app: READ: dev_id: 69 reg_addr: 2 reg_data: 200006BC len: 1

    <info> app: setup result is : 0
    <info> app: sensor Configured...

    <info> app: READ: dev_id: 69 reg_addr: 40 reg_data: 2000FF94 len: 2

    <info> app: WRITE: dev_id: 69 reg_addr: 40 reg_data: 2000FF94 len: 1

    <info> app: WRITE: dev_id: 69 reg_addr: 41 reg_data: 2000FF95 len: 1

    <info> app: READ: dev_id: 69 reg_addr: 42 reg_data: 2000FF94 len: 2

    <info> app: WRITE: dev_id: 69 reg_addr: 42 reg_data: 2000FF94 len: 1

    <info> app: WRITE: dev_id: 69 reg_addr: 43 reg_data: 2000FF95 len: 1

    <info> app: READ: dev_id: 69 reg_addr: 2 reg_data: 2000FF94 len: 1

    <info> app: WRITE: dev_id: 69 reg_addr: 40 reg_data: 2000FFBC len: 1

    <info> app: WRITE: dev_id: 69 reg_addr: 6D reg_data: 2000FFBC len: 1

    <info> app: READ: dev_id: 69 reg_addr: 12 reg_data: 2000FF80 len: 6

    <info> app: WRITE: dev_id: 69 reg_addr: 6D reg_data: 2000FFAF len: 1

    <info> app: READ: dev_id: 69 reg_addr: 12 reg_data: 2000FF80 len: 6

    <info> app: WRITE: dev_id: 69 reg_addr: 7E reg_data: 2000FF97 len: 1

    <info> app: ACCEL SELF TEST RESULT SUCCESS

    <info> app: WRITE: dev_id: 69 reg_addr: 7E reg_data: 200006DC len: 1

    <info> app: READ: dev_id: 69 reg_addr: 6D reg_data: 2000FFBC len: 1

    <info> app: WRITE: dev_id: 69 reg_addr: 6D reg_data: 2000FFBC len: 1

    <info> app: READ: dev_id: 69 reg_addr: 1B reg_data: 2000FFBC len: 1

    <info> app: WRITE: dev_id: 69 reg_addr: 7E reg_data: 2000FF97 len: 1

    <info> app: gyro SELF TEST RESULT SUCCESS

    <info> app: READ: dev_id: 69 reg_addr: 12 reg_data: 2000FFC8 len: 6

    <info> app: x is 0

    <info> app: READ: dev_id: 69 reg_addr: C reg_data: 2000FFC8 len: 6

    <info> app: rslt:0, data: 0

  • This give no indication if the data is actually transmitted on the bus, it only show that the function is called. 

  • I tried but i don't know how its work.?

    If you know please help me to get the data...

  • i try to access acclerometer X value

    #define BMI160_ACCEL_DATA_ADDR        UINT8_C(0x12)   // defined in bmi160_defs.h

     and output side

    <info> app: BMI160 get started.

    <info> app: success
    <info> app: BMI160 Initialized...

    <info> app: setup result is : 0
    <info> app: sensor Configured...

    <info> app: ACCEL SELF TEST RESULT SUCCESS

    <info> app: gyro SELF TEST RESULT SUCCESS

    <info> app: x is 0

    <info> app: rslt:0, data: 0
    <error> app: Fatal error

  • You seems to be getting a Fatal Error. Have you debugged to figure out what is causing it?