CristianC Postat Mai 17, 2007 Partajează Postat Mai 17, 2007 Oscilatorul este configurat pe LP. Nu merge cu cuart de 4MHz. Trebuie sa fie XT sau HS. Deci FOSC1:FOSC0 ar trebui sa fie 01 sau 10. Daca scrii 0x3FF4, WDTul este activat si daca nu ai cod care sa-l reseteze, o ia prin aratura. In consecinta propun ca WDT sa fie inactivat. Nu stiu daca programezi cu 12V sau cu LVC. Daca programezi cu 12V, incerca sa faci config 0x3F71 sau 0x3F72 Daca programezi fara 12V, atunci incerca sa faci configul 0x3FF1 sau 0x3FF2 Zi-ne cu ce tensiune programezi si daca merge cu vreuna din valorile de mai sus. Cirip Din cate am inteles, foloseste PIC16F627, oscilator intern si LVP.Deci __CONFIG(0x3FF4) daca WDT este folosit sau __CONFIG(0x3FF0) daca nu este folosit Link spre comentariu
cirip Postat Mai 17, 2007 Partajează Postat Mai 17, 2007 Din cate am inteles, foloseste PIC16F627La inceput scrie ca foloseste 16F871... Chiar am cautat, ca nu stiam ce pic are. Link spre comentariu
CristianC Postat Mai 17, 2007 Partajează Postat Mai 17, 2007 Din cate am inteles, foloseste PIC16F627La inceput scrie ca foloseste 16F871... Chiar am cautat, ca nu stiam ce pic are. Nu mai pot programa PICul 16F627. I-mi da eroarea "Verify error occured!". Am facut programare si apoi salvare *.hex, dar memoria asa arata::1000000000000000000000000000000000000000F0 :1000100000000000000000000000000000000000E0 :10002-10425(tot 0) :10426000000000000000000000000000000000004E :10427000000000000000000000000000000000003E :0800000000FFFFFFFFFFFFFFFF :10400000FE3FFF3FFF3FFF3F70005000A007FB0255 :00000001FF Probabil a schimbat PIC-ul intre timp. Oricum, acum are ambele variante :yawinkle: Link spre comentariu
cirip Postat Mai 17, 2007 Partajează Postat Mai 17, 2007 Da, corect. Mi-a scapat.Oricum, ideea e sa ia el bitisor cu bitisor si sa isi construiasca singur cuvantul CONFIG pe baza functiei fiecarui bit. Sa vedem ce mai posteaza.Cirip Link spre comentariu
laStudiu Postat Mai 17, 2007 Autor Partajează Postat Mai 17, 2007 Folosesc si 16F871 si 16F627. Primul merge programat, cu al doilea am incercat si __CONFIG(0x3ff0) si tot "Verify error occured!". Mentionez ca din gresala am pus picul invers in soclu si vreo 10 s a fost cu 5V pe masa si cu masa pe alimentare, pana am vazut ca se incalzeste tare de tot (dar si inaite de asta i-mi dadea aceeasi eroare). Oricum programatorul inca il mai recunoaste si pot sa citesc continutul lui si sa-l salvez *.hex, si dupa noua programare cu 0x3ff0 s-a modificat penultimul rand: :0800000000FFFFFFFFFFFFFFFF:10400000FF3FFF3FFF3FFF3F70005000A007F0025F:00000001FF __CONFIG(0xF4) inseamna __CONFIG(0x00F4) Am citit in documentatie ca valoarea neprogramata a bitilor registrului __CONFIG este '1', deci eu ma gandeam ca daca scrii __CONFIG(0xf4) programezi doar ultimii 8 biti ai reg CONFIG, deci cei mai semnificativi 6 biti raman neprogramati, adica '1' , adica este echivalent cu __CONFIG(0x3ff4) Link spre comentariu
cirip Postat Mai 17, 2007 Partajează Postat Mai 17, 2007 Am citit in documentatie ca valoarea neprogramata a bitilor registrului __CONFIG este '1', deci eu ma gandeam ca daca scrii __CONFIG(0xf4) programezi doar ultimii 8 biti ai reg CONFIG, deci cei mai semnificativi 6 biti raman neprogramati, adica '1' , adica este echivalent cu __CONFIG(0x3ff4) Nu e chiar asa. "Neprogramata" mi se pare ca e dupa un "bulk erase". Daca tu nu ai pus nimic in locul unui bit, el tot il programeaza cu ce crede el de cuviinta. De ex, daca ii ceri sa scrie 0xF4 intr-un cuvant CONFIG lat de 14 biti, in realitate el va scrie b00.0000.1111.0100Citeste-i numai configul si vezi ce e acolo. Posteaza valoarea citita a configului sa vada sii colectivul si spune exact cu ce procesor lucrezi de fiecare data, ca pe mine m-ai confuzat. O fi ceva dubeos acolo. Desi, dupa ce l-ai chiftelizat vreo 10 secunde, nu se mai stie de ce nu merge, dar poate ai noroc si a scapat.Cirip Link spre comentariu
laStudiu Postat Mai 18, 2007 Autor Partajează Postat Mai 18, 2007 Pt 16F627. Cum sa citesc reg CONFIG? Link spre comentariu
cirip Postat Mai 18, 2007 Partajează Postat Mai 18, 2007 Cu softul de programare si cu programatorul. Ala ar trebui sa citeasca continutul picului, inclusiv configul. Nu ai ceva gen "read device"? Link spre comentariu
laStudiu Postat Mai 21, 2007 Autor Partajează Postat Mai 21, 2007 Are programatorul (PICpgm) o coloana "Config Bits/ID Loc.", eu personal nu-mi dau seama cum se citeste reg CONFIG, dar pun aici asa cum arata: 2000 3FFE 2001 3FFF 2002 3FFF 2003 3FFF 2004 0070 2005 0050 2006 07A0 2007 02F0 Am aflat: 2000-2003 ID Loc.; 2004-2005 Reserved; 2006 Device ID; 2007 Configuration Word care arata astfel: CP1 CP0 CP1 CP0 ? CPD LVP BODEN MCLRE FOSC2 PWRTE WDTE F0SC1 FOSC0 Link spre comentariu
laStudiu Postat Mai 21, 2007 Autor Partajează Postat Mai 21, 2007 Deci este CP1 CP0 : 00, adica 0000h-07ffh program memory code protected si CPD : 0, adica data memory code protected.Cum pot sa scap de protectia asta ? :smt001 Link spre comentariu
cirip Postat Mai 21, 2007 Partajează Postat Mai 21, 2007 Deci este CP1 CP0 : 00, adica 0000h-07ffh program memory code protected si CPD : 0, adica data memory code protected.Cum pot sa scap de protectia asta ? :smt001 Ca sa vezi ce inseamna sa citesti documentatia... :yawinkle: Ti-ai raspuns singur la intrebare. Si tot daca citesti documentatia, constati ca la pagina 108, capitolul 14.9 scrie ca: "Only a Bulk Erase function can set the CPand CPD bits by turning off the codeprotection. The entire data EEPROM andFlash program memory will be erased toturn the code protection off."Cirip Link spre comentariu
laStudiu Postat Mai 22, 2007 Autor Partajează Postat Mai 22, 2007 Ce diferenta este intre "Bulk Erase" si comanda "Erase PIC" din programator, ca eu i-am dat comanda Erase din programator de o gramada de ori si nu modifica deloc reg CONFIG. Link spre comentariu
cirip Postat Mai 22, 2007 Partajează Postat Mai 22, 2007 Citeste in helpul sau manualul softului de programare ce face "Erase PIC". Chiar ma intereseaza si pe mine. Link spre comentariu
laStudiu Postat Mai 22, 2007 Autor Partajează Postat Mai 22, 2007 Folosesc Win PICPgm si nu zice ce face... am gasit la varianta Command Line optiunea "picpgm -e" care cica ar sterge PICul chiar daca este Code protected, dar trebuie sa-i spun ce port folosesc ca sa functioneze programatorul (eu folosesc USB) ca el crede implicit ca folosesc LPT. Link spre comentariu
laStudiu Postat Mai 22, 2007 Autor Partajează Postat Mai 22, 2007 Am rezolvat cu PICul. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum