We’re using a BMF055 in our design. One out of thirty boards we’ve tested has an issue with no-data / invalid data from the gyro and mag sensors when running a power interrupt test (otherwise sensors works fine during normal power-up). In one case the mag and gyro never set the data ready (DRDY) interrupt, meaning no data can be read. In the other case the mag does set the data ready (DRDY) interrupt, but the data read is invalid (x=0, y=0, z=-32768 for every read). However, during all test runs the accelerometer continued to work and return valid data.
The way we perform this power interrupt test is, we first apply power to our device and allow it to fully power up. After about 10s, we power off the unit. 9 seconds later we re-apply power for about 50ms, then power off for 10ms and back on. During investigation of our power transient test, we noticed that these issues would occur when the 3.3V dropped around 500-600mV and power was reapplied to the unit.
When the issues occur, we’re still able to communicate with the sensors via SPI(I2C from our uC to the IMU’s uC, then use the internal uC to access the SPI bus) and access their registers. To try and fix the issue, we initiated a soft reset on each sensor but that didn’t resolve it. We also tried transitioning the sensors to deep-suspend, sleep, then normal power modes, but that also didn’t work. Only a full power cycle with sufficient time for the 3.3V line to drop completely fixes the issue.
We’re looking for more information on how to resolve this issue without a full power cycle as we're out of ideas and are hoping we can fix this through software. A few questions have come to mind. Is there any way to reset the sensors via software to get them back into a working state, without requiring a power cycle? Is there an internal brownout protection that could possibly be triggering for those two sensors?
BMF055 integrated acclerometer, gyroscope, geomagnetic. You could use softreset command to reset acclerometer, gyroscope, geomagnetic if you need.
After sensor was powered on, it needed to delay several tens of milliseconds to access the sensor.
We have those datasheets mentioned and as explained in my original post, we performed a soft reset based on the information in those datasheets but it did not change the results. I believe in those datasheets, it mentions a soft reset does not reset the sensors but resets all user configuration settings to their default state.
Should performing a soft reset repair the locking up we're seeing with the sensors? Has anyone encountered the sensors locking up in the way we described in the original post? What was done to fix it outside of performing a complete power cycle?
POR(power on reset) resets the logic part and the register values of the concerned ASIC after powering-on VDD and VDDIO. Soft reset does not execute a full POR dequence, but all registers are reset.
Ensure enough power down time and ensure that the power down voltage is 0V, otherwise it will affect the normal operation of the next POR.