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   273 / 1210
(#) marek válasza Hp41C hozzászólására (») Jún 29, 2012 /
 
Néztem a Microchipes mintapéldát, de az a baj hogy nagyon elvesztem benne. Eddig csak konzolos programokat írtam, úgyhogy ez az egész windowsos felület eléggé érthetetlen még nekem. Egyszerűen nem tudtam kihámozni a kódból a "lényegi" részt, hogy most akkor hogyan kell megnyitni a COM portot, beállítani a baud rate-et, paritást, egyebeket, meg hogy hogyan kell adatot küldeni/fogadni.
Köszönöm hogy helyettem Google kerestél, én is sokat böngésztem, de én mindenképp visual studioban használható megoldást akartam találni, ezért nem találtam meg ezt. Azt hiszem hogy ez az egész téma túl nagy falat még nekem, nem tudok egyről a kettőre jutni. Megeszek még néhány szilvás gombócot, aztán a jövőben, kicsit több tudással visszatérek ehhez a projekthez
Köszönöm a segítségeteket!
(#) Pepebá válasza marek hozzászólására (») Jún 29, 2012 /
 
Hali!
Igaz már egy alkalommal próbáltam mint kezdő én is tippet adni, (de válaszra se méltattál) azért megpróbálom újból:
Itt a fórumon Watt 'mesternek' van jó leírása az USB-PC kapcsolat kezelésére. Igaz 4520-ra, (C és VB6-ra),de kiindulásnak remek. Ezen kívül a másik 'nagymesternek' Icserny úrnak van egy nagyon jó PICCOLO projektje, ahol nagyon érthetően (kezdők számára is) bemutatja az USB lelkivilágát. A fórumon ezen kívül a témával kapcsolatban még számos 'topik' van ahol rengetek infót lehet összeszedni.
Ezek alapos megismerése és próbálkozás után lehet érdemi kérdéseket feltenni, amire biztos választ is kapsz és megtudod oldani a feladatot.
Azért bátorkodom ezen tanácsokkal, mert pár hónappal ezelőtt a téma számomra is teljesen ismeretlen volt és azóta sikerült összehozni jelenleg is működő USB-PC kapcsolatot használó projekteket (CDC és HID módút is)
Üdv.
(#) Hp41C válasza marek hozzászólására (») Jún 29, 2012 /
 
Egy Visual C++ leírás a COM port használatához.
(#) icserny válasza marek hozzászólására (») Jún 29, 2012 /
 
Idézet:
„Néztem a Microchipes mintapéldát, de az a baj hogy nagyon elvesztem benne.”
Mégis mit vártál? Te akartad bonyolítani az életedet Visual C++-szal.
(#) marek válasza Hp41C hozzászólására (») Jún 29, 2012 /
 
Igen, ezt a leírást tegnap már megtaláltam én is, csak nem tudtam mit kezdeni a CString osztállyal, mert nekem csak Visual Studio express verzióm van. De most keresgéltem még egy kicsit, és találtam egy header file-t, amiben valaki megírt egy CString "klón" osztályt, most azzal le tudtam fordítani a programot, csak nem kapom azt az eredményt, amit szeretnék. Még próbálkozok, hátha megtalálom a hibát.
(#) marek válasza Pepebá hozzászólására (») Jún 29, 2012 /
 
Köszönöm a segítséget! Valóban, túlságosan általánosan tettem fel a kérdést, jobban utána kell még olvasnom. Remélem nekem is sikerül előbb utóbb összehozni a dolgot
(#) marek válasza icserny hozzászólására (») Jún 29, 2012 /
 
Ez teljesen jogos kérdés. Őszintén szólva azt vártam hogy az eddigi C és C++ ismereteimmel már meg fogok tudni oldani ilyesmi dolgot, de tévednem kellett. (Nem baj, az önértékelésemen ez sokat segít). Azért akartam visual c++-t mert az elmúlt egy évben ezt használtam, illetve nem is nagyon használtam soha mást.
(#) Pepebá válasza marek hozzászólására (») Jún 29, 2012 /
 
Hali!
Ahogy látom Visual Studió- val próbálod a PC oldali progit összehozni. Én leragadtam a Visual Basic6-nál, de gondolom sok eltérés nem lehet. Ott következő képpen néz ki soros port megszólítása:
MSComm1.CommPort = 1
MSComm1.Handshaking = 2 - comRTS
MSComm1.RThreshold = 1
MSComm1.RTSEnable = True
MSComm1.Settings = "9600,N,8,1"
MSComm1.SThreshold = 1
MSComm1.PortOpen = True
MSComm1.DTREnable = False
-ezt a form-ba kell betenni, a következő függvény meg olvassa a küldött adatot:
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
adat =MSComm1.Input 'ITT a KÜLDÖTT ADAT'
End Select
End Sub
Amennyiben megkeresed az ajánlott WATT féle leírást, onnan letölthető a VB6 program.
PIC oldalon én javaslom az MLAB-t mint fejlesztői környezetet C18 fordítóval. Ehhez találsz sok példa programot, a Mikrochip is ezt támogatja.
Üdv.
(#) L2773 hozzászólása Jún 29, 2012 /
 
Helló!
Kezdő PIC-ezőként fordulok a köv. (nagy) kérdéssel hozzátok:
(1000-1500 oldal olvasása-tanulása után)

Van egy PICKit 2 klónom (vásároltam) és 3 típusú 16F szériás PIC-em, 16F88, 16F684 és 16F628.
A probléma az volna, hogy megépítettem egy impulzusszámlálót Vicsys kapcsolása alapján amiben 16F628-at kell használjak.(Bővebben:). Kellene programozzam a PIC-et, de:
A 16F88-at, 16F684-et probléma nélkül tudom felismertetni, égetni - PicKit 2.61-et használok.
A 16F628-at a program nem ismeri fel! Programozó foglalatként saját készítésu 8-14-18-28-40 pines foglalatokból összeállított PCB lapot használok.

A 88-as és 628-as PIC-eknek a programozó lábkiosztás azonos (kellene legyen) a PDF-ek alapján.
Tehát ugyanazt a 18 pines foglalatot használom az égetéséhez.

3 db 16F628-asom van, a hármat két különböző cégtől vásároltam interneten. (kettőt ill. egyet egy másik helyen). Ezt azért írom, hogy elméletileg kizárnám, hogy mindhárom hibás legyen.

Egy különbség az égethető (88 és 684) és nem égethető (628) PICjeim között, hogy az előbbiek I/P tokozásúak, míg a 16F628-asaim 04/P, 20/P ill. 20I/P. A 628-ból is I/P-t vásároltam volna, de nem találtam. Mert más különbséget nem találok működés szempontjából.

Az égetőszoftwernél a Vdd +5 volt megvan a beállításnál a Midrange szériának megfelelően.
Vásárolnék még 1 db 628-at ha biztos lennék, hogy amiket eddig kaptam hibásak (igaz így is már a csőd szélén állok ) Viszont ha nem tudom "munkára fogni", még rosszabb a helyzet...
Észrevételeiteket köszönöm előre!

Lóránd
(#) marek válasza Pepebá hozzászólására (») Jún 29, 2012 /
 
Szia!
Lehet hogy kicsit meg kellene tényleg tanulnom a Visual Basicet, mert ahogy elnézem nagyon sokan használjátok. Viszont közben sikerült elérni az első sikereket. A visual c++-os leírás alapján (amit Hp41C linkelt néhány hozzászólással lejjebb) és a PICCOLO projekt alapján sikerült összehoznom PC oldalról egy olyan programot, ami kiküld egy karaktert, ezt a PIC ki is írja szépen egy LCD kijelzőre, viszont a másik irányba (PIC-PC) nem sikerül az adatátvitel. Tudom hogy ez a nehezebb eset, de hogyan lehet itt bármiféle hibakeresést végezni?
(#) icserny válasza marek hozzászólására (») Jún 29, 2012 /
 
Visual C++-ban is lehet debugolni.
(#) Pepebá válasza marek hozzászólására (») Jún 29, 2012 /
 
Hali!
A PICCOLO projekt felépítése, saját függvényei nem teszik lehetővé az LCD és az USB egyidejű használatát. (Azonos függvényt használ mindkettő, de ha erre jár icserny biztos reagál rá pracízebben).
Én úgy próbálkoztam hogy a PIC-be beírtam valamelyik progit, mely adatot küld USB-n (CDC módban, azaz virtuális porton) a PC fele. Kivettem belőle a várakozást így a kapcsolat felvétel után folyamatosan küldi a karaktereket és próbálkoztam a PC oldalon a progival megjeleníteni.
Egyébként az USB Trace nevű progival PC-n lehet fogyelni az adatforgalmat.
Üdv.
(#) Hp41C válasza L2773 hozzászólására (») Jún 29, 2012 /
 
Szia!
Idézetek a PICKit2 readme.txt állományából:
Idézet:
„PICkit 2 is having problems programming certain revisions of PIC16F628A”

Idézet:
„PICKit 2 fails to program a PIC12F629 device”

Idézet:
„PICkit 2 does not detect the device ID of aPIC16F884 device”


16F628 - Próbáld meg a PGM lábat a földre húzni 10K -val. Győződj meg arról, hogy a programozás közben a Vdd magasabb, mint 4.7V.
(#) Pepebá válasza marek hozzászólására (») Jún 29, 2012 /
 
Hali!

Elnézést tévedtem, nem Te voltál:
'Igaz már egy alkalommal próbáltam mint kezdő én is tippet adni, (de válaszra se méltattál) azért megpróbálom újból:'

Üdv.
(#) vicsys válasza L2773 hozzászólására (») Jún 29, 2012 /
 
Lehet, hogy a PICKIT2 topicban, hamarabb kapnál választ, hogy miért nem ismeri fel a klónod a 628-ast. Találkozzunk ott!
(#) L2773 válasza vicsys hozzászólására (») Jún 29, 2012 /
 
Megyek is, remélem jó helyre!
(#) marek válasza Pepebá hozzászólására (») Jún 29, 2012 /
 
Idézet:
„A PICCOLO projekt felépítése, saját függvényei nem teszik lehetővé az LCD és az USB egyidejű használatát.”


Én kicsit másképp oldottam meg, itt az oldalon volt egy cikk: két lábon járó lcd kijelző. A lényege az, hogy a PIC két lábáról lehet vezérelni egy shift regisztert, és ez a shift regiszter vezérli végülis az LCD kijelzőt. Én ezzel oldottam meg hogy USB-n küldök ki karaktereket a kijelzőre.

Idézet:
„Kivettem belőle a várakozást így a kapcsolat felvétel után folyamatosan küldi a karaktereket”


Jó ötlet, ezt én is meg fogom próbálni!
(#) marek válasza icserny hozzászólására (») Jún 29, 2012 /
 
Idézet:
„Visual C++-ban is lehet debugolni.”


Csak azért vagyok gondban, mert áll a program, nem vesz semmi adatot a COM portról. Viszont ha folyamatosan "bombázom" a portot valamilyen karakterrel (ahogy Pepebá is javasolta), akkor abból azért már el tud kapni egyet-egyet, csak még nem értem hogy miért ilyen megbízhatatlan az egész, de dolgozok rajta.
(#) Stefan válasza marek hozzászólására (») Jún 30, 2012 /
 
Ha már váltani szeretnél C++ ról, akkor szerintem C# ot próbáld ki. Nagyságrendekkel átláthatóbb a kód mint ugyanaz C++ban. Plusz a .NET-es mintapéldák között is több van C# ban írva. Szerintem nagyon kényelmes nyelv, nekem bejött. Nézd meg a Microchip CDC demot (a C# osat), és próbáld meg azt átírni.
Kötelező olvasmány: Bővebben: Link, persze hozzá lehet jutni olcsóbban is....
(#) marek válasza Stefan hozzászólására (») Jún 30, 2012 /
 
Köszönöm a tippet, valóban a jövőbeli terveim között az elsők között szerepel a C# megismerése, nagyon sokan dicsérik. Egyelőre még kicsit bajlódok a C++-szal, remélem sikerül valamit kihoznom ebből is.
(#) Pepebá válasza Stefan hozzászólására (») Jún 30, 2012 /
 
Hali!
Nekem (vagy nekünk) mint 'zöldfülűnek' kifejtené valaki bővebben, akkor melyik C-vel érdemes hosszabb távon próbálkozni? C, C++, C# ? egyáltalán mi a lényegi eltérés közöttük?
Üdv.
(#) El_Pinyo válasza Pepebá hozzászólására (») Jún 30, 2012 /
 
A lényegi különbség a C és C++, valamint a C# között az, hogy a C strukturált programozást tesz lehetővé, míg a C++ és C# már egy fejlettebb, objektum orientált programozási modellt követ. Mikrokontrollerek esetén általában a strukturált nyelveket szokás használni, mint a C, Pascal, Basic. Léteznek OOP fordítók is kontrollerekre, de általában nem lehet olyan hatékony kódot fordítani belőlük, mint a strukturált nyelvekben íródottakból, másrészt a megoldandó feladatok sem igénylik az OOP szemléletet.
PC használata esetén már más a helyzet. Lehet Windows alkalmazást C-ben is írni, de nem túl hálás feladat. Erre jobban alkalmasak a magasabb szintű OOP nyelvek. A C++ nagyon hatékony kódok írását teszi lehetővé, viszont nem menedzseli az erőforrásokat, sokkal jobban ügyelni kell az erőforrások felszabadítására, stb. A C# kevésbé hatékony, mint a C++, viszont teljesen menedzselt a környezet. Valójában a C#-ban írt .exe kódok nem a gépi kódot tartalmazzák, hanem egy köztes kódot, amelyet futásidőben a JIT (Just in Time) Compiler fordít (kicsit hasonlóan a JAVA-hoz, de annál hatékonyabb). A fejlesztőkörnyezet is igen hatékonyan támogatja a Windows programok fejlesztését.
Igazándiból nincs általános recept, hogy melyik programozási nyelv a jobb, ezt mindig az adott feladat dönti el. Mikrokontrolleres fejlesztéseknél a C a preferált nyelv (Azt nem érdemes kiszelektálni). Ha PC-re is szeretnél kliens alkalmazásokat fejleszteni, akkor személy szerint C#-t javaslok, de igazából teljesen mindegy.
Remélem sikerült választ adnom a kérdésedre!
(#) Pepebá válasza El_Pinyo hozzászólására (») Jún 30, 2012 /
 
Hali!
Köszi az infót. Akkor jó választás PIC esetében az MPLAPIDEx+ C18 fordító.
Viszont a PC oldali programozás esetében (amennyiben rászánom magam a váltásra VB6-ról) célszerű a C#-t választani.
Üdv.
(#) icserny válasza Pepebá hozzászólására (») Jún 30, 2012 /
 
Néha kényszerpályán mozog az ember, mert egyszerűbb egy meglevő mintaalkalmazást módosítani, mint a nulláról kiindulva megírni. Ilyen esetekben az a meghatározó, hogy a kiindulási szoftvert miben írták meg...
(#) Zsora válasza Pepebá hozzászólására (») Jún 30, 2012 /
 
Ha már a Visual Basic (6) nyelvben otthonosan mozogsz, akkor lehet hogy PC oldalon inkább a Visual Basic .NET-et (2005, 2008, 2010, stb.) kellene választanod. Sokkal emberibb nyelv mint a C és társai. Egyébként meg a "Visual nyelvek" teljes mértékben átjárhatók egymásközt, oda-vissza fordíthatók, csupán a nyelvezet más. Nézd csak meg ugyanazt a példaprogramot Visual Basicre, C++-ra, ill. C#-ra, és látni fogod hogy miről is beszélek!
(#) siemenstaurus hozzászólása Jún 30, 2012 /
 
(#) röntgen válasza siemenstaurus hozzászólására (») Jún 30, 2012 /
 
Lehet csak rosszul gondolom, de ha for-ban lévő "i=0"-t szorzod kettővel attól még nemigen változik az értéke. Én ebben a megoldásban i=1-el próbálkoznék.

Csak egy ötlet.....
(#) siemenstaurus válasza röntgen hozzászólására (») Júl 1, 2012 /
 
Köszönöm válaszod!
Átírtam most az "égetés" alatt villognak a ledek aztán sanyi...
Lehet valamit kinyírtam hardveresen? :O
(#) siemenstaurus válasza röntgen hozzászólására (») Júl 1, 2012 /
 
Megtaláltam: a PICKITen nem volt beállítva és bekapcsolva a tápfeszültség ezért az égetés után nem tudta futtatni a programot.
Köszönöm!
(#) kissi válasza siemenstaurus hozzászólására (») Júl 1, 2012 /
 
Szia!

Először is milyen processzort használsz?
Az #include sor mire való ?!
C18-ra írod ( ezt is érdemes megadnod, hogy aki nézi ugyanarról beszéljen )?!
Milyen oszcillátort használsz, mert ezt meg nem látom beállítva ( akár ez is lehet a hiba fő oka :yes: )?!

A legfontosabb: NE KAPKODJ, értsd meg, hogy melyik sor mire való ( példaprogramokból!) !

Steve

u.i. : közben most látom, hogy beírtál, de azért olvasd el amit írtam és lehet, hogy nem árt megfogadni!
Következő: »»   273 / 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