2021-05-24 02:44 AM
I programmed a h3LIS100DL to an interrupt threshold of 4G. Then I breathed on the chip and got an interrupt.
I expect it doesn't have a hidden Rh sensor somewhere, so it has to be related to a temperature change. Is there any documentation available on this somewhere? I couldn't find anything in the data sheet.
2021-05-24 06:05 AM
Hi @PArve.1 ,
please note first that the H3LIS100DL is designed to detect mechanical shocks of several g, so it might suffer some noise when trying to detect small signals (compared to the 100g full scale).
This device has only a 8-bit resolution depth, so its sensitivity (and the LSB) is about 780mg.
Which value did you set in the INT1_THS (32h) register? Please note also that the threshold LSB is double than the sensitivity.
Moreover, the typical offset is already ±1.5g, and this can affect the actual value of the signal in the few g range.
Last, the sensitivity can vary of some milli-g from T ambient to -let's say- 37°C, according the the performances declared in the datasheet p.9.
So -in the case the device is not damaged- my guess is that the baseline noise is just below the threshold and the thermal shock increases it just enough to trigger the interrupt.
Could you please share the data together with an acquisition of the temperature variation, if possible?
-Eleon
2021-05-24 08:16 AM
The threshold is set like
INT1_THS = (level /78 );
where "level" = g*100 (e.g for 4g, "level" would be 400).
I assumed this since only 7 bits in INT1_THS is actually valid, so + (or -) 100g would represent a register value of 127. Since 100/127=0.7878402 I used the resolution 0.78/bit as stated in the data sheet. I also assumed that the chip would give an interrupt if the absolute value of X,Y or Z > INT1_THS.
E.g if
INT1_THS=5
Z=-4g
we would get an interrupt, since 4g*127/100=5.
Is this correct?
We'll do some more detailed testing in a climate chamber later, just wanted to check if there were anything written on this subject.
2021-06-04 01:13 AM
I did a simple dump to a serial port of the raw data from the registers (in signed unscaled format). ODR=400Hz but the serial port is only running at 2400bps, and each line is 12 chars, so one X,Y,Z triplet gets out approx. each 45ms. Rh=21%, T=21C.
The offset seem to be about -0.5 (raw), and the Z axis holds the earth gravity of 1g.
When I breathe on the sensor, I get a displacement of up to 4 raw (3.12g). Adjusting for the offset we'd see a peak of 3.5g (2.5g adjusting for earth gravity).
Its a bit odd that it is mostly Z that is affected. Note that the effect stays on for some time (the serial port reports samples quite slow).
This effect disappears if the data is AC filtered (CTRL2 = (0<<5) | (1<<4) | (1<<2) | 3). The earth gravity also disappears, and the raw data from all axes flicker between 0 and -1 mostly. But AC coupling also reduces peak height/width when the sensor see a "real" impact.