Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    BMI160 bmi160_init() fails intermittent with error BMI160_E_DEV_NOT_FOUND

    BMI160 bmi160_init() fails intermittent with error BMI160_E_DEV_NOT_FOUND

    Galazar
    Occasional Visitor

    We are using the SPI mode. The initialisation of the BMI160 sometimes fails with the error BMI160_E_DEV_NOT_FOUND from the function bmi160_init(). After a power cycle the device is detected again. A hardware issue is very unlikely. In the source code of the function bmi160_init() is a retry loop. Tag: bmi160_v3.9.2, file_bmi160.c, line: 1487 to 1491.
    Questions:
    Why is the loop there?
    Does the device sometimes not answer the first communication?
    Is this a known issue of the BMI160?

    1 REPLY 1

    BSTRobin
    Community Moderator
    Community Moderator

    Hi Galazar,

    Loop code is not necessary, it is just a reference code in the sensor API. You can only execute the code to read the Chip ID once. Because before reading the Chip ID, the following code has already been run to enable the SPI interface. BMI160 has been in use for many years and has not experienced any issues with reading Chip ID.
    We suggest that you use a logic analyzer to capture the hardware communication waveform of SPI, and analyze the SPI timing to check if there is an issue with the SPI command sent by the host or if the BMI160 is not responding.
    /* Dummy read of 0x7F register to enable SPI Interface
    * if SPI is used */
    if ((rslt == BMI160_OK) && (dev->intf == BMI160_SPI_INTF))
    {
    rslt = bmi160_get_regs(BMI160_SPI_COMM_TEST_ADDR, &data, 1, dev);
    }

    Additionally, BMI160 has been discontinued and is not recommended for use in new designs. You can use BMI323, BMI270 or BHI260AP, BHI360, etc.  in your new design according your application.

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist