Können AVR vergesslich werden

OP #690949
Lesenswert?

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
#690965
Lesenswert?

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.
OP #690990
Lesenswert?

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 #690996
Lesenswert?

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 #691081
Lesenswert?

> 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 #691090
Lesenswert?

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
#691096
Lesenswert?

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.
#691104
Lesenswert?

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 #691108
Lesenswert?

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.
#691233
Lesenswert?

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.
#691247
Lesenswert?

> 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 #691265
Lesenswert?

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 #691268
Lesenswert?

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"

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