Können AVR vergesslich werden

OP #690949
Hallo,

ich habe häufig (nicht immer) das Problem, daß ein programmierter AVR am 
nächsten Tag seinen Dienst nur dann verrichtet, wenn ich das HEX-File 
mit PonyProg noch einmal in den AVR (Tiny13 als auch Mega8) lade. Ein 
einfaches Reset-Kommando
reicht nicht aus.
Als Programmer nehme ich diese "Schaltung" mit den 3 Widerständen am 
Parallelport.
Kann es sich hier um minderwertige Bausteine oder zu häufige 
Programmierung handeln ?

Gruß

Günter
Gast
>Kann es sich hier um minderwertige Bausteine oder zu häufige
>Programmierung handeln ?

Da handelt es sich eher um eine minderwertige
Programmierhardware.
Wenn du ihn programmierst, dann tut er seinen Dienst, vergisst aber über 
die Zeit seine Daten? Dann liegts sicher nicht an der 
Programmierhardware. Es könnte am Programmspeicher-Flash liegen, da 
dieser nicht unendlich oft neu beschrieben werden kann. Ob sich dadurch 
verursachte Schäden allerdings in Vergesslichkeit oder bloss in nicht 
mehr programmierbaren Bytes äussern, weiss ich aber nicht.
Persönliche Seite
Hängt das Funktionieren vielleicht davon ab, ob ein Programmieradapter 
angeschlossen ist und ob der Programmieradapter "irgendwie" vom 
Parallelport des PC versorgt wird? Dann wäre ein Bug in deinem AVR 
Aufbau z.B. dass der AVR ohne Adapter nicht aus dem RESET rauskommt. 
Zeige mal das Schaltbild und/oder ein aussagekräftiges Foto!
Gast
Brown-out Detection einschalten ( per Fuse Bits ). Sonst kann es bei zu 
"langsamer" Abnahme der Betriebsspannung zur teilweisen oder 
vollständigen "Löschung" des Flash-Speichers kommen.

MfG
OP
Ich versuche gerade mir eine Art Hausbus zu bauen.
Dementsprechend sehen die Schaltungen aus:

Zwei Tiny13:
An Pin 2 hängt über einen Widerstand eine LED.
Pin 5 ist der Bus Anschluß.
Ansonsten 5 Volt über einen 78L05 mit den üblichen Kondensatorn.
Eine Reset-Beschaltung über ein RC-Glied brachte auch keine Abhilfe.

Mein Mega8 sitz auf einer myAVR-Platine und setzt serielle Signale (vom 
Webserver) auf PortB0 (Bus) um.


Die Programmierschaltung scheint hier nicht auf große Beliebtheit zu 
stoßen.
Allerdings sollte man doch meinen, wenn das Prg einmal funktioniert, 
müßte es doch dauerhaft gespeichert bleiben. Unabhängig von der 
Programmiermethode.


Gruß

Günter
OP
BenTu wrote:
> Brown-out Detection einschalten ( per Fuse Bits ). Sonst kann es bei zu
> "langsamer" Abnahme der Betriebsspannung zur teilweisen oder
> vollständigen "Löschung" des Flash-Speichers kommen.
>
> MfG

Danke für den Tip.
Werde ich versuchen.

Gruß

Günter
Gast
> Allerdings sollte man doch meinen, wenn das Prg einmal funktioniert,
> müßte es doch dauerhaft gespeichert bleiben. Unabhängig von der
> Programmiermethode.

So ist es.

Programmiert wird über die ISP-Schnittstelle mit digitalen Signalen. Da 
ist es schnurz-piep egal, wie diese (korrekten) Signale generiert 
werden.

Wenn Du den Controller schon oft geflascht hast, wird er evtl. so 
langsam am Ende seiner Lebensdauer sein.

Aber Du kannst das doch selbst verifizieren:

Wenn der Controller wieder nicht geht, flasht Du nicht einfach das 
Programm wieder drauf, sondern liest das alte erstmal aus. Dann kannst 
Du die beiden Hex-Files vergleichen, ob sich etwas geändert hat und wenn 
ja, was.
Persönliche Seite
Da muesst er schon verdammt oft geflasht worden sein, um nachzugeben... 
ca. 10.000 Schreibzyklen (und faktisch wahrscheinlich noch einige mehr) 
macht der Speicher schon. Aber ein Auslesen und Vergleichen von 
Pruefsummen hilft natuerlich, den Verdacht zu verifizieren. Wenn Du 5 
mal hintereinander den Speicher ausliest und sich diese 5 Abbilder 
untereinander unterscheiden ist das ein sicherer Indikator dafuer, dass 
entweder der Speicher korrumpiert ist oder ein Problem mit der 
Datenuebertragung vorliegt.

