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

 

Thanks!

Outcomes