Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Sziasztok! Szoktátok használni az Mplab Visual Initializer funkcióját?
A hall elemed nem 5V-os? Van olyan amelyik open collector-os és ahhoz kell a felhúzó. A fesz. osztó csak akkor kellene, ha nem a logikai 5V-os szintet használnád. Itt van egy példa: Bővebben: Link
12Vos ventiből bontottam, de azt mondják hogy 5Vról üzemel. A felhúzóellenálás megvan, előtte egy 100R ellenállás. Az így jó lesz? A rajzból nemigen tudok hirtelen kimenni. Az úgy van, hogya mociban mondjuk van az indexvisszajelő kis égő. Az 12V-ra megy. És azt aknám PIC-re kötni, de az 12V, azért kell elé feszültségosztó.
A hall elmet ki tudod próbálni egy leddel vagy multiméterrel.
A fesz osztó számításhoz itt van segítség: Bővebben: Link Ha 14V bemenővel számolsz, akkor a 10K/4k7 pont jó lesz. Az alsó tagra tegyél párhuzamosan 100nF hidegítést.
Nekem azzal volt gondom, hogy a bemeneten volt egy lehúzó ellenállás. És ha odateszem a feszültségosztót, a felhuzóellenállás bezavar ottan. Vagy olyankor oda nem is kell lehúzóellenállás? A hall működik, a PIC már számol is, Nekem csak a helyes bekötése kell, hogy minden stabilan működjön a rendje-módján....
Alsó tagra kondi? Nem értem hova kössem. Idézet: Nem. Szerintem a gyártó is felhagyott a fejlesztésével. Az adatlap elolvasását úgysem pótolja. Akkor meg minek? „Szoktátok használni az Mplab Visual Initializer funkcióját?”
Valahogy kevered a Gizikét a gőzekével... Ez már nem PIC-es téma, inkább alapismeretek. (Ha meg a hall 5V-ról megy, minek a fesz osztó 12V-ra??)
Inkább gyere át a kezdő kérdésekbe és ott folytassuk. Tudod, jön Watt mester és morci lesz. (jogosan)
Igazad van, össze vissza generálja a kódokat teljesen követhetetlen, azt hittem én követek el valamit...
Éreztem a bizonytalanságot a dologban. Az valóban lehetséges, hogy ahogy lebeg, beléphet a programozási módba? Nekem egy kicsit túlzott elővigyázatosságnak tűnik ettől tartani.
Igen, volt már rá példa. Pl. egy panelen van a PIC tápjául szolgáló nyers egyenfeszültség (csúcsban akár 10V is lehet) a PIC-el, és ha valahol az MCLR láb közelében megy el a vezeték, akkor bármilyen kosz, gyantamaradvány, akármi tud annyi töltést átvinni, hogy a láp potenciálját felemelje. Ezért a legjobb a 10k körüli felhúzó, az egyrészt kellően nagy, hogy mindenféle hülyeségtől megvédjen (programozófeszültség tápra visszajutására gondolok itt főleg), másrészt kellően kicsi, hogy ezek a szivárgó áramok ne okozzanak gondot. Illetve valamelyik témában volt róla szó, hogy úgy tűnik, hogy egyes chipek korai halálát is az okozta, hogy az égető lebegve hagyta az MCLR lábat.
Ha a panelon nincs nagyobb feszültség, akkor tehát ilyen veszély nem is áll fent. Nekem van ilyen Mclr lebegtetett áramköröm, ezért forgok rajta. Ezt követően nem hagyom el. Watt írt talán ilyesmi miatt tönkremenő PIC-ről, most viszont nem jelezte és én sem találom. Lehet azért, mert már ez is off témának számít.
Azért ezt így nem lehet kijelenteni, hogy nem állhat fent. Ez alapján a TV antenna sem működne, mert az adó többtíz kilóméterre van, aztán mégis működik. A CMOS áramköröknél muszáj minden bemenetet határozott potenciálra húzni, ha üzembiztos áramkört akarunk. Gafly említette már párszor, hogy volt áramkör, ami működött ha a készítője (?) az asztal egyik oldalánál állt, és nem működött, amikor a másik oldalánál. Ott is a be nem kötött bemenet volt a probléma okozója.
Igen, sokszor említettem(főleg a PIC égetés progblémáknál), hogy a lebegve hagyott MCLR láb PIC halált okoz, attól függetlenül, hogy engedélyezted-e az MCLR funkciót vagy sem. Azt is írtam, hogy ennek az az oka, hogy az MCLR lábon nincs védő dióda a Vdd felé, miután 12V is rá kell tudjon kapcsolódni. Ez kiszolgáltatottá teszi a bemenetet a sztatikus, illetve az indukált feszültségeknek.
Az PGM láb is okozhat bizonytalan működést, ha nincs kikapcsolva az LVP bit, vagy ha erre szükség van, akkor nincs lehúzva a láb testre. Potyoval egyetértek, bemenetet mindig fix potenciálra kell húzni, vagy ha a lábra nincs szükség bemenetként, akkor kimenetre kell állítani, ha lehet. Az MCLR csak bemenet lehet, tehát ebből következően fel kell húzni, függetlenül az MCLR engedélyezésétől. Idézet: „Ha a panelon nincs nagyobb feszültség, akkor tehát ilyen veszély nem is áll fent.” Nem szükséges nagyobb fesz, de ha van, akkor az mégjobban elősegíti a jelenséget. A panelszakaszokban indukálódhat feszültség, ami a lebegő bemeneten(ami egy gate-nek fogható fel), felhalmoz töltést. Az említett forraszmaradványok, vagy egyéb szennyeződés a kezünkről, vagy lecsapódó pára is okozhat vezetést. Egy bemenettel óvatosan kell bánni, mert vannak olyanok, amiken szintén nincs védő dióda, nem csak az MCLR lehet ilyen, hanem a gyors A/D bemenetek is. A dióda kapacitása rontana a bemenet sebességén, ezért elhagyhatják. Ezeken a bemeneteken keresztül is tönkre lehet tenni a PIC-et, amellett, hogy felesleges áramokat fogyaszthatunk, valamint működési zavarokat tapasztalhatunk. Szerintem nem nagy ügy odafigyelni a nem használt lábak kimenetre állítására, és a fennmaradó lábak fix potenciálra való húzására(én a Vdd-t preferálom, kivéve a PGM-et). Az MCLR lábon pedig kötelező jellegűnek tekintem a felhúzó 10k-t(és egy 10nF-ot a test felé), függetlenül az engedélyezésétől. Nekem egy 18F8520 halt meg így az ICSP csatlakozó lehúzásakor. PICKit2-t használtam, azt hittem az a hibás, később derült ki, mi lehetett az ok...
Igen, ha MCLRE off-ban van kapcsolva akkor az MCLR valoban fel van huzva, azonban az igy felszabadulo digit input nincs. Ez gondot is okozhat, de ha nem is veszed eszre sohasem a gondot, akkor is lebegni fog neked az a lab, es a digit inputoknal felesleges aramfelveteled lesz emiatt (minel tobbszor kapcsolgatod a bemeneteken levo FET-eket annal nagyobb). Azonkivul az ellenallas tenyleg az egyik legolcsobb alkatresz, nem erdemes ezen sporolni...
Masik, hogy miert nem kotjuk az MCLR-t (meg mast) kozvetlen fel: Tul azon amit potyo mondott van olyan is, hogy latchup effekt (keress ra googlival). Ha nincs ott neked ellenallas akkor konyen ilyen allapotba kerilhetnek a fetek es nem ertened megint csak mitol nem megy neked az a PIC...
Előre bocsátom, hogy teljesen jogos, amit kifejtetek, és abszolút helyesnek tartom, ha az MCLR lábat minden mástól teljesen függetlenül egy ellenállással a Vdd-re húzzuk.
Ennek ellenére gyári megoldásokban is találkoztam már csak úgy szabadon hagyott MCLR-rel, nem kell messzire menni, elég, ha az eredeti PICkit2 rajzára ránézünk. Igaz, hogy a PICkit2-ben lévő 18F2550 programozására szolgáló J1 ICSP csatlakozó csak egy forrpontsor a dobozon belül, de akkor sincs sehová sem kötve, húzva az MCLR (egyébként erről mintázva a klónomban sincs ezen a lábon semmi külső alkatrész, és eddig még nem tapasztaltam problémát emiatt). Direkt megnéztem az adatlapban, semmilyen körülmények között nem írnak az RE3 lábra belső felhúzást. Ilyenkor legyen okos az ember...
A kivétel erősíti a szabályt.
Én sem gondoltam sokáig rá, de miután egy 80 lábú TQFP kicserélése jól megizzasztott, a többi tapasztalatomról nem is beszélve(Egy kapcsolóval, amely a Vpp-t szakította meg, tönkretettem egy 16F628-at!), inkább azt mondom, a gyártó sem gondolhat mindenre.
Valaki, mar nam emlekszem ki fejtegette a piclisten, hogy a Microchip ugyan remek chipeket gyart, azonban sem szoftvert sem hardvert nem kepesek tervezni. Lustasagbol amugy en sem szoktam teszt aramkorre felhuzot rakni teszt aramkorokben, egyszeruen en is csak off-ba rakom az MCLRE-t
Sziasztok!
Nagy segítségre volna szükségem. Egy 16F877-el szeretnék összehozni egy TC74-et i2c-n és persze nem kommunikál. Amúgy a mért értéket LCD-re iratom ki, ami 100% jó, egyedül a i2c nem működik, de az sajnos semennyire. Aki ért hozzá és ráér, legyen szíves átolvasni, mert biztos én rontottam el valamit. Előre is köszönöm.
Először jó lenne látni a rajzot, hogy jól kötötted-e be!
Szia!
Meg kell várni amíg az MSSI modul eléri a kívánt állapotot (Start, Stop, Ack, stb). Részletes leírás és mintapélda az AN735 -ben...
Új fejezettel gyarapodott az "Ismerkedés a PIC18 mikrovezérlőkkel" című PICCOLO projekt és a PICula projekt.
Az új fejezet az alfanumerikus LCD kijelzők kezelésével foglalkozik. A projektek szoftver segédlete három-három új, C18 nyelvű mintaprogrammal gyarapodott. Figyelem! A honlapom szombaton (nov. 20-án) egész nap nem lesz elérhető az intézeti számítóközpont átépítése miatt.
Sziasztok
Én mostanában kezdtem el programozgatni egy PIC16F887-st assembly nyelven, teljesen amatőr szinten és most megpróbáltam makrókat írni. Abban szeretném a segítségeteket kérni, hogy hogyan lehet egy makróból kilépni. Íme egy példa: ;MAKRÓ: A1,A2,A3 -at inkrementálja és törli ha elérte a 100000-t. INC3REG MACRO A1,A2,A3 INCFSZ A1,1 GOTO $+4 INCFSZ A2,1 GOTO $+2 INCF A3 MOVF A3,0 SUBLW 0x01 BTFSS STATUS,Z GOTO KILÉP MOVF A2,0 SUBLW 0X86 BTFSS STATUS,Z GOTO KILÉP MOVF A1,0 SUBLW 0XA0 BTFSS STATUS,Z GOTO KILÉP CLRF A3 CLRF A2 CLRF A1 LOCAL KILÉP KILÉP NOP ENDM Ez működik, de a kilépés egy kicsit bénának tűnik.
Szerintem a nop-ot valahogyan ki lehetne hagyni, de más téren nem tudok jobbat. Ha szűkös a hely, de még a visszatérési verem nincs maximálisan kihasználva (nincs sokszoros eljáráson belüli eljáráshívás), akkor ilyen feladatra jobb lehet eljárást írni (persze csak akkor, ha a programban sok helyen van szükség ennek a műveletnek az elvégzésére).
Nem látom értelmét ilyen jellegű szekvenciák makróba írásának. A makró nem erre lett kitalálva. Az arra való, hogy ne kelljen minduntalan leírni egy pár soros kódrészletet, amit máskülönben nem lehet szubrutinnal elintézni.
Itt a kapcsolási rajz. A felhúzó ellenállások 4,7k-ossak és az egész 5v-ról a PICkit 2-ről van hajtva.
Szia!
Azt már sokszor átnyálaztam, meg még sok ilyet doksit, de sajnos nem megy. A programban van jelzőbitfigyelés, de azt kéne benne elolvasni, hogy jó-e, mert én akárhogy gondolkodom rajta nem jutok előrébb...
1. SDA felhózó ellenállását is VDD-re kellene kötni SCL helyett!
2. Mindkét VDD és VSS lábat be kell kötni. Nem viccből vannak kivezetve!
Csak a rajzon van úgy! Bocs fél6kor feküdtem, nem vagyok magamnál.
Szia!
Pedig még egy kicsit nézegetni kellene, azokat a rutinokat egy-kettőre sikerült életre keltenem 16F876, 16F886 kontrollereken. Az alábbi eljárás mindig kilép, mert az andlw 4 letörli a W 7 bitjét, az eredmény vagy 0 vagy 4. A 0x80-ra való vizsgálat soha nem ad egyezést, azaz Z = 1 -et. Idézet: „
A goto $+2 helyett a return utasítás is állhatott volva... Az említett leírásban levő I2C rutinok az illesztő megszakítás kérés állapot bitjét (PIR1.SSPIF) vizsgálják a funkció végrehajtásának ellenőrzésére. Miért csak egyes bitek szimbólikus nevét használod? A STATUS RP0 bitjét szimbólikusan írod, a 0. azaz a C és a 2. bitjét azaz a Z-t pedig számokkal. Az olvashatóság érdekében a szimbólikus nevek használatát ajánlom.
A kapcsolás, eltekintve a már említett hibáktól, így elvileg jó a 4k7 értékekkel. A PIC táp lábain gondolom vannak kondik is és az MCLR is kapott egy 10k-t a Vdd-re. (Használhatnál rajzoló programot, ha már ilyenbe kezdtél, nézz fel az oldalamra ott is van demó...).
A program részéről Hp41C már gondoskodott neked, így mennie kell... |
Bejelentkezés
Hirdetés |