ADXL362 Accelerometer
Contents
Description
The ADXL362 from Anaolg Devices is described in the datasheet (Page 1) as an ultra-low-power, 3-axis MEMS Accelerometer that consumes less than 2µA at a 100Hz output data rate and 270nA when in motion triggered wake-up mode
.
This accelerometer is described as being suitable for use in hearing aids, home healthcare devices, motion enabled power saving switches, wireless sensors and motion enabled metering devices.
The ADXL362 measures acceleration with a capacitive type sensor.
The values in the following table have been sourced from the product datasheet.
| Parameter | DIS3DH |
|---|---|
| Package and size | 16-lead LGA package, footprint 3mm x 3.25mm x 1.06mm. |
| Operating voltage range | 1.6V to 3.5V |
| Supply current (typically) 100Hz ODR |
Normal operation: 1.8µA Low Noise mode: 3.3µA Ultra Low Noise mode: 13µA Standby: 0.01µA |
| Cross axis sensitivity | Typically ±1.5% |
| Nonlinearity % of full scale |
Typically ±0.5% |
| Zero-g level offset accuracy | XOUT, YOUT -150mg / +150mg ZOUT -250mg / +250mg |
| Measurement ranges | ±2g, ±4g, ±8g Default is ±2g. |
| Output resolution | 12-bit |
| Sensitivity (typically) | 1 mg/LSB (±2g) 2 mg/LSB ((±4g)) 4.255 mg/LSB (±8g) |
| Output data rate (ODR) | 12.5Hz to 400Hz in 6 programmable steps |
| Serial interfaces | SPI with clock speeds 1MHz to 8MHz |
Using the ADXL362's SPI Interface
SPI is the only interface offered by this accelerometer. The datasheet's instructions for its use are quite clear and simple. Allowable clock speeds are 1MHz to 8MHz. Burst read and writes are permitted.
Writing to ADXL362 registers
- Write the write instruction byte 0x0A
- Write the first register's address
- Write 1 to n data bytes
Reading ADXL362 registers
- Write the read instruction byte 0x0B
- Write the first register's address
- Read 1 to n data bytes
During burst (multiple bytes) read or writes, the ADXL362 automatically increments the register address after each byte read or written.
Acceleration Sampling Options
This accelerometer has a useful set of sampling options that the user may choose to configure.
Operating modes
-
Standby
Very low current consumption mode (typically 0.01 µA) where data conversions are stopped but the SPI interface is still available. This is the default mode after the power-up sequence has completed. -
Wake-up Mode
This mode is designed for simple detection of absence or presence of motion. This makes it suitable in applications such as motion-activated on/off switches. Power consumption is very low, typically around 0.27 µA current draw. -
Measurement mode
This mode is the normal operating mode of the ADXL362. Acceleration data is read continuously and output at an output data rate (ODR) that is user selectable between 12.5Hz and 400Hz. Current consumption is typically less than 3 µA. Acceleration values are available at 12-bit resolution.
Additional User Selections
-
Acceleration ranges
Ranges available: ±2g, ±4g, ±8g. Default is ±2g. -
Output data rate (ODR)
The output data rate is user selectable from 12.5Hz to 400Hz in six discrete steps (12.5, 25, 50, 100 (default), 200, 400). -
Noise modes
There are three noise modes which trades off a small increase in power consumption for a lower noise signal; Normal, Low noise, Ultra low noise. Normal noise mode is the power up default. -
Antialiasing filtering
The ADXL362 has antialiasing filtering with a two-pole low-pass filter installed at the input to the ADC (analog digital converter). This can be user set to either ½ of the ODR or ¼ of the ODR.
Measuring Acceleration
The ADXL362 measures both static and dynamic acceleration. Acceleration is reported in units of g where 1g = 9.81 m/s2 i.e. the acceleration due Earth's gravity.
The raw acceleration value for each axis is read from two 8-bit registers. The two bytes are combined to a single binary 12-bit representation. This is converted from its Two's Complementary format to a signed integer.
This is then scaled by simple division with the divisor being the sensitivity (LSB/g). The sensitivity depends upon the measurement range. The float type result is the acceleration value in units of g.
There is a data ready interrupt that is asserted when fresh 3-axis acceleration data becomes available. This can be obtained by reading the DATA_READY bit in the STATUS register or assigning the interrupt to either of the INT1 or INT2 pins.
FIFO Queue
The FIFO is a queue mechanism (First In - First Out) that when activated automatically begins storing datasets of raw 3-axis acceleration values. Optionally, temperature can also be added to the dataset.
The FIFO buffer is quite large. It can hold a maximum of:
- 170 sample sets of of concurrent 3-axis data; or
- 128 sample sets of concurrent 3-axis and temperature data
The FIFO gives the microcontroller host "breathing space" to carry on with other tasks as the sensor continues to produce acceleration samples. A configurable interrupt (FIFO_WATERMARK) is available that will alert the host when the FIFO buffer is full (or near full). At this time the entire FIFO contents can be burst read and processed.
The microcontroller reads the FIFO by firstly writing the FIFO read command 0x0D. Then the contents of the FIFO are burst read.
There are three interrupts associated with the FIFO:
- FIFO_READY : Indicates that there is at least one sample available in the output buffer.
- FIFO_WATERMARK : Indicates that the FIFO contains at least a user defined number of samples in the buffer.
- FIFO_OVERRUN : Indicates that the FIFO buffer has overflowed, such that new data is replacing unread data.
These interrupts may be mapped to the INT1 or INT2 pins at the user's discretion.
Sensor Generated Interrupts
DATA_READY and FIFO interrupts have been discussed. In addition to these the ADXL362 offers two additional interrupts that have a level of user configurability.
The ADXL362 has built-in logic that detects activity and inactivity. The status of these interrupts can be read from the ACT bit and INACT bit respectively in the STATUS register.
These interrupts can be assigned to either of the INT1 or INT2 pins.
Activity is triggered by the presence of acceleration above a threshold for at least a given amount of time.
Inactivity is triggered by the lack of acceleration above a threshold for at least a given amount of time.
The datasheet gives an excellent discussion with examples of how these two simple activity based interrupts can be used to build more complicated scenarios such as free-fall detection.Temperature Sensor
The ADXL362 has an integrated temperature sensor. The temperature can be read as a 12-bit value using the same process as obtaining acceleration data from two 8-bit bytes. The 12-bit value is converted from its Two's Complement form to a signed integer.
The signed integer is scaled to degrees Celsius with the supplied sensitivity (0.065 °C/LSB) from the datasheet.
ADXL362 Chip ID
The datasheet lists four ID/identification values that each ADXL362 chip has written to non-volatile memory during the manufacturing process. These are:
- Analog Device ID: 0xAD
- Analog Device MEMS device ID: 0x1D
- Device ID: 0o362
- Product revision ID: beginning with 0x01 and incrementing for each subsequent revision.
ADXL362 MicroPython Driver
An ADXL362 MicroPython driver specifically written for the BBC micro:bit has been developed as part of this series on MicroPython for the micro:bit. The driver webpage also provides a detailed description of the driver's methods and properties with sample code.
The driver implements the base functionality:
- Setting ODR, measurement range (FS), power mode and low noise mode.
- Acceleration readings and data ready status.
- Temperature reading.
- Chip ID/identification.
The FIFO and Activity/Inactivity interrupts are not available in this driver.
Inertial Measurement, Magnet Field Sensing
How they work
Weather Station Sensors
How they work
Pressure, Humidity, Temperature
Distance Sensors
Images
ADXL362 breakout board front
Unlike the breakout boards of most other accelerator chips, the Y-axis on ADXL362 boards run parallel to the row of board pins.
It is more usual for the X-axis of the accelerometer to be positioned parallel to the pins.
ADXL362 breakout board rear
Micrograph of the ADXL362 sensor chip on the breakout board
According to the ADXL362 datasheet the chip face marking can be interpreted as follows:
First row : Pin 1 indicator and device ID.
Second row : Pb-free designator (#) and date code.
Third row : Factory lot code.
Low Dropout (LDO) voltage regulator, 3.3V, on ADXL362 breakout board
Pullup resistors (10kΩ) on the breakout board
The ADXL362 accelerometer with an SPI only (i.e. no I2C) interface doesn't require pullup resistors. SPI pins are actively pulled High and Low.
This breakout board was originally designed for the ADXL346 accelerometer which has both SPI and I2C interfaces.
Decoupling capacitors on the ADXL362 power supply pins