dsPIC-Chips laufen mit einem Bruchteil der normalen Geschwindigkeit

9

Ich habe zwei Leiterplatten. Einer hat einen dsPIC30F6012a, der andere einen dsPIC30F6015. Beide werden mit einem PICkit 3 aus separaten eigenständigen HEX-Projekten in MPLAB X programmiert. Beide Firmwares wurden vor diesem Zeitpunkt problemlos auf Dutzende von Einheiten angewendet. Derzeit funktioniert die Firmware ordnungsgemäß, wenn sie von allen PCs bis auf einen programmiert wird. Auf diesem einen PC programmieren beide Firmwares ab gestern ohne offensichtlichen Fehler, aber mit ungefähr 1/20 normaler Geschwindigkeit. Vor gestern hat dieser PC auch diese Karten problemlos programmiert.

Begrüßungsbildschirme dauern zwei Minuten statt fünf Sekunden, die Lichter blinken sehr langsam, und ansonsten funktioniert alles korrekt. Es ist fast so, als ob die Oszillatorkonfigurationsbits geändert worden wären, aber mir ist nirgendwo in MPLAB X bekannt, was für ein eigenständiges Projekt möglich ist.

Also zwei verschiedene Firmwares, auf zwei verschiedenen Chips, auf mehreren Instanzen desselben PCB-Designs, die mit unterschiedlichen Geschwindigkeiten laufen, abhängig davon, welcher PC zum Programmieren verwendet wird. Das Neuprogrammieren einer langsamen Karte auf einem "guten" PC behebt das Problem. Wenn Sie dieselbe Karte auf dem "schlechten" PC neu programmieren, wird sie zurückgebracht. Ich kann mir nur vorstellen, dass auf diesem einen PC jemand auf die Schaltfläche "Langsam fahren" geklickt hat, aber ich kann nichts finden, das mit dieser Bezeichnung versehen ist. (Unsere Techniker sind jedoch ziemlich kreativ.) Ich deinstalliere derzeit MPLAB X, lösche die Benutzereinstellungen und installiere eine neuere Version neu. (Von 1,3 auf 1,6.) Aber selbst wenn das das Problem behebt, bin ich immer noch nicht glücklich, nicht zu wissen, was los ist. Hat jemand einen Einblick in dieses Problem?

Stephen Collings
quelle
Führt der PC nach der Programmierung eine Überprüfung durch? Sie können damit die Konfigurationsbits überprüfen, da dies anscheinend das Problem ist.
Überprüfen Sie, ob ausgeführt wird, ja. Es wurden keine Fehler ausgegeben, daher habe ich angenommen, dass die Konfigurationsbits enthalten sind, aber ich habe nicht manuell nach diesen gesucht. Wahrscheinlich hätte ich es tun sollen, nur um mehr Daten zu erhalten, aber ich war unter Zeitdruck und habe mich direkt für die Deinstallations- / Neuinstallationslösung entschieden. Warten auf eine Nachricht, ob das funktioniert hat oder nicht!
Stephen Collings
Wird eine von einem langsam induzierenden PC programmierte Karte auf einem "guten" PC überprüft?
Chris Stratton
Leider (ha!) Hat die Neuinstallation das Problem behoben, sodass ich keine weiteren Daten erfassen kann ... macht es schwierig, eine endgültige Antwort zu erhalten!
Stephen Collings
Diese Frage liest sich wie etwas aus einem Tech-Thema The Onion .
Kevin Chen

Antworten:

1

In MPLAB X können die Konfigurationsbits nicht getrennt vom Code gesetzt werden (wie bei MPLAB 8). Die Konfigurationsbits können nur dann "falsch" sein, wenn jemand den Code geändert hat. Da Sie ein eigenständiges HEX-Dateiprojekt verwenden, ist dies unwahrscheinlich.

Sie haben nicht gesagt, ob die Neuprogrammierung einer der "schlechten" Karten auf einem "funktionierenden" PC das Problem tatsächlich behebt. Probieren Sie es aus.

Eine andere Möglichkeit (wenn Sie keinen Codeschutz verwenden) besteht darin, die HEX-Datei aus einem "funktionierenden" Setup zurückzulesen und in eine der fehlerhaften Karten zu flashen. Dies sollte Codeänderungen als eine der Unsicherheiten beseitigen.

Ein weiteres (unwahrscheinliches) Szenario besteht darin, dass Ihr dsPIC-Bestand mehrere Revisionen abdeckt und eine schrittweise Änderung Ihren Code irgendwie ungültig gemacht hat. Stellen Sie sicher, dass die IC-Teilenummern korrekt sind. Wenn das PICkit3 eine Verbindung herstellt, sollte ein Revisionscode angezeigt werden, auf den Sie mit der Silizium-Revision verweisen können.

BEARBEITEN: Es ist jetzt Zeit sicherzustellen, dass die verschiedenen Installationen von MPLAB X auf allen PCs übereinstimmen - sind sie dieselbe Revision? Sind sie die neueste Version?

Immer wenn es eine neue Version von MPLAB X gibt, wird die PICkit3-Firmware häufig aktualisiert. Möglicherweise liegt ein Fehler oder eine Inkompatibilität mit der älteren PICkit3-Firmware und Ihrer HEX-Datei vor.

Ich hatte kürzlich eine ähnliche Situation (jetzt, wo es mir gerade aufgefallen ist - duh), in der eine HEX-Datei, die ich auf meinem Computer mit MPLAB X und XC16 generiert habe, auf meinem Computer korrekt programmiert wurde, aber nicht auf einem anderen Computer mit MPLAB 8 v8. 50 - Der Code schien langsamer zu laufen (Initialisierungs-LEDs schienen träge zu sein). Als dieser PC mit MPLAB 8 v8.88 unter Verwendung desselben Programmierers und derselben HEX-Datei aktualisiert wurde, funktionierten die Dinge wieder. Seltsam.

Adam Lawrence
quelle
Ich habe dieselbe Karte auf "guten" und "schlechten" PCs neu programmiert, und das Problem trat auf und ab und folgte dem PC, der zum Programmieren der Karte verwendet wurde. Ich habe die Frage bearbeitet, um dies widerzuspiegeln.
Stephen Collings