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   864 / 1210
(#) Pali79 hozzászólása Okt 15, 2016 /
 
Urak!
Szerintetek mitől lehet az, hogy a program indulása után pár másodperccel leáll a külső oszcillátorról hajtott Timer1? Már mindent végignéztem százszor és nem értem. Ha sokáig járva hagyom az áramkört néha számol valamit, de nem stabil, sőt!
(#) don_peter válasza kriszrap hozzászólására (») Okt 15, 2016 /
 
De, mindig a PIC adatlapja mondja meg mikor mit csinál.
Bővebben: Link
Ha ADC-t szeretnéd használni, akkor nyilván be kell kapcsolni azt az analóg PIN-t amelyiken analóg jelet akarsz fogadni.
E mellett még az a PIN-t bemenetre kell állítanod.
ADCON0 regiszterrel (Analog Channel Select bits) az ADC-t tudod bekapcsolni egyes vagy akár az össze slábra, ANSELx regiszterekkel pedig a Digital input buffer-t tudod ki-be kapcsolni az egyes bitekre vagy az egészre..
Nagyából..
A hozzászólás módosítva: Okt 15, 2016
(#) lastewer válasza Zsora hozzászólására (») Okt 15, 2016 /
 
Megvan mi a hiba , kevés volt a 3.3V a 74hct -nek. Köszi
(#) Zsora válasza lastewer hozzászólására (») Okt 15, 2016 /
 
74HCT-ről szó sem volt eddig...

Ez van amikor nem adjuk meg a pontos körülményeket. Igaz, don_peter?
(#) don_peter válasza Zsora hozzászólására (») Okt 15, 2016 /
 
Francokat, nem értetted elsőre
Amúgy sajna nem jó továbbra sem..
Igazából alapjaiban kellene már átvizsgálnom és lehet újra építenem, mert ez így nem jó, vagy valamit még nem veszek észre, de már kezdek belefáradni..
(#) kriszrap válasza don_peter hozzászólására (») Okt 15, 2016 /
 
Adon0 reget hogy kapcsolom be a re5 (an4) labon???
Minden picnel ilyen macera???
A hozzászólás módosítva: Okt 15, 2016
(#) Zsora válasza don_peter hozzászólására (») Okt 15, 2016 /
 
1. Biztos vagy benne hogy a Flash ROM tartalma korrekt?
2. Lehet hogy elkötöttél valamit valamelyik buszon.
3. A szintillesztők és a Flash ROM elég gyorsak együtt hogy kiszolgálják a 68k-t?
A hozzászólás módosítva: Okt 15, 2016
(#) don_peter válasza kriszrap hozzászólására (») Okt 15, 2016 /
 
Javaslom, használj szimulátort, abban sokat lehet kísérletezni és rendre nem csinálsz kárt sem Kezdőnek mindenképp jó..
Idézet:
„Minden picnel ilyen macera???”

Ezek alapok, ha használni akarod, nem macera, csak még nem volt vele dolgod, ez tök természetes, hogy most kicsit gázosnak találod, de később ezek alapok lesznek..

Most nézem, hogy nincs is E5, tehát ezzel nem is fog neked menni, sem a gomb sem semmi
Ha mondjuk olyat választunk ami létezik, legyen ez az E0 akkor a következő képen megy a dolog:
  1. TRISEbits.TRISE0 = 1; // Ezzel bemenetre állítod
  2. ADCON0 = 0b00010101;            // ADC AN5 engedélyezve
  3. ADCON1 = 0;
  4. // És itt figyelni kell, hogy hány MHz-en hajtod a PIC-et, a példa egy 64MHz-n hajtott PIC-nél a következő
  5. ADCON2 = 0b10111110;    // Jobbra zárt 10bit, ACQ time=20TAD, ADC time=Fosc/64 (van idő mindenre)
(#) Pali79 válasza Pali79 hozzászólására (») Okt 15, 2016 /
 
Érdekes dolgot figyeltem meg. Az oszcillátor melletti lábak fel vannak húzva ellenállással magas szintre és gombbal húzom GND-re. Ha éppen nem megy az oszcillátor és lenyomom a gombot, akkor elindul, ha elengedem megáll!
Ezzel mi a fenét kezdjek?
(#) don_peter válasza Zsora hozzászólására (») Okt 15, 2016 /
 
1. már kezdek benne kételkedni, bár vissza ellenőrizve a rom tartalom jónak tűnik, minden a helyén van, bár ilyen esetben mivel hatalmas mennyiségű adatról van szó, csak az első 64 és az utolsó 64 bájt adatot vizsgálom, hogy korrekt e. (esetenként a középsőt is)
2. nagyon sokszor végig néztem, és minden a helyén van. Mivel az első projektnél sokat tanultam a bekötésekből, így szinte kizárható, hogy el lenne valami kötve..
3. Na ezt nem tudom, remélem. Nézem amúgy, hogy 74HC32D az "CMOS level", szóval mondhatni jónak kell lennie..
A Flash memória 90-es, szóval ..., de a másik projektben nem volt gond a memóriával, csak ügye ott közvetlen volt a kapcsolat itt meg szívásos, szintillesztős. Tutit itt csavarodik el valami..
(#) Zsora válasza don_peter hozzászólására (») Okt 15, 2016 /
 
1.,2.:
Mivel töltötted fel a Flash-t? Nem ugyanazzal a vassal kellene visszaolvasni, amivel írtad, mert úgy az elkötések (bitcsere a Flash és a PIC között) nem derülnek ki.
Ha az elkötés a szintillesztő felé van, akkor a Flash tartalma jó ugyan, de a 68K hibásan olvassa.
3.:
Ennek kicsi esélyét látom, mivel azon a fekete kártyán is ezeket az alkatrészeket használják.
(#) don_peter válasza Zsora hozzászólására (») Okt 15, 2016 /
 
Húú ebben van valami és ezt még nem is próbáltam ki..
Mindig azzal a hardverrel töltöttem fel a memóriát amivel vissza is olvastam, szóval lehet ott lesz valami gond.. Legalább is remélem..
Bár átgondolva, a teszthardveren is ugyan úgy a PORTB-t használom feltöltésre, és az viszont helyesen van bekötve.. Áhh, átvizsgálom még egyszer..
(#) kriszrap hozzászólása Okt 15, 2016 /
 
  1. OSCCON.IRCF0=1;///Internal Oscillator Frequency Select bits, 16MHz
  2.     OSCCON.IRCF1=1;
  3.     OSCCON.IRCF2=1;
  4.     OSCTUNE.PLLEN=1; // 4x PLL
  5.        
  6.     TRISA = 0;
  7.     TRISB = 0;
  8.     TRISC = 0;
  9.     TRISD = 0;
  10.     TRISE = 0b00000110;
  11.    
  12.     LATA = 0;
  13.     LATB = 0;
  14.     LATC = 0;
  15.     LATD = 0;
  16.     LATE = 0;
  17.    
  18.     ANSELE.ANSE1=0;
  19.     ANSELE.ANSE2=0;

Probáltam már minden hogy de semmit egyszerüen nem akarja PORT beolvasni a gombomat.
(#) cross51 válasza kriszrap hozzászólására (») Okt 15, 2016 /
 
Egyébként már nem emlékszem milyen PIC-ez?
A config be van állítva WDT OFF LVP OFF, az internal osc-t be lehet kapcsolni SW-ből is, de általában configból szoktuk, hogy külső belső stb osc.
Simulatorban a WDT és az oszcillátor okozhat problémát.
Ha ezek jó akkor jöhet a kód.
(#) kriszrap válasza cross51 hozzászólására (») Okt 15, 2016 /
 
PIC18f46k22
  1. OSCCON.IRCF0=1;///Internal Oscillator Frequency Select bits, 16MHz
  2.     OSCCON.IRCF1=1;
  3.     OSCCON.IRCF2=1;
  4.     OSCTUNE.PLLEN=1; // 4x PLL
  5.        
  6.     TRISA = 0;
  7.     TRISB = 0;
  8.     TRISC = 0;
  9.     TRISD = 0;
  10.     TRISE = 0b00000110;
  11.    
  12.     LATA = 0;
  13.     LATB = 0;
  14.     LATC = 0;
  15.     LATD = 0;
  16.     LATE = 0;
  17.    
  18.     ANSELA = 0;          // Digital ports
  19.     ANSELB = 0;
  20.     ANSELC = 0;
  21.     ANSELD = 0;
  22.     ANSELE = 0;

Config rész teljese. (kibövitve)
(#) attika válasza kriszrap hozzászólására (») Okt 16, 2016 /
 
Mikroc-nél az A/D átalakítókat az ANSEL = 0; ANSELH = 0; -val kapcsolod ki.
A komparátorokat meg C1ON_bit = 0; C2ON_bit = 0;
  1. ANSEL = 0;     // Analóg,Digital
  2.   ANSELH = 0;
  3.  
  4.   C1ON_Bit = 0;  //Komparátorok
  5.   C2ON_Bit = 0;

A nyomógomb figyelésed se jó, azt meg így kell megadni, hogy
  1. if(PORTE.F1 !=1)

A PORTE RE1-es bitjén van a gombod és a Pic bemenete fel van húzva egy ellenállással VDD-re és a gombbal teszed földre.
Épp ezért ha a PORTE RE1-es bit nem egyenlő egyel, tehát nulla, akkor nyomtad meg a gombot.
Ha hülyeséget írtam akkor bocsi, egy kicsit már késő van
(#) kriszrap válasza attika hozzászólására (») Okt 16, 2016 /
 
  1. C1ON_Bit = 0;  //Komparátorok
  2.     C2ON_Bit = 0;

Behelyeztem a kódomba de semmi

Mi lehet a baj? Komolyan már mindent kiprobáltam.
(#) Pali79 válasza Pali79 hozzászólására (») Okt 16, 2016 /
 
Az eszem megáll! Lehúztam a lábakat GND-re és úgyhagytam az áramkört. Kicsivel több mint 4 óra múlva megállt és reset után sem indult újra. Komolyan nem értem.
(#) Bakman válasza Pali79 hozzászólására (») Okt 16, 2016 /
 
Nézz bele a kontroller Errata doksijába, hátha abban megtalálod, miért áll le.
(#) kriszrap hozzászólása Okt 16, 2016 /
 
  1. OSCCON.IRCF0=1;///Internal Oscillator Frequency Select bits, 16MHz
  2.     OSCCON.IRCF1=1;
  3.     OSCCON.IRCF2=1;
  4.     OSCTUNE.PLLEN=1; // 4x PLL
  5.  
  6.     ADCON0 = 0;          // ADC le van tiltva
  7.     ADCON1 = 0;
  8.     ADCON2 = 0;
  9.    
  10.     TRISA = 0;
  11.     TRISB = 0;
  12.     TRISC = 0;
  13.     TRISD = 0;
  14.     TRISE = 0b00000110;
  15.    
  16.     LATA = 0;
  17.     LATB = 0;
  18.     LATC = 0;
  19.     LATD = 0;
  20.     LATE = 0;
  21.    
  22.     ANSELE.ANSE1=0;
  23.     ANSELE.ANSE2=0

Eddig juttottam de semmi egyszerüen PORT al nem tudom olvasni(RE1,RE2).
PIC18f46k22
Ötlet?
(#) kissi válasza kriszrap hozzászólására (») Okt 16, 2016 /
 
Szia!
Mi van a konfigurációs bitekkel ? Fut a programod egyáltalán ?
(#) kriszrap válasza kissi hozzászólására (») Okt 16, 2016 /
 
erre gondolsz??
  1. CONFIG1H   :$300001 : 0x0018
  2. CONFIG2L   :$300002 : 0x0019
  3. CONFIG2H   :$300003 : 0x003C
  4. CONFIG3H   :$300005 : 0x00BD
  5. CONFIG4L   :$300006 : 0x0081
  6. CONFIG5L   :$300008 : 0x000F
  7. CONFIG5H   :$300009 : 0x00C0
  8. CONFIG6L   :$30000A : 0x000F
  9. CONFIG6H   :$30000B : 0x00E0
  10. CONFIG7L   :$30000C : 0x000F
  11. CONFIG7H   :$30000D : 0x0040
(#) pajti2 válasza don_peter hozzászólására (») Okt 16, 2016 /
 
Tipp a project2-höz. Első lépésként fogj egy Eagle-t ( Bővebben: Link - az educational verzió free ), gyárts vele kapcsolási rajzot (ki tudja küldeni bmp/pgn-be is), és addig neki se állj nyákozni, meg egyebek, míg azt nem mustráltuk végig.
(#) Pali79 válasza Bakman hozzászólására (») Okt 16, 2016 /
 
Azon már túl vagyok, de csak a beállításról van benne szó meg, hogy az átkapcsolás külső és belső forrás között időkritikus de, hogy menet közben leállna arról egy szó sincs.
(#) kissi válasza kriszrap hozzászólására (») Okt 16, 2016 /
 
Igen, erre gondoltam...
Az OSCCON SCS biteket is állítsd B'10'-ba !

A RESET lábon van felhúzó ellenállás ?!
A hozzászólás módosítva: Okt 16, 2016
(#) Elektro.on válasza kriszrap hozzászólására (») Okt 16, 2016 /
 
Na várjál egy kicsi. Hol akarod RE - t olvasni? nem látom a kódodban.Minden portod digitáloi ki és bemenet.
Gomb állapotárt nem AD converterrel olvassuk ki. Te uyan a kódod végén próbáltál valami AD beállítást, de az értékét sehol nem olvasod be. Attika írta, nogy kell beolvasi egy nyomógomb állapotát.
(#) kissi válasza Elektro.on hozzászólására (») Okt 16, 2016 /
 
Idézet:
„Te uyan a kódod végén próbáltál valami AD beállítást”

Ez csak az analóg funkciók kikapcsolása a lábakon...
A beolvasást nem írta, de még az sem biztos, hogy fut a programja... !
(#) kriszrap válasza kissi hozzászólására (») Okt 16, 2016 /
 
1 Azt hogy tudom megtenni osccos dolgot
2 reset lab????
(#) kissi válasza kriszrap hozzászólására (») Okt 16, 2016 /
 
Nem használom a MikroC-t, de a Tiéd alapján valami ilyesmi lehet...
  1. OSCCON.SCS1=1;
  2. OSCCON.SCS0=0


vagy csináld így:

  1. OSCCON = B'01110010'
ha így jó a MikroC-ben a bináris szám megadása...

A RESET lábat fel kell húzni egy ellenállással + 5V-ra ( felső sárga rész, KÖTELEZŐ olvasmány ! ), ha nem belső MCLR-t használsz ( a konfigurációs bitekből úgy láttam, hogy nem ) !
A hozzászólás módosítva: Okt 16, 2016
(#) kriszrap válasza kissi hozzászólására (») Okt 16, 2016 /
 
Be*aras bitekbol igy meg mondos a resetlabat masra hasznalom . Mingyart kiprobalom amit irtal
Következő: »»   864 / 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