Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    for BHI160 . how can I customize the firmware.

    for BHI160 . how can I customize the firmware.

    Eyalb
    Established Member

    for BHI160 . how can I customize the firmware.

    I use the BHI160 and it works fine unless starvation occures.

    I use vxworks and I run the gyroscope example as a system task with mid priority, and I get interrupt from the BHI160 and read the fifo each 10 mili-sec.

    the interrupt I get run semGive and the example waits on semTake.

    It works fine until I have starvation and I am not reading the fifo at a certain time. then I don't get interrupts any more.

    also, if I read the fifo available size it is zero.

    I may have to debug the firmware for the BHI160 to find out the problem and to restart the gyro data.

    please help. I don't know how can I have any kit to create my own firmware. 

    thanks.

     

    4 REPLIES 4

    BSTRobin
    Community Moderator
    Community Moderator

    Hi Eyalb,

    BHI160 didn't support to customize the firmware as the SDK was not opened.
    When an hardware interrupt is triggered, it must be ensured that the interrupt is responded to (read FIFO). Otherwise, you can also read the interrupt status register and FIFO via polling method.

    Eyalb
    Established Member

    hello. the problem is that the imu stop sending data. the fifo size becomes zero. If I am running polling it is not helping the situation.

    so what can I do ?

    thanks.

    Eyalb
    Established Member

    Is it a WAKEUP / NON WAKEUP issue ? if I poll I have to set the NON WAKEUP ?

    thanks.

    BSTRobin
    Community Moderator
    Community Moderator

    Hi Eyalb,

    Can you capture the hardware communication waveform (I2C) after loading the firmware and see if the correct data has been read from the FIFO?

    You can also refer to attached example code on STM32 as it run well with FIFO poll or FIFO interrupt.

    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