Forum: Mikrocontroller und Digitale Elektronik MPLAB Problem


von Klaus (Gast)


Lesenswert?

Ich habe ein PICF24-projekt übernommen.
MPLAB installiert, neuster Compiler. Projekt eingefügt. Den PIC neu 
geflasht. Alles hat super funktioniert.
Ich habe ein bisschen an den Configs für den Clock rumgespielt. Und 
irgendwann hat der PIC merkwürdig rumgesponnen.
Also wieder die orginale unveränderte Firmware drauf und er spinnt 
immernoch rum.

Nun habe ich den PC, von dem ich das Projekt übernommen habe mal 
angeworfen und den PIC von da aus geflasht. Und siehe da, alles 
funktioniert. Ich habe mir das Projekt von dem PC nochmal auf meinen 
kopiert. Geht nicht.

Nun meine große Frage, woran kann es liegen, dass es von meinem PC aus 
nicht mehr geht (es ging ja am Anfang). Was kann ich übersehen haben? 
Gibt’s irgendwelche MPLAB-Einstellungen, die ich vergessen haben könnte?

Gruß
Klaus

von Harald (Gast)


Lesenswert?

Linker-File?

von Harald (Gast)


Lesenswert?

Vielleicht stimmt Deine Fuse-Konfiguration im Code auch nicht. Schalte 
mal die Übernahme der Fuses aus dem Code ab. Vielleicht ist dies bei 
MPLAB des original Computers abgeschaltet. Und der Vorgänger hat die 
Fuses nur ein einziges Mal händisch eingestellt.

von Klaus (Gast)


Lesenswert?

Danke für die shcnelle Antwort. Was meinst du mit "Linker-File?" Also 
der Pfad ist richtig gesetzt. Programmieren haut hin.

Ich bin noch am einarbeiten in die Materie. Ich werd mich mal über 
Fuse-Konfiguration belesen.

von Klaus (Gast)


Lesenswert?

Ach damit sind die configuration bits gemeint. Die sind im Quellcode 
gesetzt.


// Setup configuration bits
_CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & COE_OFF & FWDTEN_OFF & 
ICS_PGx2 )
_CONFIG2( FCKSM_CSDCMD & OSCIOFNC_OFF & POSCMOD_XT & FNOSC_PRI & 
IOL1WAY_ON)

Diese hatte ich für einen Versuch geändert.

_CONFIG2( FCKSM_CSDCMD & OSCIOFNC_ON & POSCMOD_NONE & FNOSC_FRC & 
IOL1WAY_ON )

aber wie gesagt, die orginale Firmware wieder drauf zu spielen, bzw. die 
Änderung rückgängig machen, bewirkte leider nich.

von Klaus (Gast)


Lesenswert?

Die configuration bits sind auch nicht händisch auf dem Orginal-PC 
eingestellt. Sowohl dort, als auch auf meinem PC werden sie aus dem Code 
genommen.

von Harald (Gast)


Lesenswert?

Versuche die Einstellung zu finden, dass beim Programmieren nur geflasht 
wird und die Conf-Bits nicht mit geschrieben werden. Leider hab ich hier 
kein MPLab installiert, deshalb kann ich hier nicht nachsehen, wo die 
Einstellung abgeschaltet wird. Vergleiche die Einstellungen mit denen 
bei dem Original-Computer. Das Linker-File wird es nicht sein.

von Klaus (Gast)


Lesenswert?

Ist bei
Programmer -> Setting (ICD 3 Settings) -> Manually select memories and 
ranges -> Häkchen bei "Configuration" rausgemacht. Häkchen bei "Program" 
drin gelassen.

Hatte vorher die "gute Firmware" drauf. Hat leider nix gebracht, im 
Gegenteil, am UART kam jetzt nur absoluter Mist raus. Übrigens ähnlich 
dem, was raus kam, als ich die Configuration-Bits auf den internen Clock 
umgestellt hatte. Quasi, als ich direkt an der Config rumgespielt habe.
Vielleicht besteht da ein Zusammenhang?

Die ICD3 Settings habe ich auf beiden PCs schon verglichen. Sind gleich.

Im übrigen ist die Compiler-Version 3.22 auf dem Orginal-PC. MPLAB ist 
8.40
Bei mir ist Compiler 3.24 und MPLAB 8.56

Könnte es daran liegen?

von Harald (Gast)


Lesenswert?

Hm... Da stimmt wohl was mit der Clock nicht. Also es scheinen schon die 
Conf-Bits (Fuses) zu sein. Kannst Du mit dem Oszi die Baudrate messen? 
Oder mal mit dem Original-Computer alles Flashen und dann mal die Fuses 
mit dem neuen System nur einlesen. Ich weiß da leider jetzt auch nicht 
weiter.


Ich kann später auf der Arbeit mal schauen, dort hab ich das MPLAB auf 
dem Computer.

Gruß,
Harald

von Klaus (Gast)


Lesenswert?

Ich danke dir trotzdem schon vielmals für deine Bemühungen Harald.

Ich habe bereits eine PWM gemessen. Er gibt manchmal am UART den 
Startstring normal aus. PWM geht allerdings quasi nur noch im 
mehrere-sekundentakt und die nächste UART ausgabe, die eigentlich nach 
20 sekunden kommen soll, kommt minuten später. Allerdings kommt sie dann 
als lesbare Zeichen. Was ja bedeutet, dass der Clock für die 
UART-Ausgabe richtig läuft. nur für alles andere nicht. und das nur an 
meim PC.

Zum verzweifeln.

Ich werd das mit den Fuses einlesen mal angehn.

von Klaus (Gast)


Lesenswert?

hmm, ich finde das mit den config-bits aus dem flash auslesen nicht. :(

übrigens, das DevBoard läuft hier auf dem PC einwandfrei.

von Simon L. (simon_l)


Lesenswert?

Hi,

wie sieht des denn aus wenn du auf beiden rechnern die Version 8.40 
installierst? Und ist vielleichte ein Rechner mit XP der andere mit 
Win7? Hört sich für mich nach einem Treiberproblem an. Bei mir spinnt je 
nach Version vom Treiber das ICD2, es schaltet sich einfach aus, aus und 
wieder einstecken behebt das Problem.
Die HW und das ICD3 kann man ja ausschließen da es ja am "alten" PC bei 
dir funktioniert.

Gruß Simon

von Klaus (Gast)


Lesenswert?

Also auf dem alten läuft WinXP und auf meim Win7. Ich hab mir grad die 
Version 8.40 und Compiler 3.22 gezogen. ich installier's mal um.

Den USB-Treiber zieht er sich ja automatisch.

von Klaus (Gast)


Lesenswert?

ok. version 8.40 geht mit Windows7 64bit nicht.
nun hab ich Version 8.36 und compiler 3.22 drauf und es funktioniert!

Ich weiß jetzt nicht, ob's am Compiler oder an der IDE gelegen hat. So 
funktioniert's auf jeden Fall.

Danke für die Hilfe.

von Simon L. (simon_l)


Lesenswert?

Hi,

solche Fehler hab ich beim Studium öfters gesehen, war immer nur eine 
bestimmte Version vom MPLAB mit Vista, war wohl ein Treiberprob.

Gruß Simon

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.