Programovatelné logické obvody Úlohy k řešení 1) Klopný obvod D jako dělič kmitočtu Realizujte obvod pro dělení kmitočtu koeficienty 2, 4, 8 pomocí klopného obvodu typu D. Jako vstupní signál použijte nejprve libovolné tlačítko a dále pak hodinový generátor 555, připojený na vstupu P5.
Obr. 1 Časový diagram děličky kmitočtu 2
2) Čítač Realizujte 16ti bitový čítač počtu stisků tlačítka a dále hodinové frekvence generátoru 555 na desce (připojeno na pin P5) a jeho výstup připojte na libovolné LED. Vstupní frekvenci čítače vydělte 2 pomocí klopného obvodu typu D (viz. bod 6). Výstupy čítače zobrazte na LED diody. Čítač nulujte po stisknutí libovolného tlačítka SW1 (pin P26) nebo SW2 (pin P27). Pozn. k řešení: Při použití tlačítka jako zdroje hodinového signálu si povšimněte ne vždy správné funkce čítače – např. jednomu stisku neodpovídá zvětšení o 1. Je to způsobeno mechanickými zákmity tlačítka při stisknutí. Klopný obvod D a čítač – Stručný postup V programovacím prostředí Xilinx Project Navigator vytvořte nový projekt (schéma) pro obvod XC9572 (device), device family XC9500, pouzdro PC44 (package), rychlost 10 ns (speed grade). A) Nakreslení schéma V editoru schéma postupujte takto: 1) rozmístění „součástek“ Bloky čítače najdete v knihovně counters, napájecí napětí (vcc) a zem (gnd) v general , mezi výstup čítače a výstupní piny obvodu zařaďte invertor (knihovna Logic) – prvek inv16, klopný obvod je v knihovně Flip-Flops. Diody na přípravku
svítí při logické nule na výstupu obvodu. Tlačítka generují při stisku úroveň log. 0., v klidu úroveň log. 1. Vstupní frekvenci pro 16 bitový čítač vydělte 2 pomocí klopného obvodu typu D. 2) propojení obvodů vodičem 3) pojmenování vstupních a výstupních signálů 4) uložení souboru a ukončení editoru INV VCC
CB16CE FDC D C
Vstup
GND
INV16
Q[1 5:0]
CE Q
Vystup(15:0)
CEO TC
C
CLR
CLR
GND
Obr. 2 Schéma zapojení – příklad zapojení děličky 2 a 16 bitového čítače B) Přiřazení vývodů Pravým tlačítkem na volbě Assign package pins vyvolejte menu a vyberte Rerun All v záložce User Constrains. Tím dojde k přeložení projektu a spuštění editoru přiřazení vývodů (Xilinx Pace). V editoru rozložení vývodů přiřaďte vstupní a výstupní vývody. Vstupní vývod (generátor hodinových impulsů) připojte na vstup P5 (na horní straně druhý zleva), výstupy na libovolné diody (volné piny pro diody jsou označeny bílou barvou). Výsledek uložte a editor schéma ukončete. C) Naprogramování obvodu V Project Navigatoru vyberte položku Configure device (Impact) v záložce Implement Design, pravým tlačítkem se vyvolá menu kde vyberte Rerun All. Tím se spustí závěrečná kompilace a programovací část prostředí. V úvodním nastavení programátoru ponechejte přednastavené hodnoty (Boundary-Scan Mode a Automatically connect to cable....). Automaticky dojde k nalezení obvodu XC9572 a otevře se okno pro výběr souboru pro nahrání, kde vyberte vygenerovaný soubor s příponou .jed z příslušného adresáře. Pokud se okno pro výběr souboru automaticky neotevře, je možné ho vyvolat v kontextovém menu (pravé tlačítko na ikoně obvodu) položkou Assign New Configuration File. Vyberte symbol obvodu a z menu vyvolaného pravým tlačítkem vyberte Program... a potvrďte. Během asi 10 s dojde k naprogramování obvodu a okamžitému spuštění.
3) Posuvný registr Realizujte pomocí klopných obvodů typu D jednoduchý posuvný registr o délce 4 bity. Vstup připojte na tlačítko nebo na generátor hodinového signálu (v tomto případě jeho frekvenci vydělte dalším obvodem typu D) , výstupy jednotlivých D klopných obvodů v registru připojte na LED a sledujte posouvání informace v registru.
Obr. 3 Časový diagram 4 bitového posuvného registru
4) Řízení stejnosměrného motoru – změna směru otáčení Realizujte pomocí programovatelné logiky obvod pro změnu směru otáčení stejnosměrného motoru. Funkce by měla být taková, že pokud není stisknuto žádné tlačítko na desce logiky, motor stojí. Při stisku a držení jednoho tlačítka se motor otáčí jedním, při stisku druhého tlačítka druhým směrem. Při stisku obou tlačítek současně nesmí dojít ke zkratu výkonové části, proto musí být v tomto stavu zajištěna ochrana elektroniky. Ochranu je možné vyřešit např. zablokováním druhého tlačítka pokud je stisknuto první a prvního pokud je stisknuto druhé. Jako výkonová část bude mezi motorek a logiku připojen přípravek s H můstkem, který principielně pracuje podle schéma na obrázku 5. Motor je ve schéma představován sériovou kombinací L a R. H můstek je připojen na 10ti pinový konektor se zámkem. Zapojení konektoru je podle obrázku 4. Povinné přiřazení pinů obvodu konektoru H můstku je v tabulce. Tranzistor je zapnutý při log. 1, vypnutý při log. 0.
Povinné přiřazení pinů obvodu konektoru H můstku
Pin obvodu P37 P38 P39 P40 P42 P43 P44 P1 P2 P3
Funkce ovládání tranzistoru T1 ovládání tranzistoru T2 ovládání tranzistoru T3 ovládání tranzistoru T4 ovládání tranzistoru T5 ovládání tranzistoru T6 ovládání tranzistoru T7 ovládání tranzistoru T8 Napájecí napětí Vcc GND
Obr. 4 Zapojení konektoru pro H můstek
Obr. 5 Zapojení H můstku
5) Řízení krokového motoru – unipolární motor Realizujte logický obvod, který při držení jednoho tlačítka zajistí otáčení jedním směrem, pokud není tlačítko stisknuto, motor se otáčí směrem druhým. Krokové motory se používají jako akční členy pro nastavování polohy a jejich velmi výhodnou vlastností je především to že je možné vynechat měření aktuální polohy rotoru (zpětnou vazbu). Další výhodou je jejich jednoduché ovládání. Otáčení je u unipolárního krokového motoru dosaženo správnou sekvencí spínání jednotlivých cívek motoru. Změna směru otáčení je jednoduše provedena změnou pořadí této sekvence. Spínání je opět provedeno tranzistory – viz. obr. 6. Pro jeden směr otáčení je sekvence spínání T3, T4, T7, T8 a poté se opakuje T3, T4, T7, T8 , pro druhý směr otáčení T8, T7, T4, T3 a opět se sekvence opakuje. Ostatní tranzistory v H můstku musí být rozepnuté! Tranzistor je zapnutý při log. 1, vypnutý při log. 0. Zapojení konektoru pro H můstek je stejné jako v předchozí úloze. K řešení lze využít čítač a posuvný registr BRLSHFT4. Vstupní frekvenci z generátoru vydělte dalším čítačem, aby byly patrné jednotlivé kroky.
Obr. 6 Řízení unipolárního 4 fázového motoru
6) Řízení krokového motoru – bipolární motor Realizujte logický obvod, který při držení jednoho tlačítka zajistí otáčení jedním směrem, pokud není tlačítko stisknuto, motor se otáčí směrem druhým. Krokové motory se používají jako akční členy pro nastavování polohy a jejich velmi výhodnou vlastností je především to že je možné vynechat měření aktuální polohy rotoru (zpětnou vazbu). Další výhodou je jejich jednoduché ovládání. Otáčení je u bipolárního krokového motoru dosaženo správnou sekvencí spínání jednotlivých cívek motoru (cívky jsou pouze 2 – na rozdíl od unipolárního motoru – ale mění se směr proudu v cívkách). Změna směru otáčení je jednoduše provedena změnou pořadí této sekvence. Spínání je opět provedeno tranzistory – viz. obr. 7. Pro jeden směr otáčení je sekvence spínání T1+T4, T5+T8, T2+T3, T6+T7 a poté se opakuje T1+T4, T5+T8, T2+T3, T6+T7, pro druhý směr otáčení T6+T7, T2+T3, T5+T8, T1+T4 a opět se sekvence opakuje. Ostatní tranzistory v H můstku musí být rozepnuté! Tranzistor je zapnutý při log. 1, vypnutý při log. 0. Zapojení konektoru pro H můstek je stejné jako v předchozí úloze. K řešení lze využít čítač a posuvný registr BRLSHFT4. Vstupní frekvenci z generátoru vydělte dalším čítačem, aby byly patrné jednotlivé kroky.
+12V
T1
+12V
T1
T2
T2
T5
T5
L1
T3
T6
L2
Civ ka 1 motoru
T3
T6
Civ ka 2 motoru T4
T4
T7
T7
Obr. 7 Řízení bipolárního krokového motoru
T8
T8
7) Prodloužení vstupního impulsu V číslicové technice se vyskytují krátké impulsy obtížně zaznamenatelé při měření. Tyto krátké impulsy je třeba prodloužit aby je bylo možné zjistit např. rozsvícením LED. Realizujte zapojení které prodlouží krátký impuls. Modifikujte obvod tak aby jej bylo možné použít pro registraci náběžné nebo sestupné hrany sledovaného signálu. Pozn. k řešení: Použijte klopný obvod typu D pro registraci hrany sledovaného signálu, pro prodloužení impulsu použijte čítač čítající signál hodinového generátoru 555 na desce (připojen na pin P5). Po uplynutí nastavené doby musí čítač nastavit klopný obvod D do původního stavu aby byl obvod připravený na další příchozí puls. Čítač použijte 8 bitový, jako signál nulování pro klopný obvod D lze použít signál čítače TC který udává že čítač dopočítal do svého maximálního rozsahu. Pro generování krátkého vstupního impulsu použijte libovolné tlačítko.
8) Simulace inkrementálního snímače - IRC Inkrementální snímač je snímač polohy. Jeho výstupem jsou dva signály A a B které mají tvar podle Obr. 8. Při vývoji aplikací s IRC je možné využít i simulovaného signálu IRC pokud fyzický IRC není k dispozici.
Obr. 8 Signál inkrementálního snímače Realizujte zapojení pro simulaci IRC. Vstupní signál je hodinový signál generátoru 555, výstup připojte na LED. Pozn. k řešení: Povšimněte si že oba výstupní signály jsou vyděleny 2 oproti signálu hodin, signál výstup1 reaguje na náběžnou hranu a signál výstup 2 na sestupnou hranu hodinového signálu.