Forum: Mikrocontroller und Digitale Elektronik AVR-Programmer / AVR Dragon Ersatz? | Erfahrungen?


von Soro N. (sorontik)


Lesenswert?

Hallo alle,

ich beschäftige mich schon seit ner Weile mit diversen Arduinos und habe 
mich mittlerweile "durch Arduino" oder "an der Platform vorbei" auch 
schon ein bisschen mit den MCUs und AVR direkt beschäftigt.
(Teilweise, weil ich nicht mit Arduino-Board sondern den "rohen" MCUs 
gearbeitet habe, teilweise, weil ich aus Zeitgründen tatsächlich Takte 
gezählt habe...)

Bisher habe ich zum flashen/programmieren immer entweder den Arduino via 
Bootloader direkt bespielt, oder einen anderen Arduino mit "Arduino as 
ISP" als seriellen Programmer verwendet und das hat eigentlich immer 
getan, was es sollte.

Jetzt bin ich aber so weit, dass ich meine MCUs (AVR 8-bit, 
hauptsächlich AtMega, AtTiny und ggf AtXMega) z.B. auch gerne via JTAG 
oder debugWire debuggen würde.

Im Zuge dessen habe ich gelesen, dass gerade debugWire recht gefährlich 
ist, weil es den /Reset pin umfunktioniert und deswegen z.B. das 
Programmieren der Fuses via SPI nicht mehr möglich ist, was das Risiko 
birgt, einen eigentlich einwandfreien uC zur Unbenutzbarkeit zu 
"verstellen".
(Weil 'aus Gründen' das temporäre deaktivieren von debugWire via 
debugWire nicht geht, weil die debugWire Verbindung nicht funktioniert 
oder so...)
Einen Ausweg bietet High-Voltage-Programming, mit dem sich selbst so ein 
Fehler wieder ausbügeln lässt.

Also wollte ich ein Gerät, das folgende Features beherrscht: SPI-Prog., 
JTAG, debugWire, HVP für die Atmel 8-bit AVRs.

Ich dachte, dass das eigentlich nicht so viel verlangt ist, aber meine 
Suche verlief recht ernüchternd.
Das einzige Gerät, dass vielversprechend klang, war der AVR Dragon.
Nachdem der aber erstens nun schon lange nicht mehr der Jüngste und 
anscheinend ziemlich empfindlich ist und außerdem bei keiner meiner 
üblichen Bezugsquellen mher verfügbar war, hier meine Fragen:


tldr:

1. Ist das HVP tatsächlich ein sinnvoller Wunsch, oder braucht man das 
heutzutage eigentlich eh nicht mehr?

2. Könnt ihr mir ordentliche alternativen zum Dragon empfehlen?
Sprich einen Programmer/Debugger der
- SPI-Programmierung
- JTAG (Prog. & Debuggen)
- debugWire
- (ggf. HVP, parallel und seriell)
beherrscht.

3. Was hat es mit "aWire" auf sich?
Ist das ein anderer Name für debugWire, der Anschluss-Name wenn man 
debugWire über einen ISP-Header betreibt oder was ganz anderes?
Ich bin schon ein paar mal über den Begriff gestolpert, aber ich finde 
keine näheren Informationen dazu...


schon mal vielen Dank im vorraus für die Antworten

LG
Soro

von Gerhard O. (gerhard_)


Lesenswert?

Für HV Programmieren verwende ich bei mir immer noch den guten alten 
STK500. Für SMD oder Arduinos müßte man halt Kabeladapter zu einem 
passenden STK500 uC Fassung zurecht machen. Bei mir habe ich einen ZIF40 
Adapter draufgesteckt.

Für die RS232 Schnittstelle habe ich im PC eine Multi-IO PCIe Karte. 
Leider funktioniert AS damit nicht in W7X64. In X64 BS geht (zumindest 
bei mir) die AS RS232 Schnittstelle trotzdem nicht. Deshalb verwende ich 
VMPlayer und WXP-X32. Das funktioniert.

: Bearbeitet durch User
von neuer PIC Freund (Gast)


