IIS2DH Activity/Inactivity threshold setting
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2018-01-19 8:15 PM
Hi, I have configured accelerometer's registers as follows. So, from the activity threshold value how I know that at which raw value of X, Y, and Z axis it will be interrupted on a specific pin?
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
response = LIS3DH_SetODR(LIS3DH_ODR_10Hz);
if(response==1){ print('SET_ODR_OK\r\n'); } response = LIS3DH_SetMode(LIS3DH_LOW_POWER); if(response==1){ print('SET_MODE_OK\r\n'); } response = LIS3DH_SetFullScale(LIS3DH_FULLSCALE_2); if(response==1){ print('SET_FULLSCALE_OK\r\n'); } response = LIS3DH_SetAxis(LIS3DH_X_ENABLE | LIS3DH_Y_ENABLE | LIS3DH_Z_ENABLE); if(response==1){ print('SET_AXIS_OK\r\n'); } response = LIS3DH_SetFilterDataSel(MEMS_ENABLE); if(response==1){ print('Filter Data Selection enable\r\n'); } response = LIS3DH_SetInt2Pin(LIS3DH_INT_ACTIVITY_ENABLE|LIS3DH_INT_ACTIVE_LOW); if(response==1){ print('ACTIVITY enable\r\n'); } response = LIS3DH_SetInt2Configuration(LIS3DH_INT2_OR|LIS3DH_INT2_ZHIE_ENABLE|LIS3DH_INT2_ZLIE_ENABLE|LIS3DH_INT2_YLIE_ENABLE|LIS3DH_INT2_YHIE_ENABLE|LIS3DH_INT2_XLIE_ENABLE|LIS3DH_INT2_XHIE_ENABLE); if(response==1){ print('INT2 configuration\r\n'); } response = LIS3DH_ActThreshold(0x08); if(response==1){ print('ACTIVITY threshold set\r\n'); } response = LIS3DH_SetActDuration(0x0a); if(response==1){ print('ACTIVITY duration set\r\n'); }/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
I have set 0X08 into act threshold register so at which raw data on X,Y,Z axis I will get interrupt. Moreover, I have also disable two axis and tried to getting interrupt only on specific axis but the it will not working properly. So, could you help me to do this? Thanks.
- Labels:
-
Accelerometers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2018-01-24 2:14 AM
First of all, this is nonsesne:
LIS3DH_SetInt2Configuration(LIS3DH_INT2_OR|LIS3DH_INT2_ZHIE_ENABLE|LIS3DH_INT2_ZLIE_ENABLE|LIS3DH_INT2_YLIE_ENABLE|LIS3DH_INT2_YHIE_ENABLE|LIS3DH_INT2_XLIE_ENABLE|LIS3DH_INT2_XHIE_ENABLE);
This condition is always true, because you enable both cases 'higher than' and 'lower than' threshold.
Which axis reach the threshold can be found in INT1_SRC or INT2_SRC registers.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2018-01-24 6:00 AM
Hi Miroslav, my requirement is to when some movement occurs accelerometer will wake up. So, that is why I have configured for both the event for threshold and in my case, I have used activity interrupt and as per data sheet, only INT2 will be used for activity threshold. How I configure accelerometer for any movement occurs it will wake up? Could you explain if
I have set 0X08 into act threshold register so at which raw data on X, Y, Z axis I will get interrupted?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2018-01-26 10:47 AM
Here is description of the interrupt threshold, the value is related to used Full Scale.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2018-01-28 9:54 PM
Thank you. That means if I set the threshold to 0x08 for +-2g full scale than 16*8=128mg value is set for threshold value. Am I right or wrong?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2018-01-29 2:16 AM
Yes, that is correct.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2018-01-29 9:45 PM
Thanks for the clarification. However, working of activity threshold setting for INT2 pin is not proper. I have set +-2g, 50Hz ODR , a low-power mode with FDS bit enable in CTRL_2 register and value for INT2_Config register only Y high event enable, act threshold value is 0x08. Whenever I have got interrupted on the pin and I have read X, Y, Z axis data:
x=0,y=1,z=1 so from this value of Y-axis how we say that threshold is the overpass. Because if we consider Y=1 means 1*16=16 mG and we set 8*16= 128 mG.
