BMI160 firmware upload fails with BHY_CRC_ERROR

Hi,

I have setup where is nRF52840+Zephyr and BHI160B is connected to with i2c @400kHz. BMM150 is connected to BHI160B.

Most of the BHI160-codes are from: https://github.com/BoschSensortec/BHy1_driver_and_MCU_solution

Firmware for upload with bhy_initialize_from_rom() is: Bosch_PCB_7183_di03_BMI160_BMM150-7183_di03.2.1.11696_170103.h

Normal booting sequence is going fine, but bhy_get_crc_host(v_crc_host_u32) returns v_crc_host_u32 = 0xFFFFFFFF. Return value itself is BHY_SUCCESS.

During the firmware upload (and only time) INT is going low for 5ms, which is abnormal as FW is not uploaded yet. Normally INT reason is not read here, but bhy_get_chip_status() in ISR claims that firmware_idle and no_eeprom are set by 1.

Overall boot and FW upload:

Begin of FW upload:

End of FW upload:

Any thoughts, what can be wrong here?

Best reply by tonyh

Problem solved. Correct read/write method found from Bosch's bsec.c.

View original
11 replies
Resolved