AnsweredAssumed Answered

ADXL375 watermark interrupt appears before as expected

Question asked by gschelotto on May 11, 2018
Latest reply on May 15, 2018 by gschelotto



I've configured the ADXL375 in a custom board as follows:


ADXL375_SetRegisterValue(ADXL375_DATA_FORMAT, 0x0B); // right justified (LSB) mode
ADXL375_SetRegisterValue(ADXL375_BW_RATE, 0x0F);     // 3200Hz
ADXL375_SetRegisterValue(ADXL375_THRESH_SHOCK, 0x26);
ADXL375_SetRegisterValue(ADXL375_DUR, 0x50);         //
ADXL375_SetRegisterValue(ADXL375_LATENT, 0x20);      //
ADXL375_SetRegisterValue(ADXL375_WINDOW, 0xF0);      //
ADXL375_SetRegisterValue(ADXL375_SHOCK_AXES, 0x04);  // [X]
ADXL375_SetRegisterValue(ADXL375_INT_ENABLE, 0x02);  // INT1 enable [WATERMARK]
ADXL375_SetRegisterValue(ADXL375_INT_MAP, 0x00);     // INT1 enable map [WATERMARK]    -> [INT1]
// 0b11xxxxxx: FIFO buffer holds the last samples before the trigger event and continues to collect data until full. New data is collected only when the buffer is not full.
// 0bxx1xxxxx: Link to INT2
// 0bxxx11111: 32 samplesADXL375_SetRegisterValue(ADXL375_FIFO_CTL, 0xFF);        //
ADXL375_SetRegisterValue(ADXL375_POWER_CTL, 0x08);        // Go!
(void)ADXL375_GetRegisterValue(ADXL375_INT_SOURCE);       // clear INT1!

And here's the signals involved



If I'm running at 3200 ODR with a 32 samples FIFO depth I expect to get the interrupt INT1 exactly every 10ms in order to read the 32 samples into the FIFO. However I see a time of 9.6335ms. It seems I have 1 sample lost but I don't why. Could someone confirm this and how should I do to fix it?