Jun(k)tek JDS6600 — pulsní režim

aneb Nepotěšil jste mne chlapče, ale ani já vás nepotěším. Nasypat celou recenzi do jediného článku by bylo příliš mnoho písmenek na jednom místě a patrně by se v tom čtenář ztratil. Úvodem je třeba naprosto jasně říci, že se jedná o arbitrary waveform generator, nikoliv o pulzní generátor, takže se dá říci, že se jedná o přídavné funkce. Bohužel se to stejné dá říct o mnoha dalších funkcích AWG, no a řekněme, že tu primární funkci, tj. generování arbitrárního signálu, ten generátor neplní úplně dobře, sám neobsahuje žádný interface, který by tvorbu toho signálu umožnil, načtení z nějakého běžného media také není možné, prostě je to celé takové dosti s otazníkem. Ale zpět k pulzní funkcionalitě. Našla jsem tam něco, co považuji za velký problém, ale nechci začínat negativně.

Pulsní funkce tohoto generátoru jsou rozprostřeny do třech modulů. Prvním z nich je obdelníkový průběh. Zde vás to nechá nastavit kmitočet, amplitudu, přesněji řečeno, myslíte si, že nastavujete amplitudu, ale ve skutečnosti je to Vpk-pk. A bohužel i duty cycle, což je nastavení, které v tomto režimu nedělá vůbec nic. Přesto ho můžete udělat, což je poněkud matoucí. Krom toho máme tvar vlny pulse, kde se nastavuje totéž co u obdelníku, ale narozdíl od něj už nastavení duty cycle někam vede. Jistě, u obdelníku duty cycle nemá smysl, protože by měl být 50%, ale proč to nastavení není skryté když nikam nevede. Bohužel identický problém je na mnoha jiných místech. UI opravdu není dotažené. Třetím místem, které se týká pulzní části, je samostatný pulzní generátor v menu MOD (asi to má být modulace, no vybouchni wole). Zde nastavíte šířku pulzu v ns, minimum je 40ns, periodu opakování, amplitudu (což je opět Vpk-pk) a offset, což je napěťový posun středu signálu kolem nuly a nastavuje se v procentech. Je to takové uh-eh, nevíte při tom úplně co děláte, nicméně pokud nastavíte „amplitudu“ na 1V a offset na 0%, bude nízká uroveň pulzu na -500mV a vysoká na 500mV. Nesnažte se nad tím přemýšlet, spíše osciloskopem zkontrolujte co to udělalo.

Začala jsem první funkcionalitou, tj. tvarem vlny pulse, kde jsem nechala vytvořit pulz se střídou 1% a kmitočtem 40kHz. Dopadlo to takto:


To je celkem v pořádku až na detail. Opomněla jsem říct osciloskopu, že používáme sondu 1:10, takže vidíte amplitudu 100mV namísto 1V. Toto si pravidelně uvědomím až v momentě, kdy po tom chci nějaká měření. Nicméně zatím to nevypadá na důvod ke stížnostem. Detail pulzu:


Pochopitelně je užitý averaging, protože nechci snižovat šířku pásma a tím ohýbat náběžnou a sestupnou hranu, ale současně chci vidět zákmity. Je to periodický signál, takže averaging v tomto případě pouze potlačí neperiodickou složku signálu, v tomto případě většinově šum. Malý zákmit má periodu cca ⅔ dílku, což při 50ns na dílek odpovídá kmitočtu 30MHz, neboli délce vlny 10m. Toto definitivně nejde prohlásit za ping-pong mezi sondou a výstupem generátoru, to se těžko prohlašuje i za něco, co by vyvedla sonda, to je jednoduše ringing výstupního zesilovače, ale je potlačený velice rychle, toto opravdu nemá smysl řešit, výstup tedy považuji za čistý a odpovídající tomu, co by člověk očekával. Šířka pulzu by měla být 1% z 40kHz. Perioda 40kHz je 25μs, z čehož 1% odpovídá 250ns, což je téměř to, co vidíme, pulz je o trochu kratší, ale ona do toho už nějak zasahuje náběžná a sestupná hrana, čili opět není důvod ke stížnostem. Ten bohužel přišel při měření jitteru, ale tomu se míním věnovat až na konci článku.

