Jitter på signaler

Här tänkte jag visa ett enkelt sätt att kolla om ens signaler eller oscillator har jitter.

Bakgrund

Bakgrunden är att jag har använt ett FPGA-kort för att generera VGA-signaler. För att få en helt stabil bild är det viktigt att signalerna man skickar ut inte har jitter. Det märktes väldigt tydligt när jag bytte skärm som jag skickade signalen till, och fick en hel del fladder i intensitets-nivåerna.

Efter att ha kollat att det fortfarande funkade med den gamla skärmen, så kändes det som att man behövde kolla om signalerna från FPGA:n hade jitter.

Kontroll av jitter

Hur kollar man då enklast om man lider av gitter?

Det jag gjorde var att använda ett oscilloskop, och titta på signalerna förskjutet en bit från triggpunkten. I exemplet nedan har jag tittat på vsync-signalen som genereras av FPGA:n (för det var den som jag letade jitter på). I alla skärmdumpar har "oändlig persistence" varit påslaget, så alla vågformer som visats tidigare syns lite mörkare än det aktuella svepet.



Det här är vsync-signalen som den kommer ut från FPGA:n, och triggpunkten ligger i centrum av bilden.



För att se gitter så zoomar man ut en bit, och flyttar triggpunkten långt bort åt något håll (runt 17 ms i mitt fall).



Slutligen zoomar man in igen, och då ska signalen vara lika stabil som vid triggpunkten. Här har signalen hoppat fram och tillbaks hela 5us, och det kunde antingen bero på oscillatorn på kortet, eller på min logik i FPGA:n.

Oscillatorn

Jag började intressera mig av oscillatorn som satt på FPGA-kortet. Det var inte en vanlig kristalloscillator, utan en MAX7381 på 16MHz. Läser man på Maxims hemsida (och precis som mig) inte kan något om oscillatorer verkar den vara superbra (förutom att den inte är intrimmad så exakt till sin märk-frekvens). Databladet som man var tvungen att googla sig fram till (finns inte på Maxims hemsida), visar att utfrekvensen bland annat varierar med matningsspänningen. Det räcker med 10mV rippel på matningsspänningen för att frekvensen ska ändras med 500Hz, så jag antog att det var oscillatorn som inte var tillräckligt stabil.

Som tur är kan man lätt klocka FPGA:n från en egen klocka, så jag tog en gammal kristalloscillator jag hade liggandes. Då försvann gittret mer eller mindre helt.



Här tittar jag fortfarande på vsync-signalen 17ms bort från triggpunkten, och har "persistence" påslaget, men med kristalloscillatorn kommer den på exakt samma ställe tidsmässigt varenda gång. Jag har till och med zoomat in mycket mer än i första mätningen, när jag körde med kortets inbygda oscillator.

OBS! Du bygger alltid på egen risk, jag garanterar inte att något fungerar för dig.
Du ansvarar själv för risken att skada dig själv/andra/saker/datorer/eller annat!