Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   837 / 1319
(#) messer hozzászólása Nov 16, 2010 /
 
Sziasztok! Szoktátok használni az Mplab Visual Initializer funkcióját?
(#) vicsys válasza jdani hozzászólására (») Nov 16, 2010 /
 
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
(#) jdani válasza vicsys hozzászólására (») Nov 16, 2010 /
 
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ó.
(#) vicsys válasza jdani hozzászólására (») Nov 16, 2010 /
 
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.
(#) jdani hozzászólása Nov 16, 2010 /
 
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.
(#) icserny válasza messer hozzászólására (») Nov 16, 2010 /
 
Idézet:
„Szoktátok használni az Mplab Visual Initializer funkcióját?”
Nem. Szerintem a gyártó is felhagyott a fejlesztésével. Az adatlap elolvasását úgysem pótolja. Akkor meg minek?
(#) vicsys válasza jdani hozzászólására (») Nov 16, 2010 /
 
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)
(#) messer válasza icserny hozzászólására (») Nov 16, 2010 /
 
Igazad van, össze vissza generálja a kódokat teljesen követhetetlen, azt hittem én követek el valamit...
(#) Mezoas válasza potyo hozzászólására (») Nov 16, 2010 /
 
É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.
(#) potyo válasza Mezoas hozzászólására (») Nov 16, 2010 /
 
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.
(#) Mezoas válasza potyo hozzászólására (») Nov 16, 2010 /
 
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.
(#) potyo válasza Mezoas hozzászólására (») Nov 17, 2010 /
 
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.
(#) watt válasza Mezoas hozzászólására (») Nov 17, 2010 /
 
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...
(#) trudnai válasza Mezoas hozzászólására (») Nov 17, 2010 /
 
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...
(#) szilva válasza trudnai hozzászólására (») Nov 17, 2010 /
 
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...
(#) watt válasza szilva hozzászólására (») Nov 17, 2010 /
 
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.
(#) trudnai válasza szilva hozzászólására (») Nov 18, 2010 /
 
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
(#) Gamedavid hozzászólása Nov 18, 2010 /
 
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.

I2C.txt
    
(#) watt válasza Gamedavid hozzászólására (») Nov 18, 2010 /
 
Először jó lenne látni a rajzot, hogy jól kötötted-e be!
(#) Hp41C válasza Gamedavid hozzászólására (») Nov 18, 2010 /
 
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...
(#) icserny hozzászólása Nov 18, 2010 /
 
Ú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.
(#) nzt hozzászólása Nov 18, 2010 /
 
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.
(#) mateakos válasza nzt hozzászólására (») Nov 18, 2010 /
 
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).
(#) watt válasza nzt hozzászólására (») Nov 18, 2010 /
 
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.
(#) Gamedavid válasza watt hozzászólására (») Nov 18, 2010 /
 
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.

bekötés.jpg
    
(#) Gamedavid válasza Hp41C hozzászólására (») Nov 18, 2010 /
 
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...
(#) icserny válasza Gamedavid hozzászólására (») Nov 18, 2010 /
 
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!
(#) Gamedavid válasza icserny hozzászólására (») Nov 18, 2010 /
 
Csak a rajzon van úgy! Bocs fél6kor feküdtem, nem vagyok magamnál.
(#) Hp41C válasza Gamedavid hozzászólására (») Nov 18, 2010 /
 
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:
  1. MOVFW           SSPSTAT
  2.         ANDLW           0x04
  3.         SUBLW   B'10000000'
  4.         BTFSS           STATUS,2
  5.         GOTO            $+2
  6.         GOTO            IDE1
  7. RETURN

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.
(#) watt válasza Gamedavid hozzászólására (») Nov 18, 2010 /
 
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...
Következő: »»   837 / 1319
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem