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
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.
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.
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.
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.
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?
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
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.
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
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.
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.