Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BMA400 Generic Interrupt reference update not working (manual and one-time, vs every time)

    BMA400 Generic Interrupt reference update not working (manual and one-time, vs every time)


    While testing the BMA400, the reference values do not update correctly.
    I'm  using Development Desktop 2.0 with the BMA400 shuttle board to test the Generic Interupt functions.
    Both GEN1 and GEN2 are enabled. 
    They are configured the same, except for the "activity reference update": 
    - GEN1 is set for "every time by data source"
    - GEN2 is set for "one time".


    I constantly move the board around, while pressing "Read".
    - The reference values for GEN1 update as expected. 
    - The reference values for GEN2 do not update at all.  It behaves the same as "manual" mode.

    I have confirmed that GEN2INT_CONFIG0.act_refu=01.

    Updating the  reference values "every time" means that slow changes are not detected.  For this, we need "one time".  
    "Manual" updates would work, but this increases the MCU comms traffic.  Is there another solution?

    I have new insight, but it does not solve the problem.  

    I am now playing with the "manual update" mode.  I can write to the reference registers (0x53, 0x54).  
    However, once written, the registers cannot be changed while the interrupt is enabled.

    In the datasheet, section 4.7:
    "Any change of an interrupt configuration must be executed when the corresponding interrupt is disabled." 

    So, to change the reference values in "manual update" mode:
    1.  disable the interrupt
    2.  change the register value
    3.  enable the interrupt.  (Oddly, we need to enable the interrupt to make the change appear in the register.)

    Using this information, I tried the "one time" update mode again.
    The "one time" update mode works, but only by toggling the interrupt "enable" bit, off and on, each time the interrupt fires.

    Is this how it was designed?  This seems bizarre.  

    Additionally, toggling the "enable" bit causes the reference registers to update, even if the interrupt has not fired. 
    This is not expected behaviour.

    9 REPLIES 9

    Community Moderator
    Community Moderator

    Hello dsherman, 


    Sorry for not clarifying it to you. 

    I just checked your question and I want to clarify the your question. 

    The main difference between one shot and manual mode is reference will be updated after entering normal mode when you use one shot mode. 
    The reference value in manual mode is set as long as you keep it even though power mode is changed to normal from sleep or low power.  
    However, the reference value in one shot mode will be updated if the power mode is changed to normal from sleep or low power.  
    Here is the my test step. 
    1) Set same reference value for Gen 1 and Gen 2.  (Gen 1- Manual , Gen 2 - One shot)
    2) Move board and make interrupt
    3) Stop the board and hold the board ( Gen 1 and Gen 2 generating interrupt) 
    4) Change power mode as low power 
    5) Turn to normal mode (you should hold the board )
    6) Gen 1 is still generating interrupt, but Gen 2 interrupt should be turned off since the reference value is updated 
    7) You can read the updated value as below. 


    One more thing, yes, every time by data sourse is reference value is updated in normal mode. 

    Please let me know if you have any questions. 

    Thank you. 

    Hi Minhwan,

    What you say is correct.  This is how the product works.

    What I say is also correct.  The documentation is wrong.  The documentation says the one-time mode should update the reference values after each interrupt.  Instead, it updates after each wake-up event.  This is not the same thing.



    Community Moderator
    Community Moderator

    Hello dsherman, 


    I got your point. I could reproduce your issue and reported it to HQ. 

    Sorry for delay your issue for a long time. 

    Please let me know if you have further question. 

    I will keep tracking this issue. 


    Community Moderator
    Community Moderator

    Hello dsherman, 


    We confirm that reference value of x,y,z aren't be updated every time after triggering the generic interrupt if we select one time mode in acc normal mode.

    Reference is updated after entering normal mode. 

    We will update datasheet later. 

    Please let me know if you have any questions. 

    Thank you. 

    Community Moderator
    Community Moderator

    I checked this issue with HQ and HQ will update this one in new datasheet (Not decided when).

    So I closed this issue. 

    Thank you for finding it and sorry for late feedback.