Lesenswert?

>Einen Ausweg bietet High-Voltage-Programming, mit dem sich selbst so ein Fehler 
wieder ausbügeln lässt.

HVPP betrachte ich als Normalfall. Nur die 19 pins, und einer davon 12V, 
machen sich nicht so gut als Interface für einen 28-pinner. Dafür ist 
ISP, hat aber nicht die Mächtigkeit von HVPP.

AtmelICE könnte das Teil sein, was du suchst. Kann aber nix mit high 
voltage. Als Billigheimer ist der SNAP einen Blick wert, wenn er denn 
läuft. Und mit UPDI brauchst du auch keine Gedanken an 
debugwire/aussperren aufbringen. Wahrscheinlich kommst du mit 
JTAG/debugwire/UPDI recht weit in der AVR-Welt.

von Stefan F. (Gast)


Lesenswert?

Soro N. schrieb:
> Im Zuge dessen habe ich gelesen, dass gerade debugWire recht gefährlich
> ist, weil es den /Reset pin umfunktioniert und deswegen z.B. das
> Programmieren der Fuses via SPI nicht mehr möglich ist

In diesem Zustand kannst du über debugWire den Debugging Modus beenden. 
Sowohl die Arduino IDE als auch Avrdude machen das IMO automatisch. Man 
steht nur doof da, wenn man den Debugger gerade verliehen hat.

> Ist das HVP tatsächlich ein sinnvoller Wunsch?

Für mich nicht. Ich habe in mehr als 15 Jahren nur zwei AVR 
Mikrocontroller verfused. Die habe ich einfach weg geworfen. Die Kosten 
für den HVP wären es nicht Wert gewesen.

> Könnt ihr mir ordentliche alternativen zum Dragon empfehlen?

Das ist einfach, denn es gibt nur einen: Den Atmel ICE In drei 
Varianten: nackt, mit Gehäuse, und mit Gehäuse+Kabel).

Da gibt es noch ein neueres Gerät von Microchip, aber das ist nach den 
Infos aus diesem Forum hier bezüglich der AVR Kompatibilität noch nicht 
ganz fertig entwickelt.

neuer PIC Freund schrieb im Beitrag #5980688:
> Wahrscheinlich kommst du mit
> JTAG/debugwire/UPDI recht weit in der AVR-Welt.

Ich möchte dazu noch PDI für die Xmega Serie ergänzen.

von Thomas E. (thomase)


Lesenswert?

Soro N. schrieb:
> Im Zuge dessen habe ich gelesen, dass gerade debugWire recht gefährlich
> ist, weil es den /Reset pin umfunktioniert und deswegen z.B. das
> Programmieren der Fuses via SPI nicht mehr möglich ist, was das Risiko
> birgt, einen eigentlich einwandfreien uC zur Unbenutzbarkeit zu
> "verstellen".

Wo hast du denn den Quatsch gelesen?

Soro N. schrieb:
> (Weil 'aus Gründen' das temporäre deaktivieren von debugWire via
> debugWire nicht geht, weil die debugWire Verbindung nicht funktioniert
> oder so...)

Ist mir noch nicht ein einziges Mal passiert. Und ich arbeite schon seit 
Ewigkeiten mit den Dingern.

Soro N. schrieb:
> 1. Ist das HVP tatsächlich ein sinnvoller Wunsch, oder braucht man das
> heutzutage eigentlich eh nicht mehr?

Jein. HV macht nur wirklich Sinn, wenn du den Controller als DIL 
gesockelt hast und ihn aus der Schaltung nehmen kannst. In der Schaltung 
können die 12V Programmierspannung Schaden anrichten und die meisten der 
Pins, die man für HV braucht, sind ja auch belegt, was sich auch nicht 
unbedingt miteinander verträgt. Also In-Circuit nein, Ex-Circuit ja.

Aktueller Programmer ist der Atmel ICE. Hier im Forum schwirrt auch noch 
ein Fuse-Doktor rum. Ich glaube, das Ding heißt so. Damit kann man den 
Controller im Notfall wieder ins Leben zurück holen. Sinnvollerweise 
natürlich auch nur extern.

