Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    BMI160 driver asking for 0 bytes

    BMI160 driver asking for 0 bytes

    arurke
    Established Member

    We have experienced the BMI160 driver (https://github.com/BoschSensortec/BMI160_driver/) calling read() with a length of 0. What should the read() function we supply return in these cases? BMI160_OK?

    7 REPLIES 7

    one more comment:

    maybe it is better to add a judgement in function :

    static int8_t get_fifo_byte_counter(uint16_t *bytes_to_read, struct bmi160_dev const *dev)
    {

    ..................
        *bytes_to_read = (((uint16_t)data[1] << 😎 | ((uint16_t)data[0]));

    // add judgement here:

    if(0 !=*bytes_to_read )

        rslt = BMI160_OK;

    else

    rslt = BMI160_E_INVALID_INPUT;

    return rslt;

    }

    arurke
    Established Member

    Yes, your final proposal seems to make sense.

    On a related note: We do occasionally get 0 in the fifo byte counter, even though we expect there to be a lot of data in the FIFO. Any particular situation this could happen? Any specific spot we should start debugging you could point to?

    The FIFO can be read by polling mode and interrupt mode.
    during interrupt mode, once the fifo water or full interrupt is triggered,there are data in the fifo. the fifo length will not be 0.
    during polling mode, make sure that the accessing fifo interval is grater than one frame.
    which mode are you using?
    can you record the normal working flow by salea logic analyzer then upload to the community?
    if lucky, better to upload the waveform while issue happens.
    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