Post Go back to editing

adxl367 loop mode

Category: Hardware

I've used the adxll362 in loop mode for several years -- typically with active/inactive thresholds of 0.35g in reference mode.  I have been unable to duplicate this setup with the adxl367.  In particular, I am unable to reduce the inactive threshold below ~1.25g and have the part ever sleep.  There are some cryptic comments in the datasheet --

When using the referenced configuration, it is important to note that the device still uses the absolute thresholds when it first enters measurement mode. This becomes important if an inactivity threshold ​< 1g is desired. In this case the device must enter measurement mode with a threshold greater than 1g.  The inactivity threshold can then be lowered to the desired level (while still in measurement mode).

Sounds simple right?  It doesn't work.  Or more specifically, I haven't found the magic incantation that works.  I've tried waiting after the other setup before making a change, but that does not work.

Here's how I'm initializing things (no attempt to lower the threshold here) which works, but doesn't meet my inactivity threshold goals.  Any advice?  -- another unrelated gripe -- why switch from little endian to big endian from adxl362 to adxl367 ?  Just super annoying!

// set adxl range/rate; 2g, 25hz


ADXL367_SetRegisterValue(RANGE_VAL,ADXL367_REG_FILTER_CTL, 1);

// interrupt -- caused by AWAKE going active

ADXL367_SetRegisterValue(ADXL367_INTMAP1_AWAKE_INT1 , ADXL367_REG_INTMAP1_LWR, 1);

// Timer Control Register -- 6 samples/second

ADXL367_SetRegisterValue(1<<6, ADXL367_REG_TIMER_CTL,1);

// set inactivity level maximum 4500 = 1.125g for 2G range

// set inactivity count to 15

// set activity threshold to 500mg -- see p22 ADXL367 data sheet


// turn on referenced loop mode

#define LOOPMODE ((3<<4) | (3<<2) | 3)


// set power to measurment mode AUTOSLEEP|MEASUREMENT


ADXL367_SetRegisterValue(POWERCTL, ADXL367_REG_POWER_CTL, 1);
Parents Reply Children
No Data