Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   53 / 1319
(#) Topi válasza potyo hozzászólására (») Júl 14, 2007 /
 
Előzze meg a kommunikációs I2C, ISP, Soros cikket?
(#) Prinner válasza watt hozzászólására (») Júl 14, 2007 /
 
Üdv.
Megépítettem watt égetőjét, de nem sikerült égetnem vele:
-Az konfiguráció látszólag megfelelően működik, a port beállításnál, billeg a Vpp, mclr, data, clock. (az ack-t még nem ellenőriztem, de majd megteszem).
-A mclr 12,9V, a Vpp 4,94V a feszültségek stabilak, a cucc 15VDC-s adapterről megy, az 5V-ot mc33063 al állítottam elő, a 13-at pedig zenerrel.
-Az LPT kábel hossza 50cm, de a szalagkábel minden vezetéke közé tettem egy GND-t, ahogy a honlapodon írtad.
-egy 18f4550-et próbáltam égetni potyo ICD2 hex-ével, de nem sikerült. A pgm lábat (38) 1k-ával a földre húztam.

-a pic tápfeszét nem a vpp-re kötöttem, hanem a +5V-ra. A pic azonosítás menüpontban sem sikerült azonosítani.

(#) mokus válasza Topi hozzászólására (») Júl 14, 2007 /
 
Van! Mondjuk egy korrekt stopper alkalmazás ami 1/1000-es Mert még mindig nem megy nekem
(így nem tudok pontos sebességet számolni )

De mondjuk egy LCD-s/grafLCD megjelenítés, vagy egy menürendszer felépítés (3 gomb fukciováltással) bemutatása sem lenne rossz, vagy esetleg némi táblás számítás (pl itt is a HE-n volt egy hőmérős NTC-s nem lineális). vagy külső memóriák eeprom, sd ... stb használata...
(#) potyo válasza Prinner hozzászólására (») Júl 14, 2007 /
 
Milyen hosszú a kábel az égető és a pic között? Az se legyen hosszú.
(#) watt válasza potyo hozzászólására (») Júl 14, 2007 /
 
Én is ezt kérdeztem volna....
(#) Attila123 hozzászólása Júl 14, 2007 /
 
Sziasztok, a következőkben kérnék segítséget. Van egy régebben készült pic programom (valamilyen dos-os fordítóval) .OBJ formátumú. Ezt szeretném a PICSTART Plus-sal beégetni, a mit MPLAB sw kezel. Valahogyan nem sikerült a formátumot elfogadtatni vele, sem átkonvertálni .HEX formátumra.
Ha valakinek van ötlete, megköszönöm.
(#) szabi_o válasza Topi hozzászólására (») Júl 14, 2007 /
 
Én is találtam 1-2 dolgot, ami javításra szorúl (igazán nem kötekedni akarok, tetszik amit csinálsz), az első az nagyon fontos:

Idézet:
„A 4. és a 8. lépés nagyon fontos. Gondoljunk bele, hogy épp XOR-oltunk két számot, hogy megnézzük egyenlőek-e. XOR-olás végetért, és a STATUS regiszter Zero bitje 1-et, jelezve nekünk hogy tényleg egyenlőek. Igenám, de mielőtt a főprogramban megnézhetnénk, hogy Zero-e, még előtte esik be pont az interrupt és a másodperc növelgetéssel máris felülírtuk a STATUS regisztert, és mikor végre visszatértünk a programhoz és vizsgálnánk a STATUS-t, már rég nem az van benne...”


Itt ugye szépen leírod, hogy mekkora hibát követnénk el, ha nem mentenénk ezeket a regisztereket, de az assambler példákban használt módszerrel tulajdonképpen ugyanezt teszed.

Idézet:
„; Elmentjük a Work és Status regisztereket
MOVWF W_SAVE ;Először a Work regisztert
MOVFW STATUS ;STATUS-t bele a már lementett Workbe
MOVWF STATUS_SAVE ;Status_save-be beletölti a Worköt


; Visszatöltjük a Work és Status regisztereket
MOVFW STATUS_SAVE
MOVWF STATUS
MOVFW W_SAVE


ez azért van, mert a MOVFW utasítás megváltoztatja a STATUS regiszter Z jelzőbitjét. Elmenteni elmenti az eredeti értéket, azonban visszaállításkor a MOVFW W_SAVE utasítás már felül fogja írni azt.
Erre a megoldás a SWAPF utasítás, ami semmiféle flaget nem változtat:

MOVWF W_SAVE
SWAPF STATUS,W
MOVWF STATUS_SAVE

SWAPF STATUS_SAVE,W
MOVWF STATUS
SWAPF W_SAVE,F
SWAPF W_SAVE,W

Idézet:
„Azt figyelembe kell vennünk, hogyha a Timereket kerek egész órajelről (pl. 4 MHz, 10MHz, 20MHz) hajtjuk, akkor soha nem tudunk nagyon pontos másodpercenkénti osztást csinálni, a kerekítések miatt.”


de igen (egyes kerek órajelek esetén), ekkor is tudunk nagyon pontos másodpercet előállítani (előosztó megfelelő kiválasztásával és szoftveres korrekcióval), csak valamivel nehezebben.
(#) pixels válasza szabi_o hozzászólására (») Júl 14, 2007 /
 
hát én eddig ugy tudtam, a mov-val kezdődő utasítások nem bántják a status regisztert, és hogy a swapf az pedig az alsó és a felső nibble-t cseréli meg. Most akkor hogy van?

szerk: utánanéztem egy kicsit, és valóban igazad van. A swapf-nek meg egy kis idő kellett, hogy leessen

Az időzítésben én sem értek teljesen egyet topi-val, mert lehetséges. Én is megoldottam valahogy, ha jól emlékszem, kiszámoltam, mennyi timer megszakítás után kell korrigálni, és ennek függvényében írtam meg a megszakítást
(#) potyo válasza pixels hozzászólására (») Júl 14, 2007 /
 
A másik módszer, hogy minden megszakításban hozzáadunk az adott timer értékéhez egy olyan konstansot, hogy a további osztáskor már ne kelljen korrigálni. Pl. 4MHz-es kvarc 1:1 prescaler és 8bites timer esetén hozzáadunk 6-ot a timer regiszteréhez, és azután csak osztjuk pl. 40-el majd 100-al, hogy megkapjuk az 1 másodpercet.
(#) Topi válasza potyo hozzászólására (») Júl 14, 2007 /
 
Én is csináltam már hasonlót. A lényeg, hogy nem osztok, hanem kivonok. És így a különbségek/hibák összeadódnak. De ez hiába működik profin, minden parancs idő...
Az én pontos timer kódomat használja Deguss a CCS-es cikkében.
(#) 5cmarzo hozzászólása Júl 15, 2007 /
 
Hello!
Nem régiben csináltam egy fejlesztőt 16F84 kontrollerhez. És azt a jelenséget tapasztaltam, hogy megmértem a 4 Mhz-s kvarc frekvenciáját. 3,5 Mhz-t mértem. Ez hogy lehet? Rossz volna a kvarc?
(#) potyo válasza 5cmarzo hozzászólására (») Júl 15, 2007 /
 
Vagy rossz a kvarc, vagy rossz a mérőd. Tegyél rá egy másik kvarcot, és nézd meg azzal is.

Mondjuk fejlesztőt építeni 18F84-hez szerintem nem volt egy nagy ötlet. Inkább 16F627A-val fejlessz, olcsóbb és többet tud, mint a 16F84.
(#) Prinner válasza potyo hozzászólására (») Júl 15, 2007 /
 
Nincs is kábel az égető és a PIC között, egy 5cm hosszú tüskesorral csatlakozik a dugdosós panelba az égető nyákja.
Szerintem nem a kábel hosszával lesz a gond, mert ha az lenne, akkor működés közben lennének zavarok. Különben is próbáltam állítgatni a ?kommunikációs sebesség? csúszkát, de még nem sikerült működésre bírni
(#) watt válasza Prinner hozzászólására (») Júl 15, 2007 /
 
Láthatnánk a nyáktervet? (gondolom mivel más alkatrészekkel állítod elő a Vpp-t stb., más nyákot készítettél)
Jó lenne néhány fénykép is, hogy legyen valami fogalmunk a kivetelről. Egy biztos, hogy a hiba az Ön készülékében van!
(#) Prinner válasza watt hozzászólására (») Júl 15, 2007 /
 
Raszteres próbapanelre építettem meg, úgyhogy képzelheted milyen gányolt lett . Ha megtalálom a fényképezőt teszek fel róla képet.

Most próbálok egy 15cm -es lpt kábelt készíteni hozzá, mert már gőzöm sincs mi a baja, ha kész lesz, beszámolok.
A port check-ben pipálgatva billeg mindegyik adat vonal, a data-t billegtetve változik ack értéke is, tehát elvileg jó. Esetleg a PIC-el is gond lehetne, de nem hiszem. Még teljesen szűz, az akció előtt csomagoltam ki. Eddig csak 16-osakkal foglalkoztam, de gondolom a 18f4550-nél is ugyanúgy kell: PGM-et földre húzni egy ellenállással, a többit értelemszerűen bekötve, külső oszci, vagy bármilyen extra nélkül.

De végül is miért ennyire érzékeny a kábelhosszra és a vezetékezésre? Gyorsabban kommunikál? Már építettem ProPic2-őt, Tait-ot, és 2m-es kábelekről is simán égettek.
(#) watt válasza Prinner hozzászólására (») Júl 15, 2007 /
 
A kábel hossz PC függő. Potyonak megy 1,5m-es UTP kábellel, nekem csak 50cm-es szalagról(igaz, hogy most már az újabb fejlesztésű égetőt használom, ahol a 15m-sem okoz gondot!).

Az a lógó összeszerelés nem biztos, hogy kedvez, bár elvileg működnie kéne.

Láttam már rossz 7406-ot is, pedig check-re jó volt!

A PGC, PGD alapból milyen szintű? Jól vannak beállítva a fázisok? (bár elvileg nem kell változtatni ha 7406-ot használsz!)
(#) Prinner válasza watt hozzászólására (») Júl 15, 2007 /
 
A clock: 125mV, 4,94V
data: 136mV, 4,93V
A rövid kábellel is ugyanaz
Ha találok másik 7406-ot, akkor még kipróbálom azzal.
(#) watt válasza Prinner hozzászólására (») Júl 16, 2007 /
 
Mennie kell, ez ténykérdés! Biztosan minden jól van bekötve?
(#) Csaplar hozzászólása Júl 16, 2007 /
 
Sziasztok!

Már hosszabb ideje készítgetek egy programot p18F4520-ra MPLAB segítségével (C-ben).
Ahogy bonyolódik a progi, egyre több változóra van szükségem.
Most azonban furcsa dolgot tapasztaltam. Az egyik változóm (char State[4]) első karaktere kinullázódik, ha egy másik teljesen független változó értéket kap!

Miért lehet ez? Fedik egymást a memória címek? Mert egyébként semmi hibát nem találok benne?

Előre is köszi!

Üdv.:
Zoli
(#) watt válasza Csaplar hozzászólására (») Júl 16, 2007 /
 
Ha jól gondolom a C fordító a bankokat lekezeli, viszont a megszakítások mentését nem(de lehet, hogy tévedek, és azt is lekezeli..) Egyébb okot nem látok, hogy ilyesmi történjen. Ha asm-ban írnál biztosan Bankolási probléma lenne, de C-ben a fene tudja...
(#) Topi válasza Csaplar hozzászólására (») Júl 16, 2007 /
 
CCS-C kezeli a mentést, C18-ról nem tudom. Én 18F-re is CCS-C fordítót használok.
(#) Csaplar válasza watt hozzászólására (») Júl 16, 2007 /
 
Lehet, hogy a megszakítás tol ki velem! Ezt alaposabban meg fogom nézni!

Köszi a tippet!
(#) Prinner válasza watt hozzászólására (») Júl 16, 2007 /
 
Na végre működött
Igaz nem az általad fejlesztett égetővel, hanem a tait féle régi jól beváltal. Ez kedvező, mert nem kell új hardvert építeni, és cserélgetni, hanem elég egy is.
Nekem úgyis csak az usb-s ICD2 pic-ét kellene beégetni, és azután csak azt használnám.

Amúgy az égető program nagyon jó, mert be lehet állítáni az LPT csat. kiosztását, és más égetőket is lehet használni vele.

Az ic-prog 1.05e pedig egy rakás ... , mert égetéskor mindíg kiírta, hogy Verify falied adress 0100h. Csak a 0100 hexáig írta a flasht, utána nem égetett semmit.

(#) watt válasza Prinner hozzászólására (») Júl 16, 2007 /
 
Idézet:
„Igaz nem az általad fejlesztett égetővel,”

Azért tisztázzuk, hogy amit összelógattál, az messze volt az "általam fejlesztett égetőtől"! Én tíz perc alatt megtaláltam volna mit toltál el!
(#) Müszi hozzászólása Júl 16, 2007 /
 
Sziasztok!

Most kezdtem el piccel foglalkozni.
Megépítettem Topi 1 robotos cikkéből a második égetőt, és a BIgClock progiját szerettem volna beprogramozni egy PIC16F84A-ba.
Az égető a picet felismeri de verifitying failed adress 001h-t ír ki.
a progizóm jó, 3 hibát találtam benne, de mind javítva van.
soros porton megy.
a pic jó.

Légyszi segítsetek: Müszi
(#) Topi válasza Müszi hozzászólására (») Júl 16, 2007 /
 
Amit már megnéztünk. Feszültségek rendben, kábelhossz is rendben. Látszólag ír is a picbe, illetve írás után ott van benne az adat. Első bájt még jó is, de mint a hibaüzenet is mutatja már a második bájtnál száll el.
Törlés után szépen minden 3FFF.
(#) Müszi válasza Topi hozzászólására (») Júl 16, 2007 /
 
tehát még mit kell javítani?
a kábel kb 10centi lehet.
bocs, de még nemnagyon vágom a témát...
(#) Müszi válasza Topi hozzászólására (») Júl 16, 2007 /
 
Lehet h hülyének nézel, de mivel még nem foglalkoztam az eletronika ezen részével nem foglalkoztam, ezért félek tőle.
(#) Topi válasza Müszi hozzászólására (») Júl 16, 2007 /
 
Én persze látva az áramkört arra gyanakodtam. Igaz hogy rövid kábellel oldottad meg, de az egész égető légszerelésű. Levegőben összeforrasztgatott áramkörben hibát keresni, és annak stabilitását és zavarszűrtségét vizsgálni, majdnem egyenlő a fejlövéssel...
Mivel éget, csak hülyeséget ezért tuti hogy valami fizikai jelzaj van rajta. Amit egy rosszul beforrasztott felhúzó ellenállás is produkálhat.
(#) Müszi válasza Topi hozzászólására (») Júl 16, 2007 /
 
Akkor holnap kap egy új nyákot, akkor jó lesz?
nem légszereléses, hanem rednes nyákra építeném...
Következő: »»   53 / 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