www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Datenverlust im AT89C2051 ?


Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vor etwa einem Jahr habe ich für AVRs und per SPI programmiere 8051 ein
Programmiergerät mit einem AT89C2051 gebaut, das bis vor etwas einem
Monat funktionierte.
Seitdem habe ich ein äußerst merkwürdiges Problem:
Zum Programmieren benutze ich als Protokoll eine Art Ping-Pong Modus.
Nachdem der PC ein zu programmierendes Byte (oder eine Seite) gesendet
hat, wartet er auf eine Antwort des AT89C2051 ehe er das nächste
sendet.
Seit kurzem bleibt die Software häufig an einer Stelle beim
Programmieren stehen. Wenn ich Ausschalte, einen Reset mache oder
ähnliches, der Fehler bleibt. Nach ein paar Tagen oder mit einer
anderen zu programmierenden Software geht es dann plötzlich wieder.
Da ich keine Statusabfrage des zu programmierenden uCs mache, sondern
nur eine bestimmte Zeit im AT89C2051 warte, muss der Fehler in diesem
liegen. Also neuen AT89C2051 genommen, und alls lief wieder. Zumindest
für einen Tag.
Wenn ich die beiden AT89C2051 austausche, bleibt der Fehler.
Er lässt sich nur beheben, wenn ich den AT89C2051 neu mit der
Programmiersoftware bespiele, oder auch nur die alte (mittels Verify,
das erfolgreich ist) auslese.

Irgendwie ergibt das ganze für mich keinen Sinn, ich weiß nur dass das
Problem ziemlich nervig ist wenn man andauernt einen uC programmieren
muss, nur um einen anderen zu programmieren.

Autor: edi-edi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ist das resultat der sogenannten kuechentischprogrammiergeraete

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die üblichen Verdächtigen:

- Quarz schwingt nicht richtig (falsche Cs ?)
- Reset nicht lang genug (10µF+10kOhm)
- VCC nicht stabil, keine Abblock-Cs
- SRAM nicht initialisiert
- Software-Bug (Interrupt ?)
- Windows-Problem (reboot ?)

Ich hatte mir mal ne Verlängerung für die UART gebaut aus 2
Quetschsteckern und 9-pol. Flachkabel. Irgendwann war es an den
Steckern abgeknickt und einige Adern hatten nur zeitweilig Kontakt.


Peter

Autor: Jankey (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie initalisiert man bidde den SRAM?...

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@peter dannegger

Das Gerät lief fast ein Jahr lang problemlos. Daher kann ich
Softwarefehler eigentlich ausschließen. Davon abgesehen, alle Variablen
die in der Programmierschleife benötigt werden, werden initialisiert.
Die Kabel werde ich mal überprüfen, das ist eine gute Idee.

Ich vermute aber immer noch irgendeinen Fehler am uC. Eventuell liegt
es daran, dass ich das Programmiergerät (eigentlich immer) anschließe,
ohne die Spannung der Schaltung vorher auszuschalten.

Autor: peter dannegger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
"Das Gerät lief fast ein Jahr lang problemlos. Daher kann ich
Softwarefehler eigentlich ausschließen."


Erinnert mich irgendwie an die Röntgengeräte, die an bestimmten Tagen
die 100-fache Bestrahlung einstellten.

Die Fehlerfreiheit von Software läßt sich nur sehr schwer ermitteln.


Ich würde einfach mal den RAM nach jedem Reset komplett löschen, damit
werden zumindest Fehler durch zufälligen RAM-Inhalt vermieden (siehe
Anhang).


Peter

Autor: Benedikt (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Die RAM Lösch Routine habe ich reingemacht, bringt aber auch nichts.

Einen Hardwarefehler kann ich ziemlich sicher ausschließen, da die
Schaltung ja ein Jahr lang lief, und der erste Teil der Programmierung
immer fehlerfrei läuft.

Ich habe mal die Software angehängt:
Nach dem Einschalten wird die ID des zu programmierenden Controllers
abgefragt, und direkt per LED angezeigt ob de Verbindung OK ist.

Zur Programmierung werden die entsprechenden Befehle gesendet. Eine
falsche Konfiguration der Einstellungen (z.B. zu geringe Anzahl der zu
programmierenden Bytes durch Übertragungsfehler) kann ich ausschließen,
da alle Werte zum PC zurückgesendet werden.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube ich habe den Fehler...
Scheiß Windows XP !!!!

Irgendwie gehen seit kurzem einige Bytes beim Senden verloren.
Immer wenn ich zwischendurch den AT89C2051 neu programmiert habe, hat
sich der Com Port irgendwie umgestellt, und dann ging das programmieren
wieder ein paarmal.

Autor: Transi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bringt dich zwar nicht weiter, aber auch ich habe ähnlich Erfahrungen
machen müssen. Selbst gebauter Programmer für 89C2051/4051 läuft über
Jahre bestens und macht jetzt auf einmal Ärger. Ursache zunächst auch
in meinem Programm oder der Hardware vermutet. Zwischenzeitlich hat die
EDV wieder mal irgend welche Softwareupdates gefahren, was dann letzt
endlich die Ursache für das Verhalten war.
Wenn man sich vor Augen hält, dass man heute einen 40 Jahre alten SW
Fernsehgerät einschalten kann und dieser immer noch Bild uns Ton
liefert so könnten sich die Microsoft Fritzen daran eine Scheibe
abschneiden. Die Kompatibilität muss ja nicht 40 Jahre halten, aber 2
Jahre wäre schon nicht schlecht, finde ich,

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.