Sida 5 av 11

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

Postat: 3 januari 2012, 16:44:22
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?

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

Postat: 3 januari 2012, 17:13:14
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.

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

Postat: 3 januari 2012, 17:33:06
av fireas
Tabba koden?

Och det är hela min kod har inte skrivit annat? : :oops:

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

Postat: 3 januari 2012, 18:08:10
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.

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

Postat: 3 januari 2012, 18:10:48
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

      }
   }
}

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

Postat: 3 januari 2012, 18:14:27
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.

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

Postat: 4 januari 2012, 01:22:04
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.

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

Postat: 4 januari 2012, 01:46:31
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.

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

Postat: 4 januari 2012, 15:34:36
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:)

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

Postat: 4 januari 2012, 15:57:37
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.

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

Postat: 4 januari 2012, 16:16:54
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...

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

Postat: 4 januari 2012, 18:36:17
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

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

Postat: 4 januari 2012, 19:00:12
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.

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

Postat: 4 januari 2012, 19:01:20
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...

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

Postat: 4 januari 2012, 19:05:10
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... :-)