I've got a system that uses a CDCE949 with a 24.576MHz crystal to generate a 4.096MHz clock for an ADC, and a 32.0MHz clock for the controlling MCU. The purpose for doing this is that I can lock multiple units' ADC sampling times together as long as I can lock the MCU clocks together. The bus between them has a reference packet, and the MCUs have cycle counters, with a PID loop driving the Vctrl of the CDCE949.
However, now I'm seeing behavior (which I don't remember seeing earlier) that is very troubling: the timestamps of the ADC capture points that started out closely locked to millisecond boundaries are slowly drifting away from those boundaries.
My question would be this, if somebody has an answer pending me running my own experiments as soon as I can:
Are fractional PLLs that calculate out to have zero error in them subject to drift otherwise, relative to other outputs? In other words, if I started counters connected to the 4.096MHz and 32.0MHz clocks at the same time, would I be able to let it run for infinite time and still get the exact same ratio of 'ticks'? E.g. run it for 1000 seconds and get EXACTLY 4.096 billion counts on one and 32 billion on the other?
If I can't rely on this particular aspect, I'm not exactly sure how I can solve it. I can run the MCU at an 'overclocked' 32.768MHz, but that clock would be derived from a PLL generating it from 24.576MHz. If the ADC clock remains a 6x divide of the input clock, I'll have the same problem. I'd have to set up the ADC clock to derive from the 32.768MHz PLL, and that would require that I re-spin the board, since my outputs are on Y1 and Y7....
<sigh>