AnsweredAssumed Answered

ADIS16228 Startup Behavior and x_BUF Reads

Question asked by MeasurementsMan on May 27, 2018
Latest reply on May 28, 2018 by MeasurementsMan

I am using an ADIS16228 with the following settings:


REC_CTRL1 = 0x1180 (Hanning Window, SR0, Power Down between records, no storage, Manual FFT Mode)


REC_CTRL2 = 0x0002 (SR0 = 10g Range)


AVG_CNT = 0x9634 (SR0 = 1280 SPS)


DIO_CTRL = 0x2F (DIO1 = busy,  DIO2 = Trigger Input)


The settings are stored in flash (i.e., by writing 0x20 to GLOB_CMD).


I noticed that when I power up the device, it seems like the settings have not been stored in flash (i.e., toggling the DIO2 line does not start an FFT).  I also noticed that if I read one of the above registers, it returns 0x00 (reading just the low address), but only the first time I read it.  If I read it again, it returns the expected value which I stored earlier.

Also, if I do a register read immediately after power up (ignoring the result), then the device behaves as though my settings are stored correctly.  


The above behavior seems to be independent of how long I wait after powering up. It can be 100ms or 10 seconds -- the first register read is always 0x00.  I am looking at the data both with a logic analyzer and with an SPI host, and as far as I can tell, there is no difference in how I'm doing the first vs subsequent reads.  Also, I verified the SPI signals meet the timing specs in the datasheet.



There is an easy workaround for the issue, but I'd really like to understand what, if any, I could be doing to cause this behavior