DCG mit Gedächtnisschwund
-
- kann c't-Lab-Module konstruieren
- Beiträge: 205
- Registriert: 01.12.2007, 09:23
DCG mit Gedächtnisschwund
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
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
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
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
-
- kann c't-Lab-Module konstruieren
- Beiträge: 205
- Registriert: 01.12.2007, 09:23
Blue MP3 ISP
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
Danke,
Magic Roomy
Das ist Quatsch. Das Timing betrifft nur die Schnittstelle zum AVR. Wenn das Verify erfolgreich ist, wurde der AVR korrekt programmiert.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.
Wenn die EEPROM-Zelle für die Baud-Rate falsch programmiert wurde, ist natürlich keine Kommunikation über den UART möglich.Hattest Du das EEPROM nach dem Erstprogrammieren verändert?
Gruß
amd-65
Das ist Quatsch. Das Timing betrifft nur die Schnittstelle zum AVR. Wenn das Verify erfolgreich ist, wurde der AVR korrekt programmiert.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.
Wenn die EEPROM-Zelle für die Baud-Rate falsch programmiert wurde, ist natürlich keine Kommunikation über den UART möglich.Hattest Du das EEPROM nach dem Erstprogrammieren verändert?
Gruß
amd-65
-
- kann c't-Lab-Module umbauen
- Beiträge: 65
- Registriert: 29.11.2007, 14:38
- Wohnort: Aachen
Hallo amd-65,
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
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.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.

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
-
- kann c't-Lab-Module konstruieren
- Beiträge: 205
- Registriert: 01.12.2007, 09:23
Viel hilft viel ?
Kann man dann sagen: Wenn man mehrfach brennt (ohne löschen mittendrin) ist man auf der sichereren Seite ?
Gruss Magic Roomy
Gruss Magic Roomy
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.schimmi hat geschrieben:Hallo amd-65,
Nein, leider nicht.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.
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
Hallo amd-65,
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...
Grüsse,
Schimmi
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...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.
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...
Theoretisch Ja. Ob das allerdings in der Praxis funktioniert ist fraglich. Besser ist es einen von Atmel zertifizierten Programmer zu verwenden.magicroomy hat geschrieben:Kann man dann sagen: Wenn man mehrfach brennt (ohne löschen mittendrin) ist man auf der sichereren Seite ?
Grüsse,
Schimmi
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.schimmi hat geschrieben: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...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.
Gruß
amd-65