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.
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.
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.
hmm, ich finde das mit den config-bits aus dem flash auslesen nicht. :( übrigens, das DevBoard läuft hier auf dem PC einwandfrei.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.