I've run into a problem with the various command registers in the ADIS16400, in that they do not seem to be consistently updating when given the SPI instruction to do so. Further complicating matters is that it seems that the original flash backup has become corrupted, so the registers that are loaded when the device first is powered up are wrong. With the register values the way that they are, the device is currently unusable.
I've had this problem before with an ADIS16400, and we ended up returning it for inspection. The inspection report a few weeks later indicated that there was some registry corruption, and resetting to factory standards allowed the device to work again.
I assumed from the datasheet that this command was 0xBE02 (see page 13 of the datasheet) but that has not appeared to address my problem. I have also tried to manually set each register to the correct value, and force a flash update (0xBE04), but this has not solved my problem - especially since it seems that the registers aren't getting set correctly!
Finally, what is strange is that sometimes the entire registry set does update correctly - it does this through multiple re-runs of the program, but when power is lost and restored, the registries are back to misbehaving.
I am pretty sure that it's not a power supply problem - I have a voltage regulator hooked up to a very reliable 9V, and it is feeding the ADIS and the chip a steady 5V.
So, here are my questions
- Has anyone else had a problem with spontaneous registry corruption? Can such corruption be caused by normal loss of power? Is there a safe way to stop the ADIS before power is cut? (I have not found one in the datasheet)
- Has anyone else had a problem with registries not accepting new values, or only occasionally accepting new values? How did you address it?
- How do you cause a factory reset? How can you be sure that the memory that the factory reset resets to is valid?