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 [2017/06/12 14:32] – [Generátor digitálních hodin CLKGEN01B] kaklik
Řá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 ====== 
- 
-Tento generátor by měl poskytovat více výstupních frekvencí odvozených z jednoho frekvenčního normálu. Hlavním účelem tohoto řešení je, aby byla homogenní distribuce chyb v celém systému.  
-Například 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 [[http://www.silabs.com/products/timing/oscillators/dspll|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|Si5340]] 
-  * [[http://www.silabs.com/documents/public/data-sheets/Si5347-46.pdf|Si5346]] 
- 
-Výstup z generátoru by opět měl být na SATA konektory.  
- 
- 
- 
  
cs/clkgen.txt · Poslední úprava: 2017/06/22 11:27 (upraveno mimo DokuWiki)