Uživatelské nástroje

Nástroje pro tento web

Překlady této stránky?:

cs:clkgen

Generátor digitálních hodin CLKGEN01B

V současnosti je modul v produkční fázi. A lze jej zakoupit v e-shopu UST. Nastavení kmitočtu se provádí přes sběrnici I²C. Výstup digitálního signálu je vyvedený diferenčně na SATA konektor.

Nastavení výstupní frekvence

Emulace zařízení DG8SAQ

DG8SAQ vyvinul konstrukci, která je velmi často využívána hlavně radioamatéry, neboť kromě ovládání samotného oscilátoru poskytuje ještě další funkce, jako je přepínání banky filtrů, nebo klíčování radiostanice. Vzhledem k velké rozšířenosti této konstrukce, je implementována jak na architektuře PIC, tak i na AVR.

Microchip PIC

V tomto případě je modul připojen na sběrnici USB pomocí modulu PIC18F4550v01A do kterého je nahrán firmware umístěný v MLAB SVN.

Podrobnější popis této konstrukce je možné nalézt v odděleném dokumentu Kmitočtový syntezátor s Si570 laditelný přes USB

Atmel AVR

Společným problémem obou těchto konstrukcí je právě USB. Které způsobuje, že zařízení nefunguje zaručeně na všech počítačích, případně dochází k zatuhnutí oscilátoru na jedné frekvenci a nebo ke ztrátě kalibrace.

Přímé ovládání přes I²C

V tomto případě se pro komunikaci využito přímo ovládání přes rozhraní I²C čipu Si570. Proto jde o nejspolehlivější a aktuálně nejlepší způsob ovládání tohoto modulu v zařízení.

Samotný elektrický způsob připojení modulu se v tomto případě liší podle použitého I²C master zařízení. Jako programové knihovny lze použít například MLAB Python I2C, nebo přímo kernelovský modul pro Linux.

Přímý I²C master

Pokud máme na počítač s vyvedeným rozhraním I2C je vhodné připojit modul přímo k němu, neboť se tím vyhneme problémům s přechody mezi jednotlivými vrstvami protokolů. Jedním ze zařízení, které má přímo rozhraní I2C je ARM počítač ODROID-X2. K tomuto počítači je však nutné připojovat CLKGEN01B opatrně, neboť jeho pracovní napětí je na IO rozhraních je pouze 1.8 V. Tento problém lze ale bezpečně řešit zařazením modulu I2CHUB01A, který kromě převodu napěťových úrovní funguje zároveň i jako rozbočovač, na jehož porty lze připojovat další I²C zařízení.

Samotné připojení oscilátoru k ODROIDu provedeme podle návodu v sekcí O připojení I2C. Podrobný popis způsobu zacházení s I²C je pak na stránce I²C a MLAB. Ve stručnosti je ale modul správně připojen pokud jej vidíme na sběrnicí. To lze zjistit tímto postupem:

Zkontrolujeme, že na sběrnici vidíme modul I2CHUB02A. V tomto příkladu je vidět a má adresu 0x70

linaro@linaro-ubuntu-desktop:~/repos/MLAB-I2c-modules/examples$ sudo i2cdetect -y 1 
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: 70 -- -- -- -- -- -- --                         
linaro@linaro-ubuntu-desktop:~/repos/MLAB-I2c-modules/examples$

Na něm je nyní potřeba aktivovat kanál ke kterému je připojen modul CLKGEN01B, protože na nemáme připojeného nic jiného. tak si můžeme dovolit aktivovat všechny kanály volbou 0xff

linaro@linaro-ubuntu-desktop:~/repos/MLAB-I2c-modules/examples$ sudo ./i2chub02_example.py 1 0x70 0xff
Get initial I2CHUB setup:
I2CHUB channel setup: 0b0
Setup I2CHUB to channel configuration: 0b11111111
final I2C hub channel status: 0b11111111
linaro@linaro-ubuntu-desktop:~/repos/MLAB-I2c-modules/examples$ sudo i2cdetect -y 1 
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- 55 -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: 70 -- -- -- -- -- -- --                          
linaro@linaro-ubuntu-desktop:~/repos/MLAB-I2c-modules/examples$

