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   37 / 1207
(#) frecsko válasza watt hozzászólására (») Jan 4, 2010 /
 
Szia.
A program eredetileg pic16f873-asra íródott. Megnéztem az adatlapját és a 877-essel ugyan az csak ez nagyobb. Így átírtam az includokat mindenhol 877-re. Mellékelem a fájlokat.

FIRMWARE.ZIP
    
(#) icserny válasza pajti2 hozzászólására (») Jan 4, 2010 /
 
Idézet:
„szimpla rutinnal 20-30mSec-re beállok, de most alacsonyabb rutin idővel kellene dolgoznom. Valahol a 8mSec már a legvégső határ. Inkább 5-6mSec kellene olvasási ciklus időnek.”

Ebből nem érthető, hogy mi a problémád! 8 ms-onként garantáltan nem fogod tudni nyomkodni a gombot...
(#) MPi-c válasza frecsko hozzászólására (») Jan 4, 2010 /
 
CCS fordító kell hozzá. Arra figyelj, hogy a PIC16F877-nek van egy 'A' betűs változata - mint a 873-nak is - és ezt az include-ban is meg kell különböztetni!
(#) frecsko válasza MPi-c hozzászólására (») Jan 4, 2010 /
 
Tudom úgy is írtam át.
CCS-t tartalmaz az mplab? Hi Tech-et azt találtam rajta.
(#) watt válasza frecsko hozzászólására (») Jan 4, 2010 /
 
CCS-t nem ismerem(csak gyári fordítókat használok), de azt tudom, hogy az MPLAB nem tartalmazza, külön kell letöltened, telepítened. Nem tudom, hogy felajánlja-e telepítés közben, hogy integrálódjon-e az MPLAB alá, lehet. De ha nem, akkor is biztosan le tudod fordítani a programot a saját szerkesztőjével(már ha van neki olyan, és nem parancssoros).
(#) icserny válasza frecsko hozzászólására (») Jan 4, 2010 /
 
CCS C fordító 30napos demója innen tölthető le. Ez csak a PIC16F877, PIC16C554, PIC18F458, PIC24FJ128, dsPIC30F4012 mikrovezérlőket és legfeljebb 2 kb méretű kódot eredményező programok fordítását támogatja.
(#) frecsko válasza watt hozzászólására (») Jan 4, 2010 /
 
Szedtem le a progit ami a ccs-t berakja az mplab-ba, meg is jelenik mikor a project-> set language tool location-> ccs c compiler for pic12/14/16/18.
(#) frecsko válasza icserny hozzászólására (») Jan 4, 2010 /
 
Hát, szerintem több lesz mint 2 kb. Az eredeti ami 873-asra van az 5,23 kb.
(#) pajti2 válasza icserny hozzászólására (») Jan 4, 2010 /
 
Olyan áramkört gyártok éppen, amire nem csak kapcsolót kötnék. Rákerülhet valamilyen elektronikus kütyü is, és oda jó lenne, ha max 10mSec széles impulzust már biztonságosan regisztrálni tudnék. Ergo bármilyen is az emberi mutatóújj tehetetlensége, most kicsit gyorsabbra kellene szabni a dolgokat.

Prellmentesítéshez kellene ciklus időt választani.

Nem az a kérdés, tudom-e nyomkodni 8mSec időnként a gombot, mert azt nyilván nem. A kérdés az, hogy miután lenyomtam, és úgy hagytam, mennyi lehet az az idő, amíg a kapcsoló mechanika sajátosságai miatt (fémoxid, beszikrázás, ilyesmik) lifeg a ténylegesen mérhető szint? Vajon megmarad uSec nagyságrendben, vagy elérheti a mSec nagyságrendet is?

Ilyesmi a problémám.
(#) p_istvan válasza pajti2 hozzászólására (») Jan 4, 2010 /
 
Szia!
Mechanikai probléma... Minden kapcsló máshogy viselkedik ebből a szempontból (prell-nek nevezik a jelenséget) néhány tized ms és pár ms között lehet. A jobb gyártói katalógusok megadják ezt az időt. Azokban érdemes utánanézni...
P István
(#) Hp41C válasza pajti2 hozzászólására (») Jan 4, 2010 /
 
Szia!

Ha ennyire kritikus a helyet, miért nem használsz hardver prellmentesítést - 1 db 74HC00 -ból két kapcsolóhoz való aszinkron flip-flop kijön... A programba már nem kell prell-mentesítés...

Szia.
(#) icserny válasza pajti2 hozzászólására (») Jan 4, 2010 /
 
Idézet:
„Vajon megmarad uSec nagyságrendben, vagy elérheti a mSec nagyságrendet is?”
Nyilván a kapcsoló felépítésétől és a kontaktusok felületi állapotától függenek a pergés jellemző paraméterei. Tudomásom szerint inkább ms mint us...

- Lehet a nyomógombhoz elektronikus pergésmentesítést használni (vagy Hall generátoros nyomógombot használni).
- Lehet az elektronikusan keltett (rövid) impulzushoz imulzusnyújtót (pl. monostabil multivibrátor) használni.
- Lehet a bementre kapcsolt vezérléstől függő (nyomógomb vagy alaktronika) különböző késleltetést használni (ekkor jumperrel vagy más módon tudatni kell a mikrovezérlőt az átállásról.
(#) watt válasza pajti2 hozzászólására (») Jan 4, 2010 /
 
Van egy olyan megoldás, ahol nem csak a gomb lenyomását figyeled, hanem azt is, hogy el lett-e engedve. Bármeddig lenyomva tarthatod(így bármilyen hosszú, máshonnan származó impulzust is tudsz kezelni), de egy ideig le kell nyomva lennie, hogy a prellmentesítés meglegyen.
Ezt jelzőbitekkel és időzített ciklusban való vizsgálattal lehet megoldani. Nekem a legegyszerűbbnek a megszakításban való lekezelés tűnik, ahol adott időnként(pl. 1ms timer megszakítás) megviszgálod, hogy a gomb le van-e nyomva, ha igen beállítasz egy jelzőt, majd azt vizsgálod néhány cilus ideig(te határozod meg, hogy hágy ms legyen a prellmentesítés), hogy elengedted-e. Ha igen, akkor beállítod a gomb lenyomva jelzést(amit a fő ciklusban vizsgálhatsz), és a többi segédjelzőt törlöd.
(#) frecsko válasza icserny hozzászólására (») Jan 4, 2010 /
 
Letöltöttem, le is fordítottam a projektet. a hex fájl beégetése már nem megy.
Auto-connect not enabled - Not connecting (Try enabling auto-connect on the ICD2 settings pages.)
Connecting to MPLAB ICD 2
...Connected
Setting Vdd source to MPLAB ICD 2
ICDWarn0020: Invalid target device id (expected=0x71, read=0x4D)
...Reading ICD Product ID
Running ICD Self Test
...Passed
MPLAB ICD 2 Ready
Programming Target...
...Validating configuration fields
...Erasing Part
...Programming Program Memory (0x0 - 0x3AF)
...Loading DebugExecutive
...Programming DebugExecutive
...Programming Debug Vector
Verifying...
...Program Memory
ICD0161: Verify failed (MemType = Program, Address = 0x0, Expected Val = 0x3002, Val Read = 0x158A)
ICD0275: Programming failed.
MPLAB ICD 2 Ready
(#) icserny válasza frecsko hozzászólására (») Jan 4, 2010 /
 
Idézet:
„ICDWarn0020: Invalid target device id (expected=0x71, read=0x4D)”

Valahogy ezen a problémán kellene segíteni. Ehhez az tud tanácsot adni, aki tudja, hogy mit mivel dugtál össze...
(#) MPi-c válasza frecsko hozzászólására (») Jan 4, 2010 /
 
PIC-et nem tudta azonosítani, mert nem jól van kiválasztva (Configure-> Select Device...)
(#) pajti2 válasza p_istvan hozzászólására (») Jan 4, 2010 /
 
Kotorásztam éppenséggel kapcsoló katalógusokban, de ilyesmi adatot nem találtam.

Legrészletesebb katalóguslapot még Omronék adtak, van benne minden más, épp csak ez nincs.

Tudsz linket adni akármilyen kapcsoló katalógus lapjára, amiben ilyen adatot láttál?
(#) pajti2 válasza watt hozzászólására (») Jan 4, 2010 /
 
Jelenleg azt csináltam. 4 bites fifo buffer analízise, olvasási ciklus idő 640 uSec. Amit ujjacskámmal nyomogatok, ennek így kutya baja. Viszont jól jön mások tapasztalata is, mert nem csak ilyen apró mikrokapcsolóval kell majd működnie.
(#) pajti2 hozzászólása Jan 4, 2010 /
 
Hp41C, icserny:

A prellmentesítő áramköröknek mind az a logikájuk, hogy behúztak, és külön ki kell oldani őket. Száz meg ezer szónak is egy a vége: meg kell húzni egy időlimitet, mikortól fogadom el a kapcsolás tényét, és nullázom ki a flopot. Akár program, akár elektronika, az időlimit meghúzása a kulcs. Az 1 secundum esete pld nem áll rendelkezésemre. Kerestetik az a legkevesebb idő, ami a gyakorlatban már stabilan működhet. Az elmélet más tészta, azt most hagyjuk.

Jobb híjján amikor stabilan visszaáll az élet, és kinyitnak végre a villanyszerelő boltok, elhúzok majd és veszek vagy 8-10 féle kapcsolót, amiket fellelni tudok, aztán kipróbálom mindegyivel. De ez így egy kicsit drága lesz

Valami jobb ötlet?
(#) watt válasza pajti2 hozzászólására (») Jan 4, 2010 /
 
Neked kell meghatároznod a maximális időt, amennyit a döntéshez ki tudsz várni. Ezután fogsz egy drótot és összeérinted. Ha működik, akkor minden kapcsolóval fog.
(#) Hp41C válasza pajti2 hozzászólására (») Jan 4, 2010 /
 
Szia!

A hw prellmentesítő flip-flop kimenetét nyugodtan viheted egy élvezérelt megszakítás bemenetre. A program a megszakítás okából tudni fogja, hogy melyik gomb volt megnyomva. A flip-flop pedig a felengedéskor magától vissza fog állni.

Szia

Prell.JPG
    
(#) dcsabi válasza pajti2 hozzászólására (») Jan 4, 2010 /
 
Nekem még nem volt gondom kapcsoló pergéssel, hacsak nem drótot húzkodok ide-oda valahol...
Van egy topic itt a fórumon ami egy kicsit "leírt" bizonyos körökben, de ott nem pergett még senki kapcsolója a PIC bemenetén, ezt a rutint használjuk, akár minden bemenetre is, (itt pl: RB.0 bemenet az S0.0 a kimenti bitje a "rutinnak") az ..."inv" file -invertált PIC bemenetre.
Ideje néhány ms, ha gyorsabb quartzot használsz még jobb!!!
ime...
(#) p_istvan válasza pajti2 hozzászólására (») Jan 4, 2010 /
 
Ezek nem túl részletes adatlapok de benne van:
omron és
micro switch

Az angolok "bounce time" nek hívják a németek meg "zprellzeit"-nek: pulse switch
(#) p_istvan válasza p_istvan hozzászólására (») Jan 4, 2010 /
 
helyesen: prellzeit
A debounce, debouncing kulcsszóval további anyagok kerülnek elő
(#) pajti2 válasza p_istvan hozzászólására (») Jan 4, 2010 /
 
Isten vagy! Az az anyag csúcsszuper!

Már nyelem is, mint kacsa a vizet.
(#) frecsko válasza MPi-c hozzászólására (») Jan 5, 2010 /
 
Tényleg, nem figyeltem és a simát választottam nem az A jelűt.
Köszi a tippet.
(#) bodisjani hozzászólása Jan 5, 2010 /
 
Sziasztok!

Olyan kérdésem lenne, hogy a Pickit2, ha Check Communication-t nyomok, miért törli a PIC tartalmát?
(#) watt válasza bodisjani hozzászólására (») Jan 5, 2010 /
 
Nem tudom miért, mert én nem merném a PIC-emet rátenni addig, amíg nem vette fel a kommunikációt a PC-vel. Ezt nem próbáltam még ki, és nem is fogom. Ez nem normális működtetés.
(#) bodisjani válasza watt hozzászólására (») Jan 5, 2010 /
 
Nem is úgy csinálom. A géppel össze van dugva, aztán elindítom a PK2 programot. Az kiírja, hogy Pickit2 Connected. Ezután rádugom az áramkörre, ezután Check Communication. Minden OK, felismeri a PICet, csak törli a tartalmát. Mi ezzel a nem normális?
(#) bodisjani válasza (Felhasználó 15355) hozzászólására (») Jan 5, 2010 /
 
Biztos hogy törli. A read-es dolgot meg pont most néztem én is. Ez a megoldás, csak elég hülyén néz ki, hogy kiolvassuk a ''még nem tudjuk milyen'' PIC tartalmát és csak utána tudjuk meg a típusát. Szerintem.
Következő: »»   37 / 1207
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