AD9172 discusses Error Counting for NIT, UEK, and Disparity errors. I am trying to enable error counters but am unable to do so. The system relies on SW polling rather than receiver IRQ detection, so I am also trying to enable the error count threshold hold feature.
The sequence I am following is:
- Hold JESD QBD in soft reset
- Assert or Deassert all SYNC mask bits *
- Lower error threshold value from 0xFF *
- Enable Terminal Count Error Hold (0x488 - 0x48F)
- Choose and Enable the errors to monitor (0x480 - 0x487), enabling all and asserting reset
- Releasing reset while still maintaining enable bits (0x480 - 0x487)
- Release QBD soft reset
After 6, the link is setup, poor DAC signal is observed. Occasionally, the link synchronization registers (0x470 thru 0x473) will show errors. Other times, all synchronization bits will appear to be achieved. In both of these cases, with poor DAC signal, we see no errors in the error counter registers (0x490 thru 0x497)
If you see in steps 2 and 3, I have an asterisk - I have attempted to change the behavior of the error counting by adding these steps but they have no effect.
Q: How can I properly enable error counting? It looks as though others have been able to get this to work (see AD9172 JESD link stability issue )
1) Is order of operations in the "Checking Error Count" section, page 48 absolutely critical. I see that I am enabling the terminal count hold indicator before releasing the counters from reset.
2) Do IRQs need to be enabled to enable the error counting properly?
3) Is there some example sequence that should be followed, beyond what is listed in the datasheet? The drivers on github do not utilize any error counter monitoring https://github.com/analogdevicesinc/linux/blob/master/drivers/iio/frequency/ad917x/AD917x.h
Background: I have a system with a link stability issue. I am able to get somewhat appropriate data from the DAC but there is noise. Tuning the link (emphasis and equalization, etc) can eventually provide a clean DAC output signal, which is why I am calling this a link stability issue caused by unit variation. The issues are not due to configuration or general setup sequence issues.