DCG mit Gedächtnisschwund

Hier könnt ihr Diskussionen über die Hardware und Abgleich des Labornetzteiles des c't-Lab führen.
Antworten
magicroomy
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 205
Registriert: 01.12.2007, 09:23

DCG mit Gedächtnisschwund

Beitrag von magicroomy »

Hallo zusammen,
ich hatte jetzt schon zweimal das Problem, daß mein DCG komische Sachen macht. Das erste mal kam es zu Problemen ab einer bestimmten Spannung. Der Ausgang ging konstant auf Vmax. Gestern hatte ich das Problem, daß ich zwar mit dem Bedienpanel alles einstellen konnte, aber nicht mehr vom PC aus auf irgendein c't Lab Modul zugreifen konnte (keine Reaktion auf gar kein Kommando). Beide Male war das Problem weg, nachdem ich den ATMega auf dem DCG neu geflasht (+EEProm) hatte. Leider hab ich mir keine Downloads vom Inhalt des Flashes(+EEProm) gezogen um den Unterschied zu vergleichen. Hatte jemand auch schon diesen Effekt?
Gruss
Magic Roomy
schimmi
kann c't-Lab-Bausätze löten
kann c't-Lab-Bausätze löten
Beiträge: 30
Registriert: 29.11.2007, 11:15
Kontaktdaten:

Beitrag von schimmi »

Hallo Magic Roomy,

mit was für einem Programmer hast Du das EEPROM bzw. FLASH programmiert?
Bei ISP-Programmierung der AVR's ist nämlich Vorsicht geboten. Da das ISP nicht selbstgetimed ist, kann trotz erfolgreicher Verify das FLASH-Speicher unter Amnesie leiden. Das entsteht dadurch, das die Flashzellen nicht mit genügend Energie geladen werden.

Hattest Du das EEPROM nach dem Erstprogrammieren verändert?

Grüsse,
Schimmi
magicroomy
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 205
Registriert: 01.12.2007, 09:23

Blue MP3 ISP

Beitrag von magicroomy »

Ich hatte den Blue MP3 ISP Programmer mit dem PonyProg verwendet. In der Tat habe ich danach das EEProm geändert, weil ich die Default Spannung beim Startup des DCG verändert habe. Das würde es also evtl. erklären. Mittlerweile habe ich einen AVR ISP mkII, mit dem ich gebrannt hab. Evtl. funktioniert es damit besser.
Danke,
Magic Roomy
amd-65
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 130
Registriert: 29.11.2007, 16:28

Beitrag von amd-65 »

schimmi hat geschrieben:Hallo Magic Roomy,
Bei ISP-Programmierung der AVR's ist nämlich Vorsicht geboten. Da das ISP nicht selbstgetimed ist, kann trotz erfolgreicher Verify das FLASH-Speicher unter Amnesie leiden. Das entsteht dadurch, das die Flashzellen nicht mit genügend Energie geladen werden.
Das ist Quatsch. Das Timing betrifft nur die Schnittstelle zum AVR. Wenn das Verify erfolgreich ist, wurde der AVR korrekt programmiert.
Hattest Du das EEPROM nach dem Erstprogrammieren verändert?
Wenn die EEPROM-Zelle für die Baud-Rate falsch programmiert wurde, ist natürlich keine Kommunikation über den UART möglich.

Gruß
amd-65
amd-65
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 130
Registriert: 29.11.2007, 16:28

Beitrag von amd-65 »

schimmi hat geschrieben:Hallo Magic Roomy,
Bei ISP-Programmierung der AVR's ist nämlich Vorsicht geboten. Da das ISP nicht selbstgetimed ist, kann trotz erfolgreicher Verify das FLASH-Speicher unter Amnesie leiden. Das entsteht dadurch, das die Flashzellen nicht mit genügend Energie geladen werden.
Das ist Quatsch. Das Timing betrifft nur die Schnittstelle zum AVR. Wenn das Verify erfolgreich ist, wurde der AVR korrekt programmiert.
Hattest Du das EEPROM nach dem Erstprogrammieren verändert?
Wenn die EEPROM-Zelle für die Baud-Rate falsch programmiert wurde, ist natürlich keine Kommunikation über den UART möglich.

Gruß
amd-65
linux-is-sexy
kann c't-Lab-Module umbauen
kann c't-Lab-Module umbauen
Beiträge: 65
Registriert: 29.11.2007, 14:38
Wohnort: Aachen

Beitrag von linux-is-sexy »

Hmm,
irgendwie hast Du doppelt gepostet, oder das Forum zickt rum...
“Intelligence is the ability to avoid doing work, yet getting the work done” Torvalds
Benutzeravatar
thoralt
Site Admin
Site Admin
Beiträge: 262
Registriert: 10.04.2006, 08:48
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von thoralt »

linux-is-sexy hat geschrieben:Hmm,
irgendwie hast Du doppelt gepostet, oder das Forum zickt rum...
Naja, irgendwie muß er ja auch mal seine Posting-Anzahl erhöhen :)

Thoralt
There are 10 kinds of people in this world: Those who understand binary and those who don't.
schimmi
kann c't-Lab-Bausätze löten
kann c't-Lab-Bausätze löten
Beiträge: 30
Registriert: 29.11.2007, 11:15
Kontaktdaten:

Beitrag von schimmi »

