Sida 1 av 1

Picen död?

Postat: 19 september 2008, 21:28:00
av OnkelF
Hej.

Har just testat pic för första gången och det var inte det lättaste må jag säga. Tog nån dag innan jag fick en lysdiod att blinka =)

Hur som. Jag har en 16f628 och en MP3.5-programmerare. Har funkat utmärkt att programmera picen hela tiden (det enda som faktiskt funkat), men nu går det inte programmera den längre. Står att det inte är en pic i programmeraren. Får ett annat felmeddelande om jag tar ut den så den känner av att det är nåt där iaf.

Kan man ställa om en pic så den inte går att programmera om? Jag har nämligen testat alla möjliga inställningar på den.
Den håller väl för att programmeras om fler än 100ggr?

Nån som har nån ide vad det kan vara som är problemet. Har bytt strömkälla till programmeraren utan resultat.

Sen har jag en annan fråga. Jag har testat att få igång en lcd men det har inte gått så bra. Läste nånstans att man måste ha en extern kristall för att det ska funka då den interna är för oprecis. Stämmer det?
Kan man testa en lcd på något sätt så man ser att den funkar?

Mycket frågor. Tacksam för svar
//Kim

Postat: 19 september 2008, 21:52:53
av sodjan
> Tog nån dag innan jag fick en lysdiod att blinka =)

Det var snabbt.

> Jag har en 16f628

628 eller (mer troligt) 628A ?

> Kan man ställa om en pic så den inte går att programmera om?

Delvis beror det på prorammeraren, men med många modeller, ja.
Speciellt "internal-MCLR" kan ställa till det.

> Den håller väl för att programmeras om fler än 100ggr?

Det är en uppgift som står i databladet för varje modell, men > 100 gånger, ja.

> Läste nånstans att man måste ha en extern kristall för att det ska funka då den interna är för oprecis.

Det är fel. (För att driva en LCD).

> Mycket frågor.

Men inte mycket info, så några speciellt bra svar lär du inte få.
Se även : http://elektronikforumet.com/forum/viewtopic.php?t=6057
för lite tips...

Postat: 20 september 2008, 11:16:07
av Marta
Har Du skrivit programmen själv, eller laddat dem från nätet?

Antar det senare. Kan Du posta en länk till det sista programmet Du flashade in? Det skall vara kompletta uppgifter så det går att se exakt vad det var för en fil Du använde.

Har Du ändrat på något sätt i konfigurationsbitarna?

Om det nämns något om "internal MCLR" kring den fil Du sist flashade så har Du hittat problemet. PIC går inte att flasha om utan en speciell procedur. Sök efter "Vpp before Vdd" till Din utrustning, om det nu går att åstadkomma med den. Klarar den inte detta måste PIC sättas i en utrustning som klarar det för att "låsas upp".

Edit: Köp en Wisp648 så har Du vad som behövs för att själv kunna "låsa upp" den. Kan vara bra att ha om det skulle hända igen och även om Du vill kunna använda MCLR som ingång t.ex. på 8-pin kretsar där det ibland gäller att ta vara på resurserna.

Postat: 20 september 2008, 11:27:30
av OnkelF
Det är en 628 även om det stod 628A i Kjells katalog.

Tror jag kommit på vad jag gjort iaf. Jag har slagit på kodskyddet (Code Protection). Hittade att det skulle försvinna om man gjorde en "bulk erase" vilket jag gjort. Winpic tyckte att det gick utmärkt att göra, inte MultiProg, men kretsen är inte tömd. Hur ska jag få igenom en sådan då?

Jag har gjort programmet i MikroC. Där kan man ställa config-bitarna lite hur som. Där testade jag allt jag kunde välja i olika kombinationer. Jag tog konfigurationer som andra hade och mixade det med mina. Kanske inte allt för smart...

Postat: 20 september 2008, 11:33:03
av Marta
Det är bara till att köra bulk erase som vanligt så rensas code protect.

Det är inte code protect som ger problem, det ärMCLR. Rörde Du denna configbit?

Detekterar utrustningen kretsen nu?

Har kretsen ett fungerande program som t.ex. blinkar en LED? Fortsätter denna i så fall att blinkaäven om Du ansluter MCLR-pinnen till Vss/GND ? Äär så fallet så har den intern MCLR och är 100% säkert låst enligt vad jag skrev i mitt föregående inlägg.

Edit: rättat ett "litet" fel...

Postat: 20 september 2008, 11:35:02
av OnkelF
Nej den kan inte detekteras.

Det som finns på kresten nu är ett program som ska prata med lcd:n så jag kan inte testa om den kör då min lcd inte funkade så bra på den koden

Postat: 20 september 2008, 12:14:09
av Marta
Jjag skulle våga sätta en bra slantpå att det är MCLR.

