Uživatelské nástroje

Nástroje pro tento web


cs:clkgen

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.


Předchozí verze
cs:clkgen [Unknown date] (aktuální) – upraveno mimo DokuWiki (Unknown date) 127.0.0.1
Řádek 1: Řádek 1:
 +====== Generátor digitálních hodin CLKGEN01B ======
 +
 +V současnosti je modul v produkční fázi. A lze jej zakoupit v [[http://www.ust.cz/shop/product_info.php?products_id=90|e-shopu UST]]. Nastavení kmitočtu se provádí přes sběrnici [[cs:i2c|I²C]].
 +Výstup digitálního signálu je vyvedený diferenčně na SATA konektor.
 +
 +{{:cs:modules:clock:clkgen01b_top_big.jpg?600|}}
 +
 +===== 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 [[cs:pic18f4550v|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 [[http://www.mlab.cz/Modules/Clock/CLKGEN01B/DOC/DG8SAQ_emulator.cs.pdf|Kmitočtový syntezátor s Si570 laditelný přes USB]]
 + 
 +=== Atmel AVR ===
 +
 +
 +<WRAP info >
 +
 +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. 
 +
 +</WRAP>
 +
 +==== 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í [[cs:i2c|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 [[https://github.com/MLAB-project/MLAB-I2c-modules|MLAB Python I2C]], nebo přímo [[https://github.com/MLAB-project/si570|kernelovský modul]] pro Linux. 
 +
 +=== Přímý I²C master ===
 +
 +Pokud máme na počítač s vyvedeným rozhraním [[cs:i2c|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č [[cs:odroid-x2|ODROID-X2]]. K tomuto počítači je však nutné připojovat [[cs:clkgen|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 [[cs:i2chub|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í [[cs:odroid-x2#pripojeni_i_c|O připojení I2C]]. Podrobný popis způsobu zacházení s I²C je pak na stránce [[cs:i2c|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 [[cs:i2chub|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 
 +        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 [[cs:clkgen|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 
 +        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 [[cs:clkgen|CLKGEN01B]] se kterým můžeme komunikovat a ladit jej například kernolovským modulem pro [[https://github.com/MLAB-project/si570/wiki/Install|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 [[cs:usbi2c|Převodník USB na I²C USBI2C01A]]
 +
 +{{:cs:modules:clkgen01b_connection_big.jpg?300|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 =====
 +
 +  * [[http://www.exar.com/communications/timing/universal-clocks/xr81112/|XR81112]]
 +
 +
 +
 +====== 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:
 +
 +  * [[http://www.silabs.com/documents/public/data-sheets/Si5341-40-D-DataSheet.pdf|Si5341]]
 +  * [[http://www.silabs.com/documents/public/data-sheets/Si5345-44-42-D-DataSheet.pdf|Si5345]]
 +
 +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 [[http://www.abracon.com/products.php?search=osc&type=XO&subtype=Ultra-Low%20Jitter|externího rezonátoru]], který může být i [[http://www.abracon.com/products.php?search=osc&type=TCXO/VCTCXO&sortBy=[7,%27asc%27]|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)