Fórum témák
» Több friss téma |
Nem találtam a fórumon semmilyen ezzel kapcsolatos témát, ígyhát nyitok egyet.
Kérdésem teljesen általános: Hogyan és mire lehet a portbővítőket használni? Első körben pl. szeretnék egy 7 szegmenses led kijelzőt a lehető legkevesebb PIC port felhasználásával vezérelni. A ChipCad ide tartozó árlistája: http://online.chipcad.hu/www/arak.aspx?group=01010704.
Lehet készíteni portbővítőt pl. két darab 74574-es 8-as D-tárolóval is. Egy 8 bites portra rá kell kötni mindkettő bemenetét, és kell még 1 portláb, arra hogy melyik, IC-t írja a PIC.
A portbővítés természetesen sebességcsökkenést fog okozni, mivel egyszerre csak egy 74574-est tud írni, így csak olyan alkalmazásokban használható, ahol ez nem okoz problémát. A bővítést nehezíti még, ha I/O váltja egymást. Nem ismerem a portbővítő IC-ket, de szerintem sorosan kell beírni az írandó címet, majd küldeni kell az adatot. Hasonlóan lehet gondolom bemenetet kimenetet váltani is.
Húúú
Na asszem' egy napot fogok keresgélni a neten, mire az egész hozzászólásodat megértem Az én problémám az, hogy kevés az output láb a PIC-en (16F628A) és nem is szeretnék más fajtát használni. Dehát ugye a portbővítést is meg kell tanulni...
Ha jól értem a problémádat akkor, megoldható szerintem 2 lábbal is!
Mivel 7 szegmens van és egy pont, tehát 8 vezeték kellene és egy közös, akkor egy 8bites binárisszámlálóval hajtod meg a kijelzőt (áramkorlátozó ellenállásokon keresztül). A számláló órajelbemenetét pedig a PIC-el hajtod. A másik kimenettel pedig engedélyezed a kijelző közös pontját. A programozáskor ki kell írnod a kijelzőre írandó számokat (betűket), és megnézed milyen bináris érték tartozik hozzá pl:00000100, akkor 8 órajelet kell küldened a számlálónak, és miután az beállt, engedélyezed a kijelzőt a másik lábbal. a számláló lehet akár CD4040 is (ez 12 bites), vagy amelyik teccik... Ha nem volt valami érthető akkor inkább kérdezz rá konkrétan mit nem értesz. Az MCP23016 szerintem neked felesleges, mert csak kimeneteket bővítesz, nameg 8-ról 16-ra bővíthető, nameg 4040-est minden valamire való bolban kapsz, az mcp-t meg csak a ChipCad-től lehet rendelni.
Szia unicorn!
Szeretem amikor az eredeti kérdéstől eltérő témára adnak válasz a hozzászólók! Prinner: miért bonyolítasz? Felesleges! Mivel Unicorn PIC16F628A-t használ, így abban nincs se I2C, se SPI hardveres kommunikáció. A kettő közül az SPI-t könnyebb szoftver-ből megvalósítani így ajánlani tudom neked az MCP23S17-et. Ez SPI buszon kommunikál, és 4 PIC láb elhasználásával 16 tetszőlgesen konfigurálható digitális I/O lábat kapsz. Ha véletlenül nem csak egy db kijelzőt akarsz meghajtani, akkor ezek nagyon jól jönnek! Sziasztok!
Kimenet-bemenet soxorozására kiválóan használhatók a shift-regiszterek. Pl. én a kijelzőkhöz 4094-est használok, 3vezetéken (portlábon) kezelhető (szinte) korlátlan hosszúságú display-sor (vagy más) kimeneti eszköz. Előnye még a multiplexeléssel szemben a villódzásmentesség, mivel minden kimenet tárolós (latch). Már egy digit esetén is 4 lábat spórolsz, ha bemenet multiplikáció is kell, akkor az +1 portlábbal megoldható.
Igazából az elképzelésem az volt, hogy portbővítővel csinálom meg, mert nem értek hozzá, márpedig csak akkor lehet megtanulni, ha az ember tesz egy próbát. Ettől függetlenűl kösz a hozzászólást, mert tulajdonképpen a bináris számlálóket se használtam még, úgyhogy arra is készítek majd valami funkcionalitást.
Pont erre gondoltam. Utána nézek a neten a működésének. Van esetleg egy hevenyészett kapcsolási rajzod/ASM kódod a működésről?
Ennek a 4094-esnek is uátnanézek... Köszönöm.
Na utánanéztem a portbővítőknek, és úgy látom, hogy ehhez én még kisfiú vagyok... Meg lehet tanulni, de asszem' ez most nagy falat lenne.
Bocsi, hogy én magam offolom a topicot, de a 4094-essel kapcsolatban lenne néhány kérdésem, utána olvastam a dolognak, de egy-két dolog nem világos. Először is: ahogy én gondolom: Tehát van egy 4094-es IC-m. Írni a következőképpen tudok rá: az órajelet a PIC egyik portjára kötöm, azt a portot kimenetre teszem, majd lehúzom 0-ra. Ezt követően a kívánt értéket a PIC egy másik lábán keresztül a DATA vezetékre kötött lábra adom (itt is kimenetre teszem persze a PIC azon lábát). Ekkor a CLOCK-ra adok egy magas jelet (a doksiban úgy látom, hogy a felmenő élnél olvas a 4094-es). Az eredmény az lesz, hogy a 4094-es minden benne lévő jelet továbbléptet egyel és az alsó érétken az általam küldött jel jelenik meg. Sejtésem szerint a jelek megjelenítése úgy működik, hogy az "OUTPUT ENABLE" lábra egy magas jelet teszek és amíg ott ez van, addig a Q1-Q8 lábakon a 4094-esben tárolt adatok jelennek meg. Úgy látom, hogy úgy kell kaszkádolni, hogy a Qs jelet egy következő 4094-es DATA lábára kapcsolom, ennek a 4094-esnek az CLOCK-ja és "OUTPUT ENABLE"-je pedig azonos az előzőével. A kérdéseim a következők lennének: - az eddig irtak valóban így vannak? - mire való a STROBE láb? A leírásban írtakat egyáltalán nem értem... - mit jelent az, hogy 3 állapótúak a 8 bites latch-ek? Nem csak 0/1? mi a harmadik állapot és azt hogyan kell használni? Előre is köszönöm a segítséget...
nos amit kilogikáztál az majdnem teljesen jó, kivéve néhány dolgot:
a shift regiszterbe tényleg így megy be az adat ahogy írod, és a Qs-en ki is megy... ha viszont a shift regiszterben már bent van az adat, akkor a STROBE jelet kell arra használni, hogy a latch-be beíródjon. Amennyiben STROBE-bal nem írod be az adatokat, akkor csak átrobognak az ic-n. A kimenetek engedélyezésekor a latchben lévő adatok kerülnek a kimenetre. A háromállapotú (tri state) kimenet annyit tesz, hogy amikor nincs az output engedélyezve akkor nagyellenállású módban vannak a kimenet lábai. Ez arra jó ,hogy több ilyen ic-t tudsz egy buszra kötni, úgy ,hogy mindíg csak egynek engedélyezed a kimeneteit.....
A STROBE pontos működése még nem világos nekem.
Tehát az előbb általam írt módon bevezetek adatokat a DATA-n annyi különbséggel, hogy a STROBE lábat alacsony szinten tartom. Egyszercsak úgy gondolom, hogy a beírt adatokat meg szeretném jeleníteni a Q1-Q8 lábakon. Ekkor azt csinálom, hogy a STOBE és "OUTPUT ENABLE" lábakat egyszerre magasba húzom. Jól értettem azt, amit írtál?
már megint majdnem jó
Ugyan speciális esetben lehet egyszerre is, de általában egymás után szokták. Első lépésként beküdöd az adatokat a shift-be, majd egy strobe impulzussal átírod a latchba ( ami természetesen az impulzus megszűnése után is megtartja az adatokat), és utána amikor szükséged van rá a kimeneten akkor engedélyezed az output enable lábbal....ez buszos áramkörökben akkor szokott lenni amikor felszabadul a busz, azaz másik ic nem ír rá.
Na hát nagyon tetszik ez a 4094-es. Ha jól értem: egyszerre lehet valamilyen adat a latch-ban és a shift regisztreben. Tehát ha mondjuk egy eglszen más adatot akarok a következő ciklusban megjeleníteni a lábakon, akkor csak annyit csinálok, hogy a shift adatok beküldése közben is folyamatosan fent tartom az "OUTPUT ENABLE" lábat. Amikor végeztem az adatok frissítésével és beállt a shift reigszter arra, amit végül szeretnék kint látni, akkor egyszerűen csak felhúzom a STROBE-ot, majd lehúzom. Ez így nagyon tetszik, mert nincs egy kis villogás sem, még ha hosszú ideig tart is az adatok frissítése...
Kérdésem: lehet úgy adatokat beküldeni a shift-be, hogy közben az "OUTPUT ENABLE" magasan van és meg is jelenik a Q1-Q8 kimeneteken a régebbi, tárolt jel?
természetesen lehet, hisz többek közt pont erre való....
Köszönöm mindenkinek a segítséget. Sajnos az eredeti elképzelés (portbővítő) nem jött össze, mert egy kicsit még bonyolultnak érzem, viszont a 4094-est sikerült felélesztenem.
Hali mindenkinek!
Átnéztem az eddigi írásokat, és sok jó ötletet találtam! (főleg Prinner 2 lábas- számlálós mo-ja tetszett ) De ez a 4094 -es IC sem rossz.. :yes: és ezzel kapcsolatba lenne egy kérdésem is... (még én is kezdő vagyok a digitális technikában... még) A kérdésem arra vonatkozna, hogy miér kell a Latch a Sh regiszter mögé? (az Oké hogy mert egyben lehet kapni és így jól működik) -de miér kell? mi lenne ha csak egy Shift regiszterbe raknánk az adatokat? -Nagyon hazárdos lenne? -de arra nem lenne jó az OutputEnable? és ha hazárdos is lenne az a 7 szegmenses kijelzőn mennyire látszana?
A tároló(latch) azért jó, mert a kimeneten - még bevitelkor is - megvan a régi adat, és mikor bevitted az új adatokat, egyszerre lehet kirakni a lábakra az összes bitet.
Hétszegmensnél nem hiszem, hogy gond lenne ha nincs tároló, mert nem szükséges 100fps-nél többet tudnia, és az adatokat ennél sokkal gyorsabban be tudod vinni. És valóban elég az enable lábat állapotát változtatni.
Hello!
Tudom hogy nem egészen idevág De van egy P1-es gépem amit picrogramozásra akarok használni. Ezen még nem az alaplapon vannak a portok hanem szalagkébelt kell rádugni az alaplapra. Az volna a gondom hogy soros porti egyszerű égetőt(azt hiszem JDM) szeretnék használni. az alaplapon van 2 port (+nyomtató) ebből 1 a sima 9-es meg van mégegy ami sokkal több pólusú. arra az egy sima comra megy az egér. mit tudok most tenni? arra a hosszúra nem lehet JDM-et tenni?
megnézegettem kicsit közelebbről is és ugyanolyan szalagkábel megy bele mint a sima com portba. és az alaplaon van com2 tüskesor is. akkor elvileg ugyanannak kellene lennnie de akkor mely kivezetésekre is lenne nekem szükségem?
itt megtalálod a választ:
25 pin: http://pinouts.ru/SerialPorts/Serial25_pinout.shtml 9 pin: http://pinouts.ru/SerialPorts/Serial9_pinout.shtml
aha értem. Ezekszerint jól gondoltam, hogy ugyanaz lesz, de mi értelme van 25 pineset csinálni, hogyha a többinek semmi feladata? nem értem miéren nem jó rá mégegy 9-es?
Sziasztok!
Szeretnék egy PIC nek több bemenetet készíteni, amire érzékelőket köthetek, szükségem lenne egy viszonylag nagy lábszámú IC re aminek a lábai 0 vagy 1 logikai állpotot kapnak. A lábai állását valamilyen buszon, vagy pár lába segítségével bármilyen úton módon, esetleg 5-6 biten számként ábrázolva a bemenet értékét áttolja egy PIC nek. Tud valaki valami IC-t ajánlani a célra? Köszönöm előre is!
MCP23xxx.
ChipCAD-nél lehet venni.Soros I/O bővítő, I2C, SPI.
Hello, Egyszerűbb megoldás a CD4021-es párhuzamos bemenetű, soros kimenetű shift-regiszter. 8 órajelciklussal a Q8-as lábon beléptetheted a PIC-regiszterébe a bemenetek állapotait. Sorba is kötheted őket, tetszés szerint.
Hány lábra van szükséged?
Miért nem használsz nagyobb PIC-es? (olcsóbb és egyszerűbb)
Sziasztok!
Az MCP23S17-es portbővítőt használta már valaki? Próbálom, és nem igazán sikerül! Szét olvastam az adatlapját és nem igazán értem hogy akkor most MOD0.0, vagy MOD0.1 modban kell használni? A PIC oldalról szinte minden féle szituáció beállítható, de az MCp23S17 adatlapján nem találok rá válasz. ugyanígy csak utal rá hogy a reset lábat külsőleg kell beálítani de nem mondaj meg hogyan, pedig végig nyálaztam a doksit.... ha valaki használta már (assembler..) kérem segítsen üdv brs
Hali!
Most már én is tudom... A doksi az egy kalap sz...., inkáb rejvény mint dokumentáció. h avalakit érdekel szívesen elmondom mi a megoldás.
Szia!
Engem konkrétan érdekelne, de talán később mást is! Megköszönöm a leírod a tapasztalataid. |
Bejelentkezés
Hirdetés |