von Maxim B. (max182)


Lesenswert?

Soro N. schrieb:
> Könnt ihr mir ordentliche alternativen zum Dragon empfehlen?

Dragon kann aber nicht alle AVR debuggen.
Sinnvoller kommt Kombination aus zwei Sachen: ISP-Programmierer und 
JTAG-Debugger.

von Stefan F. (Gast)


Lesenswert?

Maxim B. schrieb:
> Dragon kann aber nicht alle AVR debuggen.

Er kann auch nicht alle AVR flashen, ist halt zu alt.

von Maxim B. (max182)


Lesenswert?

JTAGICE MK2 hat zwar Atmel/Microchip eingestellt, aber in China gibt es 
relativ billige Kopien. Ich bin damit zufrieden. Die Reihe 324-644-1284 
geht damit gut, wie auch 128 und 2560

Thomas E. schrieb:
> Hier im Forum schwirrt auch noch
> ein Fuse-Doktor rum. Ich glaube, das Ding heißt so. Damit kann man den
> Controller im Notfall wieder ins Leben zurück holen.

Wenn man falsche Taktquelle eingestellt hat, braucht man nur einfachsten 
Frequenzgenerator. 1/2 HC00 + R + C zum Beispiel. Mit ISP-Programmer 
kann  man ISP nicht abschalten. Was kann noch passieren?

: Bearbeitet durch User
von neuer PIC Freund (Gast)


Lesenswert?

>Mit ISP-Programmer kann  man ISP nicht abschalten.

Dann wäre es aber auch unmöglich, mit ISP das debugwire einschalten zu 
können. Das habe ich anders in Erinnerung.

von Thomas E. (thomase)


Lesenswert?

Maxim B. schrieb:
> Mit ISP-Programmer
> kann  man ISP nicht abschalten. Was kann noch passieren?

Man kann DW einschalten und man kann den Reset-Pin als Port schalten. In 
beiden Fällen ist ISP tot.

von Stefan F. (Gast)


Lesenswert?

neuer PIC Freund schrieb im Beitrag #5980798:
>>Mit ISP-Programmer kann  man ISP nicht abschalten.

> Dann wäre es aber auch unmöglich, mit ISP das debugwire einschalten zu
> können. Das habe ich anders in Erinnerung.

Man kann Debug Wire einschalten. Beides killt die ISP Schnittstelle. 
Aber mit dem Debug Wire kann man den Debug Modus temporär (bis zum 
nächsten Power-Cycle) beenden. Danach kann man via ISP die Debug-Wire 
Fuse wieder zurück setzen.

Wenn man über ISP den Reset Pin deaktiviert macht dies die ISP 
Schnittstelle unbrauchbar.

von Thomas E. (thomase)


Lesenswert?

Stefanus F. schrieb:
> Aber mit dem Debug Wire kann man den Debug Modus temporär (bis zum
> nächsten Power-Cycle) beenden. Danach kann man via ISP die Debug-Wire
> Fuse wieder zurück setzen.

Nein, mit dem Debugger schaltet man wieder auf ISP-Mode und den Resetpin 
wieder als Reset. Ein Power-ON/OFF braucht man dafür nicht.

Mit ISP wird in den DW-Modus geschaltet. Dieser ist dann nach einem 
Power-Cycle wirksam, weil der Controller einmal einen Reset dafür 
braucht, der aber nicht über den Reset-Pin geschaltet werden kann, da 
dieser ja jetzt DW ist.

von Soro N. (sorontik)


Lesenswert?

vielen Dank an die vielen Antworten, ihr habt mir sehr geholfen :D

(btw, bin neu hier:
kann/soll ich den Thread noch irgendwie als gelöst markieren?)

von Stefan F. (Gast)


Lesenswert?

Soro N. schrieb:
> (btw, bin neu hier:
> kann/soll ich den Thread noch irgendwie als gelöst markieren?)

Hast du gerade gemacht. Anders geht es nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.