Fórum témák
» Több friss téma |
Sziasztok.
Watt által készített WLPT mini v4 es programozót használtam eddig WPB-el. Tegnapi nap mikor elindítottam a WPB valami dll-t hiányolt, ezért újratelepítettem . Azóta nem ismer fel a program egy pic-et sem. WinPic800 felismeri, viszont nem tudja írni őket, történt már veletek ilyen, mi lehet a probléma ?
Sziasztok!
Számot szeretnék kiíratni lcd kijelzőre , de valamiért nem sikerül. Így szeretném kiíratni (Közben kap értéket , csak azt nem másolom be , túl hosszú lenne.):
De valami más karakter jelenik meg a kijelzőn , miért lehet ez ? (MikroC) valami a változó kiíratással lehet. A hozzászólás módosítva: Jún 27, 2015
Szia!
Valószínűleg így az ASCII kódját írja ki (próbáld ki, a "sec" változónak adj decimális 97-es értéket, elvileg egy "a" betűt kéne kiírnia..). Ezesetben vagy valami másik parancs kell, vagy valami átalakító függvény. De szerintem mindjárt kiguglizom.
Deklarálj egy string változót, majd alakítsd át az integert stringgé, és azt írd ki, valahogy így:
Bár ez az IDE nem az én világom, de ennek így szerintem működnie kéne.
Teljesen ugyanaz a hozzáférés menete, mint mármely más egyszerű SRAM esetén.
A lényeg hogy betartsd a megfelelő időzítéseket. (Ami nem túl nehéz ha lassú mikrovezérlőt használsz...) Én pl. AS7C34098A-12 típustú SRAM-ot használok 40MHz-es PIC24HJ-vel. Olvasás: 1. (Cím PORT kimenet) 2. (Adat PORT bemenet) 3. /WE tiltás, /OE, /CE engedélyezés 4. Cím beállítása 5. (Várakozás) 6. Adat olvasás 7. /CE, /OE tiltás (Többszörös olvasás esetén a 4.-6. lépések ísmétlődnek.) Írás: 1. (Cím PORT kimenet) 2. /OE, /WE tiltás, /CE engedélyezés 3. (Adat PORT kimenet) 4. Cím beállítása 5. Adat írása 6. /WE engedélyezés 7. (Várakozás) 8. /WE tiltása 9. (Várakozás) 10. /CE tiltása (Többszörös írás esetén a 4.-9. lépések ísmétlődnek.) Még valami: A vezérlőbusz PORT-ja folyamatosan kimenetként üzemel, de minden vezetéke kb. 10k-val a tápra van kötve hogy a PORT nagyohmos állapotában a SRAM biztosan tiltva legyen. A hozzászólás módosítva: Jún 27, 2015
Eddig még nem működik, de ma már félre teszem.
Holnap majd ismét ránézek.. Egyelőre a prototípuson nincsenek felhúzó ellenállások, gondolom most tesztelésre ezek elhagyhatóak. A hozzászólás módosítva: Jún 27, 2015
Tegnap este még vacakoltam vele,de semmi.
PIC18F442-ot hasznalok 40MHz-en. Az idozitesekre nem ns-t hanem ms-t hasznalok. Az olvasás talán működik, bár azt nem ertem , hogy a fenébe lehet egy üres SRAM-ban adat.
Sziasztok!
Tudna valaki egy példa programot NTP lekéréshez ? MikroC-ben. Sehol nem találok.
Mindenfajta RAM-ban MINDIG van adat, csak az a kerdes,hogy az neked megfelelo-e.
Furcsa lenne, ha a RAM bejelentene, hogy pl. bocs, de azon a cimen nincs semmi
Statikus memória. Ha nem kap áramot elvileg nullazik. Nem tartja me az adatot.
Annó úgy magyarázta a tanárunk, hogy a tároló jellegű eszközöknek bekapcsoláskor jogukban áll bármilyen állapotot felvenni. Minden bizonnyal, miután a processzor felébred, első lépésként nullázza a RAM-ot, azután tölti fel adattal vagy egyszerűen azt a területet nem olvassa, amire még nem írt.
A hozzászólás módosítva: Jún 28, 2015
Értem, ez esetben találkozhatók random adatokkal.
Akkor ez a talány számomra megoldódott. Már csak azt kellene tudnom miért is nem tudok beírni adatot. Ezen rutinokat írtam és használom: (ezer variációban kiproklamáltam már, de valahol nem stimmel)
Kukkantsatok rá, előzőleg felraktam az adatlapot is.. Előre is köszi..
Én megfordítanám a logikát: az adatbusz alapértelmezetten HiZ legyen (bemenet). Írásnál: cim ki, CE, WE, Tris, adat ki, WE, CE.
Gondolom az írás alatt az /OE láb végig magas állapotban van...
A mikrovezérlőre csak a SRAM kapcsolódik? Nem tudom mi értelme van az írás végén a 0 adatnak, de végül is az nem oszt, nem szoroz. Valamint az olvasás végén az adatbuszt miért állítod kimenetre? Biztonságosabb ha csak írás idejére működik kimenetként, elkerülendő a buszkonfliktust. Nos... Nekem a rutin így is jónak tűnik.
Az az érdekes, hogy szimulátorban működik és jók a rutinok.
De élőben nem ír be semmit, csak ami random mód benne van azt olvassa ki. Bemenetre csak olvasásnál kell állítani az adatbusz, minden másra kimeneten kell lennie, hiszen ha nem olvasok akkor valószínűleg írok, ha egyiket sem akkor meg ne lebegjen..
Termesztésem amikor írok OE magas, WE alacsony, amikor olvasok WE magas OE alacsony.
Csak az SRAM van rajta és persze egy kijelző ami mutatja az adatokat. A 0-ás adatra azért van szükség, hogy az adatport kinullázódjon az írás után és ne befolyásolja az olvasást. Tapasztaltam, ha nincs nullázva az adatport akkor benne marad az utoljára beírt adat és hibás adatot fog eredményezni.. Az adatbuszt kimenetre állítom mert olvasásnál bemenetre kell állítani. Ha vége az olvasásnak ne maradjon bemeneten mert akkor lebeghet. 0x33 0x11 Adatoknak kellene lennie mivel ezeket írom be.. A hozzászólás módosítva: Jún 28, 2015
Köszönöm srácok a segítséget.
Minden jól működött a chip volt hibás. Szerencsére találtam még itthon pár darabot és azokkal már egyből működött a dolog. Már tiszta rosszul voltam, hogy nem működik Köszi még egyszer..
Örülök, hogy működik, ennek ellenére az adatbusznak az a dolga, hogy lebegjen , csak az vezérelje akire épp tartozik. Az adatlap tWHZ ideje pont erre vonatkozik az 5-ös megjegyzéssel együtt.
De ne lebegjen
Most már megy és ennek örülök.. Dobok is fel egy vidit a ki mit késztet topikba Köszi srácok. Idézet: Ezt azert nem mondanam. Az adatbuszt felhuzo ellenallasokkal szokas tapra huzni pont azert, hogy amikor senki nem hajtja meg, akkor se lebegjen. Tudni illik ugyanis, hogy egy CMOS bemenet nem szereti, ha lebeg, azaz ha nincs rajta H vagy L sizntnek megfelelo feszultseg. Koztes allapotban egy CMOS bemeneti aramkor (az IC-n belul) igen nagy aramot vehet fel a taprol, akár gerjedhet is. „Örülök, hogy működik, ennek ellenére az adatbusznak az a dolga, hogy lebegjen” A hozzászólás módosítva: Jún 28, 2015
Igazad van, ne lebegjen. Azért van a WPU, hogy ne hagyja. Inkább arra kívántam rámutatni, hogy az adatlap alapján a WE lefutó éle után 20ns-ig még kimenetként funkcionálhatnak a lábak, így az szembemehet a PIC kimenetével. Úgy látszik az IC-k kibírják ezt, csak minek így csinálni, ha nem így kell.
Ha az /OE végig alacsony szintű, akkor az IO lábak nem lesznek sose kimenetek. Az adatlap azt az esetet mutatja, mikor az írás az /OE magas állapotában történik.
Mindenekelott, abban teljesen egyetertek veled, hogy alaphelyzetben tri-state-ben legyen minden. Alapvetoen igy szokas ezt csinalni. De. A fenti programban a read fugvenyben: OE = 1; CE = 1; TRIS = 0; Igy garantalt, hogy nem irnak egymasra. Az iras fuggvenyben meg semmikeppen nem irhatnak egymasra, mert a RAM OE nem megy low szintre.
Az miért van, hogy MPlab-nál a Watch ablakban az Add Symbol rész nem aktív? Nem tudom megnézni a változóm értékei így.
|
Bejelentkezés
Hirdetés |