Další experiment jsem dělala již ve specializovaném menu pro pulzy, kde jsem nastavila nejužší možný pulz, tj. 40ns a trochu se podívala na to, co mi to vrátí. Tady už se začínáme dostávat do oblasti, kde měření naráží na šířku pásma poněkud důrazněji.

Vpk-pk v tomto případě vychází velice hezky, nastaven byl 1V a obdrželi jsme 1.003V, což je podle mého názoru excelentní výsledek. 

Další věcí je šířka pulzu. Ta byla nastavena na 40ns a vzhledem k náběžné a sestupné hraně přes 6ns považuji výsledek 38.328ns za velice dobrý. Tady už ten přístroj opravdu tlačím k limitu možností. 

Náběžná hrana je trochu širší než sestupná a padá lehce pod 7ns, což odpovídá šířce pásma 50MHz na pokles o 3dB. Tady bohužel narážím na typicky čínský problém. Já generátor kupovala se specifikací šířky pásma 40MHz, což je o trochu méně než jsem změřila, takže není důvod ke stížnostem. Bohužel specifikace toho generátoru je nešťastná, je to AWG, tam by člověk předpokládal šířku pásma specifikovanou na pokles o 3dB stejně jako u osciloskopu, prostě ten průběh může být naprosto libovolný. Bohužel výrobce specifikuje pro sinus (??? tím asi myslí harmonický signál) 60MHz, ovšem nastavit jde maximálně 40MHz. No a teď to začne. Kmitočtový rozsah obdelník-triangl 0-15MHz, což je definitivně nesmysl, protože šířku 50MHz to má, pro PWM tam udávají 6MHz a já se celkem obávám, že to jsou limity nastavení periody generovaného signálu, ale s reálnou kmitočtovou šířkou to nemá žádné dočinění, ono hlavně nedává smysl aby šířka pásma byla jiná pro různé tvary vlny, když převodník, zesilovač, v podstatě celá analogová cesta je identická. Jistěže je tady nějaká závislost mezi tvarem vlny, periodou a produkovaným spektrem, proto uvažuji pokles o 3dB, čemuž pak mohu předhodit libovolný signál a ono ho to nějak predikovatelně zkreslí. Nicméně těch 50MHz je očekávaný výsledek, přesněji řečeno, je to trochu lepší výsledek. 

V předchozí úvaze zanedbávám kmitočtovou šířku osciloskopu a sondy (ano, bohužel i sondy, protože generátor bohužel nemá 50Ω výstup). Používám 500MHz osciloskop a 300MHz sondu od Pro'sKitu, což by vzhledem ke kmitočtovému rozsahu mělo mít víceméně zanedbatelný vliv, nicméně z hlediska příčetnosti celého toho měření je to potřeba nějakým způsobem vyzkoušet:


Stejný setup, jen na vstupu je lavinový generátor, kde je náběžná hrana v nějakých desítkách až stovkách ps, takže je pro změnu zanedbatelná vzhledem k tomu, co udělá osciloskop a sonda. A v tomto případě vidíte náběžnou hranu nějakých 1.1ns, což odpovídá 318MHz, což reálně je o trochu lepší než by bylo očekávat, čili to jde zanedbat, ty výsledky jsou prostě příčetné a není to tak, že bych namísto generátoru měřila osciloskop. Ono je vždy potřeba uvážit jakou chybu do měření zanese sám měřicí přístroj. 

Doteď ten generátor vypadal jako celkem dobrý přístroj, avšak problém jsem avizovala a na tomto místě se zviditelní. Ano, došlo na ten nešťastný jitter. Kolem jitteru můžete vznést spousty teorií, avšak pro můj výklad bude stačit, že se jedná o fázový šum na datovém či hodinovém signálu. Toto můžeme zobecnit na nějaký logický signál, prostě skutečná perioda signálu je rozmítána kolem nějaké hodnoty šumem. Jak to tedy změřit. Úplně nejsnadnějším způsobem je chytit se náběžné (či sestupné) hrany signálu a zpožděním triggeru se podívat alespoň o jeden symbol vedle. No, nebo raději o několik symbolů vedle. V tomto případě nám jde čistě o fázový šum na nějakých pulzech, který by tam v podstatě neměl být, kde by se tam vzal, je to DDS, ta věc nejspíš nemá komplikovaný fázový závěs, tam se prostě násobí nějaký kmitočet a na něm pak jede samplerate D/A převodníku. Jenže ono to člověku nedá, tak jsem se podívala, nějaký katastrofální jitter jsem nenašla, ale našla jsem jiný problém:


