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   476 / 1210
(#) moltam válasza Tas84 hozzászólására (») Jan 6, 2014 /
 
Köszönöm a hasznos linket, értelmezem, és bízok benne hogy elég lesz a 12f683.
(#) jocka0012 hozzászólása Jan 7, 2014 /
 
Üdv!
Most kezdek ismerkedni a pic16f84A mikrokontrollerrel nagyon alapszinten.C programozási nyelvet már tanultam , és utána néztem néhány parancsnak , amik alapján csináltam egy led villogtató programot:
  1. void main() {
  2. TRISB=0b00000000;
  3.  
  4. while(1){
  5.  
  6. PORTB.f1=1;
  7. delay_ms(500);
  8. PORTB.f1=0;
  9. delay_ms(500);
  10. }
  11.  
  12. }

Ezt a programot szimuláltam a proteus nevű programmal és ott valóban működött , és az RB1 lábpm valóban villogott a led.Az lenne a kérdésem , hogy , hogy kell bekötni a pic-et , hogy jól működjön?Itt olyanokra gondolok , hogy pl az mclr lábra kapcsoljak egyest ? , vagy nem kell rá semmit kötni?Ezt a programot mikro C nevű programban írtam , és elindítottam a project varázslót , és ott kikellett választani , hogy melyik tipusú picet akarom programozni illetve azt , hogy hány mhz-s órajelen akarom üzemeltetni.Nekem az a furcsa , hogy a programomba nem rakott bele semmilyen header fájlt , illetve nem rakott belealapbeállításokat , mint ahogy azt láttam nagyon sok pic-es programban,de a proteusban mégis működött a szimuláció.Gyakorlatban is helyt állna ez a program?
(#) icserny válasza jocka0012 hozzászólására (») Jan 7, 2014 /
 
Idézet:
„Gyakorlatban is helyt állna ez a program?”
Nem valószínű.
1. MCLR lábat fel kell húzni egy 10 kOhmos ellenállással a tápfeszültségre.
2. VDD és VSS lábak közé egy 100 nF-os kondenzátor kell
3. VDD-re stabilizált tápfeszültség kell (5 V, vagy annyi, amennyit az adatlap ír)
4. OSC1 és OSC2 lábak közé 4 MHz kvarcot kell kötni, a föld felé pedig egy-egy 22 pF kondenzátort.

Bővebben: Link
(#) Zoli1974 hozzászólása Jan 8, 2014 /
 
Sziasztok!

Gondom támadt PIC égetéssel. Thowra időzítőjét megépítettem és beégettem az ő hex-ét. Nem volt tökéletes és kaqk fórumtárs ajánlotta az ő időzítőjének a hex-ét. Gondoltam próba szerencse kipróbálom. Töröltem egyet majd beégettem az övét. Az ellenőrzésnél a következő hibaüzenet fogadott:
Programming failed at Program Memory address 0x000001
Próbálgattam törölni és égetni de nem megy. A Blank checkre meg ezt írja ki:
Program Memory is not blank starting at address 0x000000
Mit lehet ilyenkor tenni? Ilyesmi égetésnél még nem fordult elő.
(#) Bakman válasza Zoli1974 hozzászólására (») Jan 8, 2014 /
 
A programozó felismeri jól, hogy milyen PIC van benne?
(#) Zoli1974 válasza Bakman hozzászólására (») Jan 8, 2014 /
 
Igen.
(#) Zoli1974 válasza Zoli1974 hozzászólására (») Jan 8, 2014 /
 
Sikerült. Bezártam a programot és újraindítottam és működik sikerült az égetés.
(#) vicsys hozzászólása Jan 8, 2014 /
 
Nagyon láma kérdésem lenne, de nem tudok 1-ről a 2-re jutni. Szóval, mérném egy poti pozícióját és figyelem a változást. Ha van, a program máshova ugrik. Sima pollingozás, nem interrupt.
A gond az, hogy már levettem az AD-t 8bitesre, de még mindig ugrál 1-2 értéket. Átlagolni nem akarok a szofttal, mert a polling miatt, így is ki van élezve. Csatolok egy rajzot, hogy miként próbáltam szűrni a bejövő jelet. Külső referenciát nem használok.

pic ad.pdf
    
(#) Buvarruha válasza vicsys hozzászólására (») Jan 8, 2014 /
 
Hasonló alapon csináltam hangerőszabályzó viszajelzést és nem fogsz tudni vele mit kezdeni bármilyen referenciát is használnál. Mindenképpen átlagolni kell.
(#) vicsys válasza Buvarruha hozzászólására (») Jan 8, 2014 /
 
A francba! Rossz hír. Vajon egy 10 átlag elég lehet?
(#) Hp41C válasza vicsys hozzászólására (») Jan 8, 2014 /
 
Az A/D -ből kiolvasott érték felső n bitjét használd: Ha a felső 3 bit elég, már 8 féle helyre tudsz ugrani. Figyeld, merről ment a tartományba, a maszkolt A/D értékhez egy kis értéket (1/2 lsb) adj hozzá vagy vonj le hiszterézisként.
(#) icserny válasza vicsys hozzászólására (») Jan 8, 2014 /
 
Idézet:
„Átlagolni nem akarok a szofttal, mert a polling miatt, így is ki van élezve.”
Számolj gördülő átlagot, vagy egyszerűen vedd a korábbi átlag és az új mérés súlyozott átlagát (damping)! Így lekérdezésenként csak egy mérés kell, mégsem ugrál az eredmény össze-vissza.
(#) c27 hozzászólása Jan 8, 2014 /
 
Egy kis segítséget kérnék ismét.
Inicializáltam a portok a 16f684-en, de az RA3-on kint van a tápfesz hiába input. Mit ronthattam el? Az mplabba ha szimulálom, nem lehet 1-re állítani a kimenetét, tehát nem output.
Egy másik érdekes észrevétel. Próbálgattam a programomat 2 napja legalább 20x fel is programoztam a picet, majd egyszer csak semmi. Nem vezérli az lcd-t, előveszek egy másikat ugyanazzal a programmal működik, az előző nem. Gondoltam meghalt, bár a portjain ott vannak az utolsó kiadott utasításnak megfelelő jelszintek. Ma előveszem a rossznak véltet felprogramozom és megint működik. Ez mi a fene? Van valami korlát, hogy rövid időn belül hányszor lehet felprogramozni vagy mi? És nem ez az első eset ennél a típusnál.

ini.txt
    
(#) progee válasza vicsys hozzászólására (») Jan 8, 2014 /
 
Lehet hülyeséget írok. Előre is bocsánat
Miért kell a mért áramkörbe a kondenzátor? Nem az okozza a mérés ugrálását?
(#) progee válasza c27 hozzászólására (») Jan 8, 2014 /
 
Milyen programozót használsz? Sorosportival nekem is volt hasonló problémám.
(#) Hp41C válasza c27 hozzászólására (») Jan 8, 2014 /
 
A 16F684 -en a kérdéses láb megnevezése RA3/MCLR/VPP. A MCLR láb csak bemenet lehet.
(#) c27 válasza Hp41C hozzászólására (») Jan 8, 2014 /
 
Jó, hogy csak bemenet lehet, de akkor miért csücsül kint rajta az 5V? Vagy sikerült valahogy aktiválni a felhúzó ellenállást?
Amúgy pickit2 klónt használok.
(#) Hp41C válasza c27 hozzászólására (») Jan 8, 2014 /
 
Talán a panelen van egy ellenállás, ami Vdd -re húzza vagy a PICkit2 ad ki neki magas szintet.
(#) ktamas66 válasza c27 hozzászólására (») Jan 8, 2014 /
 
Az MCLR funkciót a CONFIG beállításoknál lehet kikapcsolni, az MCLR automatikusan fel van húzva Vcc-re, szoftverből nem állítható (Leírás: 4.2.1 WEAK PULL-UPS).
(#) c27 válasza ktamas66 hozzászólására (») Jan 8, 2014 /
 
Nem ezzel kapcsolom ki? Vagy kihagytam még valamit?
BSF OPTION_REG,7 ;PULL-UP OFF

Egyébként próbapanelen van, ellenállás nem zavarna be, valószínűleg mégiscsak én hibáztam megint.
(#) ktamas66 válasza c27 hozzászólására (») Jan 8, 2014 /
 
Nem, elől a CONFIG sorhoz kell még hozzáadni a _MCLRE_OFF kapcsolót.
(#) c27 válasza ktamas66 hozzászólására (») Jan 9, 2014 /
 
Ok, kösz.
(#) vicsys válasza progee hozzászólására (») Jan 9, 2014 /
 
Nem kérdeztél hülyeséget, teljesen logikus. Alapállapotban természetesen nem kell kondi egy szimpla ellenállásos feszültség osztóhoz. Igaz is lenne, ha az áramkör nem szedne össze brummot vagy zavaró jel tüskéket, amik a mérést is zavarják. Ez a kis RC tag, ezt hivatott söntölni, csökkenteni. Először, én is szűrés nélkül próbáltam és probléma megjelenése után próbáltam szűrni.
(#) ktamas66 válasza vicsys hozzászólására (») Jan 9, 2014 /
 
A 100n-t az 1k után szokták rakni, hogy az legyen az RC tag, de szerintem ez nem oldja meg a problémádat. Ha kis változást is érzékelni akarsz átlagolni kell.
(#) vicsys válasza ktamas66 hozzászólására (») Jan 9, 2014 /
 
Majdnem jól látod, csak elkapkodtad. Amivel jól működött (egy másik kapcsolásom) annál:
Soros 1k-100nF a testre-soros 1K. Tehát előtte és utána is van egy ellenállás. Itt az előtte, maga a poti.
(#) ktamas66 válasza vicsys hozzászólására (») Jan 9, 2014 /
 
Az AD bemenetére kötött RC tag egy aluláteresztő szűrő, amit méretezni lehet a mérendő jel frekvenciájához. Az 1k-100n páros az kb.1,6kHz-nél vág (utána már nem szoktak soros ellenállást tenni). A te kondid inkább "hidegítő", bár az is aluláteresztő, de változó vágási frekivel, de nem is ez az alapvető feladta, ezért rakhatsz oda nagyobbat is, ami még tűrhetően követi a poti változási sebességét.
(#) vicsys válasza ktamas66 hozzászólására (») Jan 9, 2014 /
 
A második ellenállás azért kell, hogy tudjam tartani az AD ajánlott forrásellenállását.
(#) kistee válasza progee hozzászólására (») Jan 9, 2014 /
 
Csatlakozom...

Lehet, hogy én is hülyeséget írok, de: próbáltam két potit beolvasni a PortA-ról, 16F873-al és én is tettem mindkét potira kondenzátort, szűrés gyanánt... Ha a PA1-en lévő potit tekertem, a másikról (PA0) beolvasott érték is változott... miután kitéptem a hajam felét, kiforrasztottam a kondikat és megjavult... 22 mikrós elkók voltak...

Úgyhogy első körben kivenném a kondit...
(#) vicsys válasza kistee hozzászólására (») Jan 9, 2014 /
 
Mint azt már írtam fentebb, kondi nélkül kezdtem... Egyébként nálam nem volt ilyen "áthallás" jelenség.
(#) Zoli1974 válasza Zoli1974 hozzászólására (») Jan 9, 2014 /
 
Idézet:
„Sziasztok!

Gondom támadt PIC égetéssel. Thowra időzítőjét megépítettem és beégettem az ő hex-ét. Nem volt tökéletes és kaqk fórumtárs ajánlotta az ő időzítőjének a hex-ét. Gondoltam próba szerencse kipróbálom. Töröltem egyet majd beégettem az övét. Az ellenőrzésnél a következő hibaüzenet fogadott:
Programming failed at Program Memory address 0x000001
Próbálgattam törölni és égetni de nem megy. A Blank checkre meg ezt írja ki:
Program Memory is not blank starting at address 0x000000
Mit lehet ilyenkor tenni? Ilyesmi égetésnél még nem fordult elő.”

Újra ugyanez a hiba. Nem emlékszem tegnap hogyan csináltam de ma a szintén ugyanezt csinálja.
A pic ugyanaz csak a kapcsolás más és a program is.
A hozzászólás módosítva: Jan 9, 2014
Következő: »»   476 / 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