LIS3DHTR returns 0xffc0 for all channels
I'm having some issues in trying to get valid data out of the LIS3DH. For some reason I am only receiving a constant value of -1 [0xffc0 10 bits left aligned] on all channels and FIFO slots. I can read/write all other registers just fine, it's just the sensor data that is not working. I'm sure it's something I'm missing in the config, but for the life of me I can't seem to find it.
VCC and VCCIO is 3V3
Communications is over I2C @ 400KHz
I have repeated this failure mode on multiple devices
My Init process is as follows:
- Read the Who_AM_I register and abort if it does not return the correct ID
- Reset the device state by zeroing out all critical registers (TEMP_CFG, CTRL[1-6], REF, FIFO_CTRL, INT1_CFG, INT1_THS, INT1_DUR, INT2_CFG, INT2_THS, INT2_DUR, CLICK_CFG, CLICK_THS, TIME_LIMIT, TIME_LAT, TIME_WIN)
- Set BDU and 2g range in CTRL4
- Enable ZYXDA interrupt on INT1 in CTRL3
- Clear FIFOEN in CTRL5
- Set BYPASS mode, Threshold 0, and INT1 Trigger in FIFO_CTRL
- Set FIFOEN in CTRL5
- Set STREAM mode, Threshold 10, and INT1 Trigger in FIFO_CTRL
- Set HPF mode to Normal, Cutoff=0, FDS=Bypass, Filter disabled for all sources
- Perform Dummy Read of REF
- Set Normal Mode (HR=0) and 2g range in CTRL4
- Set Normal Mode (LPEN=0) , and ODR of 1344HZ in CTRL1, enable X, Y, Z
After which I poll for data by reading the FIFO_SRC register, and then reading the data registers if it shows data available. I have tried addig a delay up to 100ms after init and before checking, with no difference in behavior.
If anyone has any insight or a solution it would be greatly appreciated.
Cheers