Hallo amd-65,
amd-65 hat geschrieben: Das ist Quatsch. Das Timing betrifft nur die Schnittstelle zum AVR. Wenn das Verify erfolgreich ist, wurde der AVR korrekt programmiert.
Nein, leider nicht. Als wir hier mit Atmel µC angefangen hatten, wurden wir von Atmel selber darauf hingewiesen, das das ISP-Interface nicht selftimed ist, und wenn eine FLASH-Zelle bis Verify gut geladen wird, so heisst das nicht, das diese FLASH-Zelle die Daten auch noch nach einem halben Jahr hat. Und ich habe auch von Fällen gehört, wo das passiert ist. Leider habe ich jetzt keinen Link dazu. :-( Ich were ihn hier posten, sobald ich den haben.

Wir haben uns damals damit beholfen, das wir zur Programmierung in der Fertigung JTAG verwenden. Bei über einer halben Million programmierter Atmel µC pro Jahr, hatten wir noch keinen, der an Amnesie gelitten hatte. Wohl aber unsere Kollegen, die mit ISP programmieren. Teilweise lassen sich die µC nicht programmieren und teilweise kommen Kundenrückläufer mit leerem Flash zurück.

Grüsse,
Schimmi
magicroomy
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 205
Registriert: 01.12.2007, 09:23

Viel hilft viel ?

Beitrag von magicroomy »

Kann man dann sagen: Wenn man mehrfach brennt (ohne löschen mittendrin) ist man auf der sichereren Seite ?

Gruss Magic Roomy
amd-65
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 130
Registriert: 29.11.2007, 16:28

Beitrag von amd-65 »

schimmi hat geschrieben:Hallo amd-65,
amd-65 hat geschrieben: Das ist Quatsch. Das Timing betrifft nur die Schnittstelle zum AVR. Wenn das Verify erfolgreich ist, wurde der AVR korrekt programmiert.
Nein, leider nicht.
Du hast natürlich Recht. Wenn eine Page programmiert wird, muß entweder eine Mindestzeit gewartet werden oder es muß während dem Programmieren ein 'Polled-Read' auf eine Speicherzelle in der Page gemacht weden, die nicht FF enthalten soll. Wenn der gelesene Wert von FF auf den Zielwert wechselt, ist die Page programmiert.

Wenn das nicht beachtete wird, kann der Flash seinen Inhalt verlieren. Es hat aber nichts mit dem Programmiermode zu tun. Das Verfahren muß bei ISP, JTAG und High-Voltage Programmierung eingehalten werden.

Gruß
amd-65
schimmi
kann c't-Lab-Bausätze löten
kann c't-Lab-Bausätze löten
Beiträge: 30
Registriert: 29.11.2007, 11:15
Kontaktdaten:

Beitrag von schimmi »

Hallo amd-65,
amd-65 hat geschrieben: Du hast natürlich Recht. Wenn eine Page programmiert wird, muß entweder eine Mindestzeit gewartet werden oder es muß während dem Programmieren ein 'Polled-Read' auf eine Speicherzelle in der Page gemacht weden, die nicht FF enthalten soll. Wenn der gelesene Wert von FF auf den Zielwert wechselt, ist die Page programmiert.
Genau das funktioniert beim Atmel FLASH nicht. In dem Moment, wo die Zelle von FF auf den Wert wechselt, ist die Energie der FLASH-Zelle zu gering, um die enthaltenen Daten dauerhaft zu speichern. Um die Speicherstelle dauerhaft zu bekommen, muss der Dateninhalt "nachgebrannt" werden. Die passiert beim JTAG automatisch, beim ISP jedoch nicht; das muss der ISP-Programmer übernehmen und tut er das nicht, damit er z.B. schneller als sein Konkurrent ist, dan geht es eben schief...

Ich weiß zwar nicht genau, wie die FLASH-Technologie von Atmel aussieht, aber es ist schon erstaunlich, das Atmel es schafft ein FLASH bei 1,8V Versorgungsspannung zu programmieren. Das amnestische Verhalten ist wohl der Preis dafür...
magicroomy hat geschrieben:Kann man dann sagen: Wenn man mehrfach brennt (ohne löschen mittendrin) ist man auf der sichereren Seite ?
Theoretisch Ja. Ob das allerdings in der Praxis funktioniert ist fraglich. Besser ist es einen von Atmel zertifizierten Programmer zu verwenden.

Grüsse,
Schimmi
amd-65
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 130
Registriert: 29.11.2007, 16:28

Beitrag von amd-65 »

schimmi hat geschrieben:
amd-65 hat geschrieben: Du hast natürlich Recht. Wenn eine Page programmiert wird, muß entweder eine Mindestzeit gewartet werden oder es muß während dem Programmieren ein 'Polled-Read' auf eine Speicherzelle in der Page gemacht weden, die nicht FF enthalten soll. Wenn der gelesene Wert von FF auf den Zielwert wechselt, ist die Page programmiert.
Genau das funktioniert beim Atmel FLASH nicht. In dem Moment, wo die Zelle von FF auf den Wert wechselt, ist die Energie der FLASH-Zelle zu gering, um die enthaltenen Daten dauerhaft zu speichern. Um die Speicherstelle dauerhaft zu bekommen, muss der Dateninhalt "nachgebrannt" werden. Die passiert beim JTAG automatisch, beim ISP jedoch nicht; das muss der ISP-Programmer übernehmen und tut er das nicht, damit er z.B. schneller als sein Konkurrent ist, dan geht es eben schief...
Das kann ich so nicht glauben. In der Spec wird der Programmiervorgang, so wie von mir angegeben, beschrieben. In der Spec wird darauf hingewiesen, daß ab Start Flash-Kommando nur der Polled-Read-Befehl zulässig ist, da es sonst zu Programmierfehlern kommen kann.

Gruß
amd-65
schimmi
kann c't-Lab-Bausätze löten
kann c't-Lab-Bausätze löten
Beiträge: 30
Registriert: 29.11.2007, 11:15
Kontaktdaten:

Beitrag von schimmi »

Hallo amd-65,

ja, das steht so in der Spec. Zumindest sollte das dann in der Theorie so funktionieren, ;-)

Grüsse,
Schimmi
Antworten