Gruss,
Michael
Hoi... ich würd einfach mal 'nen frischen AVR einsetzen... wenn der 
dieselben Probleme hat wird's wohl am Aufbau liegen.

Wenn du den mit Ponyprog beschreibst, macht der eh 'nen verify - ob du 
willst oder nicht. Ansonsten schließ ich mich an: Sobald der Probleme 
macht, einfach das aktuelle Programm als HEX runterladen und mit dem 
Original vergleichen.
Hallo,

ich hatte dieses Problem auch schon. Ich habe damals festgestellt,
dass immer die ersten 2 Bytes im Programmspeicher verändert waren.
Versuche ergaben, dass dieses Verhalten nur bei angeschlossenem
Programmieradapter zu beobachten war. Lösung hier (Antwort von MAWIN):

http://groups.google.de/group/de.sci.electronics/browse_thread/thread/9bcaafab08399b1c/e7dca04d0541c903?hl=de&lnk=gst&q=reinhard+richter#

Entferne mal deinen Programmierstecker sofort nach dem Programmieren
und schau ob der Prozessor immer noch Zicken macht.

Gruß Reinhard
Gast
Ja, ich denke die im letzten Beitrag erwähnte Ursache klingt plausibel, 
sofern der AVR nicht sehr alt ist oder durch Überspannung gelitten hat. 
Komische Effekte gibt es da mehr als man glauben mag. Durch 
versehentliche, nicht mehr genau reproduzierbare Fehlbehandlung habe ich 
mal bei einem 90S1200 die Signatur gelöscht, obwohl das eigenlich gar 
nicht möglich sein sollte. Das Bauteil ist mit AVRDUDE weiterhin 
beschreibbar, aber nur, wenn man den Typ manuell vorgibt und die 
gelesene Signatur ignorieren läßt.
Sebastian wrote:
>  Durch
> versehentliche, nicht mehr genau reproduzierbare Fehlbehandlung habe ich
> mal bei einem 90S1200 die Signatur gelöscht, obwohl das eigenlich gar
> nicht möglich sein sollte.

Doch, das ist möglich. Irgendwo hier im Forum gibts die Befehle dazu, 
ich habe das reproduzierbar auch schonmal gemacht. Bei den neueren AVRs 
geht das aber nicht mehr.
> Ich habe die Programmierleitung (2Meter) bislang immer
> dran gelassen...

Kannst du ja auch weiterhin so machen, aber wenn du die
Versorgungsspannung des µC aus- oder einschaltest, sollte
die Programmierleitung entfernt sein - vor Allem, wenn
sie so lang ist.

Bei mir trat das Problem auch erst auf, nachden ich die
Programmierleitung verlängert hatte. Steht alles in dem
Thread im Link, den ich weiter oben gepostet hatte.

Gruß Reinhard
Gast
des wegen gibt es den Kanada ST2000/300 Dongel. Der verhindert das 
Korumpieren des Flash bei abgeschalteter Versorgungsspannung, in dem er 
die Programmierleitungen nur bei eingeschalteter Versorgungsspannung 
durchschaltet.
Persönliche Seite
Benedikt K. wrote:
> Sebastian wrote:
>>  Durch
>> versehentliche, nicht mehr genau reproduzierbare Fehlbehandlung habe ich
>> mal bei einem 90S1200 die Signatur gelöscht, obwohl das eigenlich gar
>> nicht möglich sein sollte.
>
> Doch, das ist möglich. Irgendwo hier im Forum gibts die Befehle dazu,
> ich habe das reproduzierbar auch schonmal gemacht. Bei den neueren AVRs
> geht das aber nicht mehr.

Beitrag "ATmega64 vergist seine Signature-Bytes"
denke mal das hier ein Problem der Resetbeschaltung vorliegt und es beim 
Programmieren Einbrüche gibt oder die Pause bis zum Pragrammierbeginn zu 
kruz ist weil das RC Gleid am Reset Pin falsch dimensioniert ist.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.