Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Elolvasok én mindent, csak nem mindig értem az egészet!
Nagyon macerás lenne 80db kétbájtos számot generálni és ezzel a táblát manuálisan feltölteni hogy leszimulálhassam hogy jól működik-e. Ezért inkább megkérdezem itt, hátha talál benne valaki hibát.
Kicsit hosszadalmas... Megvizsgálja hogy van-e 4095 a 80db szám közt, aztán hogy 4094 van-e, majd 4094... Mindezt addig amíg 8db számot nem talál. Ha talál akkor nullát ír a helyére. Több mint négyezerszer vizsgálja meg a táblát de nem baj, talán elég gyors a PIC. Majd kiszámolom.
Egy elvi hibát már találtam is: ha többször szerepel ugyan az az érték a táblában akkor csak a legfelsőt törli, mert akkor már nem vizsgálja tovább a táblát.
Ez így működhet?
Mert az FSR0 ugye két bájtos.
Azt mondja a fordító hogy nem ismer "TablSize" szimbólumot.
Szia!
Ezt Neked kell definiálni:
Miért nem látja az MPLAB a PIC-et?
Idézet: „PK2Error0027: Failed verify (Address = 0x0 - Expected Value 0xEFC6 - Value Read 0xD140)” Tápfeszültség 3,97V megvan, MCLR-en pedig 12,44V van. PGD, PGC is jónak tűnik.
Sziasztok!
Adva van egy PIC 18F6723, és soros vonalon hozzákötve egy Vinculum (VNC1L) USB chip. Az új Vinculum chipek üresen érkeznek meg a gyárból, először beléjük kell tölteni a firmware-t. Ahhoz, hogy ne kelljen plusz áramköröket beiktatni, ezt a PIC-en keresztül gondoltam, a következőképpen: A PIC-nek 128 kB program-memóriája van, a firmware 64kB-os. Tehát a PIC program-memóriájába elfér a program mellett a firmware is, amit aztán ki tudok olvasni és át tudok tölteni az usb chipbe. A kérdés a következő: hogyan tudom a PIC program-memóriájába a program mellett a firmware file-t is feltölteni? (MPLAB-ot használok, ICD2-vel) Egyszerűen copy-paste-tel bemásolom a hex file végére? Esetleg van egy ilyen opció az MPLAB-ban? Vagy valahogy a programba illesztve? (Bár erre nem találtam megoldást.) És milyen címre kellene a file-t feltölteni, hogy ne ütközzön a programmal? Idézet: „Tápfeszültség 3,97V” Ez most 5, vagy 3,3V-os PIC. Egyébiránt egyiknek sem jó érték az LF-eket kivéve...
PIC18F2423 az alany, 2V-tól 5,5V-ig működik elvileg. A PK2 saját programjában nyomkodtam valami kalibrációt, azóta már 4,74V van és már ezt írja:
Idézet: „PK2Error0027: Failed verify (Address = 0x0 - Expected Value 0xEFC6 - Value Read 0x0)” Eddig a "Value Read" mindig más volt amikor írni próbáltam a PIC-et, mostmár mindig 0x0-át ír.
Nem olvasol figyelmesen adatlapot! (326.oldal(328. oldal pdf.)). Bővebben: Link
szerk: Töröld a PIC-et, és utána próbáld írni.
Szia!
A pic reset rutin belépési pontja, megszakási rutin kezdőcíme a 0x0, ill. 0x08 és 0x18. Ezért a betöltő programot célszerű a memória elejére tenni. A Vinculum (VNC1L) USB chip firmware -jét a felső 64K -ban célszerű elhelyezni. Milyen formában áll rendelkezésre a firmware? - Intel Hex: Milyen kezdócímtől? Az MpLab -ba be lehet importálni ilyen formátumú állományt, csak arra kell vigyázni, hogy ne írjon felül használt program területet. Ha a kezdőcím nem jó, egy kis szöveg feldolgozással át lehet állítani. A javasolt felső 64K azért jó, mert a 0x0000 címre fordított állományt egyszerűen át lehet tenni erre a helyre - minden címhivatkozás legfelső bitjét 1-re kell állítani, az ellenőrző összeget 0x80 -nal csökkenteni (moduló 256). - Bináris forma: Át kell alakítani Intel Hex-re és az ott leírtak szerint eljárni. A címmódosítást egyben el lehet végezni.
Tehetek én róla hogy eddig 3,97V-ot adott rá a PIC? Igazából azt se nagyon értem hogy most mitől lett 4,74V. Mindegy is, de ennyivel már kellene működnie!
Szerk.: Nem tudom törölni mert nem látja a PIC-et sem az MPLAB, sem pedig a PK2 programja!
Ha nem látja, akkor ott valami tönkrement. (kábel, PK2, PIC, PC bajok(indítsd újra)). Elég tág a lehetőség sajnos. Szűkítsd a kört!
Megnéztem, a laminálómban látja a PK2 a PIC18F2520-at. Lehet akkor hogy a PIC (18F2423) szállt volna el?
Hát, lehet... Ha minden jól be van kötve(hidegítés, ICSP stb), akkor lehet.
Ha túl nagy pufferelkó van a PIC-en, akkor ez előfordulhat. Ha így lenne, próbáld meg külső Vdd bekapcsolásával, vagy csökkentsd a kondit.
De lehet, hogy a PIC vesz fel túl nagy áramot, vagy más az áramkörben...
47uF+100n van a PIC táplábain. Most próbáltam külső tápról is programozni de az se ment. :no:
A nyákon nincs más ami áramot felvehetne, egyenlőre csak passzív alkatrészek vannak beforrasztva.
Én egyébként úgy tapasztaltam, hogy az MPLAB nagyon keveset vár a Vdd vagy a Vpp bekapcsolása után, aztán rögtön rá is olvas. Ha a külső áramkörben van valamilyen terhelés/puffer ezeken a vonalakon, akkor emiatt előszeretettel nyöszög, hogy szerinte kevés a Vdd vagy a Vpp (mert még épp nem alakult ki a megfelelő szint).
Ha nem debugolás, hanem csak a programozás a cél, akkor én ezek miatt mindig a PICkit2 progit használom, és általában úgy állítom be, hogy a PK2 nyomógombra programozzon. Így a program újrafordítása után csak a PK2 gombján kell egyet nyomni, aminek hatására a hex-et újraolvassa és beprogramozza önállóan. Debugolás esetére érdemes külső táppal ellátni az áramkört, főleg, ha nagyobb fogyasztók is vannak benne.
Akkor elég gyanú van arra, hogy a PIC veszi fel a nagy áramot.
Szia!
Mivel a program kiadott egy teljes törlés parancsot túl alacsony feszültségen, megpróbálnám most már 4.2 V fölötti Vdd-vel, a PicKit2 programjával, Manual device select, Erase... Még egy ötlet: kapcsold be a "Vpp first" programozási módszert. Azt tapasztaltam, hogy a PicKit2 programja, a PicKit2 csatlakoztatása nélkül indítva, elállítja a Vdd értékét... Két próbát megér...
Sziasztok.
Van valakinek egy működő 3 bytos BCD konvertere, amit közzé tenne. Van 3 bájtom és ezek értékét írnám ki az LCD kijelzőre. 0x09 | 0x27 | 0xC0 | szerepel most a kijelzőn és 600.000-nak kellene lennie
Szia!
Már régen közzétettek sokfélét... innen letöltött kódból 48 bites BCD konverziót is csináltam...
Üdv!
Valamelyikőtök foglalkozott már olyannal, hogy egy RFID-s kártyaolvasót kötött össze PIC-el és kiolvasta a kártya számot? Vagy valami hasonlóval? Kis házi beléptetőt szeretnék csinálni, a szobámra Tudnátok javasoni, valamit hogy hol keresgéljek? Köszi! Idézet: Mindkettő járható út, csak előbb a betöltendő fájl címzését meg kell operálni, hogy a megfelelő címre töltődjön.„Egyszerűen copy-paste-tel bemásolom a hex file végére? Esetleg van egy ilyen opció az MPLAB-ban?” Ha például a betöltendő fájl Intel 32 bites HEX formátumban van, akkor remélhetően a felső címbiteket egy 04-es típusú Kiterjesztett lineáris cím rekord adja meg. Szerencsés esetben elég ezt megműteni. Ha a fájl így kezdődik: :020000040000FA Akkor az utolsó négy nullából 0001-et kell csinálni (64 K eltolás), és hozzá kell igazítani a kontrollösszeget: :020000040001F9 Ezután az átszerkesztett fájl bemásolható a saját programod HEX állományába, vagy beimportálható az MPLAB-ba. Bővebben: Link
Köszi a válaszokat, átnéztem az Intel hex formátumát, s bár a firmware bináris file-ban van, könnyedén át lehet alakítani hex-be. Találtam egy konvertert is:
BINARY to HEX converter Így már nincs akadálya a file program-memóriába való töltésének. Még egyszer köszi!
Szia!
A leírásomba egy kis hiba csúszott: A címben 64K eltolást javasoltam, az IntelHex-nél 32K-s eltolást írtam le. Nézd meg icserny leírását a 64K -s eltolásról. (Csak egy rekordot kell a firmware elé tenni, a benne levő címek maradhatnak változatlanok...)
Vettem egy új PIC18F2423-at, de ezt sem ismeri meg sem az MPLAB, sem pedig a PK2 programja! Elég elszomorító...
|
Bejelentkezés
Hirdetés |