Sabbad Pic Krets?? /Nya problem

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Sabbad Pic Krets?? /Nya problem

Inlägg av newbadboy »

Hej.

Har gjort ett program för en Pic16f628. Kopplat den på labbplattan och allt funkade fin. Flyttade över den på ett kretskortet och det var dött. Satte tebax den på labbplattan och där var det oxå dött.

Provade att programera om den och då fick jag följande felmeddelande...
...........>
Detected Target: 16F628 revisison 8
Target Erased
Transferring program to 16F628 via Wisp628
Transferring program memory... Wbus command failure
Write-Verify operation failure.

Vad kan detta betyda??
Har provat flasha en helt annan krets med ett annat program och det gick så wispen är ok. Vågar jag prova med en ny krets eller ska jag kolla upp ngt först?
Senast redigerad av newbadboy 1 april 2007, 16:38:39, redigerad totalt 1 gång.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Givetvis skall Du kolla upp något först. Kontrollera spänningstillförseln, är den OK? Vad har den för insignaler? Kan där komma in mera spänning än den gillar? Vad skall den driva för något? Iakttog Du basala ESD-åtgärder när Du monterade kretsen?

Hur är det med pinne 10? Hålls den på GND under programmeringen? Fast när en annan krets fungerar så tyder det mesta på att den har fått en smäll.

Var det förresten första gången Du försökte att programmera om kretsen? I så fall kanske Du har gjort något dumt med config-bitarna.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Nja esd skyddet är obefintligt så att säga. Det enda jag kunde hitta än så länge avr att jag kopplat MCLR till jord istället för Vcc. Kretsen har blivit flashad många ghr med detta program. Jag har inte ändrat ngt i programmet så det är nog kretsen som är kaputt..... få rkolla mer på det imorrn, är trött nu så inget verkar stämma
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Du skall inte koppla MCLR direkt till Vdd, där rekommenderas ett 10k motstånd. Utan det finns det risk att under vissa omständigheter så säger det tjoff. Allt enligt databladet.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Nä jag vet ... det var via ett motstånd jag hade kopplat
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Detta e helt sjukt.

Jag provade med en ny krets. Den funkar på labbplattan men när jag sätter den i sockeln på kretskortet så går de inte alls. Jag kan inte hitta några fel på kortet. Det sker dock ngt skumt. Port RA6 och Ra7 använder jag mig inte alls av, på labbdäcket är dessa portar noll volt. Men när ic'n sitter i sockeln på kretskortet så ligger det 5volt på dessa två pinnar. Dessa pinnar är inte anslutna till ngt på kretskortet. Då drar jag slutsatsen att de 5V kommer från själva Pic ic'n. Hur kan det ta komma sig. F.ö kör jag med intern oscillator och extern mclr

Snälla hjälp mig , jag är helt rådlös.
Cryptomaster
Inlägg: 593
Blev medlem: 17 december 2005, 02:23:20
Skype: crypto-master
Ort: Nyköping

Inlägg av Cryptomaster »

Kanske ett kopplingsschema över labbplattan vore fint ? :)
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Har tyvärr ingenstans att lägga upp det.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

http://imageshack.us/ brukar funka att lägga upp bilder
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Här kommer en enkel skiss av schemat.

http://img110.imageshack.us/my.php?image=larmpk1.jpg

Obs att den lilla kretsen 12F675 inte är inkopplad på varken labbplattan eller kretskortet. På kretskortet är det dock färdigt med sockel osv för den.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Ok, nu har jag gjort lite fler mätningar. Alltså alla ingångar har späningsdelarna R1/R2. Detta för att signalerna kommer at vara 12V (bil).

Om jag ansluter 5V signaler direkt på kretsens pinnar så fungerar larmet som det ska. Det intressanta är att jag kan få igång kretsen genom att lägga 12V på ingången märkt ON och detta generar i sin tur ca 5V på ben 6 på ic'n. På alla andra ingångar får jag bara ca 20mV på ic-benen när jag ansluter 12V. Detta kan jag inte förklara varför? Det borde bli precis som ON ingången eftersom de är lika.

Om jag tar bort kretsen och mäter bara direkt på sockeln så blir det 5V på alla ben om jag ansluter 12V till ingångarna precis som det ska. Värdena skiter sig alltås när ic'n sitter i sockeln. :cry:

Nedan är min kod till kretsen. Kan Pic'en på ngt sätt "Pulldown/Pullupa" dessa ben och sabba på detta sätt, och i såfall varför sker inte detta på labbplattan. Där har jag iof inte 12V signaler utan bara 5V med pulldownmotstånd på varje ben.

På RB4 provade jag att byta ut R1/R2 mot 1kohm och 820ohm. Detta resulterade i att det istället för ovan nämnda 20 mV blev ca 200mV!!!!

Kod: Markera allt

#define ON PORTB.F0
#define OFF PORTB.F1
#define IGNI PORTB.F2
#define DOOR PORTB.F3
#define SHOCK PORTB.F4

#define LARM PORTA.F1
#define LED PORTA.F0

int n=0;
int k=0;
int j=0;
int i=0;

void main(){

     VRCON=0x00;      //Vref av
     CMCON=0x07;      //Komp av
     TRISA=0;         //Port A utgångar
     TRISB=1;         //Port B ingångar
     
     while(1){
     
        LED=0;
        LARM=0;

        
        if(OFF==1)                     //Larm icke aktivt
          k=1;

          while(k==1){   //Larm väntar på ON signal
            LED=0;
            if(ON==1)
            k=0;
            }
            
         if((ON==1)&&(IGNI==0)){                    //Larm aktiverat
         //   delay_ms(6000);            //Väntar 6s innan bevakar
            n=1;
            LED=1;
            }


            
           while(n==1) {              //Larmet väntar på OFF eller
               if(OFF==1){            //trigg via DOOR/SHOCK
                 n=0;
                 delay_ms(1000);      //Väntar 1s, så inte OFF signal
                }                     //uppfattas som trigg!!

               if((DOOR==1)||(SHOCK==1)){
                 while((i<120)&&(IGNI)==0){
                        LARM=1;
                        delay_ms(400);
                        LARM=0;
                        delay_ms(400);
                        i++;
                        }
                      i=0;
                   }
               }
       }

}



Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

RA6/RA7 är pinnarna för extern kristall. Se till att konfigurera för att använda INTOSC, eller koppla till en kristall med tillhörande kondingar. Är det en Welleman-programmerare har jag för mig att denna är försedd med kristall. Du har troligtvis helt eneklt ingen klocka till CPU och då kan detinte fungera.
Användarvisningsbild
Mathias@Åland
Inlägg: 241
Blev medlem: 22 juni 2006, 20:19:11
Ort: Åland
Kontakt:

Inlägg av Mathias@Åland »

Borde det förresten inte vara TRISB=255 istället för TRISB=1? Med TRISB=1 så borde ju alla pinnar på PORTB utom pinne 6 bli utgångar.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Jag har ställt den för intern oscillator. Och som sagt så funkar ju grejerna på labbplattan även där utan xtal. Trisb=1 har jag använt innan och det funkar. Jag poängterar. Det är signalen som blir fel till portB ingångarna (fel späninngs nivå) och det är det som är felet med jag vet inte vad orsaken är
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Det där verkar inte bra alls. Du kanske menar -1 till TRISB, då blir den ingångar. Annars är det bara RB0 som kommer att vara ingång.

Dessutom behöver Du lite mera avancerat interface till 12V-ingångarna. Det är knappast 12V stabbad spänning, utan Du måste göra något med spänningsbegränsning.

Det allra enklaste är dioder som låser spänningen till att inte överstiga +5. Du måste även skydda mot att ingångarna kan dras under noll.

Ett bra sätt är att använda CMOS med smithttrigger-ingångar som buffer. Ett stort motstånd (megohm) på ingången, klippdioder och en konding. Det rensar långsamma signaler så de kan matas in i känslig elektronik.

Det som är kopplat till tändningen är en katastrof, det kan bränna kretsen när man vrider från nyckeln. Tändspolen ger en förbaskat kraftig kick då ifall brytarna i fördelaren är slutna.
Skriv svar