Fórum témák
» Több friss téma |
Szerintem csak a kalibrációs érték veszett el a programmemória végéről, és azért nem működnek, mert egy végtelen ciklusban forognak. Szedd ki a CALL 0x3FF sort, és próbáld ki úgy is. Szerintem jók lesznek. A Pickit2 programja törlés előtt lementi arról a címről az értéket, de a másik égetőprogramok nem.
Idézet: „Szerintem csak a kalibrációs érték veszett el a programmemória végéről” Ha a kalibrációs érték veszett el (pl. egy törlés miatt), akkor a PICkit2 saját programja (tehát nem az MPLAB alatt használva) figyelmeztetni szokott rá, és a Tools/OSCCAL menüben regenerálni lehet. Most szándékosan nem tudtam előidézni ezt az állapotot, de korábban jártam már így vele, s a regenerálás után rendben volt minden. Idézet: „ez a 'logic analyser' dolog ez hol talalhato?” Természetesen az MPLAB-ban. A Debugger/Settings menüpontban a felugró ablak Osc/Trace nevű lapján Engedélyezni kell a Trace All opciót. Én most azt állítottam még be, hogy 1 K buffer betelése után álljon le (Break on Trece Buffer Full). Megjelenítés bekapcsolása a View/Simulator Logic Analyzer menüpontban. A program indítása előtt a Lgikai Analizátornál Trigger PC = Now (0x000000), és a Channels menüben a megjeleníteni kívánt jelek hozzáadása ajánlott. Megjegyzés: a PICkit2 pedig hardveres Logikai Analizátor képességgel rendelkezik, 3 csatornán, max 1 MHz-es mintavételezéssel. A mellékelt képen véletlenül épp egy PIC12F675 működését ellenőriztem. Idézet: „A program elején van egy CALL utasítás...” Furán néz ki, de az adatlap szerint így kell kalibrálni a beépített RC oszcillátort. A 0x3FF címre gyárilag írnak be egy RETLW xx utasítást, ami visszatéríti a programot, s a W regiszterben a gyárilag ajánlott xx kalibrációs konstans lesz.
"Mert Hübele Balázs módjára kapkodsz!"
He he . Ja, ez sajnos igy van. En hibam. :bummafejbe: Az analyser-t meg megnezem az MPLAB-ban, ha lesz egy kis idom. Koszi. Potyo: Megprobalom kitorolni a 'call 3FFh ' a progibol. Megirom mi tortent.
Kitoroltem a sort es mukodik a rosznak velt 675.
![]() Nagy vagy potyo. cheers ![]() Probaltam mas erteket megadni OSCCAL-hoz, de nem valtozott latszolag a freki. Ha jol ertelmeztem 6 bit-en elvileg lehetne valtoztatni, nem?
Ez jó hír! Mellesleg az adatlap figyelmeztet: "Erasing the device will also erase the preprogrammed internal calibration value for the internal oscillator. The calibration value must be saved prior to erasing part..."
Ahogy korábban írtam, a PICkit2-őt saját programjával futtatva regenerálhatod az OSCCAL beállításokat. Idézet: „Ha jol ertelmeztem 6 bit-en elvileg lehetne valtoztatni, nem?” Igen, bizonyos határok között hangolhatod a 4 MHz-et...
Ezen az oldalon megtalálod, h miként lehet 'megkeresni az elveszett' OSCCAL értéket (google fordít
![]()
Üdvözletem Mindenkinek!
PIC10F200 -al szeretnék megvalósítani egy kapcsolást, 2 bemenet, 2 kimenet felállásban, VDD + GND -vel a 6 lábon. A gond az, hogy ICD2 klón hibát ír ki, ha MCLR-t belsőleg a VDD lábra akarom kötni úgy, hogy az oszcillátor is belső (INTOSC). 12F-nél a több lábszám miatt ez nem gond, de ha adott a lehetőség, akkor miért ne használnám így? Microchip úgy oldotta meg ezt a gondot, hogy vegyek PM3 programozót. ![]() A probléma ismert több oldalon is, megoldást RCD illetve JDM programozónál láttam ahol a Vpp first > Vdd second programozási móddal lehet ezt a hibát kiküszöbölni. WIN PIC-nél elvileg a 10F is támogatva van, illetve a Progamozónál is ki lehet kapcsolni a a Vdd bekapcsolást Vpp előtt. (OPTIONS menü). Kérdésem, sikerült-e már valakinek gyakorlatilag is leküzdeni ezt a problémát, (vagyis belső MCLR és oszcillátor használata). Lehetőség szerint újraprogramozni is szeretném a PIC-et mielőtt beállítom a kódvédelmet, tehát nem OTP megoldásra gondolok elsősorban. Elnézést ha hosszú lett a hozzászólás, s köszönöm a válaszokat előre is. ![]()
Én simán égettem 12F675 és 12F683-at belső oszcillátorral és kikapcsolt MCLR-el, ICD2-vel. A lényeg, hogy nem szabad bepipálni az MPLAB kérdését, hogy ne kérdezze újra, mert akkor mindig úgy veszi, mintha a Nem-re kattintottál volna. Nekem eddig nem volt problémám.
Amit tehetsz, hogy a kontroller indulásakor, még mielőtt bármi mást csinálnál, tegyél be egy fél másodperces várakozást, hogy az égető tudja mozgatni a lábakat, még mielőtt a kontrollerben elindulna a program és kimenetté állítaná a PGD és PGC lábakat.
Köszi a választ! Kipróbáltam, s működik 12F615-ön. Érdekes, nem kell új programozót használnom, jó a potyo féle ICD2 klón.
![]() Egyedül azt nem értem, hogy a tápra kötött MCLR, ha bemenet, miért nem érzékeli 1-nek ha olvasom. if (GP3) GP0=0b1; vagy if (GPIO>=8) GPIO=0b1; 1-es értéknél egy LED lépne működésbe. |
Bejelentkezés
Hirdetés |