I can initialize and run the AD9129 with no problem. But, after changing the input clock frequency, and resetting the PLL and DLL using registers 0x0A and 0x34. The write sequence after the frequency is changed is as follows:
0x34 write 0x55
0x34 write 0x5D
0x0A write 0x40
0x0A write 0xC0
This works about 80% of the time. When it doesn't work this sequence is repeated and the part begins to work properly at the new frequency.
When the PLL and DLL fail to reset properly register 0x05 indicates DLL Lock status lost, register 0x0E issues a DLL warning, and register 0x35 indicates PLL lock lost. Also noticed that when register 0x34 is programmed with 0x55 and 0x0A is programmed to 0x40, holding the PLL in reset and disabling the DLL, register 0x0E still shows the DLL is locked.
These values were read from the AD9129 when it was not working properly. What can I do to ensure the AD9129 works properly without having to repeat commands? Thanks for the help...
0x005 0xCF AD9129_IRQ_REQ0
0x00E 0xD5 AD9129_DATA_STATUS_0
0x035 0xCB AD9129_RETIMER_STAT_0
Another problem that I run into now, on occasion, seems to be related to the FIFOs.
Register 0x05 indicates FIFO Warnings and registers 0x13, 0x14, 0x15, and 0x16 show values 0x1F, 0x3F, 0x3F, and 0x3F respectively.
What causes this issue? Can it be avoided?
Writing register 0x11 with 0x81 seems to fix the issue, but not always on the first attempt.