Díváte se na náběžnou hranu vzdálenou nějakých 50μs od triggeru, ovšem s nekonečnou persistencí. Persistence je něco, co odpovídá dosvitu stínítka, no a u DSO může být i nekonečná, no a dá se nastavit i nějaké barevné podání. Co nám to říká. Trigger sám se udál 49.975μs před levou hranou obrazovky. Střed obrazovky je posunutý o pět dílků, přičemž na dílek připadá 5ns, čili uprostřed obrazovky se díváme na událost, která nastala přesně (v rámci přesnosti osciloskopu samozřejmě) 50μs po triggeru. Pokud tento čas bude odpovídat nějakému násobku periody signálu, uvidíme časově posunutý obraz trigger pointu, což je naprosto ukázkově vidět uprostřed screenshotu, kudy (a tady už se chytám barev) prochází signál nejčastěji. Jenže na screenshotu vidíme i druhý obraz trigger pointu posunutý o 3.5ns, což říká jediné. V tom generátoru se občas něco stane a perioda signálu se protáhne o 3.5ns. Nicméně ten odskok je konstantní, není to něco variabilního, co by se nějak mrcasilo kolem nějakého bodu (jako to dělá jitter). Náš signál měl kmitočet 40kHz, což odpovídá periodě 25μs, čili my se díváme na druhý obraz triggeru, protáhnout se tedy může jedna, nebo dvě periody, logicky tedy můžeme vidět dva posunuté trigger pointy, ale vidíme jen jeden, z čehož se dá usoudit, že dvakrát po sobě se to prostě nestává, nebo se to stává tak raritně, že se to nepodařilo chytit. Nicméně ta stopa je poměrně výrazná, tudíž se dá říct, že se to stává docela často. A pokud mi něco pravidelně a nepředvídatelně protahuje periodu o 3.5ns, projeví se to pochopitelně jako frekvenční či fázová modulace (on mezi nimi není úplně zásadní rozdíl), navíc čím vyšší kmitočet, tím horší to bude.

Ono vzhledem k 25μs je 3.5ns strašlivě málo, nedivím se, že si toho nikdo nevšiml, přesněji řečeno nenašla jsem to nikde popsané, ale ono se to tam prostě děje. Tedy já si v tento moment ještě nebyla jistá tím, že se to tam děje, ono to také může pocházet z osciloskopu. Nicméně teď už vím, že nepochází, ale k tomu se postupně dostanu. Druhý experiment stejného ražení jsem provedla v tom nešťastném MOD menu, no a bohužel se stejným výsledkem:


Tady máme posun 60μs, opět, těch 20ns na konci tam dělá posun o dva dílky na obrazovce, no a tady vidíte, že se posunuje celý pulz, čili náběžná i sestupná hrana, samotný posun je už trochu horší určit, nicméně, je to o něco méně než dílku, no a při 10ns/dílek to tedy odpovídá něčemu o trochu kratšímu než 4ns, čili patrně našich oblíbených 3.5ns. Viditelně tedy na to nemá vliv nastavení toho generátoru, prostě tam dochází k nějakému glitchi, při kterém se perioda protáhne o 3.5ns. Můžeme se jen domnívat co to je, ale trochu mi to připadá jako kolize přerušení, díky které se nestihnou nasypat data do D/A převodníku. 

Nicméně zase z hlediska příčetnosti toho měření musíme prokázat, že to nepochází z osciloskopu. První podezřelá věc je trigger. Pokud trigger drží a já se podívám přímo do trigger pointu, nemohu tento jev vidět i v případě, že nastane, protože osciloskop startuje triggerem, nikoliv uplynutím času. Prostě když koukám přímo na trigger point, tak se protažením periody nemůže posunout jeho obraz, protože jednoduše nekoukám na jeho obraz, ale na trigger point samotný. Pokud bych v tento moment přesto viděla nějaké takovéto posunutí, děje se něco špatného s triggerem v osciloskopu, prostě se na něj nestihne zareagovat. Nic takového jsem ale nezjistila:


