cancel
Showing results for 
Search instead for 
Did you mean: 

LIS3DH High Resolution Threshold

HPras
Associate II

Hi Community,

I am using Lis3dh sensor in 50HZ ODR, High Pass filter enabled with cut-off frequency 0.1 HZ with full scale range 8G and FIFO is enabled and set FIFO-to-Stream Mode.

Case 1:

I get interrupts for small events Normal Mode(HR bit is not set) for the same threshold and when i see the x,y,z axis value is more than the threshold.

Case 2:

With HR Bit enabled , I am not getting the interrupt for the same small event for the same threshold which means that event didn't cross the threshold.

I am sure both time same events only happened.

As per Datasheet and Application note, that Output value only will be in 12-bit in High resolution mode.

Is there HR bit anyway related to do with Threshold?

Please help me .

Thanks,

Hari

1 ACCEPTED SOLUTION

Accepted Solutions

Hi @Community member​ ,

thank you for confirming that the issue was not in the initialization.

I think that the problem could be that the trigger is at a frequency that is not seen from the sensor.

Let me explain myself: as stated in page 16 of the datasheet the HR mode make you use a reduced bandwidth that is ODR/9 (in your case it is 5.5Hz), opposed to the BW in Normal mode that is ODR/2 (25Hz in your case).

So, if the trigger has a frequency between 5.5Hz and 25Hz it can get lost between samples.

Can this be the issue?

(It is to be noted that the HR mode was meant to be used to enhance resolution in DC component, not in high frequency vibrations)

View solution in original post

15 REPLIES 15
niccolò
ST Employee

Hi @Community member​ ,

no, the threshold value is related only to the FS value.

Are you sure that the rest of the configuration is the same in both your work cases?

maybe you can check the registers after both start ups, with a whole reading to check for differences.

Hi @niccolo.ruffini​,

tried reading all the register after the initialisation with and without High resolution bit enabled. I not seeing any other register value changing except output register OUTXH,OUTYH,OUTZH,OUTXL,OUTYL,OUTZL in either of the cases.

Thanks,

Hari Prasath

Hi @Community member​ ,

thank you for confirming that the issue was not in the initialization.

I think that the problem could be that the trigger is at a frequency that is not seen from the sensor.

Let me explain myself: as stated in page 16 of the datasheet the HR mode make you use a reduced bandwidth that is ODR/9 (in your case it is 5.5Hz), opposed to the BW in Normal mode that is ODR/2 (25Hz in your case).

So, if the trigger has a frequency between 5.5Hz and 25Hz it can get lost between samples.

Can this be the issue?

(It is to be noted that the HR mode was meant to be used to enhance resolution in DC component, not in high frequency vibrations)

Hi @niccolo.ruffini​ 

Thanks for the support.

I have one more doubt regarding 6D feature.

I want to detect the 6D orientation as well as the acceleration change. Whenever i get the interrupt, Is there any way to distinguish between 6D orientation interrupt and acceleration change interrupt?

Thanks,

Hari Prasath

Hi Hari (@Community member​ ),

I'm not sure what you mean by acceleration change, but I'll try to answer you. If I got that wrong, please, try to let me understand.

If you want to get the acceleration values when the interrupt of the 6D orientation is triggered, I would read the actual value in an interrupt sub routine, without using other interrupts.

Otherwise, if you want to have another interrupt for another event, you can configure the 6D orientation interrupt on INT1 an your other interrupt on INT2, so that they are two separate entities. This way you will have two different pins triggered by different events.

In the case you do not have two pins available for interrupts, you can set all interrupts on INT1, and check in the interrupt routine, which is the event that triggered the interrupt reading register INT1_SRC (31h).

hope this helps!

Hi @niccolo.ruffini​ ,

Acceleration change means other events other than 6D which trigger the interrupt.

I configured the INT1 pin for other events and INT2 pin for 6D movement recognition. Enabled High pass filter on INT1 alone. Threshold for INT1 pin is 1.6g and for INT2 pin is 0.3g.

Whenever the orientation change happens, INT2 is getting triggered and there is no interrupt on INT1 pin. But When the INT1 is triggered for other event which is not a orientation change, INT2 also getting triggered for that event.

I want INT2 pin to be triggered only for orientation change. Is this possible?

Thanks,

Hari Prasath

Hi Hari @Community member​ ,

Maybe the threshold for the orientation change is too small.

Try to increase it with different combination and let me know if it gets better.

Hi @niccolo.ruffini​ ,

I think you didn't get my question.

Is it possible to detect 6D orientation alone in INT2 pin?

Because I am getting other event interrupt also in INT2 pin.

Thanks,

Hari Prasath

Hi Hari @Community member​ ,

yes, it is possible to have only 6D orientation on INT2 pin.

On the other hand, the interrupts are independent. So, if you trigger a 6D orientation AND an acceleration change both interrupts will trigger.

Note that when you have a 6D orientation interrupt is normal to also get an acceleration interrupt. One way of fixing this is routing both triggers on INT1, and when the interrupt comes you check whether it comes from acceleration change alone (so you can perform the right routine) or both of them (so you execute 6D routine).

Does this help you?