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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.