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   1155 / 1203
(#) pipi válasza gyoran hozzászólására (») Márc 26, 2021 /
 
Trükközhetsz úgy, hogy nagyobb lábszámú picen fejlesztesz, a programodban #ifdef-ekkel megoldod a procik közti különbségeket... Ha szerencséd van, lehet helyből van vele abszolút regiszterkompatibilis nagyobb lábszámú pic.
Én mostanában pl 16f18323-ra fejlesztettem így 16f18345 lábkonverteren keresztül bekötve... kis lábszámú proci, a projektben az összes láb felhasználva. Réges rég meg 16f84-re fejlesztettem 16f74-el...
Neked esetleg a 690-es közel lehet a 628-hoz...
A hozzászólás módosítva: Márc 26, 2021
(#) ssdroon30 hozzászólása Márc 26, 2021 /
 
Kedves Mindenki!

Van egy szervo vezérlő áramköröm pic18LF4550-el.
A szervok egy részét a porta-ra szeretném kötni.
Ehhez arra van szükség, hogy a PORTA-t digitális outputtá állítsam.
Néztem a dokumentációt, és a neten is keresgéltem, de választ nem kaptam a kérdéseimre.
A PIC programja MPlabx XC8 fordítóval készült.
Eddig azt találtam, hogy ha az ADCON1-et 0x0F-el töltöm fel, akkor az összes port digitális I/O port lesz.
Ezen kívül szükség volt még a CMCON 0x07-re állítására.
Amikor ezt beillesztem a kódba, és felprogramozom a pic-et, akkor az összes szervo csak morog, de nem mozdul, még azok sem amik eddig működtek.
Félek, hogy tönkreteszem a szervokat, vagy a pic-et.
Mit javasoltok, tud valaki egy jó leírást erről, vagy tudja, hogy hogyan kell beállítani a regisztereket?
Válaszotokat előre is köszönöm!

Üdvözlettel:
ssdroon30
(#) foxi63 válasza ssdroon30 hozzászólására (») Márc 26, 2021 /
 
Szia!
eddig jók a beállítások, gondolom a port irányát is beállítottad (TRISA)
A szervóknal 0.5-1.5 ms ideig kell adni magas szintet, amit max 20ms időnként ismételgetni kell.
Máshol lehet a hiba, A szervók nem mennek tönkre, a PIC kimeneteivel pedig ideiglenesen kössél sorba 270 Ohm-os ellenállást és ekkor a portláb sem tud tönkre menni.
(#) icserny válasza gyoran hozzászólására (») Márc 26, 2021 /
 
"A PIC16f628A debuggolható eredeti MC Pickit3-mal?"
Semmivel sem debugolható, mert nincs elég erőforrása. Az AC162053 és hasonló headerek egy másik, nagyobb kiépítésű mikroverzéelőt tartalmaznak, ami lefelé kompatibilis azzal a mikrovezérlővel, amit helyettesítenek vele - legalábbis én így szűrtem le az olvasmányaimból.
Hobbi célra ágyúval verébre. Olcsóbb egy nagyobb tudású mikrovezérlőt venni, ami tényleg debugolható.
(#) silent15 válasza ssdroon30 hozzászólására (») Márc 26, 2021 /
 
Szia!

Az ADCON1 stimm a 0x0F-el. A CMCON 0x07 is jó, leveszed a komparátorokat a lábakról. Ha követed a 10-1 példát az adatlapon a sorrendben, akkor még a legelején adj egy alap értéket a kimeneteknek (PORTA vagy LATA, én inkább utóbbit használnám) és ahogy foxi63 írta, a TRISA regiszternek is adj értéket, mert alap esetben mindegyik láb bemenetként kerül beállításra reset közben.

Üdv!
(#) silent15 válasza icserny hozzászólására (») Márc 26, 2021 /
 
Én már egy ideje ha valami nagyobb projektet készítek, ahol előre látom a szenvedést, akkor olyan kontrollert választok, amiben van beépítve debug hardver. Példaképpen a PIC18F8722 is egy ilyen kontroller. Ezeket tudod debuggolni Pickit3-al is header nélkül, feltéve hogy a pickit 3 támogatja.
(#) ssdroon30 válasza silent15 hozzászólására (») Márc 27, 2021 /
 
Hát! A hiba ott volt, hogy az ADCON1-nek és CMCON-nak adtam előbb értéket, és csak utána állítottam be a TRISA-t. Most a TRISA-t állítottam ba, majd utána az ADCON1-et, és CMCOM-ot. Most már működik! Köszönöm a válaszokat!

Üdv
(#) miki79 hozzászólása Márc 28, 2021 /
 
Sziasztok!
Egy assembly vagy c programot (pl.:led villogtató)meglehet írni több féle képpen, hogy a pic ugyan azt csinálja?
Szekvenciális programot lehet pic-re irni?
(#) Bakman válasza miki79 hozzászólására (») Márc 28, 2021 /
 
Kb. az összes programozási nyelvben és eszközben megoldható töbféleképpen egy feladat. Ha a PIC-nél és a LED villogtatásnál maradunk, használhatsz pl. Timer alapú megszakítást, késleltetést (nop utasítások), számlálást (ha pontosan tudod, mennyi ideig tart egy utasítás).

Egyszerű feladatnál elhanyagolhatóak a különbségek, időkritikus dolognál nagyon kell tudni azt is, melyik parancs mennyi idő alatt hajtódik végre.

Mikrokontrollerre csak szekvenciális programot lehet írni, megbolondítva pár extrával, elágazással, igény szerint. Sorban hajtja végre az utasításokat, az utolsó lépés pedig az, hogy ugorjon az utasítássor elejére. Természetesen a ciklusidő változhat az elágazások és/vagy megszakítások miatt. Megírható úgy is egy program hogy az csak egyszer hajtódjon végre de ekkor olyan állpotba kerülhet a kontroller, amiből csak valamilyen RESET tudja kihozni.
(#) jdani hozzászólása Márc 28, 2021 /
 
Üdv. Egy kapcsolásban használok SMD PICet. A programozandó lábakat kivezettem egy tüskesorra. A PIC tápot úgy kapja, hogy ezen a tüskesoron egy jumper zárja össze a kört neki. Ha leveszem a jumbpert, és a tüskesorra rádugom az elkészített adaptert, amely a PIC PGC PGD MCRL - és + lábára csatlakozik. (Azáltal hogy nincs rajta a jumper, így a PIC pluszja nincs összekötve a kapcsolás tápjával.

Kérdésem, a MCRL maradhat 10Kvan felhúzva a táp +jára, vagy programozáskor azt is meg kell szakítani a PIC és a kapcsolás tápja között?
(#) benjami válasza Bakman hozzászólására (») Márc 29, 2021 /
 
Lehet mikrokontrolleren is preemtív multitaskot használni (na jó nem mindegyiken, a 8 bites PIC-ek közül csak a pic18 családon, és ott sem érdemes használni a nagyon kevés RAM miatt). A freertos (és még van pár másik is) erre való. Persze egy adott programszálon belül már ott is szekvenciálisan fognak végrehajtódni az utasítások.
(#) Pali79 válasza jdani hozzászólására (») Márc 29, 2021 /
 
Maradhat a felhúzó ellenállás. A demo boardok nagy részén is fixen rajta van.
(#) Peet19 hozzászólása Ápr 2, 2021 /
 
Sziasztok!

Nem értem a VDDCORE/VCAP pint hogy hova kell kötni. Már elolvastam az adatlapot, de egy kicsit még zavaros. VDD-re vagy VSS-re kössem? Vagy kell a 10µF-os kondi, de akkor nem szabad VDD-re csatlakoztatni? Egy kicsit már bekeveredtem. Milyen feszültségszabályzásra való ez a lehetőség?
A hozzászólás módosítva: Ápr 2, 2021
(#) Bakman válasza Peet19 hozzászólására (») Ápr 2, 2021 /
 
Melyik PIC-ről van szó?
(#) Peet19 válasza Bakman hozzászólására (») Ápr 2, 2021 /
 
18LF26K80
(#) Bakman válasza Peet19 hozzászólására (») Ápr 2, 2021 / 3
 
Abban nincs kivezetve ENVREG láb. Ha ki lenne, akkor direkt a Vdd-re (engedélyezed a beépített feszültségszebályzót) vagy a Vss-re (tiltod a beépített feszültségszabályzót) kellene kötnöd, nem lebeghet.

Az F jelű kontrollereken mindig engedélyezve, az LF jelűkön pedig mindig tiltva van a beépített feszültségszabályzó, értve ez a 18FxxK80-as családra. Első esetben 10 µF-os, utóbbi esetben pedig 100 nF-os kondenzátor (kerámia vagy tantál) kell a Vddcore/Vcap láb és a Vss közé.
(#) Peet19 válasza Bakman hozzászólására (») Ápr 2, 2021 /
 
OK. Köszi. Akkor most egy 100nF kondival kössem a GND-re?
Ez amúgy milyen feszültséget szabályoz? Valamilyen analóg referencia feszültséggel kapcsolatos?
(#) Bakman válasza Peet19 hozzászólására (») Ápr 2, 2021 /
 
Igen, 100 nF fog kelleni. Nem, nem analóg feszültséggel kapcsolatos. A kontrollermag feszültségét szabályozza egy belső elektronika de ennek szüksége van egy külső kondenzátorra is mert az már nem fér a tokba.
(#) Peet19 válasza Bakman hozzászólására (») Ápr 2, 2021 /
 
Értem, köszi. És ha később valamikor egy több lábú verzióval próbálkozom ahol már van ENVREG kivezetés akkor azt meg egy 10µF -os kondival a VSS -re kötöm? Akkor soha nem is kell simán VDD -re kötni?
(#) Bakman válasza Peet19 hozzászólására (») Ápr 3, 2021 / 1
 
Nem. Az ENVREG lábat (Enable Voltage Regulator), már ha van ilyen, fixen Vdd-re vagy Vss-re kell kötni, attól függően, mekkora feszültségről akarod járatni a kontrollert.
(#) Peet19 válasza Bakman hozzászólására (») Ápr 3, 2021 /
 
Oké, már leesett. Jól sejtettem én, csak nem voltam benne biztos. Tehát akkor a VDDCORE/VCAP lábat minden esetben egy kondival a GND-re kell kötni. Ha van ENVREG lába a PIC-nek akkor azt meg VDD-re vagy GND-re, attól függ hogy engedélyezni akarom-e vagy sem.
A soklábú tesójánál ahol van ENVREG láb kivezetés akkor ott most engedélyezni kell, vagy sem? Miért van egyáltalán egy ilyen lehetőség ha maga a kontrollermag feszültségét szabályozza? Ennek tök automatikusnak kellene lennie, nem? Mi van akkor ha nem engedélyezem? Nem lesz stabil a belső mag feszültsége? Ez egy kicsit még zavaros.
Na, mindegy, ráraktam egy 100nF kondit, úgyhogy probléma megoldva de azért már kíváncsi vagyok minek van ez az ENVREG láb.

Amúgy a többi már tiszta, köszi
A hozzászólás módosítva: Ápr 3, 2021
(#) Bakman válasza Peet19 hozzászólására (») Ápr 3, 2021 /
 
5 V tápfeszültség mellett kell, 3.3 V mellett nem kell a belső feszültségszabályzó.
(#) Pethical válasza Bakman hozzászólására (») Ápr 3, 2021 /
 
Biztos vagy benne, nem 2,5V-ról megy a magja?
(#) Bakman válasza Pethical hozzászólására (») Ápr 3, 2021 /
 
Honnan jön a 2.5 V?

Én nem vagyok semmiben biztos csak abban, amit az adatlap is ír. A képről is az olvasható le, hogy 3.3 V tápfeszültség mellett nem kell engedélyezni a feszültségszabályzót (lásd előző hozzászólásom). Ugyanakkor az adatlap egy másik része eléggé tág határokat ad meg tápfeszültségnek, jóval 2.5 V alá is megy, lásd melléklet.
(#) Pethical válasza Bakman hozzászólására (») Ápr 3, 2021 /
 
Idézet:
„Honnan jön a 2.5 V?”

Rossz adatlapot néztem. Az a valóság, amit Te írtál.
(#) Bakman válasza Pethical hozzászólására (») Ápr 3, 2021 /
 


Kíváncsivá tettél. Van itthon PIC18F26K80-as kontrollerem. Ha jól mértem és számoltam, akkor a mag 3.26 V-ot kap. Vdd = 4.94 V, channel 30 = 2705.
(#) Peet19 válasza Bakman hozzászólására (») Ápr 3, 2021 /
 
OK. Köszi , most már minden tiszta.
Még egy gyors kérdésem lenne. Nem tudom használtál-e vagy valaki használta-e a PICKIT3-at debuggerként.
Nekem sikerült valahogy belőni mert az MPLABSIM nem tudta leszimulálni a 18F46K22-öt, de valami iszonyat lassú. Amikor elindítom a progit látom hogy fut szépen sorba minden ahogy kell, változnak a regiszter értékek a watch-ban, de már 2x befontam a hajam mire átmászott az inicializálós részen és elérte a főprogramot.
Másnak ilyen brutál lassú, vagy csak megint én bénáztam el valamit?
Amúgy a progi futásával más gond nincs mert rendesen lépked sorról sorra, csak eszméletlen lassú. Hát egyszerűen nem bírom kivárni míg végig megy.
(#) kissi válasza Peet19 hozzászólására (») Ápr 3, 2021 /
 
Szia!

Minden sor eredményét akarod látni ? Akkor az lassú ! Használj Break Point-ot ( MPLAB dupla kattintás a soron, MPLAB X Ctrl + F8 ) !
(#) Peet19 válasza kissi hozzászólására (») Ápr 3, 2021 /
 
Szia!
Hát, igen, az úgy lenne a tuti ha minden lépést látnék de tényleg nagyon lassú. Most írom át másik PIC-re a progit amit ismer az MPLABSIM. Sajnos nem tudom hogy kell az MPLAB-ba beimportálni azt a processzort ami nem tartalmaz alapból, úgyhogy inkább választottam egy másikat.
Nem MPLABX-em van, azt már nyugdíjaztam, nem jött be. C-ben nem volt annyira rossz benne programozni, de assemblyre jobb a régebbi verzió.
(#) Peet19 hozzászólása Ápr 4, 2021 /
 
Sziasztok!
A 18LF26K80-nál az ADCON1 regiszterben mit jelent az Analog Negative Channel Select bits?
Szeretném beállítani az AN0 csatornát analóg bemenetnek, a többi mint digit. A Vref VDD és VSS de nem értem mi az a negatív csatorna.
Eddig itt tartok:
  1. MOVLW   B'00000001'     ; AN0 analóg, a többi digitális
  2. MOVWF   ANCON
  3.        
  4. MOVLW   B'00000001'     ; AN0 analóg csatorna kiválasztva
  5. MOVWF   ADCON0          ; ADON bekapcsolva
A hozzászólás módosítva: Ápr 4, 2021
Következő: »»   1155 / 1203
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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