Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    BMA456 fifo_err flag not working

    BMA456 fifo_err flag not working

    augusto1
    Member

    Hello,

    I'm using a BMA456 and i'm having trouble with the fifo_err flag in the ERR_REG ( 0x02 ) register.

    The device is configured as follows:

    •  Accelerometer
      • Nominal sampling frequency is 1600 Hz
      • Range is +/- 2G
      • Mode is set to high-performance
    • FIFO 
      • Overwrite when full
      • Unfiltered data with no downsampling
      • Headerless mode

    I'm performing a test where i let the FIFO overflow but the flag is never set. The FIFO seems to be working fine and filling.

    Am i missing some configurations?

    I'm using a custom driver for space constraints but i based the logic on your example fifo_full_headerless_mode.

    I suspect that the problem may be that i'm not initializing the ASIC but i'm following your example which doesn't initialize it either.

    Thanks for the support.

    8 REPLIES 8

    Update.

    Is it possible to have something even close to an answer on this forum?

    BSTRobin
    Community Moderator
    Community Moderator

    Hello augusto1,

    If you set ODR to 1600 Hz, FIFO cannot be read out in time and will soon be full.
    This example demonstrates the use of FIFO when using 100 Hz ODR. https://github.com/BoschSensortec/BMA456-Sensor-API/blob/master/examples/bma456/generic/fifo_waterma...

    Thanks for the reply.

    I have no problem reading the FIFO at 1600Hz, i'm running the SPI at 8 MHz and reading the fifo every 40 ms, 64 samples.

    Like I said before i would like to use the fifo_err flag to determine if for some reason the fifo overflowed but is doesn't seem to work.

    Is it possible that this function is available only when the ASIC is initialized?

    BSTRobin
    Community Moderator
    Community Moderator

    Hello augusto1,

    You could see the following description in data sheet, FIFO_CONFIG_0.fifo_stop_on_full was used for FIFO overflow. If the FIFO overflows, the INT_STATUS_1.fful_int flag bit will be set to 1.

    If the rate of reading FIFO is lower than that of filling FIFO, ERR_REG.fifo_err flag will be set to 1.

    FIFO conditions and details.png

     

    FIFO full int.png

    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