Sari la conținut
ELFORUM - Forumul electronistilor

nu stiu ce are PIC -ul meu


laStudiu

Postări Recomandate

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
  • Răspunsuri 67
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • laStudiu

    36

  • cirip

    12

  • CristianC

    6

  • bld

    6

Top autori în acest subiect

Din cate am inteles, foloseste PIC16F627
La 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

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

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

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

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

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

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

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

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

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 cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări