Post Go back to editing

How to reset my ADIS16223 back to factory settings

I have bricked one of my ADIS16223 when I was trying out new settings.

Is there a byte sequence I can send to restore the unit back to factory settings?


I am familiar with sending commands like:

#define d_FLASH_CNT 0x00

#define d_CAPT_SUPPLY 0x0A

#define d_CAPT_TEMP 0x0C

#define d_PROD_ID 0x56

#define d_SERIAL_NUM 0x58

#define d_CAPT_PEAKX 0x0E

#define d_CAPT_PEAKY 0x10

#define d_CAPT_PEAKZ 0x12

#define d_CAPT_PNTR  0x1A

#define d_DIAG_STAT  0x3C

I send these using the following

  writeCommand[0] = Command;   //Command = d_PROD_ID, or d_CAPT_PEAKX or ...

  writeCommand[1] = 0x00;

  wiringPiSPIDataRW (ce, writeCommand, 2);

  • Can you clarify what you mean when you say that you "bricked your ADIS16223?" 

  • By bricked I mean it no longer provides me the XYZ or temerature values. My question, however,is about how to restore a unit back to factory defaults.

    I have three units for evaluation. The first unit was working fine until I tested

    //x9C0C) Extended capture mode
    //  writeCommand[0] = 0x9C;
    //  writeCommand[1] = 0x0C;
    //  wiringPiSPIDataRW (ce, writeCommand, 2); 

    After this it does not return capture values correctly. I think this is due to me setting it up wrong. I have swapped out units and put that one aside. Rather than investigate the issue, it would be nice to be able to send a command and start from factory default.

    So my question is How can I restore a unit back to factory default. I will be changing several registers and will want to revert back to the original setup. Is there a simple command to do this?

    Or do I have to store all the various register settings and restore them one by one?

  • I understood the rest of the message, but didn't want to give a partial answer, so please pardon the clarification request. There is no single command that will restore all of the default commands, but we appreciate the feedback.  Are you able to read all of the user-configurable registers?  In particular, the CAPT_CTRL and CAPT_PRD would be helpful. 

  • CAPT_CTRL=32  (Hex 0x20)

    So both are factory default as per the data sheet.

    I have re-tried the unit and cannot repeat the issue. It now works just fine. So I will close this call. Thanks for your help.

  • Thank you for closing the loop with us and for sharing the result. That is curious.  In the Manual Capture mode, it should be as simple as triggering a capture, monitoring the busy line to determine when the process completes, then gather the data.  Is that what you are doing?  Thanks!

  • Agreed standard capture works. I am investigation different settings and I was trying out extended mode when it stopped working, but I am back to standard mode and it is working fine now. What’s changed is my software so I must have fixed an issue. Probably to do with timing. I request capture and wait 30ms. I then check DIAG_STAT to see if capture complete. I still had an Issue in reading, because I did not provide enough micro-seconds between each XYZ read request. This is fixed but it may have caused me to think the unit was not working. Alternatively I could have set registers wrongly and just the power down and back on sorted an issue.

  • Thanks again! We appreciate your investment in using this product and also appreciate you giving us a chance to help you. We look forward to hearing how things progress on your project