|
Kategorie: Diplomové, bakalářské práce |
Tento dokument chci!
Předmětem této práce je studium stávajícího vývojového řetězce pro mikroprocesor LPC23xx v předmětu MPOA. Hlavním cílem je zkoumání možností realizace nového vývojového řetězce, postaveného na GCC. Výstupy této práce jsou ukázkové aplikace s mikroprocesorem LPC2378 a GCC. Součástí vysledků jsou i návody pro studenty, jak tyto ukázkové aplikace implementovat. Ukázky zahrnují základní aplikace, RTOS aEthernet.
Při tomto testování byl
použit ovladač LCD Petera Fleuryho. první variantě byla napsána pouze jedna funkce realizující prvotní
nastavení bloku generátoru hodin.
Až této části byla aplikace stále realizována bez využití přerušení pro tlačítko.
Po dokončení této úpravy byla aplikace kompletní, byl však zjištěn další nedostatek
v podobě velké chyby měření času. Ukázalo tato funkce při
použití upravené funkce _write_r funguje správně. Tato
proměnná potom připojena modulu main.
Tento oscilátor rovněž laditelný pomocí svého řídícího registru. Bylo zjištěno, zde funkce sprintf funguje
správně.26
Takováto proměnná předána této formátovací funkci, která vytvoří výstupní
řetězec.1)
( 21_ ⋅+
=
MPLL
f
f VCO
comp přičemž )MHzMHzfVCO 550275 (3. Pro tyto potřeby by
se tedy dalo uvažovat nějaké metodě kalibrace. původních cvičeních byla funkce ISR zapsána přímo
v modulu main.3)
kde fcomp frekvence vstupu fázového detektoru PLL, fXtal frekvence
generována krystalovým oscilátorem, fVCO frekvence napětím řízeného oscilátoru
v PLL, fCPU výsledná frekvence pro MCU konstanty PLL_N, PLL_M, PLL_K jsou
kladná celá čísla určující dělicí poměry PLL.2)
1_ +
=
KPLL
f
f VCO
CPU přičemž KPLL liché (3.
Místo přerušení bylo napevno využíváno čtení aktuální hodnoty vstupu MCU.c. Postupně bylo zjišťováno, kde vzniká problém.
Součástí této úlohy být rovněž vytvoření nového ovladače pro tlačítko, který již
bude využívat přerušení.c, kde řídí aplikaci stejným způsobem
jako kdyby byl ovladač součástí souboru main.c. Poslední úpravou této aplikace bylo tedy vytvoření jednoduchého modulu pro
obsluhu bloku oscilátoru generátoru hodinového taktu MCU. Pro ostatní kmitočty lze využít
definice, které přímo drží hodnoty určující dělicí poměry PLL. Zde však byl objeven zásadní
. Pro jednodušší použití jsou předdefinovány makra,
které realizují nastavení nejobvyklejší kmitočty. Zde však způsobilo problémy, jelikož ISR nelze zapsat části
kódu, která překládána režimu Thumb instrukcí.c. Tento řetězec později doplní zbývající text poté pošle LCD. Pro výpočet těchto
hodnot třeba dodržet následující vztahy [18]
1_ +
=
NPLL
f
f Xtal
comp (3. Dále byla samozřejmě testována funkce printf. Detailnější popis lze opět získat
z katalogového listu MCU [18]. Proto byl vytvořen kompletní
samostatný modul ovladačem, který deklaruje globální proměnnou tlacitko.
Během vývoje dalších aplikací, zejména pak aplikace Telnet klientem, došlo
k novému testování knihovny stdio. Tento modul byl nazván
pll_drv. Avšak pro použití všech aplikacích
i všech deskách naprosto nevhodné důvodu, desce již přítomen
krystal. Tato
úprava byla napsána velmi rychle fungovala naprosto korektně.h, konkretně funkce sprintf.
Zjistilo se, chyba způsobena tím, aplikace běží vnitřní oscilátor MCU