Fórum témák
» Több friss téma |
Hát a tárolás lábat is illő volna nem 1 -en hagyni.Ahogy nézem a hiba csak az első csoportban jelentkezik .Esetleg a tápszűrő kondikat megspóroltad,vagy az uln nel túl nagy áramot kapcsoltatsz,és ez táp zavarokat okoz...
Ha beírod az IC típusszámát a Goole keresőbe, rengeteg mintapéldát találsz. Például ezt...
A válaszodból úgy érzem félreérthető voltam. Nem az ULN kimenete van a regiszter bemenetére kötve hanem fordítva. Az ULN után pedig egy led mátrix van. Próbáltam a lassítást 1ms-ot hagyva minden művelet között s az eredmény ugyanaz volt(hibás).
A tárolás láb hogy szerepel a datasheetben? A tápszűrő kondik 100u + 100n a stabkocka mindkét oldalán, így nem jó? Nincs szó nagy áramokról egy pár led van az ULN-k után.
Keresgéltem én is rengeteget (többek közt az általad belinkelt lapon levő infókat is felhasználtam) de nem igazán találtam hasonló problémát, vagy ha volt akkor azt a nem megfelelő adatkiküldés okozta. Nálam a gond hogy a helytelen bitek csak néha és össze-vissza jelentkeznek.
Tárolás=latch enable.Nekem volt olyan ,hogy vékony volt a föld vezeték (bár ez inkább számítógép -próba panel közöt fordult elő )
Tehát ha jól értem a következőt javaslod: miután kiküldtem az összes bitet, állítsam a latch enable-t 1re s utána vissza0-ra?
Hát nagyjából.Miért hagynád 1-en ,mindenféle zavar írhatja büntetlenül.Meg különben is a következő beírást,hogy kezded megint 0-ról?
Értem. De ha jól meggondolom akkor így csináltam. A 24 bit kiküldése előtt 0-ra állítom, megtörténik a kiküldés utána latch enable -> 1, s ez ciklusban. Tehát rögtön az 1re állítás után, a következő ciklus elején 0 értéket vesz fel.
Az utolsó kérdésed viszont nem tiszta, esetleg kicsit bővebben?
Azt írtad "clock 0, adat a DS re, clock 1, clock 0. Miután mind a 24 bit ki lett küldve a latch enable-t 1re állítom."
Ebből az következik hogy a következő 24 bit kiküldése után már nem tudod a tárolást 1-re állítani mert már ott van. Tehát a következő tárolás előtt ezt törölnöd kell Így értettem.(arról nem írtál sehol hogy a ciklus törléssel kezd.) Esetleg valami extrém magas frekivel járatod az is problémát okozhat. Esetleg a programodban van némi hiányosság,egy két megszakítás rosszkor jön,és valami változót ,jelzőbitet módosít a főprogiban.Írj rá egy tesztprogramot megszakítás nélkülit ,ami csak ezt a célt szolgálja.Ha azzal is hibázik rsetleg az időzítéseket növelve ,vagy egészen lelassítva kideríthető a hiba oka.
Ha az ULN nel kapcsoltatsz (valószínű azért mert relatíve nagyobb az áramigény) akkor a stabkocka bemenetén szerintem a 100µF kevés.Utána viszont inkább fólia kondik és 1-2µF + 100 nF ,vagy elkó ,de max 10µF körüli.Ha nagyobb elkót használsz akkor a kocka ki-be menete közé is kell egy fordított dióda.(kikapcsolásnál ne kapjon fordított feszültséget a kimeneti kondiból)
Az extrém magas frekvencia az mennyitől értendő? Próbáltam úgy is hogy minden művelet után beszúrtam egy 1ms os delayt de a hiba akkor is jelentkezett. Megszakítás csak egy van ami az UART-ot kezeli de az is 3 sor nem nyúl semmilyen jelzőbithez(egyenlőre). A kondenzátorokat kicserélem. Amúgy olvastam olyat is hogy minden IC-t hidegíteni kell főleg ha több van belőlük(3 db regiszter + 3 ULN + UDN). A hidegítés hiánya okozhat ilyet? Van itthon marékra 47n kerámia kondim az jó lenne erre?
Elvileg minden iC hez kellene ,a lehető legrövidebb lábbal.A 47nF valószínű jó. Az ördög nem alszik, a soros portos megszakítást is vedd ki.
Hello
Egy régi PC alaplapjáról leszereltem egy flash chipet. Adatlapja szerint 128K x 8bit. Gondoltam jó lesz majd valamire, de túl sok lábat foglalna le a PIC-en. Arra gondoltam, hogy az írás-, olvasás engedélyező lábakat és a 8 adatvonalat közvetlenül a mikrovezérlőre kötném, a 17 címbuszt pedig shift regisztereken keresztül címezném. Milyenekből és hogyan lehetne a legegyszerűbben összeállítani egy legalább 17 bites shift regisztert, amit csak serial input és clk lábbal lehetne vezérelni? Üdv.
Megteszi szerintem a 74HC595. Elvile kellene neked 3 darab (8+8+1) vagy használsz csak kettőt s az utolsó bit megy a vezérlőre. Serial input s a clk láb mellé viszont még fog kelleni feltétlen a latch enable ahhoz hogy a bitek egyszerre jussanak a kimenetre. A 74HC595 adatlapjában találsz leírást mindenre, plusz volt itt a topikban egy link is ami szintén hasznos lehet(bekötés + program a vezérlőnek)
Sziasztok
PIC-et programoznék flowcode-ban de megakadtam egy 74hc595-ön, A gondom a következö: szeretnék átváltani egy változot data-ra. Ugy gondolom hogy ugye a data-ban pl:00001000 van és ehez hozzá szeretnék addni 00100000 és ebből lenne 00101000. Ez az elképzelés lehetséges?
Hello! Nem egészen érthető, mi köze a kérdésednek a shift regiszterhez.. De ha a flow-ban programozol, akkor miért nem annak topikjában kérdezed? Amúgy meg az eredmény amit szeretnél bit szinten, az egy egyszerű VAGY kapcsolat a két nyolc bites szám között. üdv!
Ha a flow totyikban visszalapozol találsz több példát az 595 kezelésére, a többi már csak matek .
Tudom, tudom de pont a matek a bajom, kukk fogalmam sincs hogy hogy is álljak neki ennek a dolognak. Leirom az elképzelésem miről is van szó, adott bemenetekhez tartozna adott shift kimenet és ha több bemeneten (B1 magas=00010100, B2=00011010) van jel akkor összegzi a shift-be (shift=00011110) és együtt a kettöt küldi ki. Na erre milyen matekot kell alkalmazni?
Hello! Ha már bitekre, programozásra és shift-regiszterre adtad a fejed, akkor az a minimum, hogy a logikai kapcsolatokkal megismerkedsz. Pld itt. De ha a kugliba beütöd, hogy "AND" "OR" "XOR" stb. akkor számtalan találat lesz. üdv!
Sziasztok!
74HC595-öt szeretnék vezérelni PIC-ről. Az adatlapjából kinéztem hogy az egyes lábait hogyan kellene vezérelni és ezt Tinában le is szimuláltam, ott működött is rendesen. Viszont a valóságban nem akar működni sajnos. A programocskám így néz ki:
Értelem-szerűen a CLR a 74HC595 10-es lába, a CLK a 11-es, a LATCH a 12-es, az ADAT_KI pedig a 14-es. Megmértem és az alacsony és magas szintek tényleg ott vannak a PIC kimenetein és a 74HC595 bemenetein is. És a tápfesze is megvan. A programot debuggerben léptetgetem manuálisan, azaz az sem lehet probléma hogy esetleg túl gyors a PIC (36MHz-en fut egyébként). Mi lehet a gond?
Van még két bemenete, lehet azokat hagytad üresen.
Csak egy van ezeken felül, az OE ami magas impedanciássá teszi az összes kimenetet de az le van kötve földre.
Közben rájöttem, valami kontakthiba van a csatlakozók körül. A PIC és a 74HC595-ök külön nyákon vannak és van köztük két pár csati, ezek valamelyike kh-s.
A hozzászólás módosítva: Dec 16, 2013
Hahó! Egy olyan kérdésem lenne, hogy az alábbi kapcsolás működőképes lehet-e? 4 db ilyen panel lenne összefűzve, és vezérelve egy arduinoval?
Hello! Elvileg működhetne, csak a Led-ek áramát nem korlátozza semmi csak HC kimenet ellenállása. Ha minden Led-et bekapcsolod, várhatóan hasmenést kap a HC. üdv!
2 centinél nem akartam szélesebbre a nyákot, ebből a megfontolásból fog csak 3.3V-ról menni (előtétR)
Köszi! ezt akartam csak tudni, hogy működhet remélem fog is :S
Problémám merült fel a címben megjelölt áramkörrel.
A feladat: ~50 bemenetet beolvasása 74ls166 shift regiszterrel. A bemenetek szimpla komparátor kimenetek. A probléma: CD4021-es shift regisztert használva minden gond nélkül megy a beolvasás, de a jelenlegi NYÁK-on 74LS166-ot használtam a lábkiosztása miatt. Utólag megbántam, mert nem lett sokkal egyszerűbb a panel. Mivel már késztettem belőle és a regiszter is megvan szeretnék rájönni mi a hiba. Adatlap alapján elvileg minden helyes a kapcsolásban is és a programban is, de az adatvonalon csak a Q7 adat érkezik meg, majd ennek értéke van folyamatosan az adat vonalon. Esetleg valakinek van valami tapasztalata ezzel az áramkörrel? Jelenleg egy Arduino-val tesztelgettem. Engedélyező és tiltó lábak fixen tápvonalakra vannak kötve. Próbáltam informálódni az interneten is, hátha mással is előfordult hasonló, egy-két fórumbejegyzést találtam, de nem lettem okosabb. Minden segítséget előre is köszönök! |
Bejelentkezés
Hirdetés |