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   1161 / 1203
(#) Laja1 válasza pipi hozzászólására (») Máj 20, 2021 /
 
Az nem fér a fejembe, ha egy program jól lefordul, a szimulator alapján is helyesen működik, az miért nem mukodik a valóságban!
(#) pipi válasza Laja1 hozzászólására (») Máj 20, 2021 /
 
Csodák vannak Szoftver hibakeresés kell, A 627-et csak debugger head-dal lehet debugolni, gondolom nincs kéznél, vagy telerakod led villogtatással a programod, vagy csinálsz soros portot, és oda pöfögöd ki az adott programrészlet tulajdonságait..
Én olyat is csináltam már hogy 877-es pic lábait drótoztam az f84-es helyére, és mindjárt lehetett debugolni A programba persze több helyen pic tipustól függő feltételes fordítások kerültek...
(#) Zsora válasza Laja1 hozzászólására (») Máj 21, 2021 /
 
1. Pergésmentesíteni kellene a gombot.
2. Ésszerűbben kellene felírni a logikai feltételeket. (ne legyen átfedés, hazárd, pillanatnyi jel)
(#) Zsora válasza Laja1 hozzászólására (») Máj 21, 2021 /
 
A szimuláció csak egy durva közelítése a valóságnak, melynek során a számunkra lényegtelennek ítélt (vagy általunk nem ismert) dolgoktól eltekintünk. Ebből adódik is a válasz.
(#) Pali79 válasza Laja1 hozzászólására (») Máj 21, 2021 /
 
Én akkor hagytam fel az ilyen szimulátorok használatával amikor fordítva történt, a szimulátorban nem működött, a valóságban tökéletesen.
(#) Laja1 válasza Zsora hozzászólására (») Máj 21, 2021 /
 
De a programban van olyan funkció is, ha nyomva tartom a gombot, akkor egy LED világít. De az se működik. Tehát itt kiderül, hogy a pergetésmentesítés nem oldaná meg a problémát.
(#) benjami válasza Laja1 hozzászólására (») Máj 21, 2021 /
 
Csinálj egy legalapabb programot (mondjuk egy ledvillogtatót). Ha már az sem megy, akkor vagy a hardver-el, vagy a programozóval van a gond.
(#) Zsora válasza Laja1 hozzászólására (») Máj 21, 2021 /
 
Nos... Szerintem hibás a konfiguráció.
Te belső oszcillátort használnál, de a bináris %100 érték helyett decimális 100-at adtál meg:
  1. #pragma config FOSC = 100       // Oscillator Selection bits (RC oscillator)

Én inkább így adnám meg:
  1. #pragma config FOSC = INTOSCIO   // belső RC oszcillátor, I/O funkció az RA6 és RA7 lábakon.
A hozzászólás módosítva: Máj 21, 2021
(#) Laja1 válasza Zsora hozzászólására (») Máj 21, 2021 /
 
És itt az R6, R7 lábakkal kell valamit csinálni? Pl. +5 V-ra kapcsolni?
(#) Zsora válasza Laja1 hozzászólására (») Máj 21, 2021 /
 
Csak azt, amit bármelyik más I/O lábbal. Olvasd el a leírást róluk!
(#) Laja1 válasza Zsora hozzászólására (») Máj 21, 2021 /
 
Feladom. Tudtok ajánlani valakit aki akár személyesen, akár telefonon tud segíteni? Természetesen nem ingyen gondolom. Így ez nagyon nehézkes, napi 4-5 órát foglalkozom vele, mindenhol utána olvasok és mindig valami baja van. Ezt így autodidakta módon nem tudom megcsinálni, pedig ennél egyszerűbb program már nem is létezik.
(#) Zsora válasza Laja1 hozzászólására (») Máj 21, 2021 /
 
Na neee!
Megnézted az órajelbeállítást? Kipróbáltál egy egyszerű LED-villogtatást? (nyomógomb és megszakítás nélkül) Biztosan jól van bekötve a programozó? Visszaellenőrzés jó?
(#) Laja1 válasza Zsora hozzászólására (») Máj 21, 2021 /
 
Igen, az orajel beállítást atirtam. Irtam egy olyan programot, hogy ha a nyomogombot benyomjuk, akkor világít egy led. Ez működik. Jol van bekötve a programozó, szépen kirajzolja, hogy hogy helyezzem be a picet, lerajzolja a mikrokapcsolok állítását és USB csatlakozásu.
A visszaellenorzes hibátlan.
(#) Zsora válasza Laja1 hozzászólására (») Máj 21, 2021 / 1
 
Tehát most már működik valamennyire? Akkor lehet tovább lépni. Jöhet a megszakítás, jöhet a bonyolítás. Mindig csak egy kis lépés. Más is így kezdte.
(#) Hp41C válasza Laja1 hozzászólására (») Máj 23, 2021 /
 
Csak még egy kicsit tarts ki!

Meg kellene barátkozni az MpLab és MpLabX -ben is elérhető szimulátorral. Benne lépésenként is végrehajtható még a C program is. Alkalmazható töréspont.
Ebben az esetben pl. a megszakítási rutinban levő feltételvizsgálat sorára tennék:
  1. if(PIR1bits.TMR2IF)


Fordítás után indítanám a programot. Ha megáll a törésponton, biztos lehetek benne, hogy érvényre jut a megszakítás. Ha nem áll meg, meg kell vizsgálni a megszakításkérés beállítását.

MpLab 8.xx -en megállt a programod ezen a helyen.

Sok-sok hiba kideríthető gyorsan és egyszer sem kell hozzá programozni a PIC -et.
(#) oregharcos hozzászólása Máj 24, 2021 /
 
Sziasztok! Már napok óta keresem erre az egyszerű programra azt a megoldást, hogy a villogás egy meghatározott ideig, pl. 1 percig menjen. A while ciklussal próbálkoztam, eredménytelenül. Kerestem példaprogramot amit át tudnék írni, de eddig nem találtam. Kérlek benneteket, hogy segítsetek!
  1. //egyszerű villogó
  2.  
  3.  void main(){
  4.  TRISD = 0;
  5.  PORTD = 0b10111101;
  6.  while(1) {
  7.  PORTD = 0b00000001;
  8.  Delay_ms (300);
  9.  PORTD = 0b00000010;
  10.  Delay_ms (300);
  11.  }
  12. }



Köszönöm a segítségeteket!
A hozzászólás módosítva: Máj 24, 2021
(#) kissi válasza oregharcos hozzászólására (») Máj 24, 2021 / 1
 
Szia!
Használj egy változót, hogy megszámolja, hányszor villogott és az alapján döntsd el, hogy kell-e még villognia !
pl.
  1. unsigned char szamlalo=0;
  2.  void main(){
  3.  TRISD = 0;
  4.  PORTD = 0b10111101;
  5.  while(szamlalo<100){
  6.  PORTD = 0b00000001;
  7.  Delay_ms (300);
  8.  PORTD = 0b00000010;
  9.  Delay_ms (300);
  10. szamlalo++;
  11.  };
  12.  
  13. while(1);


Ez így 100-szor 600ms --> 60s !
A hozzászólás módosítva: Máj 24, 2021
(#) oregharcos válasza kissi hozzászólására (») Máj 24, 2021 /
 
Szia Kissi, köszönöm az infót! Erre gondoltam én is, de időben szeretném megadni a villogást.
(#) oregharcos válasza oregharcos hozzászólására (») Máj 24, 2021 / 1
 
Szia Kissi! Ha átgondolom, ez is egy jó megoldás! Ha tudom, hogy 1 perc alatt mennyit villog, akkor már a villogási időt is tudni fogom. Még egyszer nagyon köszönöm!
(#) kissi válasza oregharcos hozzászólására (») Máj 24, 2021 /
 
Ez is idő, de Te tudod !
Processzoroknál az idő mindig számolás! Ha Delay-t használsz, akkor valószínűleg nem ismered a Timer-ek használatát, ezért javasoltam ezt a járható utat.
(#) n_yálastrubadúr hozzászólása Máj 30, 2021 /
 
Sziasztok!

Pickit 3 Programmer to go módban csatlakoztatni kell egy külső táphoz. OK. A programozni kívánt eszkösz 500 mA körül vesz fel, így a Pickit 3 nem tudja kiszolgálnli. Ebbeb a módban ha be van kapcsolva az eszköz észreveszi a külső tápot magától?
(#) pipi válasza n_yálastrubadúr hozzászólására (») Máj 30, 2021 /
 
Pont most csinálok egy cuccost, "beleépített" pickit3-al. Belül a pickit3-ban a hüvelysoron lévő 5V-ot összekötöttem az USB 5V-al, így nem kell külső táp, a pickit is a készülék tápjáról megy.
Persze ha nem garantálható, hogy egyidőben a PC usb-be is be van dugva, meg a készülék is be van kapcsolva, kell egy schottky dióda is, ne vesszenek össze az 5V-ok...
Én direktbe kötöttem, nálam a prg feltöltéshez a pickit3-at ki kell venni a cuccosból, és úgy dugni az USB-re.
(#) n_yálastrubadúr válasza pipi hozzászólására (») Máj 31, 2021 /
 
Azt nem tudod esetleg az Mplab miért nem látja a Pickit 4 et a Programmer to go fülön? Csak a pickit 3 at. Mert annál nem is kellene külső táp.
(#) pipi válasza n_yálastrubadúr hozzászólására (») Máj 31, 2021 /
 
Az mplabx ipe 5.30 látja a pk4-et togo-ban, az 5.10 ipe menüjében nem látok togo-t.
Az mplabx 5.10-ben nálam is szürke a togo menü, és érdekes módon pk3 van benne, pedig pk4-van programozóként választva.
(#) pipi válasza n_yálastrubadúr hozzászólására (») Máj 31, 2021 /
 
Szóval minimum 5.30 kell
https://www.chipcad.hu/hu/news/2019/november/mplab-pickit-4-mr-prog...--2353
A hozzászólás módosítva: Máj 31, 2021
(#) KoblogPerGyok hozzászólása Jún 1, 2021 /
 
Sziasztok!

Kezdő vagyok PIC-ben, ezért fordulok hozzátok.
Nincs itthon PICKIT égetőm sajnos, de szeretnék a PIC16F887-re (csak a csip van meg, oszcillátorom ,kondenzátoraim vannak, bredboardon kellene összerakni) feltölteni a HEX-fájlomat. Azt az MPLABX-ban készítettem, PROTEUS-ban szimuláltam, ott jónak tűnik.

Van itthon USB-to TTL átalakítóm, ha jól emlékszem azzal is kell küzdeni kicsit, de azt megoldom. Több videót láttam, amiben ATmega 328-ra küldik fel az adatokat, de ott mintha bootloader-t tettek volna fel.

Kérdésem: -Fel lehet egyáltalán tölteni a HEX fájlt az RX-TX lábak segítségével? (Szerintem igen, hiszen valahogy csak fel küldi a PICKIT-is)

Ha az ASM kódból a MPLABX legenerálta a HEX file-t, configgal, mindennel akkor annak mindenféle boot-loader nélkül mennie kellene, ha sikerülne feltölteni az RX-TX lábakon. Jól gondolom?

Tudtok olyan leírást ahol ezzel a módszerrel (PC->USB to TTL-> PIC) töltik fel a programot? Ha minden igaz van valami WinPic program, amit használhatnék, de mielőtt nekivágnék inkább érdeklődök.
(#) benjami válasza KoblogPerGyok hozzászólására (») Jún 1, 2021 /
 
A PIC-be, és az Atmega-ba is csak abban az esetben fogod tudni feltölteni a HEX fájlt egy sima USB-soros átalakítóval, ha valaki már beletette a bootloadert. A gyári üres állapotú chip-be csak valamiféle programozóval (pl. PICKIT) fogsz tudni írni.
A hozzászólás módosítva: Jún 1, 2021
(#) KoblogPerGyok válasza benjami hozzászólására (») Jún 1, 2021 /
 
Köszi!

Azt még megnézem, hogy nekem pontosan milyen van itthon, de attól tartok sima USB-TTL átalakító.

Arduino-val meg meg sem próbáljam igaz?
(#) icserny válasza KoblogPerGyok hozzászólására (») Jún 1, 2021 /
 
Ha van kéznél Arduino, akkor azzal lehet próbálgatni. Két programot is találtam, a PIC16F887 mindkettőben támogatott.
Ennek az előadásnak a végén leírtam, hogy én hogyan csináltam az interneten talált programokkal a PIC12F683 és PIC16f690 felprogramozását
(egyik nóvum a 9V-os elem használata, amely szükség esetén az Arduino 3,3V-jára ültethető):
- Ez az első változat.
- Ez pedig a másoik változat.
Velem ellentétben neked nem kell módosítani a programokat.

Megjegyzés: az elmúlt évek során a programokat már lehet, hogy módosították/továbbfejlesztették.
A hozzászólás módosítva: Jún 1, 2021
(#) KoblogPerGyok válasza icserny hozzászólására (») Jún 1, 2021 /
 
Ez lesz az!

Köszönöm! Megpróbálom összerakni, ha sikerül akkor egy dobozban el is készítem fixre.
Következő: »»   1161 / 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