Tak - a je tu LED doska verzie 2 pre SBC6502, ktorá má na sebe 24 LED (reálne je ich 25 - aj s prednou indikačnou LED). Ovládanie je urobené všetkými 3 portami čipu 8255A, čiže sú obsadené všetky bity a teda je možné pekne krásne jednotlivo ovládať každú z týchto 24x LED. Použité červené LED sú tzv. supersvietivé (Super Hell), na plný jas im stačí dodať prúd 2mA. V tomto zapojení ani nejdem na túto hodnotu, naozaj svietivosť je viac ako dostatočná.
Schéma zapojenia - SBC6502 - LED board 2:
Čo dodať k zapojeniu ?
Nič zložitého, v zapojení sa neskrýva žiadna záludnosť, doska používa jediné napájanie a to 5V. Sú použité 3x čipy 74HCT245 (alebo 74LS245), ktoré slúžia ako oddeľovač pre porty obvodu 8255A a zároveň tu slúžia tiež ako "výkonová časť". Odber LED je naozaj nepatrný (jedná sa o hodnotu necelých 1.5mA na jednu LED) a teda aj záťaž je minimálna, ale pre čip 8255A by to bez nich (a obvodu 74HCT245) nebolo to pravé orechové. Použitie DIP switchov pre možné totálne oddelenie od portov obvodu 8255A je u mňa už asi úplná samozrejmosť - ale nie je to nutnosť, ak ich nechcete - použite na ich mieste skratovacie prepojky.
Použité kondenzátory 47uF by v zapojení stačili o desatinovej hodnote, ale týchto mám ich doma 100, pardon, teraz už iba 98 ...
Napájanie (5V) ide z konektoru J5, dátové vodiče z 8255A idú z konektoru J4, t.j. porty A, B a C.
Zapojenie modrej LED (indikácia napájania) je experimentálne - po zapnutí chvíľu svieti silnejším jasom a potom príde k poklesu jasu až do vypnutia. Takže či to použijete tiež je iba na Vašom rozhodnutí.
Teraz sa pozrieme na to ako sú zapojené LED v tomto zapojení priamo na doske (v akom poradí):
Na fotografii sú na doske osadené čipy 74LS245.
Mne vyhovovalo takéto zapojenie výstupov jednotlivých portov, môžete si ale na svojej doske zvoliť iné, vlastné. Pretože jednotlivé porty sa ovládajú samostatne tak mi bolo jedno ako to zapojím, ovládanie bude aj tak dané vlastným programovým vybavením. Akurát je dobré dodržať nejakú filozofiu - ja som sa rozhodol pre uvedené zapojenie LED v poradí ako je to na obrázku, čiže ak to otočíme o 90 stupňov doľava tak sa na všetkých portoch napravo nachádza najnižší bit. Poradie portov je C A B (zprava doľava), pretože port A som chcel mať v strede. Zase môžete zmeniť ich poradie tak ako bude Vám vyhovovať. Akurát pri programovaní portov treba pamätať ako ide Vaše poradie portov na doske.
______________________
Ukážka ako na programové vybavenie, nastavíme všetky porty ako výstupné:
- PA - adresa portu A
- PB - adresa portu B
- PC - adresa portu C
Do data riadkov zadáme:
- ako prvé čo pôjde na porty v poradí B, A, C to potom ide v tom poradí na jednotlivé porty, D potom obsahuje číslo ktoré je použité na časovaciu slučku - buď priamo od 0 až 255 alebo sa použije v programe tak že sa vynásobí nejakou konštantou.
Možný príklad ako riešiť jednoduché ovládanie portov na LED board 2:
2 REM
3 REM chip 8255, Port A = PA
4 REM chip 8255, Port B = PB
5 REM chip 8255, PORT C = PC
6 REM Command register = CR
7 REM
9 PA=32768:PB=32769:PC=32770:CR=32771
10 POKE CR,128:REM A,B,C=OUT
100 REM
110 RESTORE
120 FOR F=0 TO 3
130 READ B,A,C,D
135 ? B,A,C,D
140 POKE PB,B:POKE PA,A:POKE PC,C:FOR G=0 TO D:NEXT G
150 NEXT F
160 END
199 REM DATA B,A,C,D=wait
200 DATA 0,0,0,2000
210 DATA 255,255,255,10000
220 DATA 0,0,0,15000
230 DATA 129,129,129,20000
V riadku č.140 je teda možné dosiahnuť veľké spomalenie prepínania zobrazenia na portoch (ak treba - podľa potreby). Datové riadky potom môžu tvoriť ucelenú (a dlhú) grafickú zostavu - presne takú akú si sami navrhnete. Vlastná rýchlosť slučky wait stavu sa mení podľa toho akú skutočnú rýchlosť procesoru používame.
Pre "zdatnejších" - do jednoho riadku môžete zlúčiť dva nasledujúce DATA riadky. Bude to fungovať, akurát prehľadnosť programu sa zmenší, ale zato sa skráti vlastný program, zhutní sa.
Zmažú sa riadky 210 a 230 a zmenia sa nasledovné riadky:
200 DATA 0,0,0,2000,255,255,255,10000
220 DATA 0,0,0,15000,129,129,129,20000
Poznámka:
Ak si trúfate a nestratíte sa, môžete do jednoho DATA riadku zlúčiť napríklad 3x DATA riadky, vlezie to tam tiež, dokonca netreba ani použiť POKE 15,80, potom maximálna dĺžka riadku dosiahne hodnotu = 64, max. povolená hodnota je = 72, takže sa s prehľadom vojdeme.
Príklad max.dĺžky:
10000 DATA 255,255,255,10000,255,255,255,10000,255,255,255,10000
Rozhodoval som sa či pôjdem cestou použitia čipov na doske alebo či na dosku ovládania dám rovno 24 tranzistorov a k tomu ďalších 24 odporov do ich bázy, ale ako vidieť čipy pre nasadenie nakoniec zvíťazili (odporom na výstupe som sa aj tak nevyhol). Jediná vec ktorú som kupoval na tento projekt (v domácich zásobách neboli) boli LED, ostatné súčiastky boli doma. Nejako sa mi do stavby s tranzistormi už nechcelo, nakoniec prvá skúšobná LED doska bola postavená na nich (ale len pre jeden port (port A), teda aj spotreba súčiastok tam bola iba tretinová.
No a to je asi tak všetko.
___________________________________________________________
Návrat do všetkých pokračovaní o SBC6502:
http://blog.3b2.sk/igi/post/Directory-SBC6502.aspx
____________________________________________________________
Vaše hodnotenie, Rate post: