Pkwarn0003, går ej att lösa meha av andra trådar (PIC prog)

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
fireas
Inlägg: 204
Blev medlem: 26 januari 2009, 12:44:25

Re: Pkwarn0003, går ej att lösa meha av andra trådar (PIC pr

Inlägg av fireas »

Sodjan: Det är ett självskrivet blink program:) väldigt enkelt.


Jag kopplar direkt till picen utan labkortet (då denblev skadad).

Av någon anledning kan jag göra ett kommando sedan slås VDD on och jag måste koppla ur usb kaben och in igen samt. stänga VDD.

Så jag drog ner VDD(i programmet) till 2.5V och kan jag göra saker som jag kunde innan. (Vet någon vad detta beror btw? ren nyfikenhet)

Dock så ska det såklart komma ett nytt fel.

"Programming failed at program memory address 0x000000"

Verkar vara någonting fel på programmet jag skrivit.

Ser ut såhär :

Kod: Markera allt

void main() {
unsigned long ADC_niva;
TRISA = 0xFF; // PortA - input
TRISB = 0x00; // PortB - output
TRISC = 0x00; // PortC - output

ANSEL = 1;    // AN pinnarna görs analoga
ANSELH = 1;
C1ON_bit = 0; // Avaktivera comparatorerna C2ON_bit = 0;



while (1) {
ADC_niva = ADC_Read(2);          //Läser värde från 'AN2'
ADC_niva = (488*ADC_niva)/100;      //Får spänning i mV

if (ADC_niva >= 1000) {
PORTB = 0xFF; // PortB - LEDs light up
PORTC = 0x00; // PortC - LEDs off

} else if (ADC_niva <= 5000) {
PORTB = 0x00; // PortB - LEDs light up
PORTC = 0x00; // PortC - LEDs light up

}
}
}
EDIT:

Läste någonstans att om man "brännt till processorn" med Code-protect och Data-protect så går det inte att lägga in ny kod i processorn.

Stämmer detta?
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46989
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Pkwarn0003, går ej att lösa meha av andra trådar (PIC pr

Inlägg av TomasL »

Dags att du börjar läsa manualerna, kanske :)

Kod: Markera allt

"Programming failed at program memory address 0x000000"
betyder att programmeringen misslyckats, har inget med ditt program att göra, överhuvudtaget, läs manualerna.
Läste någonstans att om man "brännt till processorn" med Code-protect och Data-protect så går det inte att lägga in ny kod i processorn.
Nej det stämmer inte alls, igen läs manualerna (hmm, jo det stämde på de gamla UVEPROM krersarna dvs 16Cxx från tidernas begynnelse (dvs de som hade ett fönster och raderades med UV-ljus).

Edit,
1: Tabba koden så den går att läsa.
2: Ta med HELA koden från första raden inklusive hur config-registren är ställda.
Användarvisningsbild
fireas
Inlägg: 204
Blev medlem: 26 januari 2009, 12:44:25

Re: Pkwarn0003, går ej att lösa meha av andra trådar (PIC pr

Inlägg av fireas »

Tabba koden?

Och det är hela min kod har inte skrivit annat? : :oops:
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46989
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Pkwarn0003, går ej att lösa meha av andra trådar (PIC pr

Inlägg av TomasL »

"tabba" = tabulera indrag osv.

Nej, det kan inte vara allt, det måste finnas ett antal .h filer som inkluderas samt inställningarna av konfigurationsregistren.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Pkwarn0003, går ej att lösa meha av andra trådar (PIC pr

Inlägg av sodjan »

Och det enda som egentligen är viktigt här, hur är "external/internal MCLR" satt.

> Av någon anledning kan jag göra ett kommando sedan slås VDD on och jag måste koppla ur usb kaben och in igen samt. stänga VDD.

Jag hänger inte med här. Vad betyder att "göra ett kommando"?
Var/hur "slås VDD on" och "samt. stänga VDD."

> Så jag drog ner VDD(i programmet) till 2.5V...

Varför då ? Hur fick du *den* idén?
Notera att (om-) programmeringen sannolikt inte fungerar alls vid 2.5V.
"Erase All" kräver normalt sätt minst 4.5V för att fungera, i alla fall på 5V's modeller.
Har du kört med 2.5V även då de fel som du beskriver uppstog?

> ...och kan jag göra saker som jag kunde innan. (Vet någon vad detta beror btw? ren nyfikenhet)

OK, du får ursäkta, men sätt dig själv i våran roll. :-)
Hur ska vi kunna säga vad "saker" beror på när du hemlighåller vad "saker" är? :-)

> Verkar vara någonting fel på programmet jag skrivit.

Det går inte att säga just nu, du får ju inte ens in programmet i processorn!
Själva programmeringsproblemen har inte ett smack med *programmet* att göra.
Men skrev jag inte det i ett tidigare inlägg? Såg du inte det? :

>> Beror det på att programmet i sig inte fungerar?
>
> Nej, som Tomas säger så har det inte ett smack med det att göra.
> Felet kommer mycket tidigare och uppstår oavsett om du försöker
> flasha något eller inte. Programmeringsprogrammet får helt enkelt
> inte kontakt med din PIC (via PICkit2'an).

> [koden] Ser ut så här :

CONFIG inställningarna saknas !!

> Alla sladdar är som de ska,

Det bevisar ju inget för oss. Vi vet ju inte ens vad du tror är rätt. :-) :-)

> rätt pic vald i programmet (har ej autodetection)...

Finns normalt inte någon anledning att *inte* köra med autodetect.
Om inte autodetect fungerar så fungerar säkert inte programmeringen heller.

> Läste någonstans att om man "brännt till processorn" med Code-protect och Data-protect
> så går det inte att lägga in ny kod i processorn.
> Stämmer detta?

Nej. Men man kan inte *läsa* koden från processorn. Men en "Erase All" fungerar alltid, förrutsatt
att man kör med en matningsspänning inom spec för en "Erase All", normalt minst 4.5V.

> Tabba koden?

Något i stil med :

Kod: Markera allt

void main() {
   unsigned long ADC_niva;
   TRISA = 0xFF; // PortA - input
   TRISB = 0x00; // PortB - output
   TRISC = 0x00; // PortC - output

   ANSEL = 1;    // AN pinnarna görs analoga
   ANSELH = 1;
   C1ON_bit = 0; // Avaktivera comparatorerna C2ON_bit = 0;

   while (1) {
      ADC_niva = ADC_Read(2);          //Läser värde från 'AN2'
      ADC_niva = (488*ADC_niva)/100;      //Får spänning i mV

      if (ADC_niva >= 1000) {
         PORTB = 0xFF; // PortB - LEDs light up
         PORTC = 0x00; // PortC - LEDs off

      } else if (ADC_niva <= 5000) {
         PORTB = 0x00; // PortB - LEDs light up
         PORTC = 0x00; // PortC - LEDs light up

      }
   }
}
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Pkwarn0003, går ej att lösa meha av andra trådar (PIC pr

Inlägg av sodjan »

Lite kort (det förra blev lite långt... :-) ) :

- Beskriv hur det är kopplat. Komplettera gärna med en bild. "Kopplat rätt" duger inte.
- Hur är det matat? Enbart från PICkit2 eller har du något extern spänningsmatning ?
- Om du kör utan labbkortet, hur är det med avkopplingskondingar ?
- CONFIG inställningarna, som sagt, men kan aldrig sägas för ofta. :-)
- Kör alltid med 5V, om det är en vanlig 5V processor.
Användarvisningsbild
fireas
Inlägg: 204
Blev medlem: 26 januari 2009, 12:44:25

