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   205 / 1211
(#) Dobbs hozzászólása Feb 4, 2012 /
 
Sziasztok,

Nemrég kezdtem a PIC-ezést. Jelenleg egy 7 funkciós kerékpár villogót próbálok kódolni PIC kit 2-vel 16F887-el. Csak a gyakorlás kedvéért.
Kérdésem: A gomb prellmentesítését hogy lehet normálisan megoldani? Ha megszakítással csinálom akkor se lesz jó, amit furcsának találok, hiszen ezt hardveresen kéne tudnia a megszakítás bemenetnek. Gomb nyomásnál olyan hibák keletkeznek, hogy felengedésre is megszakítást hív, de olyan is van hogy lenyomásnál is kétszer szakít meg. Ha simán a főprogramba rakom a gomb figyelést, akkor meg minden második sorba figyelnem kell a gombot hogy elég gyorsan reagáljon és ne vesszen el a gombnyomás. Hogy szokás ezt megoldani? Előre is köszi.
(#) potyo válasza Dobbs hozzászólására (») Feb 4, 2012 /
 
Idézet:
„Ha megszakítással csinálom akkor se lesz jó, amit furcsának találok, hiszen ezt hardveresen kéne tudnia a megszakítás bemenetnek.”

Nem, nem kell tudnia, és sehol nemis írja, hogy tudná. Amit csinál, az pontosan az, ami várható is.

Idézet:
„Kérdésem: A gomb prellmentesítését hogy lehet normálisan megoldani?”

Pl. így, ahogy ebben a kapcsolásban is meg van oldva
(#) Dobbs válasza potyo hozzászólására (») Feb 4, 2012 /
 
Azt elfelejtettem mondani hogy Assembly-be dolgozom egyenlőre. A C-t még hanyagolom, bár volt már vele dolgom PC-n. PIC felhasználói kézikönyvben láttam egy belső kapcsi rajzot, azon ott van a Schmitt-triggeres fokozat, innen gondoltam, hogy a megszakítás bemenet pergésmentesítve van. Ezek szerint ezt szoftveresen kell megoldani. Vannak gyári mintapéldák, ahol egy változóval megoldja, hogy gyakorlatilag csak akkor veszi figyelembe a lenyomást, ha elötte már történt egy felengedés is. Ez tulajdonképpen azt jelenti h minden második lenyomást vesszük figyelembe. Ez így működik is sima programba téve, de megszakításnál ez se működik.
Azért köszönöm a gyors válaszodat, érdekes a kapcsolás amit linkeltél, ha felnövök a feladathoz talán meg is csinálom.
(#) El_Pinyo válasza Dobbs hozzászólására (») Feb 5, 2012 /
 
Szia!
Én azt szoktam csinálni, hogy felkonfigurálok egy Timer modult, mely megszakításokat generál adott időközönként. Az időintervallum a nyomógomb típusától függ, hogy mekkora a mechanikai időállandója, azaz mennyi ideig prelleg. Ezt sok esetben kísérletezéssel lehet meghatározni, nagyobb méretű nyomógombok általában hosszabb ideig peregnek. Szóval a timer megszakításba lépve beshiftelem egy regiszterbe a nyomógomb állapotát, amelyet a port olvasásával lehet megtenni. Tegyük fel, hogy a nyomógomb 0-ba húz, amikor megnyomjuk. Ekkor a 0 kerül beshiftelésre, ellenkező esetben 1. Ezután a regiszter értékét megvizsgálom és ha adott feltételnek megfelel (pl. csupa 0), akkor beállítok egy jelzést, hogy a gomb meg lett nyomva. Ezt pedig a főprogramban, vagy ott ahol szükség van rá, figyelem. A felengedést is hasonlóan lehet vizsgálni. Remélem sikerült érthetően leírnom!
(#) szeri válasza icserny hozzászólására (») Feb 5, 2012 /
 
Bocs a lassúságomért, de elhasaltam a jégen és ...
Természetesen egy TTL - RS232 szintillesztő van a board és a számítógép között (PIC RC 6-7 láb - szintillesztő- számítógép RS232)

Az előbb megtaláltam a probléma okát: rossz volt a vásárolt szintillesztő leírása (feltehetően nyomdahiba)

Mindenesetre köszönöm, hogy egyáltalán reagáltál. Üdvözlettel:Szeri
(#) Balagemann2031 hozzászólása Feb 5, 2012 /
 
Sziasztok!
Eléggé bosszant 16F-es picnél (esetemben 16F877A) a memória lapozásának macerája, ezért arra gondoltam hogy eljött az ideje, hogy 18F szériára váltsak. Az lenne a kérdésem, hogy a 16F után, feltétlenül ismernem kell a 18F egyéni utasításait, vagy a 16F es utasításokkal is progizhatom? Esetleg van valami különbség még ami nagyon eltér? Egyébként 18F2550re gondoltam hogy átállnék...Köszi!
(#) icserny válasza Balagemann2031 hozzászólására (») Feb 5, 2012 /
 
Mindenképpen ajánlatos a PIC18 felépítésének és utasításkészletének megismerése. A honlapomon a PICCOLO projektben találsz hozzá tananyagot. Én a PIC18F4550-et ajánlom, de a 2550 sem esik messze tőle...
(#) Balagemann2031 válasza icserny hozzászólására (») Feb 5, 2012 /
 
Hello! Köszi a linket, amúgy assemblyben szeretnék progizni, mert c hez nem értek. Amúgy ha komolyabban akarok foglalkozni 18F el akkor felejtős az assembly?
(#) icserny válasza Balagemann2031 hozzászólására (») Feb 5, 2012 / 1
 
Természetesen a PIC18 mikrovezérlők is programozhatók assemblyben, de mondjuk egy 128 kilobájtos példány teleprogramozása így egy kissé necces dolog. A Microchip perifériakönyvtárai, és a MAL (Microchip Application Library) meg annak mintapéldái is C-ben vannak, mivel így többé-kevésbé hordozható kód írására is van esély (PIC18, PIC24 és PIC32).

Az első 4-5 fejezetet mindenképp nézd meg, mert az főleg assembly, s röviden kitérek a makrók használatára is, ami némi fantáziával és ügyességgel az assembly programírás favágó jellegét enyhíti. De megnyugtatlak, menni fog a C is, nem egy ördöngős dolog - legalábbis ezen a szinten.
(#) zenetom válasza Balagemann2031 hozzászólására (») Feb 5, 2012 / 1
 
Szia!
Jól teszed, hogy váltasz 18F-re!
A PICCOLO projectnél szépen le vannak írva a dolgok asm szinten is.
Amik működnek 16F alatt, azoknak a nagy része működik 18F alatt is, viszont be jön egy jópár új utasítás, kisebb-nagyobb-egyenlőség ugrás, hardveres szorzás, tömbök kezelése... stb.
A 18F2550 jó választás, leszámítva hogy egy lábra rakták az SPI-t meg az UART-ot..
De legalább PLL módban 48MHz-el ketyeg
(#) Hp41C válasza Balagemann2031 hozzászólására (») Feb 5, 2012 / 1
 
Szia!

Az előnyök után jöjjenek a hátrányok:
- Egy utasítás 2 illetve 4 byte, a memória címzése byte -os.
- A goto és call utasítás 4 byte-os.
- Ebből adódik, hogy sokkal nehezebb ugrótáblás elágazásokat csinálni - rövidebb az átvitel kezelése nélküli méret. A PCLATU, PCLATH regiszetreket a 16F -hez hasonlóan kell beállítani, bár van egy segítség, a PCL olvasása (movf PCL,w) feltölti őket. Az addwf PCL,f viszont nem tölti fel.
- A sok perifáriával rendekező kontrollerek FSR regiszetrei kilógnak a ACCESS RAM -ból - jöhet a bankváltás.
- Assembly: sok utasításoknak egy új paramétere van, a file regiszterek elérése bank -os vagy ACCESS módon történjen.
- Ha a program memóriában helyezel el táblázatot mindig páros számú byte -ot adj meg egy sorban (ha páratlant adsz meg, kipótolja a fordító egy 0 -val).
- Kerülni kell a goto $+k megoldásokat a változó utasításméret miatt. Az utasítások páros címen vannak (goto $+1 hibás).

- Sok a hiba bennük, a fejlesztés az Errata dokumentum átolvasásával kezdődik.

A 16F2620 -ban kölün lábon van az uart és az spi.
(#) Balagemann2031 válasza Hp41C hozzászólására (») Feb 5, 2012 /
 
Hello! Igen elkezdtem már utána olvasni a dolgoknak és vannak homályos részek, de az usb bootloaderes program feltöltés és a nagy memória csábító már meg rendeltem egy 18F4550es példányt, remélem tudni fogom használni, max újra elkezdem a ledvillogtatástól... Szerintem fogok még kérdezősködni (igazából LCD-re akarok majd menüs progit írni, ezért kell a memória) Üdv!
(#) Kovabe hozzászólása Feb 5, 2012 /
 
Sziasztok egy kis segitséget kérnék. A PIC-re hogy tudok rácsatlakoztatni egy pl kty81-122 szenzort??? Tud valaki egy kis kapcsolásirajzot adni???
(#) Hp41C válasza Kovabe hozzászólására (») Feb 5, 2012 /
 
Egy pic, amiben van A/D átalakító és egy áramgenerátor kell hozzá. Az áramgenerátor táplálja a KTY81- et, a föld a referencia. A KTY81 -en eső feszültséget a PIC méri az A/D segítségével.
A kérdés inkább az, mit kell tenni a mérés eredményével:
10 bites A/D:
- határérték kijelzés - 10F222, 10F322 - 6 láb, 12F683 - 8 láb,
- kijelzés: 16F88 -14 láb, 16F690 - 20láb, 16F886 - 28 láb, 16F887 40 láb,
12 bites A/D:
- 18F2523, 18F2553, 18F4523, 18F4553

Kommunikáció: uart - RS232, USB, stb...
(#) Kovabe válasza Hp41C hozzászólására (») Feb 5, 2012 /
 
Igazábol több dolgot kéne csinálni de föképp egy LCD-n kijelezni az aktuális höfokot. PIC16F873- ra például.
Köszönet
(#) Hp41C válasza Kovabe hozzászólására (») Feb 5, 2012 /
 
Használd inkább a 16F873A, vagy még inkább a 16F883 -at - sokkal olcsóbbak.
(#) Bari- hozzászólása Feb 5, 2012 /
 
Sziasztok

PIC témában még kezdő vagyok, egyelőre mások által készített kapcsolásokat próbálok megépíteni eddig sikerrel, de jelenleg elakadtam.
A kapcsolás Vicsys által készített Tanítható időzítő. 12F-es pic-el nem volt még dolgom, az adatlapja alapján sem vagyok biztos a programozáshoz szükséges lábakban. A VCC, GND és az MCLR megvan, de a PGC, PGD-ben nem vagyok biztos (ilyen néven nem találtam az adatlapjában). Az ICSPDAT lehet a PGD, az ICSPCLK pedig a PGC (egy ICD2-vel szeretném felprogramozni)? SMD-ben szeretném megépíteni így jó lenne a kész áramkörben programozni, van e erre lehetőség? Az eredeti áramkörben mit kell ehhez változtatni? A fórumon pár témát végigolvastam, de erre nem találtam még választ.

Előre is köszönöm a segítséget.

Bari
(#) Kovabe válasza Hp41C hozzászólására (») Feb 5, 2012 /
 
Ok de igazábol nem is ez a lényeg hanem hogy hogyan kapcsolom rá az eszközt erre kéne egy kis rajz, mert vizuális ember vagyok. Köszi
(#) Kovabe válasza Bari- hozzászólására (») Feb 5, 2012 /
 
A 8-ik oldalon megtalálod a csatlakozási pontot http://ww1.microchip.com/downloads/en/devicedoc/41190c.pdf
(#) kokozo válasza Bari- hozzászólására (») Feb 5, 2012 /
 
Itt egy kép amin a legtöbb tokozás rajta van.
(#) Hp41C válasza Bari- hozzászólására (») Feb 5, 2012 /
 
Szia!

Az eredeti kapcsolást ki kell egészíteni egy 6 pólusú tüskesorral:
1 - MCLR a pic 4. lába, 2 - Vdd azaz a rajzon a pic 1. lába, 3 -GND, 4 - ICSPDAT a pic 7. lába, 5 - ICSPCLK a pic 6. lába.
A MCLR jelet 10k ellenálláson keresztül a 1. lábra kell kötni.

Mivel a pic belső órajelről jár és a ICSPDAT valamint az ICSPCLK lábát kimenetnek használja, a programban a konfigurációs regiszterben a MCLR funkciót nem szabad letiltani. Ekkor újraprogramozható marad a kontroller. Az eredeti hex nem használható, mivel letiltja a MCLR funkciót és elég hamar kimenetnek állítja az ICSPDAT és ICSPCLK lábakat.

A programozás a 6 pólusú csatlakozón keresztül úgy történhet, hogy a panel tápja adja a Vdd tápot, a PICKit2, ICD2 érzékeli a külső táplálást. A MCLR vonallal reset állapotban tudja tartani a kontrollert, onnan egyből programozási módba tud lépni.

Az idétlen lábkiosztás miatt sok gond lehet vele. Célszerűbb lenne a következő kiosztást megvalósítani: 1 - Vdd, 2 - hangszóró vezérlés, 3 - relé vezérlés, 4 - MCLR, 5 - LED vezérlés, 6 - kapcsoló bement és ICSPCLK, 7 - ICSPDAT, 8 - Vss. Ekkor nem lenne gond az újraprogramozás.
(#) Hp41C válasza Kovabe hozzászólására (») Feb 5, 2012 /
 
Valahogy így. Az R2 -vel az érzékelő árama állítható. Kicsi áramnál a feszültség változás lesz kicsi (a felbontás kicsi), de nem melegszik az értzékelő, nagyobb áramnál a feszültség változás nagyobb lesz kicsi (a felbontás jobb), de melegszik az értzékelő. A hőmérő kimenete és a pic analóg bemenete közé egy a +5V -ról táplált erősítő beiktatható (MCP601, MCP6002).

kty.JPG
    
(#) Hp41C válasza Hp41C hozzászólására (») Feb 5, 2012 /
 
Kiegészítés: A tápnál levő 100µF kondenzátor a "Vpp first ..." módszert kizárja. Ekkor ugyanis a programozónak kell kapcsolnia a Vdd -t, de a nagy kapacitás miatt nem tudja előállítani időben a tápfeszültséget.
Nagyon kihasználja a kapcsolás, hogy a kontrollert ki lehet venni újraprogramozáshoz...
(#) Bari- válasza Hp41C hozzászólására (») Feb 5, 2012 /
 
Köszönöm mindenkinek a segítséget.

Hp41C: A programot nem tudom módosítani, nem értek hozzá, és csak a hex áll rendelkezésre. Nem szeretném én többször programozni, elég egyszer de jól.
Ha kivezetem a programozáshoz szükséges lábakat, az mclr és vcc közé a 10k és a pgc, pgd lábakra nem kötöm be a tranyók bázisellenállását, akkor elméletileg fel tudom felprogramozni a pic-et a leírásotok alapján. Jól gondolom?

Bari
(#) Hp41C válasza Bari- hozzászólására (») Feb 6, 2012 /
 
Szia!

Az lenne a legegyszerűbb, ha úgy építenéd meg, ahogy tervezték: dip tokos kontroller foglalattal. Ekkor nem lesz probléma.
(#) Sten hozzászólása Feb 6, 2012 /
 
Sziasztok!

Honnan tudom hogy meghalt egy PIC
(#) bubuc17 válasza Sten hozzászólására (») Feb 6, 2012 /
 
Én úgy teszteltem hogy:
Ha a gép felismerte, már fél siker.
Utána csináltam egy programot aminél lekérdezte az összes lábat és ha valamelyik 1 akkor összes kimenetet bekapcsolta.
Próbapengelen összeraktam, kimenetekre ledet raktam, bemenetet pedig egyesével 5v ra kötöttem.
Egyből ki is derült hogy egy kimenetet már elrontottam (: .
(#) potyo válasza bubuc17 hozzászólására (») Feb 6, 2012 /
 
Idézet:
„Egyből ki is derült hogy egy kimenetet már elrontottam (:”


RA4-et?
(#) bubuc17 hozzászólása Feb 6, 2012 /
 
Tudna nekem valaki segíteni assembler időzítésben?
Mintaprogram alapján megcsináltam a 30másodperces várást, de közelébe sincs ahhoz amihez számoltam.

VARAKOZ
MOVLW .250
MOVWF VAR_1 ;VAR_1 kezdeti értéke
VARJ_1
MOVLW .250
MOVWF VAR_2 ;VAR_2 kezdeti értéke
VARJ_2
clrwdt ;WatchDog törlése
NOP
NOP
NOP
NOP
DECFSZ VAR_2,F ;VAR_2 csökkentése, 0?
GOTO VARJ_2 ;NEM, tovább
DECFSZ VAR_1,F ;VAR_1 csökkentése, 0?

Ez alapján csináltam.
Hogy tudom pontosan kiszámolni?
4Mhz en használom a picet.
(#) bubuc17 válasza potyo hozzászólására (») Feb 6, 2012 /
 
16f84 en dolgozok (ehhez van magyar pdf -em)
RB0/NT ez nem reagál.
Következő: »»   205 / 1211
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