Det finns ett quick-and-dirty trick som kan fungera i så fall. Kan Du koppla loss MCLR från övrigt när Du skall flasha den? I så fall kan Du prova att ansluta ett riktigt förskt 9V batteri mellan GND och MCLR-pinnen (plus till MCLR) och därefter ge ett kommando för bulk erase. Koppla sedan tillbaka allt som vanligt.

Detta är ett fult trick och tipset lämnas helt utan garantier. Det kan fungera, men det kan även säga tjoff någonstans om det vill sig illa. Speciellt om man gör fel och råkar ansluta 9V till något annat än MCLR.

Postat: 20 september 2008, 12:21:38
av sodjan
Grundproblemet är igentligen inte MCLR... :-)

Problemet är det här :

> Där testade jag allt
> jag kunde välja i olika kombinationer. Jag tog konfigurationer som
> andra hade och mixade det med mina. Kanske inte allt för smart...

Nej, inte speciellt smart... :-)

Du ska naturligtsvis sätta CONFIG så som du vill ha det i din
speicifika koppling ! Det är inget som man "mixtrar" med...

Dessutom stör detta mig oerhört :

> Det är en 628 även om det stod 628A i Kjells katalog.

Postat: 20 september 2008, 13:33:57
av OnkelF
Winpic lyckades läsa ut min config.
11 1100 0000 0000

Enligt databladet så är de fyra första (bit 10-13) att jag inte har slagit på kodskydd som jag trodde.
Men bit fem (från höger) är den som ställer MCLR och den är noll. Borde vara 1 om jag förstår det rätt.

0 = RA5/MCLR pin function is digital Input, MCLR internally tied to VDD

Med andra ord så hade ni rätt, kanske inte helt oväntat.
Ska testa och se om jag kan använda min programmerare till att rensa den annars får jag väl göra 9v-tricket.

Postat: 20 september 2008, 13:58:47
av sodjan
Ja, det ser ut så, om tolkningen (och utläsningen) av CONFIG är korrekt.

Postat: 20 september 2008, 23:20:16
av Marta
Men hur kan Du läsa config utan Vpp före Vdd om kretsen är konfigurerad för intern MCLR? Lika väl som den kan ta emot detta läskommando så borde den kunna ta emot kommandot för bulk erase.

Har Du en länk till en hemsida som beskriver "MP 3.5" ? Det är stört omöjligt att googla på denna beteckning, det blir bara femtioelvatusen felträffar...

Postat: 21 september 2008, 00:04:31
av sodjan
Good point, Marta... :-)

Postat: 21 september 2008, 02:29:15
av korp
Jag hade liknande problem med tidigare versioner av MultiProg när jag började med PIC-programmering och var nära att dödförklara några 12F629. Lyckades dock köra erase på dem med en enkel seriell JDM-programmerare från Olimex.

Problemet kom sig av att jag körde med intern MCLR, intern oscillator, och använde ICSPDAT/ICSPCLK-pinnarna som outputs, vilket ställer en del krav på programmeraren och kretsen i övrigt.

Efter version 2.01 av Multiprog så verkade de flesta problem med MCLR dock ha löst sig. Och stödet för intern MCLR fixades efter påtryckningar från undertecknad :) Men jag hade MP 3.6 USB.

Vilken version har du? 2.10 ligger ute hos Ad-teknik.

Jag kör numera uteslutande med PicKit2 så jag kan inte kolla MultiProg v2.10.

Edit: Observera att MP 3.5 som är en relativt gammal seriell programmerare, inte stöder omprogrammering med intern MCLR aktiverad. Jag citerar Ad-teknik från epostväxling 2006;
Problemet är att om du använder intern oscillator och stänger av reset-ingången på kretsen så kan inte programmeraren sätta chippet i programmeringsläge eftersom MP 3.5 Seriell alltid ger 5V till chippet så snart programmeraren startar upp. (chippet börjar exekvera)

På MP 3.6 USB så styrs strömförsörjningen till chippet som skall programmeras av programvaran och då försvinner det här problemet.

Postat: 22 september 2008, 18:56:43
av OnkelF
Marta: Visade sig att jag inte alls lyckats läsa ut CONFIG. Var winpic som slumpade ut det...

Jag trodde att mp 3.5 var en känd programmerare. Var ju den alla köpte som gjorde piratkort :roll:

korp: Jag har kört med multiprog 2.10 och det var ju en trevlig programvara. Jo upptäckte att den inte stödde omprogrammering med intern MCLR aktiverad. Så jag tyckte jag var smart och kopplade de fem trådarna till min labbräda men satte 12v istället för mclr-tråden och lät den vara påslagen före jag startade programmeraren men det funkade inte heller. Eller får man inte ha den påslagen för lång tid innan man försöker göra en bulk erase?