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   163 / 1210
(#) vicsys válasza doup hozzászólására (») Nov 5, 2011 /
 
Esetleg használj RTC-t és azt pl. másodpercenként olvasod.
Bővebben: Link
(#) bbalazs_ válasza doup hozzászólására (») Nov 5, 2011 /
 
Ha az ora megszakitasban van, akkor amig lekezeled az idokritikus 1-wire reszt a foprogramban, addig tiltani kell a megszakitasokat, utana engedelyezeskor ugyis beut majd.
Ertelemszeruen a timer megszakitasi idoalapnak ritkabbnak, lassabbnak kell lennie, mint az idokritikus resznek, kulonben valoban pontatlan lesz az ora.

A megszakitasok nehez tema a kezdoknek.

Az az alapkoncepcio, hogy a foprogi fut, fut. Egyszercsak jon a megszakitas (ez sokmindentol beuthet, pl egy felprogramozott timer tulcsordul) ez a foprogramot ket utastas kozott felfuggeszti, es elugrik a megszakitasi vektor cimere, amit megadtal neki.
Itt eloszor el kell menteni a regisztereket, aztan lekezelni a megszakitast - legalabb a bitjet torolni - aztan visszaallitani a regisztereket es visszaterni RETI-vel.

Mivel sokfele okbol lehet interrupt es ez mind ugyanoda ugrik, az elejen celszeru megvizsgalni, hogy vajon tenyleg az okozta-e, ami neked kell. Ha nem, siman visszatersz. Ha igen, lekezeled es visszatersz.

A kezdok altalaban az engedelyezeseket szoktak elrontani, azert nem megy. Sok helyen be kell allitani, hogy adjon megszakitast. Peldaul eloszor a foprogramban kell beallitani a timert, aztan inditani.
Fontos, hogy az orajelhez kepest mennyivel ketyeg a timer, ezt is erdemes bealitani. Vannak eloosztasok.
A te esetedben a megszakitasban ujbol fel kell a timert tolteni, inditani es utana visszaterni, hogy a kovetkezo interrupt pont ismet ugyanakkor usson majd be.

Elsore nem konnyu megerteni, de NAGYON hasznos a PIC-nel az interruptok ismerete. Megsporolhatod vele az ures varakozasokat, azalatt mast csinalhat a nem idokritikus foprogram.
(#) Stefan válasza Zserigta hozzászólására (») Nov 5, 2011 /
 
Nincs olyan hogy assembly tömb. Ez nem VB. Ez hardverközeli programozás. Itt vannak bitek, 8/16/32 bites regiszterek és egy rakat logikai, alapvető matematikai, ugró utasítás. Ebből kell építkezni. Amúgy az LCD kezelés helyett esetleg kezhetnél valami olvasmánnyal, és akkor nem lennének ilyen felreértések.
Pl: Pic mikrovezérlők alkalmazástechnikája
(#) PetAd hozzászólása Nov 5, 2011 /
 
Üdv
Ha az MCLR lábat bemenetnek használom és egy gombot kötök rá, akkor tehetek a 10Kohmos felhúzó ellenállás és a PIC közé egy 1K/100nF os RC tagot? Jól gondolom, hogy az nem fog bezavarni a programozáskor?
(#) doup hozzászólása Nov 5, 2011 /
 
Tudna nekem valaki olyan könyvet ajánlani vagy e-könyvet ami a kezdetektől elmagyarázza a pic működési elvét példákon keresztül amik mikroc-sek?
(#) potyo válasza PetAd hozzászólására (») Nov 5, 2011 /
 
Pontosan hogy gondoltad a bekötést? És mi lenne a szerepe?
(#) Poostmaster válasza Stefan hozzászólására (») Nov 5, 2011 /
 
Ne fáradj. Ma egész nap ezt mondtuk neki. Fölöslegesen. Én inkább nem válaszolok.
(#) PetAd válasza potyo hozzászólására (») Nov 5, 2011 /
 
Így gondoltam, pergésmentesítés, zavarszűrés miatt raknám be, az ICSP csatlakozóba kötném a kapcsolót.

MCLR.png
    
(#) icserny válasza PetAd hozzászólására (») Nov 5, 2011 /
 
Az 1 kohm PIC felőli végén ne legyen kondenzátor! A másik végén esetleg, de minek? A gyári kártyán (pl. PICkit2 Starter Kit) sincs tudtommal.
(#) vicsys válasza PetAd hozzászólására (») Nov 5, 2011 /
 
A 10k-val és 100nF-dal nem lenne gond, de a soros 1k-t nem biztos, hogy szeretni fogja. Max a progizás idejére rövidrezárod.
(#) potyo válasza PetAd hozzászólására (») Nov 5, 2011 /
 
Ez így pont zavarná az égetést. Ha az 1k másik végére tennéd a kondenzátort, és az ICSP csatlakozót meg közvetlenül a kontroller lábára, akkor már nem zavarná. Viszont én nem tartom lényegesnek, szoftveresen is meg lehet csinálni a pergésmentesítést minimális programidő felhasználásával, csak a 10k felhúzót tenném, meg persze égetés közben nem szabad nyomni a gombot.
(#) vilmosd válasza doup hozzászólására (») Nov 5, 2011 /
 
Keresd a konyvespolcot a forumon.
(#) PetAd válasza icserny hozzászólására (») Nov 5, 2011 /
 
icserny, vicsys, potyo:
Megpróbálom megúszni, hogy szoftveresen kelljen megoldani a gondot, inkább belerakok 1-2 alkatrészt.
Megpróbálom majd RC taggal az égetést és ha nem megy kiszedem az ellenállást, ha ezután se akkor meg leprogizom a dolgot.
Az ICSP csatit sajnos nem tudom az ic lábához tenni, de nincs messze max 3-4 centi vezeték, a kapcsoló az ICSP csatiba megy majd bele így programozás közben nem tudom megnyomni.
(#) icserny válasza PetAd hozzászólására (») Nov 5, 2011 /
 
Valamit félreértettél! Az ICSP csatlakozás közvetlenül legyen az MCLR lábra kötve, ne az ellenállás másik végére, ez a lényeg. Az 1 kohmot nem kell kivenni programozáshoz. Sőt!

Ez a gagyi hardveres pergésmentesítés messze áll attól, hogy a szoftveres pergésmentesítést pótolja! Valamit javíthatnál rajta azzal, ha a nyomógombbal is lenne sorbakötve egy ellenállás. A kondenzátornak meg nagyobbnak kellene lennie a pergésmentesítéshez.
(#) PetAd válasza icserny hozzászólására (») Nov 6, 2011 /
 
Az ICSP csatit kell használnom, hogy rádughassam a kapcsolót, úgyhogy nem lesz ellenállás csak a kondi, és ha ez nem elég, akkor marad a szoftveres pergésmentesítés.
(#) Zserigta hozzászólása Nov 6, 2011 /
 
Jó étvágyat mindenkinek az ebédhez.

C-ben (CCS) ugye az "read_adc();" utasítással, az analóg lábakon egy PIC16F887 esetében ugye 256 különböző feszültség állapotot lehet lekérdezni.

Kérdésem, hogy ezt fordítva, azaz kifele, meg lehet oldani, hogy az egyik analóg (vagy bármely másik) lábán a pic-nek szabályozhassam a kimenetei feszültséget?

Mondjuk pl, egy LED fényerejét ezáltal állíthassam?

Válaszokat előre is köszönöm.
(#) kissi válasza Zserigta hozzászólására (») Nov 6, 2011 /
 
Nézegess a PWM témakörben!

Steve
(#) vilmosd válasza Zserigta hozzászólására (») Nov 6, 2011 /
 
PWM esetleg? Amugy az AD 10 bites nem 8. Sot vannak 12 bites fajtak is.
(#) Zserigta válasza kissi hozzászólására (») Nov 6, 2011 /
 
Jól sejtem, hogy ez esetben szükségem lesz egy másik I.C.-re ami a PWM jelet feldolgozza, és az vezérli a LED fényerejét??

Ha így van, akkor kérdésem, hogy a PIC16F887-et leszámítva más I.C. használata nélkül nem oldható meg a LED fényerejének szabályzása?
(#) röntgen válasza Zserigta hozzászólására (») Nov 6, 2011 /
 
Nem kell másik IC, csak egy kapcsoló elem (pl. tranyó) ha nagyobb áramot szeretnél a LED-n átzavarni. A PWM kitöltési aránya határozza meg, hogy mennyi ideig van be ill. kikapcsolva a LED. Megfelelő frekin ezt a szem csak fényerő változásként éli meg.
(#) Poostmaster válasza icserny hozzászólására (») Nov 6, 2011 /
 
Hadd kapcsolódjak be egy kérdéssel. A hardweres prellmentesítés nem jó? Vagy melyik jobb?
(#) vilmosd válasza Zserigta hozzászólására (») Nov 6, 2011 /
 
Miert kellene masik IC? A PIC labai 25 mA terhelest birnak el. A PWM kimenetre gondolom egy 5 wattos LED-et akarsz kotni. Egy sima LED ugy altalaban megelegszik 15-20 miliamperrel is. Tehat csak a SW PWM berugasa szukseges, es jol megvalasztani a PWM frekit. Lehet par szaz Hz felett valasztani, es akkor csak a fenyerovaltozast latod, nem fog villogni.
(#) Zserigta válasza röntgen hozzászólására (») Nov 6, 2011 /
 
És tényleges feszültségszabályozás nem csikarható ki a PIC-ből valahogyan egyéb I.C. használata nélkül?

Ha esetleg NEM, akkor milyen egyéb I.C. bevonásával lehetne megoldani?

És mi van ha a PWM jelet kiegészítem egy kondival?
Akkor elvileg nem fog villódzni (még kamerán keresztül sem) és a fényerő is változik.
Jól gondolom?
(#) Poostmaster válasza Zserigta hozzászólására (») Nov 6, 2011 /
 
Megint csak az van, hogy ha olvasnád az adatlapot, tudnád, hogy a 887-esnek van PWM modulja.
(#) Zserigta válasza Poostmaster hozzászólására (») Nov 6, 2011 /
 
Azt tudom hogy van, csak eddig nem tudtam, hogy az egyéb eszköz nélkül is használható.
Viszont én meg azt szeretném elérni, hogy a LED fényerejét tényleges feszültségváltoztatással, nem pedig villogtatással lehessen állítani.

Erre, meg ha jól sejtem önmagában a PIC kevés lesz.
(#) vilmosd válasza Poostmaster hozzászólására (») Nov 6, 2011 /
 
Jo lehet az is, ha RC tag es ST inverterbol all. A PIC bemenetei nem ST tipusuak, es ezert nem tanacsos a bemenettel parhuzamosan nagyobb kondit kotni. De azert egy SW prellmentesites sem egy ordongosseg. Viszont sokkal kevesebb helyet foglal el a panelon.
(#) vilmosd válasza Zserigta hozzászólására (») Nov 6, 2011 /
 
Nezzel mar meg egy LED karakterisztikkat legyszives. Feszultseg valtoztatassal nem lehet a fenyerejet valtoztatni. Viszont a PWM vezerles teljesen megfelel a celnak. Soot : 16F887 2 azaz ketto PWM csatornaval rendelkezik, azaz 2 LED vezerleset is meg lehet oldani ugyanazon idoben.
Ugy latom Te "Write only" uzemmodban forumozol.
(#) röntgen válasza Zserigta hozzászólására (») Nov 6, 2011 /
 
A LED egy félvezető, annál nem működik az, hogy a feszültséget tekergetem és a LED úgy ugrál. A Led fényerejét a PWM megoldáson kívül csak áramgenerátoros megoldással tudom elképzelni. A két megoldás közül még mindíg a PWM az egyszerűbb.
(#) Zserigta válasza (Felhasználó 15355) hozzászólására (») Nov 6, 2011 /
 
Ez ha jól látom saját videó.
Gratula hozzá szép munka, elég látványos, és még így kamerában sem villódzik.

Akkor kérdésem, csak simán rákötötted az egyik PIC lábra a LED-et és kész? Ellenálláson kívül semmi nincs kötve a PIC-LED-Föld közé?
(#) potyo válasza Poostmaster hozzászólására (») Nov 6, 2011 /
 
Alapvetően az RC tag az nem prellmentesítő, hanem csak a jelszintváltozás meredekségét csökkenti. De ha a jelszint a pic bemenetének 0-1 érzékelési határánál mozog, akkor ugyanúgy prell lesz a bemeneten. Valódi prellmentesítés akkor lenne, ha a bemenet ST típusú lenne, mert akkor van némi hiszterézise, és lehet hozzá méretezni RC tagot. De TTL bemenetnél csak csökkenti a prellt, ami az esetek egy részében valóban akár elegendő is lehet. De ha már kontroller, akkor firmware-ből is meg lehet csinálni a prellmentesítést, és inkább ezt szoktuk csinálni, főleg ha több nyomógombról van szó, vagy gombmátrixról.
Következő: »»   163 / 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