PIC: Felmeddelande vid bränning

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
BultaIBo
Inlägg: 32
Blev medlem: 21 mars 2006, 18:08:03
Ort: Hammarö

PIC: Felmeddelande vid bränning

Inlägg av BultaIBo »

Säkert en enkel sak för den som kan...
Jag får följande fel när jag försöker ladda ner min egenhändigt kompilerade hex-fil till min PIC16F877A:

c:\Program\Release>xwisp2w Test1.hex
XWisp2 version 1.6.01 (Aug 14 2005, Open Watcom C 1.30)
Required argument for command TEST1.HEX missing
XWisp2 failed after 0.28 seconds, rc 36!

Jag använder mig förnärvarande av PICC-lite och har väl säkert missat någon smart inställning där.

Någon som har något bra tips?
DeeJayPA
EF Sponsor
Inlägg: 1384
Blev medlem: 4 december 2004, 21:17:57
Ort: Luleå

En typ av lösning

Inlägg av DeeJayPA »

Testa http://home.hccnet.nl/d.a.kuipers/pic/bumblebee/ tycker det är mycket enklare än xwisp och funkar bra.
Användarvisningsbild
JimmyAndersson
Inlägg: 26579
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

BultaIBo:
Det fattas en liten grejj i din rad. Så här ska det vara:

xwisp2w go test.hex

Du har alltså glömt go

edit: Det kan hända att 'go' ska vara efter filnamnet. När jag skriver det så blir det utan att tänka, så då blir det rätt. Nu när man måste tänka efter så blir man inte lika säker.. :) Testa, så ser du vilket som är rätt.



om du bara skriver xwisp2w så ser du alla kommandon (och kretsarna den stödjer).
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Jimmys lösning ska fungera, men jag tror också att du helt enkelt
kan plocka bort ".HEX"... :

xwisp2w test

OBS att det även förutsätter att din Wisp628 sitter på COM1 (vilket är default),
annars blir det :

xwisp2 port 2 go test

om den t.ex sitter på COM2...
Användarvisningsbild
Icecap
Inlägg: 26648
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Det kan ju vara att sökvägen är en annan än för xwisp2w.exe.....

Man måste ange absolut sökväg om man inte redan står i rätt bibliotek där hexfilen är.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

En annan sak...

> XWisp2 version 1.6.01...

Aktuell version är 1.8.2 : http://www.robh.nl/

Jag säger inte att det har med felmeddelandet att göra, men ändå... :-)
Användarvisningsbild
BultaIBo
Inlägg: 32
Blev medlem: 21 mars 2006, 18:08:03
Ort: Hammarö

Inlägg av BultaIBo »

