I will use ADXL313 as alarm sensor.
Regarding to the Auto Sleep Mode, I have some question.
I checked the datasheet but, I couldn't make it clear yet.
1) About interrupt.
･After inactivity interrupt, it will be changed to Auto Sleep Mode.
After activity interrupt during Auto Sleep Mode, it will be changed to Measurement Mode from Auto Sleep Mode.
･Or it needs that the host(MPU) change to Measurement Mode by INT1/2(from ADXL313).(Use POWER_CTL register.)
INT1/2 will be assigned to activity interrupt by INT_MAP register.
The activity interrupt is used as only indicator during Auto Sleep Mode.
Which understanding is correct?
2) About Wake Up Bits in POWER_CTL register.
･This bits(data rate) will be used as timing of FIFO/Data register(XYZ) and
･Or this bits(data rate) will be used as timing of activity interrupt.
3) About updating FIFO and Data register (XYZ) during Auto Sleep Mode.
･The Data register(XYZ) will be updated with Wake Up Bits(data rate).
But, FIFO data is held in the contents of the interrupt before. (Not updated.)
･Or FIFO and Data register (XYZ) are not updated.
These data are held in the contents of the interrupt before.
4) Software compatibility (ADXL312/313)
I have used ADXL312 without Sleep Mode before.
Are both devices(ADXL312/313) have software compatibility?
I will evaluate with ADXL313 evaluation board soon.
And Auto Sleep Mode information is needed for Host (MPU) firmware.
1. After inactivity interrupt, it will be changed to Sleep Mode.
After activity interrupt during Sleep Mode, it will be changed to Measurement Mode from Sleep Mode.
As it is named Auto Sleep Mode, you do not need to use MCU to change mode. You just need to initialize it correctly.
Below is the suggestions for the auto sleep mode.
a. You need to enable both activity interrupt and inactivity interrupt by configuring INT_ENABLE register.
Of course, the threshold, INT_MAP... need to be configured too.
b. You need to set D5, D4 and D3 bit of POWER_CTL register for auto sleep mode.
2. wake up bits is used to configure the ADC sampling rate in sleep mode.
3. Both FIFO and data register will be updated during the auto sleep mode.
4. They are compatibility basically, just some difference on part ID registers.
Thanks.I could understand it well.
I have additional question about Auto Sleep Mode in AXL313.
5) About FIFO during Auto Sleep Mode.
In that case, is Trigger Mode in FIFO supported?
I think that maybe it will be supported.
So I'm asking this question, just in case.
6) About current consumption during Auto Sleep Mode.
How much is actual current consumption at 8 Hz sample rate?
Because, according to ADXL313 datasheet (ReV.A:Page9),
"Current consumption at less than 10 Hz data rates used in this mode is typically 55 μA for a VS of 3.3 V."
Also, according to ADXL312 datasheet (ReV.0:Page11),
"Current consumption at the sub-8 Hz data rates used in this mode is typically 30 μA for a VS of 3.3 V."
Is actual current consumption at 8 Hz same as ADXL312's data (=30uAtyp) or not?
1, Yes, trigger mode FIFO can be used. You can use the corresponding interrupt to trigger it.
2. 55uA is a good assumption. The lowest current could be 30uA but this cannot be guaranteed for every single part.
If power consumption is very important for your application, you can check ADXL362, its power consumption is only around 2uA @ 100Hz output data rate.
I've tried data updating during Auto Sleep Mode based on your comment and advice.
I could change to Sleep/Measure Mode by ACT/INACT interrupt.
But about the data updating during Auto Sleep Mode,
･It seems that DATA_RAEDY interrupt is not output
･I could confirm to update with DATA(X/Y/Z) register manually.
(But I'm not sure that whether its data is correct truely.)
During Auto Sleep Mode,
1) Will the DATA_RAEDY interrupt be output or not?
2) If it's not output, how does it confirm to data updating without DATA_RAEDY interrupt?
3) In case of FIFO mode, how does it confirm to FIFO updating ?
Now I'm checking the register setting and sequence.
I did not have ADXL313 in hand to double confirm your condition. But I have tried other similar part ADXL362, below is the test result.
1. DATA_READY interrupt can be generated in sleep mode. Of course, in normal measurement mode, the interrupt will be generated too.
2. You can read STATUS register to check whether the data is ready.
3. You can use watermark interrupt in FIFO mode.