Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   136 / 1210
(#) pcroland válasza watt hozzászólására (») Szept 24, 2011 /
 
Hogy érted, hogy adapterben? Milyen adapterben? Az úgy nem jó, hogy egyszerűen rákötöm a PIC-et céláramkör nélkül a WLPT-re és bekötöm az MCLR és a +5V közé a 10k-t?
(#) morzsa15 válasza watt hozzászólására (») Szept 24, 2011 /
 
Azzal a comport-ossal ugye nincsenek ilyen gondok össze forrasztom és lehet is programozni??megint ment e-mail
(#) Poostmaster hozzászólása Szept 24, 2011 /
 
Sziasztok.
egy újabb gondom akadt, az lcd-vel.
Kiválóan működik minden, amíg el nem érem a 16-ik karaktert. A program szerint akkor át kellene kapcsolnia képernyő görgetésre, de nem csinál semmit. Ráadásul azt írja az adatlap, hogy ha a fölső 40 karaktert teleírom, akkor átlép a 2. sorba, de ezt sem csinálja. Ha a képernyő görgetés helyett a 2. sor címére akarok írni, akkor sem ír oda. Pedig 2 sorosnak állítottam be. Szerintem.
Csatolom a részletet, mert itt mindig összerántja.
(#) watt válasza pcroland hozzászólására (») Szept 24, 2011 /
 
Kicsit kezdek besokalni, mert ennyi értetlenkedés már sok! Tök egyszerű dolgokról bezsélek, illene megérteni!
Adapternek hívják azt az áramkört, ami csak arra szolgál, hogy a PIC-et fel lehessen programozni egy ICSP-s égetővel. Bármilyen módon alakítod ki, adapter a neve. Tehát az adapterre is kell 10k, csak akkor nem a Vpp-Vdd, hanem a Vpp-Vss közé.
Céláramkörben viszont a Vpp-Vdd közé kell, mert különben nem fog elindulni a program. (Abba ne menjünk bele, hogy mi van akkor ha az MCLR funkció ki van kapcsolva, mert akkor is kell a 10k, csak más okból, lényeg, hogy mindig kell, ha jót akarsz magadnak és a PIC-nek!)
(#) watt válasza morzsa15 hozzászólására (») Szept 24, 2011 /
 
Ez nem az égetővel összefüggő kérdés, azaz minden égetőnél ugyanúgy kell eljárni a 10k esetében. Ez egy fontos dolog, mert különben meghalhatnak a PIC-ek! Működik az égetés anélkül is, de simán meghalhat a PIC.
(#) morzsa15 válasza watt hozzászólására (») Szept 24, 2011 /
 
Értem szvl hogy ha jól értem akkor akár hol használom a pic-et akkor kell belle a 10k-s ellenállás jól értem ugye akár milyen a kapcsolás?
(#) watt válasza morzsa15 hozzászólására (») Szept 24, 2011 /
 
Igen, ilyen egyszerű. Hogy hová, azt leírtam az előbb.
(#) morzsa15 válasza watt hozzászólására (») Szept 24, 2011 /
 
Kivéve ha tartalmazza a céláramkör Na most találtam ezt az áramkört ez mondjuk ha jól láttam tartalmazza a 10k-s ellenállást ugye? Bővebben: Link
(#) pcroland válasza watt hozzászólására (») Szept 24, 2011 /
 
Most már mindent értek. Még valami: a WPB-ben lévő PIC-eket mind lehet égetni a WLPT-vel?
(#) pcroland válasza morzsa15 hozzászólására (») Szept 24, 2011 /
 
Igen. Ha az áramkörrel együtt progizod, akkor már nem kell bele még MCLR 10k-s ellenállás. Már én is értem.
(#) watt válasza pcroland hozzászólására (») Szept 24, 2011 /
 
Már hogy ne kéne! Az áramkörben is kell. Ha már van benne, akkor még egy nem kell, de ha nincs, akkor hibásan tervezték, bele kell tenni!
(#) watt válasza pcroland hozzászólására (») Szept 24, 2011 /
 
Igen. Nem az égetőáramkör határozza meg, hanem az égető program.
(#) watt válasza morzsa15 hozzászólására (») Szept 24, 2011 /
 
Ebben benne van...
(#) morzsa15 válasza watt hozzászólására (») Szept 24, 2011 /
 
Azért az a dcf modul nem semmi
(#) icserny válasza Poostmaster hozzászólására (») Szept 24, 2011 /
 
Szerintem már az inicializálás is hibás. A 4-bites üzemmód beállításál előbb egy 0x20-at kell kiküldeni (csak a felső félbájtot, mert akkor még 8 bites módban van az LCD!), s csak utána jöhet a 0x28 küldése két részletben. Így most valami kavar lett a dolgoból.

De ezeket az elveket adatlap is leírja, gondolom Topi cikkében is megtalálható, én is leírtam már több helyen, lépésről-lépésre (Bővebben: Link1, Link2, Link3), valamelyikben néz utána alaposan.

Van egy LCD Szimulátor is, abban ki is próbálhatod a dolgokat.

Az inicializálás nálam annyival hosszabb, hogy én a szoftveres resetelést is be szoktam írni, de azt most kihagyhatod.
(#) pcroland válasza watt hozzászólására (») Szept 24, 2011 /
 
Én úgy értettem , hogy ha benne van a céláramkörben, akkor az égetőbe már nem kell. Mert 2db 10 párhuzamosan 5k. Annak meg nem örül a PIC.
(#) watt válasza pcroland hozzászólására (») Szept 24, 2011 /
 
Az égetőbe egyáltalán nem kell! Ez nem az égető tartozéka, hanem a PIC-hez tartozó áramköri elem!
Arról is írtam már, hogy nem a PIC nem szereti a kisebb ellenállást, hanem a tápegység IC! De nem a táp IC miatt kell, hanem a PIC védelmére, valamint ha az MCLR nincs letiltva, akkor e nélkül nem is indul el a program!
(#) pcroland válasza watt hozzászólására (») Szept 24, 2011 /
 
De ha céláramkör nélkül égetek, akkor kell, csak akkor vss felé, ugye?
(#) potyo válasza pcroland hozzászólására (») Szept 24, 2011 /
 
Mi lenne, ha figyelnél is egy kicsit? Néhány hozzászólással előbb pontosan erre írta le watt a választ.

Komolyan nem értem, mi olyan bonyolult ebben a 10k kérdésben...
(#) Poostmaster válasza icserny hozzászólására (») Szept 24, 2011 /
 
Mindet átnéztem alaposan.
Most átírtam az ini-t, Így:
INI_LCD
CALL S_KESLELTET_100MS ;Az LCD éledésére várunk Bekapcsolás után >55 ms.
CLRF PORTC
BCF RS
MOVLW 0X48
MOVWF PORTC
BSF EN
NOP
BCF EN
CALL S_KESLELTET_10MS
MOVLW 0X48
MOVWF PORTC
BSF EN
NOP
BCF EN
CALL S_KESLELTET_10MS
MOVLW 0X48
MOVWF PORTC
BSF EN
NOP
BCF EN
CALL S_KESLELTET_10MS

MOVLW 0x20 ; Bekapcsoljuk a 4 bites üzemmódot
MOVWF PORTC
BSF EN
NOP
BCF EN
CALL S_KESLELTET_10MS
MOVLW 0X28
CALL WRITE
MOVLW 0x06 ; 06h, Entry mode set: increment
CALL WRITE
MOVLW 0x0F ; 0dh, Display on, cursor/blink on
CALL WRITE
MOVLW 0x10 ; 10h, Display/cursor shift: cursor
CALL WRITE
MOVLW 0x01 ; 01h, Display clear
CALL WRITE
MOVLW D'128' ; LCD cím= 0 (+128), első LCD sor
CALL WRITE
RETURN

Semmi változás.
(#) icserny válasza Poostmaster hozzászólására (») Szept 24, 2011 /
 
Idézet:
„MOVLW 0X48”
Itt már elrontottad, mert
  1. MOVLW 0X30
kellett volna!
(#) watt válasza pcroland hozzászólására (») Szept 24, 2011 /
 
Bővebben: Link
Ezt neked írtam...
(#) Poostmaster válasza icserny hozzászólására (») Szept 24, 2011 /
 
Igazad van, a decimális írtam be, de a javítás után sincs változás.
(#) pcroland válasza watt hozzászólására (») Szept 24, 2011 /
 
Tudom. Elolvastam még egyszer. Csak aztán összezavartatok. Most már értem.
(#) szSzilard hozzászólása Szept 24, 2011 /
 
Sziasztok!

Tudna valaki segíteni, hogy miért nem működik az alábbi program?
Ledet kapcsolgatna megszakítással.

Köszönöm.
  1. LIST    P=18F4550  
  2. #INCLUDE <P18F4550.INC>
  3.         ORG     0X0000
  4.         BRA     START
  5.  
  6.         ORG     0X0008
  7.         BCF     INTCON, RBIF
  8.         BCF     INTCON3, INT2IF
  9.         BRA     INT_PROCESS
  10.         RETFIE FAST
  11.  
  12. START
  13.         CALL INIT_PORT
  14.         CALL INIT_IT
  15. MAIN
  16.         GOTO MAIN
  17.  
  18. ;=======[ S Z U B R U T I N O K ]===========================
  19.  
  20. INIT_PORT
  21.         CLRF    PORTB
  22.         CLRF    LATB
  23.         MOVLW   b'00000111' ; PORTB,2 digitális I/O külső felhúzó ellenállásal
  24.         MOVWF   ADCON1
  25.         MOVLW   b'11111111' ; PORTB bemenet minden láb
  26.         MOVWF   TRISB
  27.         CLRF    PORTD
  28.         CLRF    LATD
  29.         MOVLW   b'11111011' ; PORTC 2 kimenet, a többi bemenet
  30.         MOVWF   TRISD
  31.         BSF     LATD,2
  32.  RETURN
  33.  
  34. INIT_IT ; IT beállítás      
  35.         CLRF    INTCON      ; Minden Interupt tiltása
  36.         MOVLW   b'00001000' ; RBPORT engedélyezése mint külső interupt
  37.         MOVWF   INTCON         
  38.         MOVLW   b'10010001' ; RBPORT 2 nincsen belső felhúzó ell., Felmenő él, magas prioritású az RB2
  39.         MOVWF   INTCON2
  40.         MOVLW   b'10010000' ; Poritás beállítások
  41.         MOVWF   INTCON3
  42.         MOVLW   b'10000000' ; Interupt prioritás engedélyezése.
  43.         MOVWF   RCON
  44.         MOVLW   b'10001000'
  45.         MOVWF   INTCON          ; Interupt engedélyezése
  46.  RETURN
  47.  
  48. INT_PROCESS
  49.         BTFSS PORTD,2
  50.         GOTO SET1
  51.         BCF     LATD,2
  52.         GOTO VEG
  53. SET1
  54.         BSF LATD,2
  55. VEG
  56.  RETURN
  57.  
  58.  
  59.         END
(#) vilmosd válasza szSzilard hozzászólására (») Szept 24, 2011 /
 
A VEG cimkenel esetleg Retfie lenne jobb valasztas, nem return.
(#) bbalazs_ válasza vilmosd hozzászólására (») Szept 25, 2011 /
 
Igy van. A masik, hogy valoszinuleg te is latnad, ha nem a vegere tetted volna azt, ami elore tartozik.
Szubrutint akkor erdemes hasznalni, ha ugyanazt az eljarast tobb helyrol hivod meg.
(#) szSzilard válasza bbalazs_ hozzászólására (») Szept 25, 2011 /
 
Köszönöm a válaszokat, igy már működik!
(#) icserny válasza Poostmaster hozzászólására (») Szept 25, 2011 /
 
Az 0xC0 parancs (tehát RS=0) kiküldése után lehet megpróbálkozni a második sorba történő írással. Ha nem megy, akkor rossz az inicializálás (tehát az eddig kijavítotton kívül más hiba is van a programban).

Nem mondtad, de feltételezem, hogy az R/W vonal fixen földre van kötve, s az LCD vezérlője HD44780, vagy azzal kompatibilis.
(#) Poostmaster válasza icserny hozzászólására (») Szept 25, 2011 /
 
Igen, az R/W és az alsó fél bájt is fixen "földelve" van, és 44780-as.
A PORTC foglalkozik az LCD-vel. A köv. lábkiosztással:
Port bitek
0 DB4
1 DB5
2 DB6
3 DB7
4 RS
5 E
6 NC
7 NC

Most eszembe jutott, hogy az RS, és E éppen oda van kötve, ahol fontos parancsbitnek kellene lenni. Lehet, hogy ez kavar be?
Következő: »»   136 / 1210
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