www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Premik podatkov za LED prikazovalnik z shift registrom 74595

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
JOST
Član
Član



Pridružen-a: Ned 23 Nov 2008 12:01
Prispevkov: 130
Aktiv.: 0.64
Kraj: Lokovica

PrispevekObjavljeno: Sre Feb 13, 2013 12:04 pm    Naslov sporočila:  Premik podatkov za LED prikazovalnik z shift registrom 74595 Odgovori s citatom

Za potrebe prikaza podatkov iz PLC-ja sem se lotil izdelave prikazovalnika. Uporabil sem 3-prikazovalnike SA23-12EWA (5,7cm veliki znaki) s skupno anodo, tako da lahko prikazujem števila do 999.
Ker sem omejen z številom izhodov na krmilniku, sem se odločil da napravim v prvi fazi multipleks, za kar sem porabil 10 izhodov krmilnika. To deluje super, vendar je manjši problem v osveževanju prikaza iz PLCja. Zato sem se odločil da uporabim shift registre 74595 , kjer bom serijsko prenašal podatke v obliki BCD kode preko enega izhoda. Poleg tega izhoda rabim še dva izhoda in sicer za clock signal za shift register, ter clock signal za latch register. Tako potrebujem vsega skupaj 3 izhode iz krmilnika. Shift registra sta vezana v kaskado, tako dobim na razpolago paralelno 16-bitov. Izhodi iz registrov so direktno vezani na vhode BCD to 7-segment pretvornike 7447, tako da 4-biti na vsakem registru krmilijo po en LED display.
Ker so PLC izhodi 24V, sem uporabil optospojnike za pretvorbo nivojev na 5V.
Pojavi pa se mi problem da kadar je na podatkovnem vhodu logična 1 in jo z clockom premaknem za 1 v desno, se mi le-ta pojavi na 3 najnižje uteženih izhodih hkrati, potem pa se mi takšna vsebina premika naprej za ena z vsakim clockom. Ne vem v čem je problem, ali ne bi smela biti direktno povezana 74595 ter 7447. Nimam pa v tem trenutku rezervnega shift registra da bi ga zamenjal. Vezje prilagam v datoteki.



MAX_LED.pdf
 Opis:

Download
 Ime datoteke:  MAX_LED.pdf
 Velikost datoteke:  517.83 KB
 Downloadano:  34 krat



Nazadnje urejal/a JOST Sre Feb 13, 2013 8:06 pm; skupaj popravljeno 2 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 15.99

PrispevekObjavljeno: Sre Feb 13, 2013 1:30 pm    Naslov sporočila:   Odgovori s citatom

Sheme nisem gledal, ampak napaka je lahko tudi v PLC programu.
Krmilnik preveri stanje vseh vhodov, nato gre čez program, na koncu pa spremeni vse izhode naenkrat.
Če tega ne upoštevaš pri pisanju programa, nastanejo presenetljivo zanimive posledice.
Če naprimer program v 9 vrsticah zapored spremeni stanje izhoda, se bo na dejanski izhod prenesla samo zadnja sprememba.

Zadevo najlažje rešiš, če programiraš od spodaj navzgor in zaklepaš vrstice, da se izvedejo šele ob naslednjem prehodu.

Dodano: sem pogledal shemo. Kam so vezane baze optosklopnikov?

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
JOST
Član
Član



Pridružen-a: Ned 23 Nov 2008 12:01
Prispevkov: 130
Aktiv.: 0.64
Kraj: Lokovica

PrispevekObjavljeno: Sre Feb 13, 2013 4:27 pm    Naslov sporočila:   Odgovori s citatom

igo je napisal/a:
Sheme nisem gledal, ampak napaka je lahko tudi v PLC programu.
Krmilnik preveri stanje vseh vhodov, nato gre čez program, na koncu pa spremeni vse izhode naenkrat.
Če tega ne upoštevaš pri pisanju programa, nastanejo presenetljivo zanimive posledice.
Če naprimer program v 9 vrsticah zapored spremeni stanje izhoda, se bo na dejanski izhod prenesla samo zadnja sprememba.

Zadevo najlažje rešiš, če programiraš od spodaj navzgor in zaklepaš vrstice, da se izvedejo šele ob naslednjem prehodu.

Dodano: sem pogledal shemo. Kam so vezane baze optosklopnikov?


PLC programa v bistvu še nimam, kajti izhode sem prožil iz VAT tabele. Ta način je sicer počasen vendar je ustrezen za ta način testiranja. Najprej sem si postavil podatek na "1" nato sem prožil "clock" za shift register, nato pa še "clock" za latch register. Drugače je pa res, da imajo fizični izhodi tisto stanje, ki se je postavilo najkasneje v programu.

Baze optospojnikov so v zraku. Ali je to narobe? Med bazo in kolektorjem sem vezal tudi 100pF kondenzator pa ni nič bolje....
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 15.99

PrispevekObjavljeno: Sre Feb 13, 2013 6:38 pm    Naslov sporočila:   Odgovori s citatom

Zdaj sem shemo še bolje pogledal ...
Zakaj so RCLK in SRCLK vezani skupaj?
SRCLR sploh ne potrebuješ, saj vsakič vpišeš novih 12 bitov, prejšnjih pa ne rabiš več in se lahko izgubijo v prazno. Če bo par milisekund po vklopu izpisana naključna vrednost, pa ni pomembno.

Komunikacija poteka tako:

SRCLK' ves čas čaka na na "1" (to je Serial Clock)
RCLK ves čas čaka na na "0" (to je Latch Clock)
Zanka
(
Določi se bit SER
SRCLK' na "0"
SRCLK' na "1"
če še ni 12 prehodov, gre na začetek, sicer leti ven
)
RCLK na "1"
RCLK na "0"

Optosklopnike in pull-up ter pull-down upore poveži tako, da bodo ob izklopljenih ledicah na izhodih ustrezna stanja "1" oziroma "0". Potem PLC sprogramiraš s pozitivno logiko, saj bo SRCLK' invertiran na optosklopniku. Torej na izhod PLC-ja pripelješ samo stanja SER, ter pozitivne impulze za SRCLK in RCLK, da ne bodo ledice ves čas brez veze svetile.

Če bodo baze optosklopnikov nase vlekle motnje, bi jih jaz vezal kvečjemu preko 470kOhm upora na GND. A če je napaka le v SRCLK' in RCLK, jih lahko tudi pri miru pustiš.

3 prazne izhode od 74595 lahko vežeš na DP displayev. Za hec, morda kdaj pride prav. Ampak potem moraš vedno poslati 15 bitov.

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
JOST
Član
Član



Pridružen-a: Ned 23 Nov 2008 12:01
Prispevkov: 130
Aktiv.: 0.64
Kraj: Lokovica

PrispevekObjavljeno: Sre Feb 13, 2013 8:16 pm    Naslov sporočila:   Odgovori s citatom

Hvala igo, ker si povedal razlago sheme. Sedaj sem ugotovil da ni pravilna ta shema, kajti medtem sem napravil že novo. Clocka sta različna, to sem jaz tudi upošteval, kar je razvidno iz prvega mojega pisanja. Sedaj prilagam novo shemo, že izdelano tiskanino pa sem "modificiral" kar z žičkami d'oh!


MAX_LED_driver.pdf
 Opis:

Download
 Ime datoteke:  MAX_LED_driver.pdf
 Velikost datoteke:  53.85 KB
 Downloadano:  11 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
JOST
Član
Član



Pridružen-a: Ned 23 Nov 2008 12:01
Prispevkov: 130
Aktiv.: 0.64
Kraj: Lokovica

PrispevekObjavljeno: Ned Feb 17, 2013 6:06 pm    Naslov sporočila:   Odgovori s citatom

Zadevo sem rešil. Namesto pull down uporov na izhodih optospojnikov sem priključil pull up upore. Na ta način sem se rešil nedefiniranih logičnih stanj na vhodu v register. Prilagam novo shemo
Napisal sem tudi program za simatika, ki je pravtako v prilogi. Uporabljeni so samo trije izhodi, kar povsem zadošča za prikaz. Proženje premika podatkov je narejeno preko sistemskega 10Hz pulza, kar pomeni da celoten prikaz traja cca. 1,2 sekunde. Prvih osem taktov se vhodni podatki samo premikajo v shift registru, zato opazovalec ne vidi spremembe, potem pa morajo podatki iz prvega registra preiti v drugega, zato je potrebno aktivirati izhodni latch. Pravtako je potrebno aktivirati latch z vsakim naslednjim prmikom podatkov naprej. To se opazi kot utripanje prikazovalnika. Če bi se še malce potrudil in uporabil hitrejši premik podatkov, potem bi teh utripov ne bilo, vendar tudi to ni preveč moteče.



MAX_LED_driver.pdf
 Opis:

Download
 Ime datoteke:  MAX_LED_driver.pdf
 Velikost datoteke:  282.82 KB
 Downloadano:  7 krat


LED_S7_program.txt
 Opis:

Download
 Ime datoteke:  LED_S7_program.txt
 Velikost datoteke:  2.92 KB
 Downloadano:  8 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 15.99

PrispevekObjavljeno: Ned Feb 17, 2013 6:49 pm    Naslov sporočila:   Odgovori s citatom

Ko napolniš prvih 8 bitov, se podatek samodejno začne polniti v drugi 595. Vmes ni treba nič latcha aktivirati.

Ti kar napolni vseh 12 bitov naenkrat in daj potem impulz na latch.

Ti registri so narejeni ravno za to, da lepo v miru napolniš vse bite, nato pa jih naenkrat preneseš na izhode.

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
JOST
Član
Član



Pridružen-a: Ned 23 Nov 2008 12:01
Prispevkov: 130
Aktiv.: 0.64
Kraj: Lokovica

PrispevekObjavljeno: Tor Feb 19, 2013 6:12 am    Naslov sporočila:   Odgovori s citatom

Točno tako kot si napisal igo. Ne potrebuješ aktiviranja izhodnega latcha za prenos med registri. Sedaj ni več utripanja
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 500 dni


Powered by phpBB © 2001, 2005 phpBB Group