AT90S2313 ändert Programmcode

R

Reinhard Richter

Guest
Hallo NG,

ich habe schon einige Projekte mit Atmel-MCs -1200 und 2313-
erfolgreich abgeschlossen, momentan ärgert mich aber ein
2313 etwas.
Programmieren und Auslesen geht problemlos (AVR-Studio 3.21
--> PonyProg 2.05a --> PonyProg serieller Programmieradapter)

Nach Spannungsunterbrechung funktioniert das Programm nicht
mehr. Ein Rücklesen des Codes bestätigt eine Änderung der
ersten beiden Programmbytes und damit fehlendem Einsprung in
die Reset-Routine. Die Änderung ist nicht immer die gleiche,
es werden aber immer nur Bits von 1 auf 0 geändert.

Zuerst hatte ich ein Reset-Problem ähnlich dem verlorener
EEPROM-Inhalte in Verdacht, allerding geht dessen Inhalt bei
keiner Spannungsunterbrechung verloren. Als Resetgenerator
ist ein TL7705-SMD eingesetzt (mal 100Stück für 3 Eur bei
e**y ersteigert) und ja, ich kenne dessen Problem, beim
Hochfahren der Betriebsspannung kein ordentliches Resetsignal
zu erzeugen, hatte bei bisherigen Projekten aber noch kein
Problem damit.
Nun ist als 5V-Regler ein TLE4271-2G eingesetzt, der
seinersets einen Reset-Generator mit einem Watchdog-Eingang
enthält. Ich habe diesen dann auch noch mit einer 50 MilliSek.
Resetzeit integriert, aber ohne Erfolg.

