According to ADIS16490 datasheet (rev. A), the PROD_ID should be 0x406A. I tried to read it via SPI by sending 0x7e00 a few times. However, the return value is always 0x0080. This was also confirmed by my logic analyzer (please see the attached screenshot for details). Here are my SPI settings: Freq_SCLK = 5MHz, CPOL = 1, CPHA = 1, 16-bit MSB first mode. I checked the data ready signal as well. Those pulses rarely showed up on DIO2 (default pin-out). They looked random and cannot match the default sample rate (4250 SPS). Then, I came across these two threads.
ADIS 16375-getting data through SPI
It looks like I'm facing a similar issue that fails IMU startup. However, for ADIS16490, supply current transients can reach 250 mA at most. I powered up the IMU by my DevKit, whose LDO can offer up-to 1000 mA. Although the entire system was powered by USB, 500 mA should still be quite enough for the current transient peak. I'm wondering if there is anything else that caused IMU startup failure?
I got the thermal and motion measurement from the device and they look good for a static test.
Regarding the unique situation we've met, please do let me know if you figure out anything new.
Huge thanks to Mark for your insights and patience!