Jag har testat att ladda ner en "färdig" hex-fil (b877-1.hex från http://www.voti.nl/blink/index.html) och det fungerar utmärkt!

Jag skrev då:
>xwisp2w b877-1.hex

eftersom jag har wisp:en på COM1 så kunde jag utelämna "go", eller?

Jag tror därför att mitt problem ligger i hur jag genererar hex-filen!

Några smarta tips och tricks vad jag bör tänka på där?

Nu använder jag PICC-lite, är MicroC bättre?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Jag tror därför att mitt problem ligger i hur jag genererar hex-filen!

Posta den så får vi se...
Användarvisningsbild
BultaIBo
Inlägg: 32
Blev medlem: 21 mars 2006, 18:08:03
Ort: Hammarö

Inlägg av BultaIBo »

Här är C-koden:

Från main.c

Kod: Markera allt

#include <pic.h>
#include "init.h"
void
main(void)
{
	int i = 0;
	init();   // Set TRISA among other things...
	
	RA0=1;         
	for(i=0;i<1000000;i++)
	{
		i++;
		i--;	
	}
   	RA0=0;     
}

Från init.c

Kod: Markera allt

#include <htc.h>

/* Program device configuration word
 * Oscillator = RC
 * Watchdog Timer = On
 * Power Up Timer = Off
 * Brown Out Detect = On
 * Low Voltage Program = Enabled
 * Flash Program Write = Write Protection Off
 * Background Debug = Disabled
 * Data EE Read Protect = Off
 * Code Protect = Off
 */
__CONFIG(RC & WDTEN & PWRTDIS & BOREN & LVPEN & WRTEN & DEBUGDIS & DUNPROT & UNPROTECT);

// Peripheral initialization function
void init(void){
	/***** Common Code ****
	 *  Peripheral interrupts not enabled
	 *  Global interrupt disabled during initialization
	 */
	INTCON	= 0b00000000;
	/*
	 *  Port directions: 1=input, 0=output
	 */
	TRISA	= 0b00000000;
	
	ei();	// Global interrupts enabled
	
}
Och här är hex-filen

Kod: Markera allt

:0600000000308A00052813
:100008000900A001A101082883120313A001A1017E
:1000180041200514A001A101112883120313A00A8D
:100028000319A10AA0080319A103A003A00A031930
:08003800A10A2008F0002108D4
:10004000F1000030F11BFF30F200F3007308803A3A
:10005000F4000030803A7402031D38280F30720219
:10006000031D382842307102031D382840307002C9
:10007000031C3B283C28112883120313051083011D
:1000800005288B018316031385018B178312080043
:02400E00FF3F72
:00000001FF

I HI-TECH IDE:n står det så här i den genererade binaries-strukturen

-Binaries
+Test1.hex [PIC14le]

Varför står det PIC14le efter? Är säker på att jag ställt in att jag skall använda PIC16F877A...!

Jag kör med en extern kristall på 20 MHz och två kondingar...vad skall Oscillator vara satt till? Nuvarande inställning är RC
Användarvisningsbild
Icecap
Inlägg: 26648
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

PIC14IE är sannolikt för PIC'ar med 14 bit struktur så det är OK.

20MHz kristall ska vara HS i oscillatorconfiguration.

Felmeddelandet tror jag är för att din hex-fil kanske saknar information om vilke processor fast de gånger jag har fått den samma är det för att WISP'en inte har "tag" i PIC'en ordentligt. Det har oftast varit glapp.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

"A shot in the dark"...

Har du möjlighet att välja "format" på HEX filen i ditt verktyg ?
INHX32 är default i MPLAB, om du kan, prova med det.

Hinner inte i kväll eller i morgon, men skulle annars enkelt
kunna testa din HEX fil på en 877A...
Användarvisningsbild
BultaIBo
Inlägg: 32
Blev medlem: 21 mars 2006, 18:08:03
Ort: Hammarö

Inlägg av BultaIBo »

Först och främst vill jag tacka för all suverän hjälp och tid som folk lägger ner. Helt otroligt!

Felet löste sig så här, jag provade helt enkelt med att läggat till "go" i kommandot...allt enligt JimmyAndersson i andra inlägget!

Alltså:
xwisp2w Test1.hex ---> Fungerar inte
xwisp2w b877-1.hex---> Fungerar
xwisp2w go Test1.hex---> Fungerar!!!

Konstigt eller?!

Tycker mig minnas att jag läst att man inte behöver ha med "go" om man kör på COM1...men det kanske jag bara drömt...hur som helst så funkar det nu och det är jag glad för!
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Inlägg av bearing »

BultaIBo skrev:Här är C-koden:
Ryms det verkligen en hel miljon i en integer? I den C-variant för PIC jag använder rymmer integers bara tal mellan -128 och +127, 8 bitar alltså.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Helt otroligt!

Håller med, borde sitta i bastun nu som har stått varm ett tag...

Eftersom du är på så gott humör, kanske du kan ta dig tid att
kommentera min fråga om din version på XWisp2 ?
Någon speciell anledning att du kör en äldre version ?

> jag provade helt enkelt med att läggat till " go " i kommandot...

Det *jag* tycker är "helt otroligt" är att du inte provade det *innan* du
postade här alls... :-)

Hur som helst, trevligt att det fungerar !! :-)
Användarvisningsbild
BultaIBo
Inlägg: 32
Blev medlem: 21 mars 2006, 18:08:03
Ort: Hammarö

Inlägg av BultaIBo »

Japp...det var ju inget bra exempel på C-kod. Dock så använder jag HI-TECH PICC V9.50 och där är en int minst 16-bitar... i mitt dåliga exempel så innebär det väl att i kan få värden mellan -32,768 till +32,767. Men det var knappast det misstaget i C som gjorde att jag fick fel vid bränning.


Eftersom jag är ny på PICC så gjorde jag så att jag började med att läsa på följande sida:
http://www.jescab.se/Programvara.html och under rubriken "Programvara för PC:n." hittade jag en länk till xwisp2_161. Det är antagligen anledningen till att jag har en gammal programvara...
Skriv svar