I'm currently working with an ADIS16209 (firmware developed in: VisualDSP++, controller: ADSP-2185) and am experiencing following strange behavior: temperature and supply take about 10 minutes until they are correct, rotation is not reliable.
After starting my device, pins and spi communication are initialized.
When reading of address register 0x4A [PROD_ID] my function returns 0x3F51, therefore spi communication seems to be correct (I also tried changing the ROT_NULL register and this influences the ROT_OUT, so even writing on registers seems to work).
One of the first two bits [15, 14] (new data, status!=0) is != 0 about 99% of my function calls [not the same], even if I wait about 10 minutes until SUPPLY_OUT is about 3.3V and if I send status register clear command.
I also tried to send factory reset command and software resets and different parameters (min. and max. for avg_filters aso.), but nothing seems to help.
In the beginning (of development) the timings for spi communication were (maybe they are again, because of trying to figure out problem) wrong [maybe I changed wrong registers at that time]. Could that cause damages/strange behaviors and is there any way to check if ADIS16209 is not damaged?
I'm thankful for all help and information.
PS: Attached are according c files: I can call function Test1 and Test2 over serial port.