Das einzige, was mir jetzt noch einfällt wäre den 2313 zu
tauschen, ist nur nicht so prickelnd, da SMD auf
selbstgeätzter HP-Platine :-(

Hat vielleicht irgendeiner noch eine Idee, was man noch
probieren kann? Irgendjemand Erfahrung mit so einem Effekt?

Besten Dank im voraus.


Die besten Grüße aus Wittenberg

Reinhard Richter
 
Hallo,

Reinhard Richter schrieb:
Das einzige, was mir jetzt noch einfällt wäre den 2313 zu
tauschen, ist nur nicht so prickelnd, da SMD auf
selbstgeätzter HP-Platine :-(
Ich hatte auch schon mal einen "morschen" 2313, allerdings nicht SMD und
eigenhändig zerstört. Bei dem sind auch einige Speicherzellen ganz gerne
von alleine gekippt.
Dito. bei einem "normalen" EEPROM, den hab ich auch getötet, der hielt
einige Speicherzellen nur für 1/2 bis 2 Tage, je nach
Programmieralgorithmus.

Hat vielleicht irgendeiner noch eine Idee, was man noch
probieren kann? Irgendjemand Erfahrung mit so einem Effekt?
Ein defekter ľC liegt wohl im Bereich des möglichen.

mfg
Björn Schrader
 
On Sun, 15 Aug 2004 14:10:19 +0200, "Reinhard Richter"
<reinhard@reira.de> wrote:
Hat vielleicht irgendeiner noch eine Idee, was man noch
probieren kann? Irgendjemand Erfahrung mit so einem Effekt?
Flash macht neuerdings leider manchmal Ärger :-|

Ich habe gerade auch in einer Musterserie von 10 Stück
zweimal einen Flash-DSP (TMS320LF2407A) tauschen dürfen,
weil sich die IC's nicht sauber programmieren ließen,
obwohl sie vom Emulator einwandfrei erkannt wurden,
Vpp definitiv da und die Verlötung einwandfrei war.
Nach dem Tausch war wieder alles in Ordnung, es lag
definitiv an den IC's, welche aus einwandfreier Quelle (Distri.)
bezogen worden waren.

Meiner Meinung nach wird in letzter Zeit angesichts des
gestiegenen Kostendrucks bei gleichzeitig höherer nachgefragter
Stückzahlen (Allocation!) beim Flash diverser Anbieter der
Aufwand für die Qualitätssicherung etwas reduziert.
Die Chiphersteller sind halt auch keine Heiligen ;-/

Gruß Oliver

--
Oliver Bartels + Erding, Germany + obartels@bartels.de
http://www.bartels.de + Phone: +49-8122-9729-0 Fax: -10
 
Reinhard Richter <reinhard@reira.de> schrieb im Beitrag <2o928uF6m939U1@uni-berlin.de>...
Nach Spannungsunterbrechung funktioniert das Programm nicht
mehr. Ein Rücklesen des Codes bestätigt eine Änderung der
ersten beiden Programmbytes
Na ja, damit Bits von 1 nach 0 gehen, muessen sie programmiert werden.
Da es nur die ersten Programmspeicherbytes betrifft, scheint es kein
globales Problem zu sein. Auch Programmieren bei falscher Versogungsspannung
scheidet aus, weil AVR mit ziemlich laxer Versorgungsspannung programmiert
werden duerfen und sich die Programmierspannung selber machen.

Zum Programmieren muss RESET aktiv sein. Das ist durch den RESET-Controller
auch der Fall so lange die Betriebsspannung noch nicht hoch genug ist.
Dann muessen Impulse auf SCLK abkommen. Das ist durchaus moeglich,
schlesslich sind die Pins Eingaenge ohne PullUp, und wir wissen nicht,
was an deiner Schaltng dran ist, Stoerungen koennen immer mal
reinkommen, denk nur an den Quartztakt.
Tritt der Effekt immer noch auf wenn am SCLK Eingang ein PullUp dran ist ?
Auch die anderen Pins MISO MOSI koennten einen vertragen.
Aber das Problem kann uahc intern auftreten, schliesslich ist es
ziemlich unwahrscheinlich (aber nicht unmoeglich) das Program Enable
und Write Befehle exakt so wegen Stoerungen ueber's SPI reinkommen.
Intern renne Chip bei mangelnder Versorgungsspannung bekanntermassen
Amok, und beim AVR hilft nicht mal REST, eben weil sie dann im
Programmiermodus sind, und Amok dort zum Ueberprogrammieren
fuehrt.
Tritt der Effekt immer noch auf, wenn die Versorgungsspannung
schlagartig eingeschaltet wird (also kein Netzteil, sondern
Schalter hinter Netzteil) ?
--
Manfred Winterhoff, reply-to invalid, use mawin at despammed.com
homepage: http://www.geocities.com/mwinterhoff/
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Read 'Art of Electronics' Horowitz/Hill before you ask.
Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.
 
Hallo MaWin, Oliver und Bjoern,

(ichwerdnichtwiederMaWinderNG-GuruhatMIRgeantwortet)

"MaWin" schrieb:
Na ja, damit Bits von 1 nach 0 gehen, muessen sie programmiert werden.
...
Zum Programmieren muss RESET aktiv sein. Das ist durch den
RESET-Controller

.... viele interressante Gedanken zu möglichen Programmiermacken beim Atmel
speziell bei aktivem Reset-Signal bei Power-On.

schlagartig eingeschaltet wird (also kein Netzteil, sondern
Schalter hinter Netzteil) ?
[MaWin] Durch Deine Bemerkungen über wildes Schwingen noch nachdenklicher
geworden, habe ich mir die ganze Anordnung nochmals kritisch angesehen und
nach vorerst einfachen Lösungen gesucht. Dabei kam ich auf die Idee, nach
dem
Programmieren den Programmierstecker sofort abzuziehen und erst dann die
Ausschaltversuche zu unternehmen (mir selbst unverständlich, warum ich da
nicht
schon eher drauf gekommen bin). Und siehe da, keine Verluste im Programmcode
mehr. Das läßt sich sogar umgekehrt nachweisen, Prog-Stecker wieder rein,
Betriebsspannung unterbrechen --> Programmcodeverlust.
Also danke nochmals für Deine konstruktiven Gedanken.

Danke auch an Oliver und Bjoern für ihre Antworten.


Gruß Reinhard
 
Hallo MaWin, Oliver und Bjoern,

(ichwerdnichtwiederMaWinderNG-GuruhatMIRgeantwortet)

"MaWin" schrieb:
Na ja, damit Bits von 1 nach 0 gehen, muessen sie programmiert werden.
...
Zum Programmieren muss RESET aktiv sein. Das ist durch den
RESET-Controller

.... viele interressante Gedanken zu möglichen Programmiermacken beim Atmel
speziell bei aktivem Reset-Signal bei Power-On.

schlagartig eingeschaltet wird (also kein Netzteil, sondern
Schalter hinter Netzteil) ?
[MaWin] Durch Deine Bemerkungen über wildes Schwingen noch nachdenklicher
geworden, habe ich mir die ganze Anordnung nochmals kritisch angesehen und
nach vorerst einfachen Lösungen gesucht. Dabei kam ich auf die Idee, nach
dem
Programmieren den Programmierstecker sofort abzuziehen und erst dann die
Ausschaltversuche zu unternehmen (mir selbst unverständlich, warum ich da
nicht
schon eher drauf gekommen bin). Und siehe da, keine Verluste im Programmcode
mehr. Das läßt sich sogar umgekehrt nachweisen, Prog-Stecker wieder rein,
Betriebsspannung unterbrechen --> Programmcodeverlust.
Also danke nochmals für Deine konstruktiven Gedanken.

Danke auch an Oliver und Bjoern für ihre Antworten.


Gruß Reinhard
 
Reinhard Richter <reinhard@reira.de> wrote:

Hat vielleicht irgendeiner noch eine Idee, was man noch
probieren kann? Irgendjemand Erfahrung mit so einem Effekt?
Entweder dein Dingen ist kaputt oder es stimmt was mit deiner
Spannungsversorgung nicht. Vermutlich bricht irgendwas zusammen wenn
du zu programmieren anfaengst und nach zwei Bytes hat sich das wieder
erholt.
Probier mal nur einen bestimmten Bereich in der Mitte zu programmieren
und schau mal ob dann auch immer die ersten Beiden Bytes nicht
stimmen.

Olaf



--
D.i.e.s.S. (K.)
 
Hallo Olaf,

"Olaf Kaluza" schrieb:
Entweder dein Dingen ist kaputt oder es stimmt was mit deiner
Spannungsversorgung nicht. Vermutlich bricht irgendwas zusammen wenn
du zu programmieren anfaengst und nach zwei Bytes hat sich das wieder
erholt.
Probier mal nur einen bestimmten Bereich in der Mitte zu programmieren
und schau mal ob dann auch immer die ersten Beiden Bytes nicht
stimmen.
Hat sich schon erledigt, Problem erkannt, siehe meine Antwort an MaWin.
Ergänzend dazu noch die Info, das ich durch Umbau meiner Bastelecke
die Leitung zwischen Programmieradapter und zu programmierendem
Objekt verlängern mußte, die ist jetzt ca. 1,25m lang (vorher 30cm).
Könnte auf jeden Fall eine Ursache für wilde Schwingungen sein mit
den von MaWin vermuteten unkontrollierten Programmiereffekten.

Danke für Deine Bemühungen.


Gruß Reinhard
 

Welcome to EDABoard.com

Sponsor

Back
Top