I am developing a navigation system for which ADIS16485 or ADIS16364 can be installed. In order to identify which IMU is installed in the system, the system first assume ADIS16485 is installed and tries to initialize ADIS16485 and read product id. If product id is "16485" then codes for ADIS16485 is loaded. Otherwise codes for ADIS16364 is loaded and run. It works well before a new code is inserted in the ADIS16485 initialization. In the new code, 120 FIR filter coefficients are written to BANK-A,B,C,D in the initialization routine. With this new code, these coefficient writings for ADIS16485 are applied to ADIS16364 for the system with ADIS16364. After putting the new code, ADIS16364 started to malfunction.
Acceleration and angular rate are read correctly up to 80 readings, but wrong data are read after that. Registers in ADIS16364 look screwed up.
I do following actions to fix problem.
(1) Since I didn't know that the new code caused problem, I replaced IMU with new ADIS16364 which works well in other system and run the new code. The new ADIS16364 was also gone. After this, I thougth that writing FIR coefficient for ADIS16485 to ADIS16364 damages ADIS16364. I lost two IMU.
(2) Removing the new code does not fix the malfuction.
(3) To recover factory setting, I applied "Factory calibration restore command". But still malfunction.
I think wrong writings on ADIS16364 screwed up the registers in ADIS16364. Is there any way to restore correct register setting?
Or it is possible to repair?