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   817 / 1216
(#) Hp41C válasza Lamboo hozzászólására (») Jún 24, 2016 / 1
 
Ezek a lábak kétfajta kimenettel rendelkeznek és csak I2C módban OD egyébként CMOS.
(#) Lamboo válasza Hp41C hozzászólására (») Jún 24, 2016 /
 
Köszönöm szépen a választ, akkor most megnyugodtam. Régebben egy 16F628A megszivatott, annak az RA4 lába csak OD-s volt és nem tudott H szintet kiadni.
(#) nagym6 hozzászólása Jún 24, 2016 /
 
Üdv. PIC18F46K22 bemeneti szinteket próbálgattam 5V tápfeszültségnél, hogy reagál analóg bemeneti jelre a TTL bemenet, az alábbi kóddal próbálva:
  1. if portd.4=0 then latd.5=0 end if
  2. if portd.4=1 then latd.5=1 end if

Portd.4 -re potival adtam lassan növekvő analóg egyenfeszültséget 0-5V -ig, portd.5 2.3V-nál felugrik, csökkenő feszültségnél 1.7V-nál leugrik. Ez olyan, mintha ST bemenet lenne, pedig adatlapon TTL van. Elvileg portd.4 bemenet a határozatlan szinteknél abnormálisan reagálna TTL miatt, ehelyett semmi probléma, zavar nélkül szépen váltogat 0V és 5V szinteket portd.5 kimenet szerint. portd.4 bemenet alap "Digital I/O", nincs semmi másra konfigurálva.
Mi lehet a magyarázata, használható lenne analóg szintre is ez a TTL bemenet?
Köszönöm.
(#) Zsora válasza nagym6 hozzászólására (») Jún 24, 2016 / 1
 
Az adatlap is azt írja hogy ST típusú az RD.4 bemenet.
A hozzászólás módosítva: Jún 24, 2016

RD4.png
    
(#) Hp41C válasza nagym6 hozzászólására (») Jún 24, 2016 / 1
 
Közben mérd a PIC áramfelvételét is. A digitális bemenetek áramkörei komplementer MOS-FET -ekkel vannak felépítve. A munkapontokat úgy állították be, hogy nem számítanak arra az esetre, amikor a bemeneten levő feszültség sokáig tartózkodik a logikai szintek között levő tiltott zónában. Ha mégis abban a tartományban van sokáig, a bemeneten levő kapu P és N csatornás MOS-FET -jei nyitnak és nagyobb áram folyik hosszabb időn keresztül a táp és a föld között.
A hozzászólás módosítva: Jún 24, 2016
(#) nagym6 válasza Zsora hozzászólására (») Jún 24, 2016 /
 
Nem figyeltem eléggé, a kimenetet írja TTL-nek. Valóban ST a bemenet.

Hp41c
Mégiscsak ST a bemenet, áramfelvétel változatlan, egész pontosan 13.33mA, a ST tartományban 13.35mA, amikor lassan nő a feszültség a bemeneten.

Köszönöm a segítségeket.
(#) pajti2 válasza don_peter hozzászólására (») Jún 24, 2016 /
 
Eltartott egy ideig, míg olvasgattam ezt-azt mindenféléket ellenőrizni hozzá, de végeredményként ebben:

Idézet:
„a lényeg, hogy 32MX795-höz illeszkedjen”


tudok annyi könnyítést, hogy nem kell kimondottam mx795-höz alkalmazkodnia. Pic 32mx-eken a teljes skálán annyi az eltérés, hogy a pdipesek-nél pin reprogramming van, ami a többinél nincs, és a kevesebb lábszámú darabokon némelyik portláb nem létezik, ami a nagyobbakon létezik. Ha valamelyik usb rebooter olyan lábat használ indító ellenőrzésre, amit másra használnál, azt egyébként is át kell írni a forrásban. Azon túl bármelyik 32mx-re is készült a cucc, használhatod a többi mx-hez is. Kisebbhez is, nagyobbhoz is.
(#) don_peter válasza pajti2 hozzászólására (») Jún 24, 2016 /
 
Köszi az ellenőrzést.
Közben a bootloader részt átríttam magamnak és működik is ahogyan kell.
icserny fórumtársunk rávezetett, hogy valószínűleg (vagy elvileg tudnom kellett volna) az új MLA függvénykönyvtárban az USB bootloader és úgy ám-blokk az egész USB rész hiányos vagy egyáltalán nincs benne.
Egy régebbi 2010-es verziót letöltve remekül működik a dolog.
MPLAB X-et pedig jó messzire el kell felejteni még egyelőre.. (azon nem működik)
(#) cross51 válasza don_peter hozzászólására (») Jún 24, 2016 /
 
Én úgy emlékszem írtam már, de ha megnézed az új MLA PIC32-őn csak TCPIP stack-et tartalmaz minden más a harmony-ban van, amiről ugye sokan azt mondják, hogy semmire nem jó.
De ha új MLA-t akarsz használni a 16 bites PIC-ek USB stack-jét szerintem át lehet emelni PIC32-re egy kis ügyeskedéssel, bár ez nem biztos.
(#) pajti2 válasza don_peter hozzászólására (») Jún 24, 2016 /
 
Idézet:
„MPLAB X-et pedig jó messzire el kell felejteni még egyelőre.. (azon nem működik)”

Ha jelent bármit, én nem mondtam meg előre
(#) pajti2 válasza cross51 hozzászólására (») Jún 24, 2016 /
 
Még mindig túl sok a fordító direktíva a mélyben, meg a változók szélessége sem ugyan az, nem lehet azt csak úgy átemelni 16 bitről.
(#) don_peter válasza cross51 hozzászólására (») Jún 24, 2016 /
 
Letöltöttem a harmony-t, hamar kukáztam.
Amúgy TCPIP majd fog kelleni később mert van olyan tervem amihez nélkülözhetetlen lesz.
(#) don_peter válasza pajti2 hozzászólására (») Jún 24, 2016 /
 
Hehe, ezt az utat azt hiszem nekem is be kellett járnom
(#) kriszrap hozzászólása Jún 25, 2016 /
 
Sziasztok a kódóm miért nem fút le 1 másodperc allat???
kb 4-5 másodperc vagy több amire le futt
  1. for(k=0;k<1000;k++)
  2.   {
  3.      oszlopok(1);
  4.      elsosor(0,0,0,0,1);
  5.      Delay_us(111);
  6.      nullaz();
  7.  
  8.      oszlopok(1);
  9.      elsosor(0,0,0,1,0);
  10.      Delay_us(111);
  11.      nullaz();
  12.  
  13.      oszlopok(1);
  14.      elsosor(0,0,1,0,0);
  15.      Delay_us(111);
  16.      nullaz();
  17.  
  18.      oszlopok(1);
  19.      elsosor(0,1,0,0,0);
  20.      Delay_us(111);
  21.      nullaz();
  22.  
  23.      oszlopok(1);
  24.      elsosor(1,0,0,0,0);
  25.      Delay_us(111);
  26.      nullaz();
  27.  
  28.      oszlopok(2);
  29.      elsosor(1,0,0,0,0);
  30.      Delay_us(111);
  31.      nullaz();
  32.  
  33.      oszlopok(3);
  34.      elsosor(1,0,0,0,0);
  35.      Delay_us(111);
  36.      nullaz();
  37.  
  38.      oszlopok(4);
  39.      elsosor(1,0,0,0,0);
  40.      Delay_us(111);
  41.      nullaz();
  42.  
  43.      oszlopok(5);
  44.      elsosor(1,0,0,0,0);
  45.      Delay_us(112);
  46.      nullaz();
  47.   }

Köszi a segítséget elöre.
A hozzászólás módosítva: Jún 25, 2016
(#) don_peter válasza kriszrap hozzászólására (») Jún 25, 2016 /
 
Jó lenne látni, hogy mi van az oszlopok(), elsosor() és nullaz() függvényekbe.
Illetve, hogy a Delay_us() az jól van e beállítva. (OSC beállítások)
(#) kriszrap válasza don_peter hozzászólására (») Jún 25, 2016 /
 
  1. void nullaz()
  2. {
  3.     TRISA = 0;
  4.     TRISB = 0;
  5.     TRISC = 0;
  6.     TRISD = 0;
  7.     TRISE = 0;
  8.  
  9.     LATA = 0;
  10.     LATB = 0;
  11.     LATC = 0;
  12.     LATD = 0;
  13.     LATE = 0;
  14. }
  15. void elsosor(int otodikleded,int negyedikled,int harmadikled,int masodikled,int elsoled)
  16. {
  17.    LATA.RA4=elsoled;
  18.    LATA.RA3=masodikled;
  19.    LATA.RA2=harmadikled;
  20.    LATA.RA1=negyedikled;
  21.    LATA.RA0=otodikleded;
  22. }

MikroC project Editnél 1mhzre állítottam belsó oszcillátor.
pl4 et kikapcsoltam és minden mást MCLRT is
A programban a kódba nincs bellitva semmise
A hozzászólás módosítva: Jún 25, 2016
(#) patrik81 hozzászólása Jún 25, 2016 /
 
A PIC a/d lábára csak 0-5V-ot kapcsolhatok,vagy akár 0-24V-ot is?
(#) bbalazs_ válasza patrik81 hozzászólására (») Jún 25, 2016 / 1
 
Az adatlapban le van irva a max. ertek, de ez nagyjabol a tapfesz korul van, tobbet nem visel el.
A magasabb fesz mereset egyszeru feszultsegosztoval (24V eseten 1:4 koruli) lehet megoldani, erdemes a biztonsag kedveert egy 4.7-es (ha bator vagy, 5.1-es) zenert betenni fold fele.
(#) patrik81 válasza bbalazs_ hozzászólására (») Jún 25, 2016 /
 
Nem találtam,hogy mennyit lehet a bemenetre kötni,csak azt,hogy az operating feszültség 5,5V tipikusan Szerintem az 5.1-es zener jó lesz.
(#) ha1drp válasza kriszrap hozzászólására (») Jún 25, 2016 /
 
Abba belegondoltál, hogy 1Mhz órajel alatt valójában 4uS egy asm utasítás végrehajtási ideje? (Ráadásul egy egyszerű C függvény akár több asszembly sorbol is állhat)
Ne csak a Delay_us függvénnyel számolj, minden utasításhoz kell idő!
1. Emeld meg a processzor órajelér
2. A beépített debugger segít a valós végrehajtási időt kiszámolni
(#) ha1drp válasza bbalazs_ hozzászólására (») Jún 25, 2016 /
 
A mindenkor Vdd érték fölé nem érdemes menni, hiszen a konverzió max 1023-értéket ad vissza. A katalógus szerint a bemeneti feszültség Vdd+0.3V. Ez utóbbi a bemenet és a Vdd közti schottky dióda nyitófeszültsége, mely a túlfeszültségvédelmet adja. Ha biztonság kedvéért mégis zénert használnál az terheli a bemenetet, érdemes a lassabb mintavételezést választani. Természetesen egyik védelem sem ér semmit, ha a bemeneti áram nem korlátozott!
(#) giskard válasza patrik81 hozzászólására (») Jún 25, 2016 / 1
 
Ha javasolhatok valamit, állítsd a Pic tápfeszét 4,096 voltra, ha olyan PIC-et használsz amin ki van vezetve a REF feszültség akkor ref+ -t állítsd 4,096 - ra (az 5 voltos tápból leosztva). Így nagyban megkönnyíted a számolgatásokat.
Ha magasabb feszültséget akarsz mérni az osztó legyen a kettes számrendszer hatványa (8,16,32 stb).
Így a számolgatásokat egyszerű bitléptetéssel megúszod. Az ad bemenetet a pontos méréshez kevesebb mint 10 kohm-mal kell meghajtani, ha ez nem teljesül használj műveleti erősítős feszültségkövetőt. Az ad bemenetre tégy egy 4,3, v. 4,7 voltos zenert és sorba egy ellenállást (pl. 220 ohm).
A hozzászólás módosítva: Jún 25, 2016
(#) eSDi válasza giskard hozzászólására (») Jún 25, 2016 /
 
Idézet:
„ref+ -t állítsd 4,096 - ra (az 5 voltos tápból leosztva).”


Üdv!

Ha az ember normálisan akar mérni, akkor ezt szerintem azonnal verje ki a fejéből. Elég olcsón lehet venni feszültség referenciákat pl.: MCP1541-et. Persze, ha csak nagyjából kell megmérni az ADC-be jutó jelet, akkor jó lehet a feszosztós megoldás is.
(#) giskard válasza eSDi hozzászólására (») Jún 25, 2016 /
 
Nem hiszem, hogy a PIC ad-je annyira minőségi darab lenne. És ugye túlnyomó többségben a tápfeszt használják referenciának, tehát nyugodtan lehet használni a leosztott feszültséget is (sőt a felbontás is javul).
(#) Hp41C válasza giskard hozzászólására (») Jún 25, 2016 /
 
A Zener -es védelmet el kell felejteni. Jelentősen terhelnek már jóval a küszöbfeszültségük alatt. Egy Schottky dióda a Vdd felé jobb védelem.
Vannak PIC -ek 12 bites A/D átalakítóval is (PIC18Fxxx3, PIC16F178x)
A hozzászólás módosítva: Jún 25, 2016
(#) giskard válasza Hp41C hozzászólására (») Jún 25, 2016 /
 
Ebben igazad van én 5,1 es zenert szoktam tenni az már nem terhel 4 voltnál (mért adat). Abban is igazad van hogy 12 bites ad-s pic is van. Viszont pl. a 10 bites egy atomstabil feszültséget nem hajlandó kétszer egymás után ugyanannyinak mérni a tizedik bitnél.
(#) ha1drp válasza eSDi hozzászólására (») Jún 25, 2016 /
 
Az A/D-k 1-3 LSB hibával dolgoznak ez 10 bites átalakítóval átszámítva kb. 5mV-15mV hiba leosztás nélkül. Ilyen kis felbontás mellett teljesen felesleges a spéci referencia. Némely esetben még a külső referencia is felesleges, viszont nagyon jó giskard megoldása, ugyanis nincs osztás a szoftverben.
(#) ha1drp válasza Hp41C hozzászólására (») Jún 25, 2016 /
 
Plusz egy indok a zéner sokkal lassabb. Előbb jelenik meg a feszültség a PIC bemenetén mire lezárna.
(#) kriszrap válasza ha1drp hozzászólására (») Jún 25, 2016 /
 
Akkor szerinted hogy kéne???
(#) giskard válasza ha1drp hozzászólására (») Jún 25, 2016 /
 
Igazatok van, hogy a diódás védelem korszerűbb.
Viszont eddig még a zener-es megoldás is bevált (pedig engedtem rá a tápfesz többszörösét is).
De meg lettem térítve, ezentúl én is áttérek.
Következő: »»   817 / 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