I am not getting any data from the ADIS16407. What should I do?
There are a number of things that can cause this. The ADIS16407 units go through extensive testing in the manufacturing process, so we are likely starting with "good" unit. Here are the most common causes of zero or inconsistent communications:
SPI Test Pattern/Example
All ADIS162xx/3xx/4xx devices offer a product identification register (PROD_ID), which contains the 16-bit binary representation of the product's part number. In the case of the ADIS16407, the PROD_ID = 0x4017 (16,407) and is located at register address 0x56 and 0x57. Set DIN = 0x5600 to read this register. Reading this register, in a repeating pattern, enables inspection for all of the listed SPI communication issues. Here is an example (psuedo code) for a test loop, which reads PROD_ID in a repeating pattern. Starting with the second loop, DOUT should be equal to 0x4017, every time.
Set CS = 1; // Standard for no communication
Delay > 10us // Make sure that Tstall time is managed
Set CS = 0; // select the device, good idea to trigger a scope on this edge
DIN = 0x5600;
Read DOUT // Note that the ADIS16xxx devices support full duplex operation, so this may be combined with DIN = 0x5600 step
Set CS = 1; // release the device
Delay > 10us // manage the Tstall time requirement
Retrieving data ...