Takže tímto jsme vyloučili trigger, ale ještě stále by to mohlo pocházet ze zpožděné časovky. No a zde přichází ke slovu další experiment, který se řekněme provede za podobných podmínek, ale se zdrojem signálu u kterého je výskyt takového glitche krajně nepravděpodobný. Já použila 4MHz krystal (protože prostě doma byl) a hradla 74HCT14 coby oscilátor. Pokud bude tento IO napájen z nějakého stabilního zdroje, prakticky se tam nemá jak výše popsaný glitch stát. Podotýkám, že jsem tuto zkušební věc napájela ze stejného zdroje jako generátor, pochopitelně to má menší příkon. No a řekněme s předpokládaným výsledkem, lépe řečeno s výsledkem, ve který jsem tak trochu doufala, on vadný generátor za dvojku je přeci jen trochu příjemnějším zjištěním, než vadný osciloskop s řádově vyšší cenovkou:


Vidíte, že tady se žádné úskoky nedějí, prostě to drží. No a také vidíte, že 4MHz krystal nekmitá úplně na 4MHz. Povšimněte si také prosím o kolik je vzestupná linka tenší proti generátoru. On krystalový oscilátor má velice malý fázový šum. 

Měřit takto fázový šum je diletantství master level, jelikož časovka osciloskopu má fázový šum, takže pokud takto vidíte nějaký rozdíl, tak už je to celkem k zamyšlení. Ony jsou na to samozřejmě přístroje. 

P.S. Právě jsem si všimla, že se mi čas na osciloskopu předchází o 24 hodin. Asi na toho Henry Propera koukám víc než je zdrávo, si připadám jak školník a gynekolog v Neštovicích. Koukla jsem do starších měření a ten stav trvá už opravdu dlouho, no jak se mi tohle podařilo…

P.S.2:

Před zveřejněním článku jsem se rozhodla ten glitch ještě trochu rdousit ve stylu poskočí-li pulz jako celek v čase. Zjistění vypadá takto:

Podotýkám, že setup vypadá opět trochu jinak, používám pasivní -30dB sondu s DC blockem, takže vstup osciloskopu jede v 50Ω a sonda sama má dělicí poměr cca 1:31 (tedy 1:√1000, neb -30dB). Myšméně podstatná je jiná věc, opět tam vidím ten oblíbený glitch, ale vidím současně náběžnou i sestupnou hranu a vidím, že obě občas uskočí a to prosím směrem ke středu kladné strany pulzu. To je vidět z barev, podotýkám, že červená je saturace, takže tmavé odstíny jsou méně časté než fialové atd. Co ale z tohoto nezjistím je zda dojde k úskoku na obou stranách současně, či nikoliv. Samozřejmě na to existují postupy, přičemž nejsnadnějším je segmentování akviziční paměti, kdy namísto mnoha bodů před a za triggerem vidíte záznamy z několika po sobě jdoucích triggerů a můžete jimi procházet (že pozdravuji do Agilentu i s jejich „MegaZoomem“, to je přesně to, co na prvních verzích MegaZoomu s gigantickou pamětí nešlo udělat).

Takže tady nám začíná glitch. To červené je obarvená persistence se saturací v nule, čili je celá červená. Toto jsem udělala záměrně, protože jsem chtěla aby bylo vidět kudy všude to chodí, současně jsem chtěla aby přes to byla vidět vyblitá šedozelená kanálu D, který zobrazuje právě jednotlivé segmenty paměti (ono je to u LeCroy trochu punkové, LeCroy býval obecně taková známka punku, něco tak trochu jako RPN kalkulačky — když se to naučíte používat zjistíte, že je to naprosto intuitivní a dokonale praktická věc, ovšem současně tím stavem děsíte okolí až k smrti). Vidíme, že glitch začíná prodloužením negativní části pulzu. 

Bezprostředně následuje zkrácení pulzu. Tady to na persistenci není vidět, ale z předchozího screenshotu víme, že fialové (tedy méně časté) průchody vedou vnitřkem kladné části. 

Zkrácený pulz proběhne několikrát, no a vidíte opět návrat do normálu. Segmenty, které byly stejné, jsem vypustila. Vidíte, že část glitche se zúženou kladnou částí pulzu trvá daleko déle než počátek. Čili na počátku je posun v záporné straně, pak následuje zúžení pulzu, které je výrazně delší a pak návrat do normálu. Toto se navenek projeví jako periodická změna šířky pulzu, protože glitch se s nějakou pravidelností opakuje.

Komentáře