PIC18F2585 verliert Programmierung

OP #7858160
Lesenswert?

Hallo in die Runde,

ich habe erfolgreich eine Schaltung mit dem Prozessor PIC18F2585 im Einsatz. Es funktioniert alles so, wie es soll. Aber inzwischen ging schon mehrmals gar nichts mehr, nach einer Neuprogrammierung des PIC war der Fehler behoben. Der gleiche Effekt trat bei unterschiedlichen Modellen des PIC18F2585 auf.

Was kann die Ursache sein, dass der PIC seine Programmierung plötzlich vergisst? Wie kann ich das verhindern?

Joachim

#7858165
Lesenswert?

Joachim U. schrieb:

Neuprogrammierung des PIC war der Fehler behoben. Der gleiche Effekt trat bei unterschiedlichen Modellen des PIC18F2585 auf.

Bei unterschiedlichen Modellen oder bei unterschiedlichen Exemplaren?

Wenn Du Dich nicht exakt ausdrückst, dann denkst Du wahrscheinlich auch wirr.

Was kann die Ursache sein, dass der PIC seine Programmierung plötzlich vergisst? Wie kann ich das verhindern?

Eine Möglichkeit ware, dass die Brownout-Einstellungen nicht korrekt sind. Ein Brownout ist ein Absinken der Spannung, die zu Fehlern im Programmablauf führen. Dafür gibts im Config Word an Adresse 0x300002 Konfigurationsbits. Diese Bits werden beim Flashen des Prozessors mitprogrammiert und befinden sich im HEX-File. Siehe Datenblatt Seite 330ff. Die richtigen Werte hängen von der Schaltung und der Betriebsspannung ab.

Ansonsten kann auch die Schaltung, in der sich der PIC befindet, defekt sein oder Designfehler aufweisen. Das kann ich an dieser Stelle nicht beurteilen, ohne Board plus Doku auf meinem Schreibtisch zu haben.

fchk

OP #7858179
Lesenswert?

Hallo Ihr Beiden,

ich habe den PIC bei Reichelt gekauft und es handel sich bei den Fehlern um verschiedene Expemplare einer Lieferung.

Frank K. schrieb:

Eine Möglichkeit ware, dass die Brownout-Einstellungen nicht korrekt sind. Ein Brownout ist ein Absinken der Spannung, die zu Fehlern im Programmablauf führen. Dafür gibts im Config Word an Adresse 0x300002 Konfigurationsbits. Diese Bits werden beim Flashen des Prozessors mitprogrammiert und befinden sich im HEX-File. Siehe Datenblatt Seite 330ff. Die richtigen Werte hängen von der Schaltung und der Betriebsspannung ab.

Wie kann ich diese Einstellung ändern?

Frank K. schrieb:

Ansonsten kann auch die Schaltung, in der sich der PIC befindet, defekt sein oder Designfehler aufweisen. Das kann ich an dieser Stelle nicht beurteilen, ohne Board plus Doku auf meinem Schreibtisch zu haben.

Worauf muss ich im Layout achten? Kurze, kräftige Masseführung? Stützkondensator 100nF an den Spannungsanschlüssen? Was eventuell noch? Joachim

#7858233
Lesenswert?

Joachim U. schrieb:

Die richtigen Werte hängen von der Schaltung und der Betriebsspannung ab.

Wie kann ich diese Einstellung ändern?

Normalerweise: Quellcode ändern, compilieren, flashen. Wenn Du keinen Quellcode hast, wirds kompliziert. Dann musst DU Dich sehr gut mit dem Intel Hex Format auskennen, die verschiedenen Recordtypen kennen und in der Lage sein, die zeilenweisen Prüfsummen anzupassen.

Frank K. schrieb:

Ansonsten kann auch die Schaltung, in der sich der PIC befindet, defekt sein oder Designfehler aufweisen. Das kann ich an dieser Stelle nicht beurteilen, ohne Board plus Doku auf meinem Schreibtisch zu haben.

Worauf muss ich im Layout achten? Kurze, kräftige Masseführung? Stützkondensator 100nF an den Spannungsanschlüssen? Was eventuell noch?

Das übliche Elektronik-Grundwissen halt. Der Rest steht im Datenblatt eigentlich drin.

fchk

#7858241
Lesenswert?

Joachim U. schrieb:

Was kann die Ursache sein, dass der PIC seine Programmierung plötzlich vergisst? Wie kann ich das verhindern?

Erster Schritt: Programmspeicher vor dem Brennen vergleichen. Dann siehst Du, was geändert wurde.

Zweiter Schritt: Feststellen, ob das Programm seinen Programmspeicher überschreiben darf (gibt es z.B. einen Booter oder werden Daten im Flash abgelegt)

Dritter Schritt: Speicher gegen überschreiben Schützen (wie genau steht im Datenblatt oder wird im Programmer als Option angeboten)

#7858261
Lesenswert?

Ich benutze verschiedene PIC-Typen schon seit ca. 30 Jahren und habe damit auch viele Erfahrungen im Serieneinsatz sammeln können. Diesen Fehler kenne ich nicht.

Joachim U. schrieb:

Was kann die Ursache sein, dass der PIC seine Programmierung plötzlich vergisst?

Hängt die Funktion der Software auch von Werten im EEPROM ab? Wenn ja, dann würde ich dort mal suchen.

Wie kann ich das verhindern?

Ein originales Programmiergerät von Microchip verwenden.

#7858282
Lesenswert?

Joachim U. schrieb:

Aber inzwischen ging schon mehrmals gar nichts mehr, nach einer Neuprogrammierung des PIC war der Fehler behoben.

Ein ähnliches Problem hatten wir in geringer Anzahl bei einem Serienprodukt, den Typ des PIC weiß ich nicht. Der Grund wurde leider niemals gefunden und auch die Umstellung auf ein anderes Programmiergerät löste das nicht.

Man könnte den Verdacht hegen, dass bei einigen Serien PIC die EEPROMS unzuverlässig sind.

#7858358
Lesenswert?

Ich würde erstmal den µC ohne Leseschutz flashen und beim Auftreten des Fehlers den µC rücklesen und vergleichen, welche Bank fehlerhaft ist.

Ursache können Störungen über IO-Pins von außen sein. Besonders ungesund ist, wenn Spannungen von außen vor der VCC bzw. nach dem Abschalten der VCC anliegen. Diese sollte man mindestens mit Schutzwiderständen begrenzen. Optimal sind aber Treiber-ICs, die ohne VCC in tristate gehen. Ein Kandidat für Ströme in die IO-Pins sind z.B. RS232- oder USB-ICs.

#7858417
Lesenswert?

Manfred P. schrieb:

Ein ähnliches Problem hatten wir in geringer Anzahl bei einem Serienprodukt, den Typ des PIC weiß ich nicht. Der Grund wurde leider niemals gefunden und auch die Umstellung auf ein anderes Programmiergerät löste das nicht.

Haben wir auch beim PIC18F14K50. Auch nach einer Neuprogrammierung dieser Exemplare verlieren sie diese nach einiger Zeit wieder. Wir tauschen hier inzwischen gleich den Chip. Danach läuft's. Taucht vor allem bei neuen Geräten, gelegentlich aber auch mal bei Reparaturgeräten auf.

Gruß Jobst

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren