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

nrfx_TWI to access Bosch BNO055... low-level ops needed

I'm using nRF52832 and intend to interface 3 I2C slave devices; the first is the BNO055 IMU.

I've integrated the Bosch "driver" code into my SES project, but I find that their "low-level" code

(that would actually use the I2C) is just "stubs".  The key methods that need to be implemented

are: 

BNO055_I2C_bus_write and BNO055_I2C_bus_read.

My intent was to plug in "TWI" operations to accomplish this; I've gone 'round and 'round with

all of the "TWI legacy" stuff like "nrf_drv_twi_xxx" vs "nrfx_twi_xxx" and believe that the "nrfx..."

(under "..\modules", not "..\components" (which seems "deprecated") is probably the way to go.

But I'm kinda stuck here.   Some questions:

  a) is this the right way to proceed?

  b) has anyone already done this? ("nrfx TWI" to BNO055)

  c) If I'm using nRF52832 as "master", I'm thinking that I don't need any of the "TWIS" mechanism,

   as I'm only talking to external "slave" devices, not trying to use the '52 "as" a slave, correct?

  d) will H/W TWI deal with async responses from multiple I2C slaves "concurrently" (I'm unclear

on how "arbitration" might work in this scenario), or must I resort to synchronous, sequential "polling"

style of device access?

Thanks so much for any direction & suggestions!

Jim

Parents
  • Hi,

    I am currently trying to make the BNO055 running with my nRF53832-DK... I guess I know the theory about I2C and I also understood the section in the datasheet of the BNO sensor. But I have absolutely no idea how I have to implement the BNO055_I2C_bus_write and BNO055_I2C_bus_read functions in my Keil project... 

    Did someone write these functions and would be willing to share them? This would be very helpful for me to learn how it really works.

    Greetings from Switzerland

    Michael

Reply
  • Hi,

    I am currently trying to make the BNO055 running with my nRF53832-DK... I guess I know the theory about I2C and I also understood the section in the datasheet of the BNO sensor. But I have absolutely no idea how I have to implement the BNO055_I2C_bus_write and BNO055_I2C_bus_read functions in my Keil project... 

    Did someone write these functions and would be willing to share them? This would be very helpful for me to learn how it really works.

    Greetings from Switzerland

    Michael

Children
No Data
Related