Pre pouzitie 74HC164 je este potrebne pouzit zachytny register, alebo pocas posielania udajov display zhasnut.
Omnoho vhodnejsi je 74HC595. Obsahuje vsetko co potrebujes.
No s tým refreshovaním asi nepohnem, buď to nesvieti vôbec alebo to preblikáva, tak sa teda pýtam je tu nejaká možnosť ako pomocou 74hc164 udržať nepretržite svietenie segmentov (za predpokladu použitia len týchto registrov a bežných súčiastok)?
Ak budes refresovat >60x za sekundu a to tak, ze segmenty budu svietit aspon 90% casu, tak to bude OK. Dosiahnes jas 90%. Pocas refreshu musis segmenty zhasnut. Ak ich nemuxujes (a tym vies vypnut segmenty spinanim napatia na spolocnej anode/katode), alebo nemas ako vypnut napajanie segmetnov, tak neviem ako ich zhasnes. Asi najjednoduchsie bude dorobit vypinanie napajania segmentov cez tranzistor. Chce to nejake tri suciastky naviac a jeden pin procesora.
Vsimol som si , ze vela kontrukcii pouziva 74HC164 na ovladanie segmentov. Nerozumiem tomu, ze preco.
LCD musíš napájet střídavím signálem. Nevím, jak je to přesně, ale myslím, že 32hz by mělo bohatě stačit. Musíš 32x za vteřinu krmit 164 a neustále měnit střídavě data. Pokud do LCD pustiš stejnosměrné napětí, tak ho zničíš. A to je to, že se ti občas rozsvítí i to co nemá a nebo že ti to dělá trhliny v segmetech.
Nevím, jestli bude 32ms stačit, ale myslím, že ano. Když to bude fungovat, můžeš pak laborovat s časem. A musíš měnit polaritu oproti společnému pinu, který tak měníš oproti segmentům.Snad jsem to napsal dobře
Ten displej je celý divný. Keď mením polaritu svieti vsetko co je zapojené (a práve nepouživané). Do pekla strašne blbý mechanizmus a ja som sa chcel vyhnuť tupím refreshovaním (ako napr. multiplexovanie pri led atd.)
Martine, obvod 74164 obsahuje 8ks statických klopných obvodů typu D, takže nač záchytný registr? 74164 jsem pro buzení displeje použil již několikrát a vždy stačilo “nacvakat” hodinami data a hotovo. Když se to udělá tak rychle, že oko nepostřehne změny při posuvu, tak to nemá šanci blikat. Řešil jsem jediný problém, hned při prvém použití. Při krokování programu se data přenesly a zobrazily naprosto v pořádku, ale při poslání normální rychlostí se nezobrazil údaj na posledním (čtvrtém) displeji (mluvím o čtyřmístném displeji LED). Pomohlo důsledné blokování pouzder registrů keramickými kondy 100nF. Od té doby to jede jak hodiny.
Vím, že byla řeč o LCD displeji, ale to snad na principu buzení pomocí posuvných registrů nic němění?
Funkce 74164 je patrna z datasheetu.
Pokud někdo chcete schéma, které mi s LEd displeji spolehlivě funguje, mohu poslat (ale to je snad jasné .
No ved preto, ze tam treba tie data nacvakat velmi velmi rychlo. A na blikanie pri posielani dat sa tazatel stazoval.
Ak pouzijes 74hc164 a ma vo vysledku sietit iba jeden poseldny segment, tak pouzitim 74HC164 postupne rozsvietis vsetky segmenty, i ked na kratku dobu. Ale oko vidi. I ked je to len 0,1ms, oko to uz vidi. Ak clockujes a s obsahom “nehybes” 200ms, tak to oko vyhodnoti este aj ako neprijemne blikanie. Neprijemnost zavisi od okoliteho osvetlenia.
Ak pouzijes 74HC595, tak
lubovolne dlho posielas data cez vsetky 74HC595, kludne i v priebehu 100ms
po ukonceni posunu das jednym signalom (/CS) pokyn vsetkym 595-kam naraz, aby si do vystupneho registra prepisali obsah posuvneho registra. Ten tam ostane dokedy sa zase neudeje nabezna hrana na /CS (pin 12). Velmi jednoduche, bez potreby znasilnovat sw k turborychlostiam.
Ak vyuzivas SPI pre viac cinnosti, napr. SPI Flash, SPI EEPROM, Nx 74HC595, SPI AD prevodnik, SPI DA prevodnik, vzdy musis povedat pomocou signalu /CS, s kym ze sa to chces bavit.
To 74HC164 neumoznuje, lebo CLK vnima vzdy a neda sa povedat, ze teraz cez teba lezu nejake data, ale nevsimaj si ich. Bez dalsej pridanej elektroniky to skratka nie je mozne. 74HC595 to ma vyriesene.
Neviem si dalej predstavit, ako by sa iba pomocou 74HC164 ovladali relatka.
No a ako bonus, ak na pin 13 74HC595 (/OE) privedies PWM signal, elegante mozes riadit silu svietivosti LED displaya. A to v priamom, alebo i muxovanom rezime.
Pre priame ovladanie jednej 7 segmentovky tu spomenutych LCD je urceny obvod Cd4543 alebo M5482. Ja by som ho vsak nepouzival. Pre budenie by som pouzil ATmega8/32 (samozrejme spravne nasoftenu) a tej by som cez UART, alebo cez I2C rozhranie posielal, co sa ma zobrazit. No nech sa stara nie?
Ano, máš pravdu, že tam data posílám velmi rychle (cca 1 bit za 5us, celý displej je tedy obnoven za cca 160us) a nevšiml jsem si, že by to působilo rušivě.
74HC595 jsem neznal a nepoužíval (na Valašsku nejde sehnat . Ale mají jej v GME, takže jej hned vyzkouším … .
Řešení s 74164 má drobnou výhodu v tom, že stačí jen dva signály, u 74HC595 potřebuješ tři až čtyři. Já jsem 74164 začal používat v době, kdy se jetě dělalo s PIC16F84 a tak se občas drátů nedostávalo .
S těmi relátky je to samozřejmě pravda a s tím řízením jasu pomocí PWM bezvadná finta!
Puzil som teslacky LCD vyzera tak isto. prerusenie som mal kazdych 10 alebo 20ms. Na zobrazenie 100,10 a 1 som mal pouzite tri registre ktore sa v preruseni invertovali. Na konci prerusenia sa posielali data pre 3*4094 plus impulz pre Strobe.