. : New eShop! - Mobilní verze - Pandatron.cz - Pandatron.sk - Diskuzní fórum - Zakázkový vývoj : .
 
AT91SAM7S - 4.díl: Clock Generator a PMC

AT91SAM7S - 4.díl: Clock Generator a PMC

Bez kvalitního zdroje hodinového signálu by nemohl pracovat žádný mikroprocesor.

Tak výkonný a složitý procesor, jakým bezesporu AT91SAM7S256 je, vyžaduje i propracovaný zdroj hodinového signálu s řadou rozšířených možností. Na následujících řádcích se tedy společně podíváme na nabízené možnosti a pracovní režimy dostupných generátorů hodinových signálů.

Clock Generator
Generátor hodin obsahuje celkem tři základní části – interní RC oscilátor, hlavní oscilátor a PLL obvod.


Obr. 1: Blokové schéma clock generátoru

Jejich základní nastavení je provedeno automaticky ihned po založení nového projektu a to konkrétně v souboru AT91SAM7_Startup.s. Zde se postupně zapne hlavní oscilátor i PLL násobička a ze standardně připojeného krystalu s hodnotou 18,432 MHz je vytvořen hlavní zdroj hodin s kmitočtem zhruba 48,055 MHz. Ten představuje základní kmitočet pro správnou funkci USB portu, UARTu a dalších integrovaných periférií. V speciálních případech je samozřejmě možné použít i jiný krystal i jinou hodnotu hlavního hodinového signálu.


Obr. 2: Systémové soubory založeného projektu

Interní RC oscilátor
Představuje základní zdroj stále běžícího hodinového signálu.
Z tohoto oscilátor je procesor vždy po svém zapnutí či resetu startován a až na základě příkazů obslužného programu je provedeno přepnutí na jeden z následujících zdrojů. Jeho frekvence je pouze přibližně nastavena na 32 kHz. Po zapnutí obvodu se oscilátor startuje zhruba 75 us (tedy pouhé dva takty) a následně odebíraný proud nepřesahuje 1,9 uA.

Hlavní oscilátor
Tvoří hlavní krystalový oscilátor pro frekvenci v rozsahu 3 až 20 MHz. Na obr. 3 je zakresleno základní připojení krystalu k pinům obvodu. Rezistor 1k je doporučován pouze pro krystaly s hodnotou nižší než 8 MHz a připojená kapacita na pinech XIN a XOUT by měla být maximálně 10 pF.


Obr. 3: Připojení hlavního krystalu

Oscilátor je startován na základně zápisu do registru CKGR_MOR (kompletní mapa registrů je uvedena níže v části PMC) a podle frekvence připojeného krystalu mu to může trvat až 15ms. Dokončení start-up sekvence je následně indikováno hardwarovým nastavením bitu MOSCS v registru PMC_SR.

Pro použití externího zdroje hodinového signálu je možné krystalový oscilátor přemostit a to opět zápisem do registru CKGR_MOR.


Obr. 4: Struktura hlavního oscilátoru

Procesor je dále vybaven i jednoduchým obvodem poskytujícím základní informaci o frekvenci připojeného krystalu. Jakmile je plně spuštěn hlavní oscilátor, je během následujících 16 taktů interního RC oscilátoru načítán počet taktů hlavního oscilátoru (tedy frekvence krystalu). Tato hodnota je poté i včetně informace o úspěšném proběhnutí oněch 16 taktů uložena v registru CKGR_MCFR.
Pro krystal o základní hodnotě 18,432 MHz by zde měla být hodnota 2400h. Samozřejmě pouze přibližně, neboť RC oscilátor není příliš přesný.

Obvod PLL
Aby nebylo nutné připojovat k mikroprocesoru hodinový zdroj s vysokou frekvencí, čímž by se především výrazně zvýšil odběr celého obvodu, je procesor vybaven interní programovatelnou deličkou a následným obvodem PLL. S jejich pomocí je možné získat teoreticky kmitočet až 200 MHz. Jelikož však jádro obvody řad AT91SAM7S pracuje maximálně na 55 MHz, není tato možnost běžně využita.


Obr. 5: Blokové schéma PLL

Pro správnou funkci PLL je ještě potřeba dodat, že je k obvodu potřeba připojit externí RC filtr podle následujícího obrázku a to na pin PLLRC. Ten je samozřejmě již pevnou součástí desky AT91SAM7S256-KIT.


Obr. 6: PLL RC filtr

Díky předřazené 8-bitové děličce a konfigurovatelném násobiči je tímto obvodem možné vytvořit téměř libovolnou frekvenci do již zmíněných zhruba 200 MHz. Veškerá konfigurace se provádí zápisem do registru CKGR_PLLR. K dispozici je samozřejmě interval pro zachycení a stabilizaci kmitočtu, což je následně indikováno nastavením bitu LOCK v registru PMC_SR.

Power Management Controller (PMC)
Druhou částí, úzce související s předchozími zdroji hodinového signálu je obvod PMC. Ten má na starosti následnou a především řízenou distribuci hodinových signálů jednotlivým částem procesoru a perifériím. K dispozici jsou tak následující hodinové signály:

MCK (Master Clock)
Hlavní hodinový signál procesoru. Pomocí registru PMC_MCKR je možné zvolit jeho zdroj a případně aktivovat volitelný dělící poměr v rozsahu 0 až 64.


Obr. 7: Blokové schéma MCK

PCK (Processor Clock)
Hodinový signál vedoucí k jádru procesoru. Jeho vypnutím přejde procesor do režimu „idle“. Signál je ovládán pomocí registrů PMC_SCER (povolení) a PMC_SCDR (zastavení).
Po zapnutí obvodu je signál samozřejmě povolen a k automatickému povolení dojde i při resetu či vyvolání interruptu. Při zakázání signálu PCK dojde k fyzickému vypnutí hodinového signálu až po dokončení aktuálně vykonávané instrukce.

Peripheral Clocks
Typicky MCK rozvedené k jednotlivým perifériím. U každé periférie umožňuje zapnutí (registr PMC_PCER) či vypnutí (registr PMC_PCDR) hodin.
Po zapnutí či resetu obvodu je signál ke všem perifériím zakázán, přičemž naopak interrupt nemá na nastavení vliv.

V následující tabulce je přehled dostupných periférií, vyžadující pro svou činnost aktivaci hodinového signálu (UDP viz dále).


Obr. 8: Přehled periférií

UDP Clock – USB Clock Controller
Hodinový signál využívaný jednotkou USB. Je získáván z obvodu PLL, který musí být nakonfigurován na výstupní kmitočet 48, 96, nebo 192 MHz s přesností 0,25%. Součástí generátoru UDP signálu je konfigurovatelná dělička 1, 2 či 4.


Obr. 9: Blokové schéma UDP

Programmable Clock Outputs
Procesor AT91SAM7S256 má k dispozici celkem tři PCKx signály, které je možné zapnout k vybraným pinům obvodu. Pomocí registrů PMC_PCKx je poté možné nakonfigurovat na každý z těchto pinů libovolný hodinový signál, použitelný například pro externí periférie a další obvody.
Zápisem do odpovídajícího registru PMC_PCKx je možné vybrat zdroj hodin – interní RC oscilátor, hlavní oscilátor či výstup PLL. Dále je možné pro výstupní signál povolit dělící poměr v rozsahu 0 až 64.

Příklad: Následující krátký příklad aktivuje na pin PA6 (PCK0) čtvrtinu hlavního oscilátoru, tedy frekvenci cca. 4MHz.

PIOA_PDR = 0x40;
PIOA_BSR = 0x40;
PMC_PCK0 = 0x09;
PMC_SCER = 0x100;


Obr. 10: Schéma zapojení

Společná tabulka registrů hodinového generátoru i obvodu PMC:


Obr. 11: Přehled PMC registrů (AT91SAM7S Series Preliminary 12/08)

Změna frekvence a zdroje hodin:
Přímo za běhu procesoru je možné měnit nejen frekvenci hlavního hodinového signálu (MCK) změnou dělících poměrů, ale i typ právě použitého oscilátoru. Ve všech případech je tato změna otázkou několika taktů, pouze v případě přepnutí na PLL je čekání prodlouženo na 64 taktů nově zvoleného signálu.

V následující tabulce jsou uvedeny základní časové prodlevy při přepínání zdrojů hodinových signálů.


Obr. 12: Změna zdroje hodin

Závěr:
Jak bylo v průběhu článku představeno, k dispozici je skutečně poměrně velké množství možností a pracovních režimů. Díky podrobné a přehledné dokumentaci výrobce je však nastavení požadovaných vlastností vždy jen otázkou chvilky.

Použitá literatura:
AT91SAM7S Series Preliminary 12/08

Odkazy & Download:
Domovská stránka firmy Kramara s.r.o. - http://kramara.com
ATM91SAM7S256-KIT - http://kramara.com/?q=node/16
USB JTAG Adaptér - http://kramara.com/?q=node/15
CrossWorks for ARM - http://www.rowley.co.uk/arm/index.htm
ARM pro začátečníky (BEN) - http://shop.ben.cz/cz/121300-arm-pro-zacatecniky.aspx







GooglePlus1 FaceBook Twitter del.icio.us DiGG Google StumbleUpon Google Buzz Email RSS PDF Tisk

Komentáře (1):

Zobrazit starší 30 dnů (1)...

host
1. Dne 05. 04. 2009 v 23:14 zaslal host
Bez titulku
Pekny serial, ktery nema konkurenci. Jen tak dal :-)


Název příspěvku: Vaše jméno: host
                 
  Zakázat formátování [Zakáže kódování a nahrazování smajlíky.]
Připojit soubory
reklama:
TX-SAW 433MHz
Vysílač AM 433.92MHz, SAW, max. 15dBm, +5V
od 113 Kč

Informace uvedené v článcích jsou platné v době jejich vydání a samotné články jsou určeny pouze jako zdroj informací. Autor článku ani správce webu nenesou žádnou zodpovědnost za případné újmy na majetku a zdraví. Názvy společností a výrobků, loga a další multimediální materiál mohou být ochrannými známkami příslušných společností.
RSS kanály: | |
+420 723 846 377
info@pandatron.cz
Všechna práva vyhrazena | mobilní verze | © Copyright 2000 - 2016 ISSN 1803-6007