I'm using the BHY1_driver_and_MCU solution from github. My HW application uses a SiLabs MCU/radio with the BMI160B part.
I have implemented the "bhy_support.c" functions (sensor_i2c_read, sensor_i2c_write, bhy_delay_msec and bhy_printf (BHY_MCU_REFERENCE_VERSION "1.1.1.0" from bhy_uc_driver_config.h) for my SiLabs project. I used the fw file For BHI160 B: Bosch_PCB_7183_di03_BMI160-7183_di03.2.1.11824 and used the utility to convert the bin to hex array in the header file.
I am able to see the bytes from the .h file on a Saleae I2C serial protocol analyzer, so looks like the programming is happening correctly from the driver. But I can only get CRC error. In bhy_initialize_from_rom() v_crc_from_memory_u32 = 0x7a4cc291, but v_crc_host_u32 is 0xffffffff, which causes the function to return with -6 (BHY_CRC_ERROR)
How can i confirm i am using the correct RAM file to load? Also is that ram file correct if I need to use the VS_Accelerator profile? I'm mostly interested in raw acceleration data for my application. Any other suggestions for troubleshooting loading the correct RAM file?
(I have tried I2C bus speeds 100k, 400K and 1M - all the same results)
Thanks.
Hello Robwhy,
Have you tried the firmware in the example program directory?
https://github.com/BoschSensortec/BHy1_driver_and_MCU_solution/tree/master/examples