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   96 / 1207
(#) Hp41C válasza alap hozzászólására (») Feb 19, 2011 /
 
Szia!

Azt jelenti, hogy az INTCON regiszter a Bank kiválasztástól függetlenül elérhető. Amit a 0x00B címen olvasol, azt lehet olvasni a 0x08B, 0x10B és 0x18B címeken, ha valamelyiket írod, akkor ugyan azt az adatot fogod látni mindegyikben, ha olvasod.

A fontos regiszterek a 16F szériában minden Bank-ból elérhetők: INDF, PCL, STATUS, FSR,PCLATH, INTCON. A többihez a Bank kiválasztást előre be kell állítani.

A kérdéses kontroller adatlapjában a "Data Memory Organization" fejezetben lehet olvasni a regiszterek elérhetőségéről...
(#) Simon Kornél hozzászólása Feb 19, 2011 /
 
Sziasztok!

Először is köszönöm mindenkinek a válaszát és a segítségét.
Az alábbiakban látható a program, amit beégette. Ettől azt vártam,hogy a B-port 0-3 lábán magas szint legyen folyamatosan:

Idézet:
„LIST P=16F877
#INCLUDE "P16F877.INC"
__CONFIG _XT_OSC&_CP_OFF&_WDT_OFF&_LVP_OFF

ORG 0x0000 ;program kezdő címe

GOTO ADR_0x0001 ;kezdőcímre irányítja aprogramot
ADR_0x0001 ;program kezdő címe

BCF STATUS,RP1 ;STATUS regiszter értékének beállítása 80h-ra
BSF STATUS,RP0 ;folyt. !
MOVLW B'00000000'
MOVWF TRISB ;B-port kimenetre állítása

MOVLW B'00001111' ;beállítjuk, melyik LED-ek világítsanak
BCF STATUS,RP0 ;STATUS regiszter értékének beállítása 00h-ra
MOVWF PORTB ;Jelek kiküldése B-portra

END”

De ez nem sikerült. Mit rontottam el?

A kapcsolást is igyekszem elküldeni.
A segítségeket előre is köszönöm.
Üdv. : K.
(#) watt válasza Simon Kornél hozzászólására (») Feb 19, 2011 /
 
Az utolsó sor után a program elkalandozik. Meg kell oldani, hogy ne tegye(végtelen ciklus).
Az XT oszci mód 4MHz alatti kristályokra jó, 4MHz től HS javasolt.
(Inkább a KÓD-ra kattint, ne az idézetre, úgy jobban olvasható és nem törik össze a lista!)
(#) Simon Kornél hozzászólása Feb 19, 2011 /
 
Folytatom a fentieket...
Mellékelten küldöm a kapcsolásomat, amit használok a LED működtetéséhez.
Menet közben felmerült bennem egy kérdés, hogy a programom nem csak annyit csinál, hogy megvillantja a LED-emet és kész? Ha ez a baj, akkor egy GOTO utasítással orvosolhatom?
Várom az észrevételeket és a segítségeket!

Üdv: K.

Kapcsolas.JPG
    
(#) Simon Kornél hozzászólása Feb 19, 2011 /
 
Javítom az olvashatóság érdekében:
  1. LIST    P=16F877
  2.                         #INCLUDE "P16F877.INC"
  3.                         __CONFIG _XT_OSC&_CP_OFF&_WDT_OFF&_LVP_OFF
  4.  
  5.                         ORG             0x0000                  ;program kezdő címe
  6.  
  7.                         GOTO    ADR_0x0001              ;kezdőcímre irányítja aprogramot
  8. ADR_0x0001                                                      ;program kezdő címe
  9.                        
  10.                         BCF     STATUS,RP1              ;STATUS regiszter értékének beállítása 80h-ra
  11.                         BSF             STATUS,RP0              ;folyt. !
  12.                         MOVLW   B'00000000'            
  13.                         MOVWF   TRISB                   ;B-port kimenetre állítása
  14.  
  15.                         MOVLW   B'00001111'             ;beállítjuk, melyik LED-ek világítsanak
  16.                         BCF             STATUS,RP0              ;STATUS regiszter értékének beállítása 00h-ra
  17.                         MOVWF   PORTB                   ;Jelek kiküldése B-portra
  18.  
  19.                         END
(#) icserny válasza Simon Kornél hozzászólására (») Feb 19, 2011 /
 
  1. LIST P=16F877
  2.   #INCLUDE "P16F877.INC"
  3.   __CONFIG _XT_OSC&_CP_OFF&_WDT_OFF&_LVP_OFF
  4.  
  5.   ORG 0x0000 ;program kezdő címe
  6.   BCF STATUS,RP1 ;STATUS regiszter értékének beállítása 80h-ra
  7.   BSF STATUS,RP0 ;folyt. !
  8.   MOVLW B'00000000'
  9.   MOVWF TRISB ;B-port kimenetre állítása
  10.  
  11.   MOVLW B'00001111' ;beállítjuk, melyik LED-ek világítsanak
  12.   BCF STATUS,RP0 ;STATUS regiszter értékének beállítása 00h-ra
  13.   MOVWF PORTB ;Jelek kiküldése B-portra
  14. CIKLUS:
  15.   GOTO CIKLUS ;Végtelen ciklus
  16. END


- A VDD lábak és a VSS lábak közé tegyél 100 nF-os kerámia kondenzátort.
- Az MCLR lábat csak egy 10 kohmos ellenállással húzd fel, a D1 dódát vedd ki onnan!
(#) Simon Kornél válasza icserny hozzászólására (») Feb 19, 2011 /
 
Ebben az esetben folyamatosan fog világítani a LED?
(#) Simon Kornél válasza icserny hozzászólására (») Feb 19, 2011 /
 
Átalakítottam a kapcsolást és át írtam a programot, ahogy javasoltad, de nem megy, hogy folyamatosan világítson a LED. Pontosabban rámértem a kimenetekre egy digitális multiméterrel és mindenhol 1,0V-ot mértem. Lehet, hogy a PIC-em rossz? Honnan tudom meg, hogy jó vagy nem jó egy PIC?
Totál kezdő vagyok, de meg akarom oldani a problémát.
(#) icserny válasza Simon Kornél hozzászólására (») Feb 19, 2011 /
 
A VDD lábakon, remélem, nem 1.0 V-ot mérsz!
Az MCLR lábon mit mérsz?

Idézet:
„Ebben az esetben folyamatosan fog világítani a LED?”
Igen, úgy kellene (mert nem kapcsoljuk ki).
(#) Simon Kornél válasza icserny hozzászólására (») Feb 19, 2011 /
 
Mindenhol 2,31V-ot mérek.Pontosabban a VDD és MCLR lábakon.
(#) icserny válasza Simon Kornél hozzászólására (») Feb 19, 2011 /
 
Most akkor a tápegységed ennyire rossz, vagy a voltmérőd? A rajzodon még 5 V szerepelt...
Ha jól látom, az adatlap szerint a mikrovezérlőd nem köteles 4.0 V alatt működni.
(#) Simon Kornél válasza icserny hozzászólására (») Feb 19, 2011 /
 
Ha tápomra mérek rá közvetlenül, akkor 5,41V-ot mérek. Ha bekötöm a PIC-be és a földhöz képest mérek, akkor jön ki a 2,31V-t. Akkor rossz lehet a PIC-em?
(#) vicsys válasza Simon Kornél hozzászólására (») Feb 19, 2011 /
 
Rossz lehet a tápod? Először azt ellenőrizd! Mérhetnél átfolyó áramot is!
(#) icserny válasza Simon Kornél hozzászólására (») Feb 19, 2011 /
 
A tápegységet terheld meg egy 100 ohmos ellenállással. Ha akkor is leesik a feszültség, akkor dobd ki a tápegységet!
(#) Simon Kornél válasza icserny hozzászólására (») Feb 19, 2011 /
 
Kiprobáltam a PIC-et egy másik táppal, akkor 4,5V-ot mértem. A tápon üresen kereken 5.0V-ot mértem. De mind a két esetben a 10k ellenállás előtt és után is ugyan azt a feszültséget mértem. Az ellenállást kimértem, de az jó. Ezért feltételezem, hogy rossz lehet a PIC. Azonban írni és olvasni tudom.
???
De kipróbálom, amit javasoltál.
Köszi a segítséget!
(#) dinokal válasza Simon Kornél hozzászólására (») Feb 20, 2011 /
 
Szia! Ha mindkét tápon esik a feszültség, akkor vagy nagyon kicsi a terhelhetőségük, amit nem hiszek, mert nagyon kis áramterhelésről beszélünk, vagy a kapcsolásod terheli le valamivel, pl: valahol zárlat van két vezeték között, valamit elkötöttél, stb.
A tápokról nem írtál semmit. Milyen stabilizátorral működik, hány voltos és wattos a trafó. Ha nagyon kicsi a trafó terhelhetősége, akkor is eshet a feszültség, amit a stabic már nem tud kikompenzálni.
(#) icserny válasza Simon Kornél hozzászólására (») Feb 20, 2011 /
 
Idézet:
„De mind a két esetben a 10k ellenállás előtt és után is ugyan azt a feszültséget mértem.”
Ezzel mit is akartál mondani? Mert ha szó szerint veszem, akkor nem esik feszültség az MCLR felhúzó ellenállásán, ami teljesen jó. De félek, hogy nem ezt akartad mondani, hanem azt, hogy nem képes felhúzni az MCLR lábat a tápfeszültségre, amiből hibás mikrovezérlőre következtettél. Most akkor mi az igazság? S mivel programoztad a PIC-et?
(#) trudnai válasza Simon Kornél hozzászólására (») Feb 20, 2011 /
 
Szerintem neked nincs szabályozott tapegyseged, hanem csak egy nagy imednanciaju feszültség korlatozod mint pl zeneres fesz osztó. Ha így van akkor min egy emitter követő buffert kellene oda rakni. De ez kicsit off itt.
(#) Simon Kornél válasza icserny hozzászólására (») Feb 20, 2011 /
 
Szia!

Az ellenállás mind a két oldalán ugyan azt a feszt mértem. Ez alatt azt értem, hogy az ellenállás és a PIC MCLR lába között mértem, illetve a tápegység és az ellenállás között. Természetesen mind a két helyen a földhöz képest. Remélem így érthetőbb.
A programokat MPLAB-bal írom és fordítom le, de a beégetést PC-WIN-nel végzem. Az MPLAB-ot nem tudom jól használni. Lehet, hogy azzal is meg tudnám oldani az égetést, de még nem tudom.

Üdv. K.
(#) Simon Kornél válasza trudnai hozzászólására (») Feb 20, 2011 /
 
Szia!

Neked is és dinokal is köszönöm a válaszotokat.
Én egy AC-DC ADAPTER MW9120GS 2A STABILIZÁLT típusú tápegységet használok.
Lehet ez nem jó ide?
Egy másik kérdés: Mennyire baj az, ha próbapanelt használok, nem forrasztós, hanem "dugdosós"?

Üdv. K.
(#) icserny válasza Simon Kornél hozzászólására (») Feb 20, 2011 /
 
Idézet:
„Én egy AC-DC ADAPTER MW9120GS 2A STABILIZÁLT típusú tápegységet használok.”
Az jó. Hivatalosan 4,5 V-ot ad, az megfelel a PIC specifikációjának.
Idézet:
„Mennyire baj az, ha próbapanelt használok, nem forrasztós, hanem "dugdosós"?”
Ha üzembiztosan megvan a kontaktus, akkor jó az.

Az égetéssel kapcsolatban az nem derült ki, hogy milyen programbeégető eszközt használsz. PICkit2 vagy más?

Idézet:
„Az ellenállás mind a két oldalán ugyan azt a feszt mértem.”
Ez akkor rendben van. S akkor most, a 4,5 V-os tápfeszültségnél mi van az RB0 kimeneten?
(#) El_Pinyo válasza Simon Kornél hozzászólására (») Feb 20, 2011 /
 
Önmagában nem probléma a dugaszolós próbapanel, viszont időnként előfordul, hogy nem érintkeznek megfelelően a kontaktusok. Nálam korábban előfordult, hogy a kvarcoszcillátor nem érintkezett megfelelően, így nem is rezgett be és a PIC sem kapott órajelet. Ezt én úgy oldottam meg, hogy a kvarcot precíziós foglalatba pl. ilyenbe helyeztem, innentől fogva már nem voltak a kvarcnál kontakt problémák.
(#) zenetom válasza El_Pinyo hozzászólására (») Feb 20, 2011 /
 
No igen, nálam amikor spagetti van a panelba és nem indul, pedig csak a PIC-et vettem ki, majd vissza, kicsit komplikáltabb a helyzet, hogy vajon hol a bibi.
(#) El_Pinyo válasza zenetom hozzászólására (») Feb 20, 2011 /
 
Erre is kitaláltam egy megoldást. Ha bonyolultabb kapcsolást kell kiépíteni, akkor ahol csak lehet a kábeleket helyettesítem tűzőgép kapcsokkal, egészen kulturált és átlátható szokott lenni a végeredmény.
(#) zenetom válasza El_Pinyo hozzászólására (») Feb 20, 2011 /
 
Hogy ez nekem nem jutott eddig eszembe! Úgyis most nemrég adta be a kulcsot a tűzőgép és maradt egy gyufásdoboznyi kapocs. Köszi a tippet! :yes:
(#) Simon Kornél hozzászólása Feb 20, 2011 /
 
Sziasztok!

Innen néztem az égető kapcsolását:
Bővebben: Link

Ezt a kapcsolás a PIC mikrovezérlő I. rész-ből vettem és építettem meg.

Üdv.
(#) potyo válasza Simon Kornél hozzászólására (») Feb 21, 2011 /
 
Azt a pirosbetűs részt olvastad-e az elején? Az égetés végén az ellenőrzés nem jelez hibát?
(#) evenger hozzászólása Feb 21, 2011 /
 
Sziasztok!

Már jó ideje olvasgatom az oldalt és most eljutottam addig hogy belevágjak a közepébe. Csak a kezdéshez szeretnék egy kis segítséget kérni .
Még tavaly részt vettem a Microchip TCP/IP pic- es tanfolyamán, csak kíváncsiságból, hogy miről is szól ez az egész, milyen lehetőségek vannak benne, illetve hogy lássam vajon valaha én is képes lehetek- e erre. Persze nagyon megtetszett.
Most végre eljutottam odáig hogy belefogjak. A célom, egyszer, jó soká az lenne hogy TCP/IP alapú eszközöket tudjak fejleszteni. Persze az még nagyon hosszú út, hiszen PIC- es tapasztalatom 0.
Ezért szeretnék Tőletek segítséget kérni a kezdéshez. Szeretnék venni egy programozót és belevágni. Először a "PICkit 3 Debug Express" néztem, de aztán több helyen láttam azt az ominózus videót, illetve cikkeket hogy semmivel nem jobb, (sőt) mint a PICkit 2. Ott viszont azt írják hogy a támogatottság véget fog érni. Tudnátok nekem tanácsot adni hogy hol/ mivel érdemes kezdeni? Persze "Mikrovezérlők alkalmazástechnikája" könyv már meg van, illetve 5 év rendszerinformatikusi tapasztalat, és nagyjából ennyi .

Köszönöm
(#) icserny válasza evenger hozzászólására (») Feb 21, 2011 /
 
Az egyik lehetőség: PIC32 Ethernet Starter Kit. Ez már tartalmazza a programozót/debuggert is, jó sokáig el leszel vele. Közben majd kiderül, hogy hová fejlődik a PICkit3...
(#) evenger válasza icserny hozzászólására (») Feb 21, 2011 /
 
Hú, ez gyors volt!

Köszönöm! Igen ezt már én is láttam, csak nem tudtam hogy így teljesen kezdőként, 0 tapasztalattal mennyire érdemes egyből egy ilyennel kezdeni. Bár "starter"...
De ha azt mondod, az ember elboldogulhat egy ilyen ketyerével, az jó hír, hisz ezt pont "azt csinálja" amit meg szeretnék tanulni...
Következő: »»   96 / 1207
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