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   559 / 1210
(#) brugo hozzászólása Aug 26, 2014 /
 
Sziasztok,
Helyettesíthető a 16f628A a síma 16f628 -al anélkül, hogy változtassak a programon ?
(#) ktamas66 válasza gustaw hozzászólására (») Aug 26, 2014 /
 
Tudod rengeteg oka lehet, amiért nem találtál, én csak kettőt mondok:
- amíg az idézett 18F6520 1680Ft, addig az LCD tudással felvértezett 16F1947 (mintaalkalmazással, programmal) 610Ft ,
- a külön vezérlő PCF8576 767Ft (mindegyik ár nettó).
Persze nem akarlak lebeszélni a programról, csak az a kérdés 610Ft+ÁFA-ért mennyit időt érdemes rászánni .
(#) subway hozzászólása Aug 26, 2014 /
 
Helló mindenki!
Kéne egy kis segítség. Még évekkel ezelőtt építettem egy PC2 klónt. Akkor leteszteltem, szépen működött is, így ment a fiókba. Mostanság lenne rá egy kis apróságom, amihez kéne használnom. Konkrétan egy pic12f629be kéne beégetnem egy hex filet, amit arra írtak. Na most szépen megy is a progi, fel is ismeri a csatlakoztatott ic-t, ki is írja hogy üres, meg a törlés is megy, de amikor rányomok az import hex és írás-ra, akkor ugyebár beugrik az első üzi amit csatoltam, majd írás nem történik, és kidobja a másik hibát. Ez annyi lenne, hogy akkor mellé kéne dobnom a tápomat, és arról kéne meghajtanom a vdd és vss lábakat mondjuk 5V-al? Segítsetek légyszi. Csak ezt az egy dolgot szeretném újra megtanulni egyenlőre. Köszönöm!
(#) Hp41C válasza subway hozzászólására (») Aug 26, 2014 /
 
Ha a PICkit2 táplálja a kontrollert vagy a panelt, amire rá van forrasztva, akkor csak a Vdd -t kell 5,0 V -ra állítani.
Ha panelen van és a panel tápja 4.5V -nál alacsonybb, akkor kétféle megoldás lehet:
o - A panel elviseli az 4.5V -ot és nem fogyaszt többet, mint 10.. 20mA, ekkor a táplálását le kell választani, a PICkit2 adja a tápot.
o - Ha a penel nem viseli el a 4.5V -ot vagy többet fogyaszt, a kontrollert ki kell venni, vagy legalább az ICSP kivezetéseit leválasztani, csak a kotrollert táplálni a PICkit2 -ről a programozás ideje alatt.
(#) vicsys válasza subway hozzászólására (») Aug 26, 2014 /
 
A második képen látszik, hogy 3V van beállítva. Azt mondja a progi, hogy minimum 4,5V kell a törléshez... (Közben Zsolt mester megelőzött )
A hozzászólás módosítva: Aug 26, 2014
(#) subway válasza Hp41C hozzászólására (») Aug 26, 2014 /
 
Akkor kb mint amikor a 18ast égettem lpt portról, talán menni fog. Illetve ha a programozón marad, akkor is kell az mclr lábra a 10k?
(#) subway válasza vicsys hozzászólására (») Aug 26, 2014 /
 
hát 4,5V beállítás után PK2 Vdd voltage error jött ki, szóval akkor marad a külön megtáplálás gondolom én...
(#) subway válasza Hp41C hozzászólására (») Aug 26, 2014 /
 
Köszönöm mindkettőtöknek!
Külső megtáplálásról gyönyörűen beégett a cucc.
(#) gustaw válasza ktamas66 hozzászólására (») Aug 26, 2014 /
 
Meggyőző érvek, de a megszerzett tudás a számoknál még többet ér. Sajnos a tudás megszerzésével van jelen esetben gondom. A fent említett 16F1947, mintaalkalmazás és program honnan szerezhető be ennyiért?
A külön vezérlőtől sem zárkózom el, de ahhoz is kell valami minta, ami alapján életre keltem.
Most csak 16F887, 18F2550, 18F4550, és 16F4685-öm van itthon ezekre próbáltam keresni C alapú programot, de nem találtam. Te milyen nyelven írtad?
(#) Pali79 válasza gustaw hozzászólására (») Aug 26, 2014 / 1
 
Chipcad
Esetleg Farnell.
(#) subway válasza Pali79 hozzászólására (») Aug 26, 2014 /
 
Jájá chipcad, akik az egyik egyéni tervemnél elvittek egy 1500as qfnictől az 500as soicig és tökéletesen működik az eszköz. Vannak jó dolgaik.
(#) ktamas66 válasza gustaw hozzászólására (») Aug 26, 2014 / 1
 
Itt egy példa. Ha kihagysz néhány szegmenst maradhat láb pl. soros vezérléshez (a 40 lábas PIC-nél).
(#) gustaw válasza ktamas66 hozzászólására (») Aug 27, 2014 /
 
Király, így már kezdem kapiskálni. Ezek szerint annyi az egész, hogy a common lábat az egyik porton 20ms-onként ki be kapcsolgatom (a példában az RA0-n) és közben a kívánt értéket meg a többi lábon (a példában B,C,D portokon) kiíratom? Annak van egyébként jelentősége, hogy a common melyik PIC portra, pinre van kötve?
Tegnap már kisérleteztem, de még egyenlőre csak a 8-at mutatott a kijelző és nem tudtam más értéket kiíratni, de majd alakul ez.
MikroC-ben programozgatok így a példát át kellett alakítanom, lehet, hogy ott csúsztam meg.
(#) vicsys válasza gustaw hozzászólására (») Aug 27, 2014 /
 
(#) ktamas66 válasza gustaw hozzászólására (») Aug 27, 2014 / 1
 
Igen, csak a "kívánt" értéknél a kimenetet invertálgatni kell (azonos fázis <-> ellenfázis). Ezért gondolom egyszerűbb 1 digitet 1 portra rakni, ha lehet minden digitnél ugyanúgy, és csak egy BCD-7 szegmens átalakítást végezni (mint a ledesnél).
(#) gustaw válasza ktamas66 hozzászólására (») Aug 27, 2014 /
 
Aha, akkor a count érték nullázgatásával az első while ciklusban az invertálást oldja meg? Akkor itt viszont a count++ csak arra jó, hogy a count értékét 1-re rakja, nem? Utána a While a következő kanyarban ki is nullázza. Amennyiben jól értem.
(#) ktamas66 válasza gustaw hozzászólására (») Aug 27, 2014 / 1
 
Az csak egy számláló, ami a kijelzett számot lépteti, és a késleltetést intézi. A kijelzést a végén levő if-else végzi. Ha a COM=0 a digiteket jelzi ki, ha COM=1 az inverzüket, így ami COM=0-nál 1-be van állítva az a szegmens sötét, ha 0 akkor világos. A sevensegment végzi a BCD szám átalakítását, hogy melyik szegmensnek kell világítani. (Mondjuk én más frekvenciát választanék, nehogy valami interferenciába keveredjek a lámpák 50Hz-ével .)
(#) retek2345 hozzászólása Aug 27, 2014 /
 
Sziasztok!
Azután érdeklődnék, hogy az "Input Capture" és az "Output Compare" modulok mi célt szolgálnak?
Előre is köszi!
(#) retek2345 hozzászólása Aug 27, 2014 /
 
Köszi simpi a gyors választ!
(#) tomi52 hozzászólása Aug 27, 2014 /
 
Üdv! Használ valaki xc16-ot? Frissítettem v1.11-ről v1.21-re. A régebben működő (egyszerű LED villogtató) programot nem tudja lefordítani, nem találja az #include-okat (stdio.h, stdlib.h). Most visszaraktam az 1.22-et, ezzel jó. Mit nem tettem fel az újhoz, vagy mit nem állítottam be, esetleg mi kell régi ".h"-k helyett?
(#) matheattila válasza tomi52 hozzászólására (») Aug 27, 2014 /
 
Nem tudom X-ben hogy van, de véletlenül nem felejtetted el a Build Options-ban a Directories menüben az include-nál az útvonalakat beállítani?
A hozzászólás módosítva: Aug 27, 2014
(#) tomi52 válasza matheattila hozzászólására (») Aug 27, 2014 /
 
Ilyet biztosan nem állítottam, a korábbi verzió a telepítés után minden állítgatás nélkül működőképes. Majd megint felteszem az újat is (lehet egyszerre több verzió is telepítve), és körülnézek, hol lehetne az útvonalat beállítani.
De az említett include file-okat a lemezen keresve sem találtam az 1.21-ben. Ezért is kérdeztem, hogy esetleg más kell-e helyette.
(#) DJozso hozzászólása Aug 27, 2014 /
 
Egy kicsit elakadtam. Adott ez a kis program, ami egy ledet villogtat. Próbálkozni szeretnék a külső RB0-ás(16f887-nél ez az INT láb) megszakítással, de nem megy. Felfutó élre kellene aktivizálódnia. Illetve a void interrupt lefuttatása után, ugorjon vissza a void main-be.Melyik regiszter nem jó? Tud nekem valaki segiteni?
  1. void interrupt(void){
  2.   if (INTCON.RBIF == 1){
  3.    PORTD.B2 = 0;
  4.    Delay_ms(10000);
  5.    INTCON.RBIF = 0;}}
  6. void main() {
  7.  ANSEL  = 0;
  8.  ANSELH = 0;
  9.  C1ON_bit = 0;
  10.  C2ON_bit = 0;
  11.   TRISA = 255;
  12.   TRISB = 255;
  13.   TRISC = 255;
  14.   TRISD = 0b11111011;
  15.   PORTD.B2 = 0;
  16.   INTCON.RBIE = 1;     // enable on change interrupts
  17.   INTCON.GIE  = 1;     // enable Global interrupts
  18.   INTCON.RBIF = 0;     // Clear interrupt flag prior to enable
  19.    while(1){
  20.     PORTD.B2 = 1;
  21.     Delay_ms(200);
  22.     PORTD.B2 = 0;
  23.     Delay_ms(200);}
  24. }
(#) don_peter válasza DJozso hozzászólására (») Aug 27, 2014 /
 
Egy ilyesmivel próbálkozz, ha nem villog.
  1. while(1){
  2.     PORTD.B2 = !PORTD.B2;
  3.     Delay_ms(200);
  4. }

Ugyan nem néztem meg az adatlapot, de elsőre jónak tűnik.
Szimulátorban vagy rendes hardveren teszteled?
Illetve lehet működőik is a program, csak a megszakításod gyors.. Az nem lehet?
Interrupt-ba tegyél egy ilyet a LED kikapcsolása után:
  1. while(PORTB.RB0); //Várakozik a gomb felengedéséig

ui: milyen programban dolgozol és milyen fordítóval. Ezek fontos infók lennének..
A hozzászólás módosítva: Aug 27, 2014
(#) don_peter hozzászólása Aug 27, 2014 /
 
Közben nekem is lenne egy kérdésem a fórumozókhoz.
Uraim van mód C18-as fordítónál szoftver resetet (újraindítást) kérni?
Ha igen azt hogy lehet?
Van esetleg valami beépített függvény vagy ilyesmi?

Közben lehet meg van a válaszom is?

void reset()
{
#asm
reset
#endasm
}

Vélemény?
A hozzászólás módosítva: Aug 27, 2014
(#) sprofan hozzászólása Aug 27, 2014 /
 
Sziasztok!
PIC16F628-nál szükségem lenne még egyetlen plusz porta hogy elférjek, így gondoltam befogom az MCLR lábat. Mivel a jelforrásom GND-t kapcsol, így mennyire jó megoldás ha a portra teszek egy felhúzó ellenállást tápra, és így rá a jelet? Vagy egyáltalán hogyan lehet szabályosan bemenetként használni az MCLR lábat?
(#) kissi válasza don_peter hozzászólására (») Aug 27, 2014 /
 
pl. Reset(); !
A hozzászólás módosítva: Aug 27, 2014
(#) don_peter válasza kissi hozzászólására (») Aug 27, 2014 /
 
Nah igen gondoltam erre is, de inkább megkérdezem.. Köszi.
(#) kissi válasza don_peter hozzászólására (») Aug 27, 2014 /
 
Itt találod meg a C18 helpjében:
A hozzászólás módosítva: Aug 27, 2014

C18_reset.jpg
    
(#) don_peter válasza kissi hozzászólására (») Aug 27, 2014 /
 
A fene...A helpre nem is gondoltam
Egyébként Hi-Tech fordítóban is így van? Mármint a Reset() utasítás?
Utóbbiba a régebbi család 12-16-os PIC-ek miatt kérdezem..
Következő: »»   559 / 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