Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   36 / 1319
(#) Topi válasza kristalycuki hozzászólására (») Jún 1, 2007 /
 
Nézd meg a tápot, ha rendesen stabilizált tápot kap, akkor nézd meg az oszcillátort. Valami szkóp/frekimérő híjján ez nehéz lesz, de ha a CLKOUT-ra rakott normál multiméter össze vissza ugrál, akkor megy az oszcillátor is. Ha az nem megy, akkor ugye tápban keresendő elsődlegesen a hiba. Utánna a PIC config bitjeiben. Tényleg XT / HS / RC / LC oszcillátort használsz. (Kristály ugyanúgy az XT is meg HS-is, csak a HS az High Speed, vagyis 4 MHz felettinél kell beállítani. Néhány PIC XT config bittel is simán rezgeti a 20-as kavicsot, de ez eltérő...

SW instabilitást, rendszeresen táp hiba okoz. Szűrd a tápját 100nF-os kondikkal és pufferelni sem árt. 47µF - 470uF
(#) bbatka válasza kristalycuki hozzászólására (») Jún 1, 2007 /
 
Szerintem a LCD inicializáló késleltetésed kevés. Szimulációhoz ezt a késleltetést szokták lecsökkenteni, hogy ne tartson órákig a szimuláció. Csak találgatok, de a program hiányában mit is lehetne mást tenni?
(#) kristalycuki válasza Topi hozzászólására (») Jún 1, 2007 /
 
Hello!

Nos 4 MHz-es az órajel és működnie kell, mert a próba program simán fut rajta minden hiba nélkül.Tettem bele egy 1mp-es késleltetést amit egy program segítségével számoltattam ki és kb pontos ugyh gondolom nem azzal van a gond.
A tápfesz 7805-sel van stabilizálva ugyhogy elvileg azzal se lehet gond.Igaz nem 5V-ot ad hanem 4,89-et de ennek elégnek kell lenni.

bbatka:
Az LCD init elé beraktam egy 1mp-es késleltetést aztán az init részt is úgy írtam ahogy az okosok mondták h legalább 3szor kiküldöm az első parancsot.
(#) kristalycuki válasza kristalycuki hozzászólására (») Jún 1, 2007 /
 
Azon gondolkodtam h az égető progiba belehet állítani vmi Delay-t amiről azt hallottam h a kiküldött adatok közti késleltetést lehet vele szabályozni.Nem lehet h az nincs jól beállítva?
Kicsire v nagyra kéne beállítani?

Még egy dolog.Én a programba nem írtam configot mert azt hallottam h az IcProg-ban elég ha bepipálgatom a megfelelő beállításokat.Ez igaz?Vagy mégiscsak írjam bele a programba?
(#) Thomas10100 válasza kristalycuki hozzászólására (») Jún 1, 2007 /
 
Sziasztok!

Akkor felteszem jpg formátumban a tervemet. Szerintetek mi kellene még rá? Vagy mit kellene máshogy csinálnom?


Köszönöm a tanácsokat előre is!
(#) potyo válasza kristalycuki hozzászólására (») Jún 1, 2007 /
 
Hallomások alapján nem építünk semmit! Mindenhez van korrekt leírás, amihez meg nincs, azzal nem foglalkozunk!

Írd bele a config biteket, annak az a rendje-módja. Az említett késleltetést állítsd nagyra, ha úgy sem működik, akkor nem ott keresendő a probléma. Az LVP bitet kikapcsoltad? Az tud furcsa hibajelenségeket okozni, ha nincs kikapcsolva, és a hozzá tartozó lábat használni akarjuk.

A tápot szűröd 100nF-os kerámia kondenzátorokkal? Nem írtad, milyen pic, de ha mindkét oldalán van tápláb, akkor mindkét oldalon szűrni kell. Valamint a 7805 be és kimeneti oldalára is kell egyaránt 100nF-os kerámiakondenzátor.
(#) Norberto válasza Thomas10100 hozzászólására (») Jún 1, 2007 /
 
Egyelőre csak annyit mondanék, hogy ahol lehetőséged van rá, ott alkalmazz minél vastagabb vezetősávokat a NYÁK-terven...bajod nem lesz belőle, viszont sokkal biztosabban elkészíthető a terv élesben is, nem kell pepecselni az ici-pici, hajszálvékony vonalakkal...

Jah...és ha lehet, 90 fokban sehol ne törjenek meg a vezetősávok...nem kötelező ezt betartani, de így a helyes technológiailag és jobb, ha ezt szokod meg :yes:
(#) potyo válasza Thomas10100 hozzászólására (») Jún 1, 2007 /
 
Hétszegmensű kijelzőket még tehetnél rá szerintem, ott a ledek alatt el is férnének.

Ahogy nézem, a kerámiakondenzátorokat lespóroltad róla. A 7805 bemenet-föld és kimenet-föld közé is tegyél 100-100nF-ot, valamint a pic mindkét oldalán a táplábak közé szintén 100-100nF-ot. Illetve keresd meg az adatlapban, hogy melyik a 18F4550 VUSB lába, és az a láb, és a GND közé is tegyél 220-470nF környéki kerámiakondenzátort. A kvarchoz tartozó kondenzátorokat nem kellene elhúzni ennyire a pictől, illetve a kondikra menő gnd-vel sem szabad ekkorát kerülni, a lehető legkisebb legyen a távolság a kvarc, a kondik és a pic között. Lehet, hogy unalmas ez a csak kondenzátorokat emlegető szöveg, de a tápfeszültség szűrésén nem szabad spórolni, a kerámiakondenzátor pedig nem drága.
(#) Prinner válasza Thomas10100 hozzászólására (») Jún 1, 2007 /
 
Szerintem egy csatlakozó a T6963-nak még elférne rajta. Nem kötelező a 90 fokos vezetékezés, csak magadat fárasztod vele, lehet sokkal lazábban is.
Csak vigyázz, nehogy kisodródjon az áram a kanyarokban
(#) Thomas10100 válasza Prinner hozzászólására (») Jún 1, 2007 /
 
Az LCD csatlakozóra lehet grafikusét is kötni, megvannak a plussz csatik rajta,ha erre gondoltál. Nekem bejön a 90fok
(#) kristalycuki válasza potyo hozzászólására (») Jún 1, 2007 /
 
Hello!

Nos egy 16F84A típusu PIC-et használok ugyhogy az LVP-vel gondolom nem lehet baj!
A 7805-ös előtt is és után is van kondi!
Mondjuk a PIC tápfesze közé nem raktam.

De egy kicsit had értetlenkedjek még.
Ha próba program aminek az eleje ugyan az mint a rendes programnak akkor az miért megy és ez meg miért nem?Egy kondenzátor hiánya lenne a gond?Akkor az a hiány nem jelentkezne a próba programnál is?
(#) bbatka válasza kristalycuki hozzászólására (») Jún 1, 2007 /
 
A késleltetést illetően akkor ezekszerint minden rendben

A config biteket ha a programban nem állítod be az sem baj az égetőben is megteheted, de érdemes beállítani.

Mivel beégetés után gondolom egy tartalom ellenőrzést is csinál az égetőprogram, ezért az égetés szerintem rendben lezajlik. Felesleges a delay-l foglalkozni.

Milyen config beállításokat használsz?
A PWRT-t kapcsold be. És szerintem érdemes próbálkozni kvarc cserével.
(#) imbra hozzászólása Jún 1, 2007 /
 
Üdv mindenkinek! Építettem egy Pic égetőt, nincs valakinek egy led villogtató kapcsolási rajza, progival együtt, hogy ki tudjam próbálni? Köszi Zoli
(#) potyo válasza imbra hozzászólására (») Jún 1, 2007 /
 
Valaki mintha feltett volna egy ilyen tesztprogit 2-3 oldallal régebben...
(#) potyo válasza kristalycuki hozzászólására (») Jún 1, 2007 /
 
Idézet:
„Mondjuk a PIC tápfesze közé nem raktam. De egy kicsit had értetlenkedjek még. Ha próba program aminek az eleje ugyan az mint a rendes programnak akkor az miért megy és ez meg miért nem?Egy kondenzátor hiánya lenne a gond?Akkor az a hiány nem jelentkezne a próba programnál is?”


Ha a tápfeszültség nincs megfelelően szűrve, akkor elég szerteágazó hibajelenségek jelentkezhetnek. Persze egyáltalán nem biztos, hogy a szűrés hiánya a gond, de biztos, ami biztos, tegyél oda is kondenzátorokat.

Hacsak nem valami titkos cucc, csatold a kódot, hátha látunk valami hibát benne (jelöld be, hogy mi az, amit miután beteszel, már nem működik), és esetleg azt is súgd meg, hogy miféle égetőt használsz.
(#) Thomas10100 hozzászólása Jún 2, 2007 /
 
Sziasztok!

Kettő kérdésem lenne, az egyik az késleltetés,a másik pedig táblázat kezelés.


A késleltetéssel az lenne a kérdésem hogy hogyan jön ki a 100us? mindent értek hogy mi mit csinál, de nem tudom hogyan jön, ki adott órajelhez, hogy mennyiszer kell ismételni(mennyit kell a változóba tenni).

itt egy program részlet:


kesl100 movlw 32; 4MHz-en100uskésleltetés
movwf timer1
kesl1 decfsz timer1,1
goto kesl1
return

A másik kérdésem pedig hogy hogyan működik a táblázat? Illetve mi is ez, és mire jó?


Itt egy részlet:

Table: addwf PCL,1
retlw 0c0h ; '0'
retlw 0f9h ; '1'
retlw 0a4h ; '2'
retlw 0b0h ; '3'
retlw 099h ; '4'
retlw 092h ; '5'
retlw 082h ; '6'
retlw 0f8h ; '7'
retlw 080h ; '8'
retlw 090h ; '9'
retlw 088h ; 'A'
retlw 083h ; 'b'
retlw 0c6h ; 'C'
retlw 0a1h ; 'd'
retlw 086h ; 'E'
retlw 08eh ; 'F'

Szóval ez egy szubrutin? És mit csinál ahol meghívom, a "call Table" paranccsal?
És mi a PCL?



Egy kicsit egybefolyt, a program.
Köszönöm a segítséget!
(#) watt válasza Thomas10100 hozzászólására (») Jún 2, 2007 /
 
Az időzítős kérdésedre csatoltam egy excel táblát. Ha nem érthető, nyugodtan kérdezz még.

A táblázat működése:
A retlw visszatéréskor beletesz egy értéket a W-be.
Hogy melyik retlw -re ugrik a program, az attól függ, hogy a CALL TABLE meghívásakor milyen értéket adsz át a W-ben. Ez azért van így, mert a W értéke hozzá adódik a PCL-hez, ami nem más mint a program lépés számláló, azaz maga a fő programcím mutató regiszter.
Egyébként ez a megoldás csak a 16F-eknél ilyen körmönfont, a 18F--ek sokkal kultúráltabban oldják meg a táblakezelést, sok más dologgal egyetemben. Erről, ha érdekel az oldalamon találsz egy példát.
(#) watt válasza watt hozzászólására (») Jún 2, 2007 /
 
Most nézem, hogy 4000000 helyett 400000 van a példa fájlban, ez ne tévesszen meg, át kell írni és rögtön kiderül, hogy 100 programlépés kell a 100usec-hez. Persze azt is meg kell vizsgálni, hogy egy adott utasítás hány programlépésben hajtódik végre. Van amelyiknél ez változó, attól függ, hogy teljesül-e egy feltétel(pl. decfsz)
(#) Thomas10100 válasza watt hozzászólására (») Jún 2, 2007 /
 
Köszi!

Ez a késleltetéses excel ez jó!

De a táblázat nem tiszta. Mire jó ez? Igazából a 18-as családdal foglalkoznék. Azoknál hogy működik?

Tehát van a W-ben egy érték, meghívjuk a Táblát, és a PCL-t hozzá adja a W-beli értékhez, és az eredmény a PCL-be kerül vissza, utána megy tovább, és amennyi a PCL lett, ahhoz ugrik a táblázatban, és annyi lesz a W értéke amennyi ahhoz tartozik?
(#) potyo válasza Thomas10100 hozzászólására (») Jún 2, 2007 /
 
A PCL (és vele a PCH) mindig annak az utasításnak a címét tartalmazza a programmemóriában, amit a következő ciklusban a processzor végre fog hajtani. Tehát teszem azt te beteszel a W-be 5-öt, majd kiadod a "CALL Table" parancsot. Ekkor valójában a PCL regiszterbe beíródik az a memóriacím, amin az addwf PCL, 1 utasítás található, valamint a verembe eltárolódik a CALL utáni utasítás címe. ITT JEGYZEM MEG, HOGY SZUKJUNK MÁR LE A VESSZŐ UTÁNI 0 VAGY 1-RŐL, HELYETTÜK HASZNÁLJUK AZ ELŐREDEFINIÁLT W ÉS F KONSTANSOKAT. A PIC végrehajtja az addwf PCL, f utasítást, de a végrehajtás közben már növel is egyet a PCL regiszteren, tehát a PCL regiszter ekkor már a retlw 0c0h ; '0' utasításra mutat. De mivel mi még hozzáadunk a PCL regiszterhez 5-öt (mert ennyi vol a W-ben a CALL előtt), ezért a PIC nem a retlw 0c0h ; '0' utasítást fogja végrehajtani, hanem az 5 hellyel arrébb levőt, tehát a retlw 092h ; '5' utasítást. Ez pedig azt csinálja, hogy a W-be betölt 92h-t, kiveszi a veremből a legfelső címet, és azt beteszi a PCL-be. Ezzel pedig visszaugrik a CALL alatti utasításra, és ott folytatja a végrehajtást.
(#) watt válasza Thomas10100 hozzászólására (») Jún 2, 2007 /
 
Idézet:
„Igazából a 18-as családdal foglalkoznék.”

Akkor nézz fel az oldalamra, van egy egyszerű táblázatkezelős példaprogram.
http://wattmep.tvn.hu/PIC_infok/PIC_konfig3.htm
Az előzményeket az 1. példában találod...
http://wattmep.tvn.hu/PIC_infok/PIC_konfig1.htm
(#) Thomas10100 válasza potyo hozzászólására (») Jún 2, 2007 /
 
Init: clrf TRISB
clrf PORTB

Start: movlw D'15'
call Table
movwf PORTB
goto Start


Table addwf PCL,1
retlw 0c0h ; '0'
retlw 0f9h ; '1'
retlw 0a4h ; '2'
retlw 0b0h ; '3'
retlw 099h ; '4'
retlw 092h ; '5'
retlw 082h ; '6'
retlw 0f8h ; '7'
retlw 080h ; '8'
retlw 090h ; '9'
retlw 088h ; 'A'
retlw 083h ; 'b'
retlw 0c6h ; 'C'
retlw 0a1h ; 'd'
retlw 086h ; 'E'
retlw 08eh ; 'F'


end


Ezen megértettem, és ha folytatom akkor a következő a 16 lesz és így tovább igaz?

Köszi a válaszokat!
(#) watt válasza Thomas10100 hozzászólására (») Jún 2, 2007 /
 
Közben megértettem a kérdést! Igen a következő a 16-os eltoláson lesz.
Még arra kell figyelni, hogy egy lapra be kell férjen egy ilyen táblázat. Magyarul 256 programrekeszbe be kell férjen egy táblázatos szubrutin, azaz nem csak a táblázat, hanem a megelőző sorok is. Figyelni kell, hogy nem nyúlhat át a másik lapra a tábla vége, mert akkor nem oda mutat az eltolás. Ennek az az oka, hogy a PCL 8 bites, és csak ennyit tud átfogni. A PCH-t pedig csak lapozással lehet módosítani, amit elég macerás a táblázatkezelésben megoldani. org-al lehet a táblázatot a megfelelő címre belőni. Én a progi végére szoktam őket tenni, és visszafelé lépegetve foglalom a helyet 256-onként, ha kell még..
(#) Thomas10100 válasza watt hozzászólására (») Jún 2, 2007 /
 
Köszi!

Még annyit kérdeznék hardverrel kapcsolatban, hogy
1. PIC-en be kell kötni mindkét oldalon lévő táp lábakat?

2. Ha amit PIC fejlesztőt feltettem, ott nem lesz gond az égetéssel a panelban? Vagy a tápot hogyan oldjam meg, mert ugye van saját táp forrása, illetve a programozó csatin is jöhet az 5V. ÉS azt honnét fogja tudni a PIC hogy égetni fogom, vagy a programot kell inditania?

3. Az USB-hez az 5V-ot és a GND-t be kell kötni? Ha rákötöm vmire, akkor nem akadnak össze?(pl a számítógéptől is lesz 5V, meg a fejlesztőtől is). Illetve a D+ és a D- vonalra nem kell ellenállás?


Légyszi ezeket ellenőrizd, amit csatoltam elöbbre lévő képen.


Köszi a sok segítséget!
(#) potyo válasza Thomas10100 hozzászólására (») Jún 2, 2007 /
 
1. be kell kötni, legjobb, ha pic alatt a legrövidebb úton tudod elhúzni egyik oldaltól a másikig. Valamint ha mindkét oldalon van Vdd, akkor mindkét oldalra kell kerámiakondi is.

2. Nem kötöd be a programozó csatiról jövő 5V-ot, annyi az egész. Azt, hogy égetni akarod, azt a pic Vpp/MCLR lábára érkező feszültségből tudja. 13V=égetés, 0V=reset, 5V=normál üzem.

3. Nem emlékszem pontosan, de mintha kellene az, hogy az USB 5V-ján legyen terhelés, hogy a Host jól érezze magát. De ez lehet pl. egy LED is, ami így jelzi is, ha be van dugva az usb kábel. A GND-t természetesen be kell kötni.

Ellenállás nem kell, benne van a pic-ben.
(#) Thomas10100 válasza potyo hozzászólására (») Jún 2, 2007 /
 
Köszi a kimerítő választ!

Most egyenlőre nincs több kérdésem.
(#) watt válasza Thomas10100 hozzászólására (») Jún 2, 2007 /
 
Nagyon szívesen! Igaz potyo?
(#) Thomas10100 válasza watt hozzászólására (») Jún 2, 2007 /
 
Igen tőled is köszi!
(#) watt válasza Thomas10100 hozzászólására (») Jún 2, 2007 /
 
Tényleg nem azért írtam ám! Csak potyot akartam kicsit bevonni a témába!
És tényleg nagyon szívesen, sőt! Nem is hinnéd, mennyit tanul az ember, ha ilyesmikre válaszol. Olyan, mint ha mindig felelnél. Karban tart!

Bocsi az offért!
(#) potyo válasza watt hozzászólására (») Jún 3, 2007 /
 
Ja
Következő: »»   36 / 1319
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