Nyní vidíme i připojený modul CLKGEN01B se kterým můžeme komunikovat a ladit jej například kernolovským modulem pro Si570.

Je třeba dodat, že bez změny implicitních nastavení je potřeba mít nezapojenou žádnou volbu na jumperu 'SLAVES' na modulu I2CHUB, neboť to způsobí přípojení dalších pull-up rezistorů, které už obsahuje modul CLKGEN. A sběrnice I2C pak v takovém případě nemusí fungovat správně.

USB - I²C bridge

Počítače, které nemají vyvedenou sběrnici I²C, ale USB lze připojit modulem Převodník USB na I²C USBI2C01A

Ukázka použití modulu CLKGEN a USBI2C01A

CLKGEN01A

Je prototypem modulu, který byl vyroben v jednom exempláři.

Při návrhu tohoto modulu byly zohledněny následující konstrukční požadavky:

  • Modul by měl umět generovat digitální hodinové signály s vysokou fázovou přesností.
  • Primárním účelem tohoto obvodu by mělo být vytváření hodin pro rychlé AD převodníky, kde jsou vysoké nároky na fázový šum a obecně na kvalitu signálu.

Alternativní obvody

Generátor digitálních hodin CLKGEN02A

Generátor by měl poskytovat více výstupních frekvencí odvozených z jednoho frekvenčního normálu. Hlavním účelem takového řešení je, aby se frekvenční chyba distribuovala proporcionálně v celém systému. V případě použití generátoru hodin v SDR přijímači je výhodné, aby lokální oscilátor pro směšovač byl odvozený ze stejné kmitočtové základny jako ADC. Neboť korekce frekvence je pak společná pro všechny části systému a není třeba je frekvenčně korigovat jednotlivě.

Pro tento účel existují kmitočtové syntezátory využívající technologii DSPLL, která umožňuje generování téměř libovolných frekvencí z referenčního oscilátoru. Použitelné obvody jsou například tyto:

Výstup z generátoru by měl být LVDS na SATA konektory na PCB.

Potřebné parametry kmitočtové základny

Parametry kmitočtové syntézy

  • Minimální aditivní fázový šum/jitter
  • Možnost spojitého přelaďování v celém frekvenčním rozsahu.
  • Minimálně dva nezávislé frekvenční výstupy (pro vzorkovací hodiny ADC a pro směšovač)
  • Frekvenční rozsah vzorkovacích hodin by měl být alespoň 5-25MHz
  • Frekvenční rozsah signálu pro směšovač by měl být alespoň 10-900 MHz
  • Pro výstup vzorkovacích hodin minimálně dva diferenční kanály.
  • Pro výstup frekvenčního signálu pro směšovač minimálně 4 differenční kanály

Parametry referenčního oscilátoru

  • Minimální fázový šum/jitter
  • Není nutná vysoká frekvenční stabilita (oscilátor bude umístěn v relativně stabilních stacionárních podmínkách)
  • Oscilátor bude volně běžící pro minimalizaci nespojitostí a šumu. (Nebude korigován jako VCO, jeho chyby budou kompenzovány změnou konfigurace kmitočtové syntézy)

Těmto požadavkům vyhovují oba navrhované obvody. Z důvodu optimalizace vývojových prostředků a zkrácený doby vývoje bych ale navrhoval použití Si5345A-D-GM v kombinaci se externím krystalem ve standardním pouzdru HC-49S. (optimální frekvence krystalu pro minimalizaci jitteru je podle datasheetu 50 MHz). V případě, že by se ukázalo, že jednoduchý křemenný krystal nemá dostatečně stabilní parametry, tak lze frekvenční referenci nahradit externím připojením externího rezonátoru, který může být i teplotně kompenzovaný. Modul kmitočtové syntézy ale musí být připravený na připojení různých dalších typů referenčních oscilátorů, což lze nejsnadněji zařídit osazením SATA konektorů na differenční stupy kmitočtové reference.

cs/clkgen.txt · Poslední úprava: 2017/06/22 11:27 (upraveno mimo DokuWiki)