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   259 / 1216
(#) petitrial hozzászólása Máj 22, 2012 /
 
Helló!
Kezdők számára milyen égetőt javasoltok, Pickit 2 vagy 3? Illetve milyen Demo boardot érdemes venni tanuláshoz?
(#) icserny válasza petitrial hozzászólására (») Máj 23, 2012 /
 
Az ilyen kérdésekre én azt szoktam válaszolni, hogy addig semmit nem érdemes venni, amíg magad el nem tudod dönteni, hogy mit érdemes venned. Bújni kell az adatlapokat, az alkalmazási mintapéldákat, a fejlesztői környezet és fordítók leírását, keresni kell a neten mintaalkalmazásokat, mindaddig, amíg azt nem mondod, hogy "ez kell nekem".

Szerencsére az MPLAB szimulátorában hardver nélkül is futtathatók programok, de vannak olyan szimulátorok, amelyekben egyszerűbb áramkörök viselkedése is vizsgálható, így anélkül is lehet próbálkozni, hogy valamire beruháznál, amiről később kiderül, hogy mégsem kell...

El kell dönteni, hogy melyik mikrovezérlő családdal kívánsz foglalkozni, honnan, miből tanulsz és mi a kívánt cél. Ezek is beleszólnak abba, hogy mit érdemes beszerezni.

A PICkit2 már kifutó típus, tehát vannak olyan újabb mikrovezérlő típusok amelyeket már nem lehet vele programozni/debug-olni. A PICkit3 kevésbé összkomfortos és cserélgeti a firmware-t, tehát akkkor használható optimálisan, ha lehorgonyzol egy típusnál, és azt tanulmányozod hónapokon keresztül.

Vannak ún. Starter Kit-ek is, amelyekben beépített programozó is van. Kezdetben könnyebbség lehet, hogy kéznél van a hardveres nyomkövetés lehetősége, hosszú távon korlátozó tényező, hogy csak néhány típus programozható vele (pl. Microstick I. konkrétan csak 4 típust támogat, a Microstick II. pedig az összes 28 lábú PIC24/dsPIC33-at).

Van olyan megoldás is, hogy egy előre felprogramozott mikrovezérlő bootloaderrel saját magát programozza. A gond csak az, hogy az első felprogramozást is el kell végezni valakinek.

Én biztatnám a fórum olvasóit, hogy a ChipCAD-nél kérjék a mikrovezérlő felprogramozását, ahogyan korábban csinálták a PIC16F877 esetében. A PICCOLO projektkíséleti áramkörével vagy a PIC-ador kártyával így akár programozó nélkül is neki lehetne vágni a tanulásnak.
(#) Stadi válasza vilmosd hozzászólására (») Máj 23, 2012 /
 
Ahogy icserny kolléga írta, valóban kevés lenne az I/O lábak száma. Ráadásul az RF modulnak min. 3V-os táp kell, és akkor már nem lenne tartalék. Vagy több elemet kellene bevetni. Az említett step-up IC 1.1V-tól már indul, és menet közben még ez alá is mehet a tápfesz, talán 0.7V-ig. Így nagyjából csutkára ki lehetne használni az elemeket.
(#) Stadi válasza Zsora hozzászólására (») Máj 23, 2012 /
 
Kicsit azt vettem ki a szavaidból, hogy manapság már az lett a "sztenderd", hogy mindenféle előzetes informálódás nélkül kérdezgetnek az emberek. Én először mindig megpróbálom egyedül megoldani a feladatot, aztán ha nem megy, akkor kérdezek.

Hiszed vagy sem, nekem tényleg ez az első PIC-es projektem, és C programot is most írok először (bár igaz, hogy más programnyelvben már van tapasztalatom).
(#) Zsora válasza Stadi hozzászólására (») Máj 23, 2012 /
 
Nem úgy értettem, hogy a mikrovezérlők területén nem tűnsz kezdőnek, hanem hogy úgy általában a programozástechnika területén.

A billentyűzet olvasással kapcsolatban:
Ha a gombok mátrixba vannak szervezve, akkor ugye az olvasásuk úgy történik hogy pl. a sorokat egyenként lehúzkodom testre, és olvasom az ellenállással tápra húzott oszlopok állapotát. Ebből az következik hogy alvó módból csak akkor tudod gombokkal feléleszteni a mikrovezérlőt, ha az összes sor ki van választva ezalatt, vagyis bármely gomb lenyomása H-L átmenetet okoz az oszlopbemeneten.
(#) Zsora hozzászólása Máj 23, 2012 /
 
Programösszefűzésel kapcsolatos kerdés:
(MPLAB X, PIC24 assembly)
Eddig nem írtam túl nagy programokat, így egyetlen állományban tároltam mindent. Viszont egy viszonylag nagyobb alkalmazásnál áttekinthetőbbé válik a dolog, ha különböző részeket külön állományba teszek, mert úgy csak a nekem szükséges részben kell keresnem, ill. a két rész két külön ablakban egymás mellett is megtekinthető. Emiatt létrehoztam több assembly (.s) forrásállományt és a fő állományban a többit .include paranccsal befűztem. Működik is a dolog, csakhogy nem egészen úgy ahogy gondoltam, mivel érdekesmódon minden befűzött programrész, adat, változó kétszer kerül lefoglalásra/beszúrásra a lefordított kódba. Egyszer oda, ahol az .include parancs van, majd mégegyszer a főprogram után.
Nem értem hogy miért. (Lehet hogy én nem vagyok tisztában az .include parancs használatával, vagy a linkert nem jól állítottam be?)
(#) Zsora válasza Zsora hozzászólására (») Máj 23, 2012 /
 
Közben utánanéztem újra a dolognak, és ezt vettem ki:
- Az .include nem a saját állományok (modulok) összefűzésére való, hanem csakis külső (idegen) állományok hozzáfűzésére.
- Az egyes modulok automatikusan összefűzésre kerülnek.

Vagyis nekem az egyes modulok közötti átjárhatósághoz és a globális változók eléréséhez csak a .global parancsra van szükségem. Ezzel viszont az a gond, hogy a kb. 150 db változót így az azt használó modulokban .global-ként kell meghatározni.
(#) mate_x hozzászólása Máj 23, 2012 /
 
Sziasztok!

Szeretném meg tudni, hogy ha van egy HEX fájlom, akkor azt a pic égető programok miért módosítják(jegyzettömbbel megnyitva látszik a különbség)? Végeztem néhány kísérletet. Csatoltam 3 HEX fájlt. Az első az eredeti HEX fájl, a másik kettő pedig amivé módosítottak a programok. Két programmal próbáltam, pickit2-vel és oshonnal. Az áramkör működése mindegyik esetben ugyanúgy működik, de szeretném meg tudni, hogy mitől van ez a változás. Ha valaki megtudná mondani, annak örülnék.

Üdv, mate_x
(#) icserny válasza mate_x hozzászólására (») Máj 23, 2012 / 1
 
A :020000040000fa sor a 32 bites cím felső 16 bitját állítja be, jó, ha ott van legalább a fájl elején.

PICkit2-nél állítható, hogy a nem implemenetált konfigurációs biteket 1-nek vagy 0-nak olvassa ki. Ettől függően más lesz a kiolvasott érték, de ennek nincs gyakorlati jelentősége.
(#) Hp41C válasza mate_x hozzászólására (») Máj 23, 2012 / 1
 
Szia!
Eredeti: A fordításkor megadott adatokat tartalmazza csak. A programot és a konfigurációs regiszterek értéket.
PICKit2-vel: Az exportáláskor még hozzá tette az adat EEProm tartalmát és az ID regiszterek értékét.
Oshonnal: Az exportáláskor még hozzá tette az adat EEProm tartalmát, de az ID regiszterek tartalmát nem.
(#) mate_x válasza Hp41C hozzászólására (») Máj 23, 2012 /
 
Nagyon szépen köszönöm a válaszokat mindkettőtöknek Még egy utolsó kérdés: A Pickit2-vel lehet módosítani az User ID-t? Mert én sehogy nem tudtam, de például watt WPB programjával lehetséges.
(#) Hp41C válasza mate_x hozzászólására (») Máj 23, 2012 /
 
Úgy nézem, nem goldoltak rá a PICKit2 program fejlesztői...
(#) llaczo hozzászólása Máj 23, 2012 /
 
Sziasztok. Kezdő vagyok még a PIC programozásban de a 16F84A-ra már írtam néhány programot amik elég jól sikerültek. Most szeretnék áttérni a 12F675 és a 12F629 programozására de a világért sem sikerül beállítani a ki és bemeneteket, vagy legalább is rávenni hogy adjon ki jelet bárhogy. MPLAB IDE v6.61 fordítót használok. Tudna valaki segíteni, esetleg küldeni egy programocskát, persze ASM ben, ahol ha egy bemenetre jelet küldök akkor valamelyik másik lábon világít egy LED. Egy magyar oktató leírás is segítene.
Előre is köszi. Üdv
(#) mate_x válasza Hp41C hozzászólására (») Máj 23, 2012 /
 
Köszönöm, akkor jól sejtettem.
(#) Hp41C válasza llaczo hozzászólására (») Máj 23, 2012 /
 
Szia!
Ott van a példa a port beállítására az adatlapban, a Example 3-1: Initializing GPIO:
  1. BCF   STATUS,RP0 ;Bank 0
  2. CLRF   GPIO ;Init GPIO
  3. MOVLW   07h ;Set GP<2:0> to
  4. MOVWF   CMCON ;digital IO - Komparátor kikapcsolása
  5. BSF   STATUS,RP0 ;Bank 1
  6. CLRF   ANSEL ;Digital I/O - Összes láb dihitális módra állítása
  7. MOVLW   0Ch ;Set GP<3:2> as inputs
  8. MOVWF   TRISIO ;and set GP<5:4,1:0> as outputs
  9. BCF   STATUS,RP0 ;Bank 0
(#) llaczo válasza Hp41C hozzászólására (») Máj 23, 2012 /
 
Köszi a gyors segítséget. majd még jelentkezem a sikereimmel vagy tovább nyaggatlak a nyűgeimmel
(#) llaczo válasza Hp41C hozzászólására (») Máj 23, 2012 /
 
Hali. Sikerültek a kísérletek kivéve a GPIO3 az nem akar se ki se be működni. Egyenlőre elég ennyi port. "A következő tervemnél azért majd kelleni fog mindegyik". Köszi a segítséget. Sokat haladtam előre.
(#) vilmosd válasza Stadi hozzászólására (») Máj 24, 2012 /
 
Azert irtam, hogy 16F684. Nem jo otlet ilyen kapcsolouzemu stabler mert van sajat fogyasztasa. Ez a PIC 2 volttol uzemkepes, es van szabad 11 I/O es 1 input (MCLR). 31 kHz belso oszcirol is jarhat. Sleep uzemmodban 3 voltnal 3-4 uA a felvetele. Azert mondtam hogy a kisoccsevel (12F683) 2 ceruzaelemmel elment 2 honapot. Billentyuzetrol ossze lehetne diodazni a Row kimeneteket, es egy bemenetrol felebreszteni. Utana pedig TMR0 IT-vel lekezelni a billentyuzetet. Ja es az ara is eleg alacsony.
(#) icserny válasza llaczo hozzászólására (») Máj 24, 2012 /
 
Idézet:
„a GPIO3 az nem akar se ki se be működni.”
Kimenetként nem is tud működni. Bemenetként is csak akkor használható, ha a lábhoz tartozó MCLR funkció le van tiltva.
(#) Johnny0004 hozzászólása Máj 24, 2012 /
 
Üdv! Pár oldallal ezelőtt érdeklődtem egy 16f88 pic meghibásodásáról. Valaki találkozott már egyébként ilyen fajta pic meghibásodással, hogy fel lehet programozni, és működik is egészen addig, amíg rajta az 5 volt, ahogy megszűnik újraindulásnál már nem megy? Kiolvasásra benne a program. Ez gondolom már nem javítható?
(#) Stadi válasza vilmosd hozzászólására (») Máj 24, 2012 /
 
Amint már említettem, az RF modulnak min. 3V tápfesz kell, így amit írtál, az most nem alternatíva. Ha túl gyorsan fogy a kraft, akkor majd beépítek egy kapcsolót. Arra a napi pár óra használatra így is meg fog felelni, nem kell 24/7-ben működnie az áramkörnek.
(#) Stadi hozzászólása Máj 24, 2012 /
 
Köszönöm az eddigi reakciókat. Csatoltam a véglegesnek szánt kapcsolást és programot. Várom a véleményeket.

A programot lefuttattam az MPLAB v8 szimulátorán, és jónak tűnik. Amire nem jöttem rá, az az, hogy a TMR0-t is be lehet-e vonni valahogy a szimulációba. Jelenleg úgy oldottam meg, hogy kreáltam egy feltételes eseményt: ha a timer flag-jét törlik, akkor 10s elteltével álljon újra 1-be.

Valakinek van tippje rá, hogy az Oshonsoft PIC szimulátora miért nem eszi meg a HI-TECH C fordító által generált HEX fájlt?

Még annyit kérdeznék, hogy jól számoltam-e a TMR0 megszakítások (túlcsordulások) közötti időtartamot, ha a következő képletet használtam: t=1/(Fosc/4/előosztó/utóosztó), ahol Fosc=2MHz, előosztó=32, utóosztó=256 (mindig 0-ról indul a számláló), és így adódott 16.384ms?
(#) Hp41C válasza Stadi hozzászólására (») Máj 24, 2012 /
 
Idézet:
„Valakinek van tippje rá, hogy az Oshonsoft PIC szimulátora miért nem eszi meg a HI-TECH C fordító által generált HEX fájlt?”


Egyes fordítók a hex végére tesznek egy-két sort a kontroller típusával és más adatokkal (dátun, verzió). Ezek a sorok nem Intel hex formátumúak.

Jól számoltál.
(#) icserny válasza Stadi hozzászólására (») Máj 24, 2012 /
 
Idézet:
„Valakinek van tippje rá, hogy az Oshonsoft PIC szimulátora miért nem eszi meg a HI-TECH C fordító által generált HEX fájlt?”
Bizonyára más formátumú. A HI-Tech fordító mellett van egy hexmate nevű segédprogram, próbáld meg azzal konvertálni. (Csak ne tőlem kérdezd, hogy hogyan kell használni, hanem a Helpjét nézd meg!)
(#) Hp41C válasza Stadi hozzászólására (») Máj 24, 2012 /
 
Idézet:
„Amire nem jöttem rá, az az, hogy a TMR0-t is be lehet-e vonni valahogy a szimulációba.”


Ha belső órajelről jár és jól van felprogramozva, akkor mennie kell. Ha külső órajelet kell számolnia, akkor speciális stimulust kell a T0CKI lábra tenni, a vezérlését SCL nyelven megírni. Példa a T1 órajel bemenetére 32.768kHz órajelre van a Microchip fórumán a Szimulátor topik SCL témájában.
(#) Zsora válasza Stadi hozzászólására (») Máj 24, 2012 /
 
Nekem a billentyűmátrix bekötése gyanús.
(#) icserny válasza Zsora hozzászólására (») Máj 24, 2012 /
 
Idézet:
„Nekem a billentyűmátrix bekötése gyanús.”
Igazad van! Bővebben: Link
(#) Zsora válasza icserny hozzászólására (») Máj 24, 2012 /
 
Végülis működhet, csak hát így a belső felhúzóellenállások a külső soros ellenállásokkal együtt feszültségosztót képeznek. A működőképesség a két ellenállás arányától függ.
(#) Stadi válasza Hp41C hozzászólására (») Máj 24, 2012 /
 
Köszi, az utolsó két sor törlésével már be tudtam tölteni a HEX fájlt a PIC Simulatorba.
(#) Stadi válasza icserny hozzászólására (») Máj 24, 2012 /
 
Nekem az Oshonsoft szimulátorának billentyűzet mátrixa adta az ötletet.

Ha a sorok meghajtása végig kimenetként van konfigurálva, és csak az egyik lábon van L szint, a többin pedig H, akkor az azonos oszlopra kötött két gomb egyidejű lenyomása rövidre zárja a két, különböző szinten levő kimenetet. Ez biztos, hogy jó a PIC-nek?

Az én programom ezt úgy próbálja elkerülni, hogy a SLEEP állapot kivételével a sorok közül mindig csak egy van kimenetként konfigurálva. Viszont SLEEP-ben mind a négy egyszerre kimenet, és bár elvileg azonos potenciálon vannak, valahogy nekem még így sem tűnik jónak az esetleges direkt összekötésük lehetősége.
Következő: »»   259 / 1216
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