Hallo zusammen,
Nach längere Zeit wollte ich mal wieder etwas mit AVRs mache. Mein
Setting ist der AVR910, vor 12 Jahren mal zusammengebastelt mit einem
Atmega32 bzw. 8.
Mein Problem, die Rechner haben keine serielle Schnittstelle mehr. Als
Maßnahme habe ich einen USB->Seriell-Wandler dazwischen geklemmt. Hat
anfangs auch ganz gut geklappt. Nur nach zwei mal flashen (avrdude)
reagiert der Atmega32 nicht mehr, der Grund: Signatur 0xffffff.
Ich habe mit gedacht, kein Problem kann passieren. Dann habe ich den
Atmega8 verwendet. Nach zwei mal Fuse Bits/Device Signatur Auslesen
(AVRProg), habe ich plötzlich ein ähnliches Problem, uC reagiert nicht
mehr Signatur 0x000000.
Ich bin jetzt total ratlos. Die Dinger haben Jahre durchgehalten und an
einem Tag sind beide tot.
Ist die Kombination USB->Seriell-Wandler + AVR910 für die uCs tödlich?
Es ist mir ein totales Rätsel wie mir der Atmega8 flöten gehen kann,
wenn man nichts auf den uC schreibt. Mit einer echten seriellen
Schnittstelle hatte ich nie Probleme mit beiden Aufbauten.
ist doch mit einem nano o.ä. lösbar als ISP Programmer Ersatz
Ich kenne avrdude und deinen Programmer nicht, möglicherweise ist der ja
der Fehler.
Ich nutze für ISP den USBprog2 von hier, aber seit Jahren nur noch einen
Nachbau aus China für den NETIO als USB Teil ohne serielle Umsetzung
dazwischen.
ich schrieb:> Ist die Kombination USB->Seriell-Wandler + AVR910 für die uCs tödlich?
Sollten sie zumindest nicht sein. Ich tippe auf ein anderes Problem,
irgendwas mit der Stromversorgung des zu flashenden Controllers war wohl
nicht in Ordnung. Wahrscheinlich: Betriebsspannung zu gering, deutlich
niedriger als der Pegel der ISP-Signale.
> Es ist mir ein totales Rätsel wie mir der Atmega8 flöten gehen kann,> wenn man nichts auf den uC schreibt.
Sobald du mit ihm redest, "schreibst" du auch auf ihn. Schließlich gehen
bei ISP drei Signale vom Programmer zum µC.
> Mit einer echten seriellen> Schnittstelle hatte ich nie Probleme mit beiden Aufbauten.
Sehr wahrscheinlich war damals(tm) einfach nur das Design der
Stromversorgung anders.
Danke für die Hinweise. Ich habe den "losen" Aufbau vom Atmega 8
gecheckt und es lag an der Spannungsversorgung, Kabel locker. Bei der
Atmeta32-Platine konnte ich keine Probleme mit der Spannung
feststellen...
Zumindest einer geht noch :) Es wird wohl Zeit des Equipment zu
modernisieren.
Hallo,
Equipment (hab ich wahrscheinlich mal wieder falsch geschrieben)
modernisieren, ja gute Idee...
Ich würde dir einen ganz normalen Arduino als Programmer empfehlen,
benutze ich auch, zuverlässig, günstig, ich bin rundum zufrieden.
Ivo
PS: Ich benutze Avrdude
Ich habe auch ein Problem. Ich habe vergessen das über ISP ich nicht
debuggen kann (AVR studio 4), und habe ich einen halbfertigen Kod ins
ATmega328P (Pollin Baustein) eingespielt. Ein Teil des Programs
funktioniert (Display) aber der ISP Port funktioniert nicht mehr. Der
Dragon erkennt den Chip nicht mehr. Was kann ich jetzt machen?
Danke.
Eugen T. schrieb:> Ein Teil des Programs> funktioniert (Display) aber der ISP Port funktioniert nicht mehr. Der> Dragon erkennt den Chip nicht mehr. Was kann ich jetzt machen?
Ein Programm kann das Flashen per ISP nicht verhindern.
Das kann nur durch die falsch eingestellten) Fuses verhindert werden.
ich schrieb:> Mein Problem, die Rechner haben keine serielle Schnittstelle mehr.
Nur zur Info, auch wenn es USB-zu-seriell Wandler und
Programmiergeräte mit USB gibt:
Auch moderne PCs haben auf dem Motherboard häufig noch
eine serielle (und paralle) Schnittstelle. Es fehlt nur das
Kabel und ein Slotblech mit Buchse, was man für ein paar Euro
nachrüsten kann. Das gilt natürlich nicht für Notebooks.
Eugen T. schrieb:> Alle Fuse Bits sind ausgeschaltet, trotzdem erkennt der Dragon den Chip> nicht mehr. Der Programm mit Fehler läuft, nur ich kann es nicht mehr> ändern.
Ich verbessere mal:
Alle Fuse Bits sind ausgeschaltet, deshalb erkennt der Dragon den Chip
nicht mehr.
Wenn man das SPIEN löscht war es das mit programmieren.
Eugen T. schrieb:> Im Program war kein Befehl für SPIEN.
SPIEN ist eine Fuse, kein "Befehl". Wenn du alle Fuses ausgeschaltet
hast, hast du damit auch SPIEN ausgeschaltet. Das wird aber für die
Programmierung per ISP benötigt.
> Jetzt ist im SPIEN eine "?".> Einschalten kann ich nicht.
Wenn du ISP ausgeschaltet hast, kannst du es logischerweise nicht per
ISP wieder einschalten. Wobei du laut Datenblatt per ISP sowieso nicht
auf diese Fuse zugreifen kannst.
Ich habe den SPIEN nicht ausgeschaltet! Ich habe den Chip programmiert
über ISP (mit den falschen Code). Das Program im Chip läuft, nur nicht
ganz gut. Seit Programierung ist der SPIEN grau mit "?". Ich habe keinen
Fusebit weder ein noch ausgeschaltet.
Eugen T. schrieb:> Ich habe den SPIEN nicht ausgeschaltet!
Das hattest du oben aber behauptet:
Eugen T. schrieb:> Alle Fuse Bits sind ausgeschaltet
Da das SPIEN standardmäßig an ist, wäre das nur möglich, wenn du es
selbst ausgeschaltet hast.
> Ich habe den Chip programmiert über ISP (mit den falschen Code). Das> Program im Chip läuft, nur nicht ganz gut. Seit Programierung ist der> SPIEN grau mit "?". Ich habe keinen Fusebit weder ein noch ausgeschaltet.
Ok, dann liegt es also daran nicht. Dann muss es doch am Programmer
liegen. Hast du evtl. die ISP-Geschwindigkeit zu hoch eingestellt?
Manchmal hilft es, den start des fehlerhaften Programms zu verhindern,
indem man die Reset Leitung fest mit GND verbindet und dann in diesem
Zustand mit dem Programmer auf den Chip zugreift.
Danke, das ist genau mein Problem. Ich habe den Chip einmal
programmiert, es ist gegangen ( also der SPIEN musste eingeschaltet
sein). Als die Programmierung fertig war blöderweise habe ich versucht
den Code debuggen, dann sind verschiedene Meldungen über Debugwire
gekommen, erst dann bin ich darauf gekommen, das mit ISP ich nicht
debuggen kann. Seither funktioniert auf diesen Modul die ISP Verbindung
nicht mehr. Auf einem anderem Modul ist alles in Ordnung.
Wenn die Signatur nicht stimmt, liegt es meistens an der Baudrate.
Fang nochmal mit niedrigen Baudraten an. Kann sein, dass du beim Flashen
die Frequenz umgestellt hast.
Hängt ein Quarz dran?
Den Debug Wire kann man über die ISP Schnittstelle einschalten. Blöd ist
nur, dass du dann keinen Reset Pin mehr hast.
Ausschalten kann man den Debug Modus mit einem Debugger, der Debugwire
unterstützt. Danach kann man über das ISP Protokoll die Fuse wieder
zurück setzen.
Alternativ geht wie gesagt ein HV Programmer - aber wer hat den schon?
Wenn du keinen geeigneten Debugger hast, würde ich erwägen, die Chips
weg zu werfen. Das könnte billiger sein.
Danke
Ich habe den Dragon, nur habe ich noch ausser ISP und JTAG keine andere
Funktion verwendet. Ich werde sehen, vielleicht hilft mir hier jemand
mit HV programming.
Quartz ist auf dem Module, aber brauche ich es nicht und deswegen ist
kaum etwas diesbezüglich im Code.
Vielen Dank noch einmal. Gitt sei Dank habe ich weitere Module und ist
schon ein JTAG Module unterwegs.
Irgendwie schaffe ich es nicht die Verbindung zwischen Dragon und den
Chip zu herstellen. Ich habe einen anderen Modul, welcher funktioniert
tadellos. Kann jemand mir helfen den Chip zu löschen?
Leider inzwischen ist der Board nicht mehr lieferbar und ich brauche
noch 2-3 Stk für meine Projekte ( mechanisch muss passen). Ich suche
noch einige solche Boards. Kennt jemand noch eine Bezugsquelle?
Danke.