I`m trying to use ADXL345 on i2c interface via adxl345 and standard Wire libraries.
The problem is that when first time arduino powers on all works fine - data readed correctly.
But after going to sleep mode and recovers from it no data.
After back on from sleep I user adxl345 library`s PowerOn() function, but status is ERROR.
If I unplug power and back again - all works fine.
After sleep mode I put Arduino into soft Reset - but it seems to i2c not working after sleep mode.
So I need help..
Since there is no solution, I use hard reset after back from sleep mode.
Hard reset is made by turn on wdt to 60 ms and going endless loop.
But still no luck with reinitialization of twi (i2c) after power back on.
I'm having the exact same issue, but I can't hard reset my Arduino as its meant to be doing other things other than reading the accelerometer.
Did you get any further?
Just to update what I did, I was attempting to read the ADXL inside of an ISR which just didn't work. Using the ISR to set a flag to check the ADXL in the main loop worked perfectly.
I also disabled the built-in input pullups on the I2C pins which apparently have been known to cause issues. The breakout board that I'm using has its own pullups (4.7K).
Perhaps that was your problem too?