Re: Pkwarn0003, går ej att lösa meha av andra trådar (PIC pr

Inlägg av fireas »

hehe långt e bra:)

Jag kommer att besvara alla frågor imorgon bitti då jag precis kom hem och är lite trött:)

Men om nåon skulle vilja förklara vad configen är för ngt i detta fall så hade det uppskattats. Koden jag skrivit är den jag visat men om det finns en befintlig config så kanske jag kan hitta den någonstans men jag har själv inte gjort någon.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Pkwarn0003, går ej att lösa meha av andra trådar (PIC pr

Inlägg av sodjan »

Var det MikroC, HiTech eller ASM du körde? Minns inte riktigt...
Hur som helst så bör det väl framgå av dokumentationen hur du anger config.
Antingen anger man något direkt koden eller i någon speciell funktion i IDE't.
Om det är ASM så lägger du bara till ett __CONFIG kommando, du kan t.ex
kolla de exempelfiler som kommer med till MPLAB.

Eller menar du vad "config" *är* ?
Det framgår av databladet för processorn.
Det är väldigt grundläggande inställningar för hur processorn ska fungera,
val av oscillator t.ex, och en del andra viktiga saker.
Användarvisningsbild
fireas
Inlägg: 204
Blev medlem: 26 januari 2009, 12:44:25

Re: Pkwarn0003, går ej att lösa meha av andra trådar (PIC pr

Inlägg av fireas »

sodjan skrev:- Beskriv hur det är kopplat. Komplettera gärna med en bild. "Kopplat rätt" duger inte.
Schema över hur det är kopplat
Bild

Bild över kopplingen( Grönsladd - pin 1)
Bild
sodjan skrev:- Hur är det matat? Enbart från PICkit2 eller har du något extern spänningsmatning ?
När jag programmerar den så använder jag bara PICkit2 matningen. har extern spänning bara när jag testar programmet i efterhand (kopplar då bort pickitet)
sodjan skrev:- Om du kör utan labbkortet, hur är det med avkopplingskondingar ?
Har inga avkopplingskondensatorer, det kan ju vara skadligt för kretsen men gör det skillnad i programmeringen (bränningen)?
sodjan skrev:- CONFIG inställningarna, som sagt, men kan aldrig sägas för ofta. :-)
Det enda jag får fram i MikroC (vilket är det jag använder) är 'Project Settings' vilket bara ger mig följande info:

Device
Name : P16F690

MCU Clock
Freq: 8MHz

Build\Debugger Type
Build Type : Release
Debugger : Software


Har ingen aning om hur jag får fram configen annars och hittar inte info om det:(
sodjan skrev:- Kör alltid med 5V, om det är en vanlig 5V processor.
Det gör jag:)
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46989
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Pkwarn0003, går ej att lösa meha av andra trådar (PIC pr

Inlägg av TomasL »

ar ingen aning om hur jag får fram configen annars och hittar inte info om det:(
Står i manualen till ditt IDE, läs.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Pkwarn0003, går ej att lösa meha av andra trådar (PIC pr

Inlägg av sodjan »

> Har inga avkopplingskondensatorer,

OK.
Standardrekomendation är att *alltid* ha en 100 nF keramiskt konding
i närheten av processorn mellan Vdd och jord. Alltså inte bara vid
programmeringen, utan *alltid*. Det finns exempel på att processorn
inte kommer över i programmerings-mode utan avkoppling.

> Det enda jag får fram i MikroC (vilket är det jag använder)...

Just detta (hur man sätter config-bitarna) är ett av de områden där
Mikroelektronikas dokumentation är katastrofalt dålig! Det är dock inte
det enda området, den är generellt väldigt dålig...

Sök på "config" i denna manual :
http://www.mikroe.com/eng/downloads/get ... c_v101.pdf

Pro manualen säger också:
"Also, you can change configuration bits of the selected chip in the Edit Project window."

Är "avståndsmätaren" bortkopplad när du (försöker) programmera ?
Kanske flytta den till en annan ledig pinne ? Varför valde du just
samma pinne som progremmeringen sker via när du har andra
lediga pinnar ?

Vad har du för strömbegränsning till lysdioderna ? Ser inget på bilden...
Användarvisningsbild
fireas
Inlägg: 204
Blev medlem: 26 januari 2009, 12:44:25

Re: Pkwarn0003, går ej att lösa meha av andra trådar (PIC pr

Inlägg av fireas »

Mina dioder är på 2,8V så jag skippade motstånd och låter de lysa som de gör.

Ska ta fram lite kondensatorer o se omjag har en 100nF, annars ut och köpa.

- Avståndsmätaren får ingen ström då programmering sker, den får bara ström av extern matning och den är bortkopplad vid det tillfället. Dessutom kopplar jag alltid bort Vdd sladden som går till mätaren.



Då ska vi se, här e min config :S


Bild
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46989
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Pkwarn0003, går ej att lösa meha av andra trådar (PIC pr

Inlägg av TomasL »

Och var har du klockkristallen, föreslår att du läser i databladet/referensmanualen om just din processor.
Speciellt avsnitten om oscillatorn och Device-Config.

Dessutom bör du om möjligt skriva in configen i koden istället för att använda IDE'ns config-historia

Normalt skriver man det som:
#pragma __config__ eller #pragma config och sedan register/bitar, helt beroende på utvecklingsmiljö och vad IDE'n/kompilatorn vill ha.
Detta lägger man vanligtvis överst i Main-filen eller som en separat header som inkluderas först i main-filen.

Till exempel

Kod: Markera allt

#pragma config FPLLMUL = MUL_20, FPLLIDIV = DIV_2, FPLLODIV = DIV_1, FWDTEN = OFF
Exakt hur du gör får du kolla i din kompilators manual.

En annan sak, labb-plattor tenderar till att skapa glappkontakt överallt.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Pkwarn0003, går ej att lösa meha av andra trådar (PIC pr

Inlägg av sodjan »

> Mina dioder är på 2,8V så jag skippade motstånd och låter de lysa som de gör.

Gör INTE det!

> Ska ta fram lite kondensatorer o se om jag har en 100nF,

Värdet är inte jättekritiskt, det är bara att 100 nF är vanliga och
finns i allas "junk-box". :-) Men vad som helst mellan 50 och ett par hundra
nF fungerar nog, det viktiga är att det är keramiska ("snabba") kondingar.

> Då ska vi se, här e min config

Ja men då så... :-) Hittade du inte den förrut ?
Stämmer det där med hur du vill ha det och hur du har kopplat upp det ?
Av bilden som du postade så ser det inte ut som att du kör "HS" !?

Har du läst delen i databladet om config som jag tror att jag sa tidigare?
Alltså "14.1 Configuration Bits" på sidan 198...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Pkwarn0003, går ej att lösa meha av andra trådar (PIC pr

Inlägg av sodjan »

Tillägg...

Det som kan vara kritiskt för själva progarmmeringen är avkoppligen (100 nF)
och eventuellt att en av programmeringspinnarna har annan last inkopplad.
Du svarade inte på varför sensorn sitter på just *den* pinnen.

Oscillator felet påverkar inte programmeringen, men programmet
kommer så klart inte att köras alls... :-)
Skriv svar