Forum: Mikrocontroller und Digitale Elektronik bitte Schaltung checken: Dragonlair für AVR Dragon wieder ausgegraben


von A. S. (rava)


Angehängte Dateien:

Lesenswert?

Ich möchte das Dragonlair (*) nachbauen, um die Schnittstellen des AVR 
Dragon zu schützen. Der entsprechende Schaltplan ist in der ersten 
hochgeladenen Datei.

Das Lair puffert die Ein- und Ausgänge (ISP & JTAG) über einen 74HC244 
und schützt so die empfindlichen I/Os des Drachen. Die einzige Ausnahme 
bildet hier die Reset-Leitung, die für Debug-Wire-Funktionalität 
(bidirektional) ungepuffert, aber dennoch geschützt, an der neuen 
ISP-Schnittstelle liegen soll.

Diese Reset-Leitung dient gleichzeitig als Enable-Eingang für den 
Puffer, der die ISP ansteuert, da ohnehin nur programmiert wird, wenn 
die Leitung low ist.


Ich habe diese Schaltung so übernommen und ein paar Änderungen eingebaut 
(zweites Attachment). Da ich aber noch nicht mal das Original 100%ig 
verstanden habe, bleiben ein paar Fragen.

1. P4 wurde durch einen toggle-Schalter ersetzt, um bei Bedarf das 
Zielsystem vom Drachen speisen zu lassen. Die Schaltungsvorlage 
(...200dpi.png) macht aber irgendwie nur Sinn, wenn die 5V-Leitung 
("wire orange") und d_Vtg nicht auf dem AVR Dragon verbunden sind, oder? 
Aber ist das nicht ziemlich abwegig?
Ich bin daher davon ausgegangen, dass sie sehrwohl verbunden sind. Also 
überbrückt mein Schalter "D_POWERS_TARGET" nur den 15R-Widerstand (R9, 
ganz rechts oben) zwischen den beiden VCC-Leitungen. Aber irgendwie 
macht das nur bedingt Sinn, oder?
Gerade wenn das Target mit weniger Spannung versorgt wird (z.B. 1.8V) 
fließen da möglicherweise fiese Ströme aus dem Programmer - und das 
selbst schon bei offenem Schalter. Aber wie kann der 74HC244 in der 
Originalschaltung versorgt werden, wenn die Spannung nicht aus d_Vtg 
kommt? Über 15 Ohm aus dem Target? Aber warum ist d_Vtg dann 
angeschlossen?


2. Es gibt ein Problem, wenn debugWire benutzt wird, während das 
laufende Programm die ISP verwendet. Dann sollten die MISO, MOSI und SCK 
vom Drachen getrennt werden, weil sonst die Kommunikationsflanken an 
RESET auf dem SPI mitsenden (RESET ist ja auch am Enable des Buffers). 
Im Original gibt's da einfach einen weiteren Ausgang (P3), wo nur RESET 
nach draußen geführt wird.
Um das mit einem weiteren Schalter zu lösen, biete ich die Möglichkeit, 
mittels "ISP_ACTIVE" den Eingang des einen Buffers dauerhaft HI zu 
setzen (auch wenn dW über die RESET-Leitung kommuniziert). Dadurch ist 
bis auf MSIO und eben RESET alles von der ISP getrennt. Damit die 
JTAG-Schnittstelle unabhängig von dieser Schalterstellung immer 
funktioniert, musste ich einen zusätzlichen Bufferweg verwenden und habe 
mich für 2x Hexal Buffer entschieden (74HC367). Spricht was gegen diese 
Bauteile?

3. Zur LED schreibt der Autor
> I also added a LED to show ISP-activity. When you connect your target-
> board, this LED lights up. When you power the target, and this LED stays
> on, you connected the ISP-plug the wrong way around.
ehrlich gesagt habe ich nicht ganz verstanden, warum sich die LED so 
verhalten sollte. Vermutlich wird mir das klarer, wenn 1. geklärt ist. 
Müsste dazu der Puffereingang der /PGM-Leitung nicht auf HI liegen?
Bis dato habe ich diesen Schaltungsteil einfach kopiert.
In die fertige Lösung kommen wohl noch ein paar mehr LEDs...

4. was macht die Diode (D5 im Original, D1 bei mir)?

5. ich habe den Strombegrenzerwiderstand der Reset-Leitung von 68R auf 
100R erhöht. Dürfte kein Problem darstellen, oder? Nur warum hatte ihn 
der Autor ursprünglich zu 68R gewählt?


(*) http://www.aplomb.nl/TechStuff/Dragon/Dragon.html

von A. S. (rava)


Lesenswert?

(: dürfte ich mit meinem Fred nochmal auf die erste Seite? :)
Ist auch mein letzter Versuch - im nächsten Schritt würde ich einfach 
mit dem rohen Drachenei herumexperimentieren.

von Stefan B. (steckersammler)


Lesenswert?

Wie passend, ich plane gerade etwas ähnliches...

Aber irgendwie verwirrt mich folgendes an der DragonLair-Schaltung:
In diesem Dokument (http://wiki.trimension.de/wiki/AVR-Dragon) steht 
folgendes:
Die Programmier-Anschlüsse sind Level-converted, für die Konvertierung 
wird die Vtg-Leitung von der zu programmierenden Schaltung verwendet.
An der Vtg-Leitung hängt (sofern nicht mit 5V "überbügelt") aber auch 
die Versorgung des 74HC244.
Die zulässige Versorgungsspannung ist mit 2,0 bis 6,0V angegeben, ein 
bisschen knapp wenn wirklich ein Target mit 1,8V programmiert werden 
sollte...

Weiterhin ist die USB-Spannung bis maximal 5,25V definiert, ist da eine 
5,1V Z-Diode nicht ein wenig "optimistisch"?
5,6V liegen ja schon wieder über der Safe Operating Area der Atmels 
(aber immerhin noch unterhalb der Absolute Maximum Ratings von 6,0V)...

@rava:
In dem von mir verlinkten Dokument steht, dass der Vtg-Anschluss der 
JTAG-Buchse im AVR Dragon keine Betriebsspannung für das Target 
liefert. Er dient lediglich dazu, die Betriebsspannung vom Target für 
den Level-Converter im Dragon zu erhalten.
Das Target muss extern versorgt werden.
Außer natürlich, man verbindet den 5V-Ausgang des Dragon wie im 
DragonLair mit Vtg. Dann muss aber sichergestellt sein, dass das Target 
bei 5V keinen Schaden nimmt...

Zu Punkt 3: Pin3 des ISP sollte auf dem Target normalerweise nicht 
verbunden sein.

So ganz habe ich die Schaltung auch nicht verstanden, aber ich vermute 
einfach mal drauf los:
Wenn kein Target angeschlossen ist, hängt die Kathoder der LED in der 
Luft. Der Buffer-IC hat keine Betriebsspannung, und Anschluss /1G 
floatet vermutlich. Dadurch wird der Buffer-Ausgang auf High-Z sein.

Wenn jetzt das Target (mit ausgeschalteter Spannung) angesteckt wird, 
dann wird /1G durch die Reset-Leitung vom Target auf Low gezogen (Reset 
hat zwar normalerweise einen Pullup auf Vcc, aber ohne Spannung ist es 
dann wohl trotzdem Gnd-Potential).
Der Buffer-IC hat zwar immer noch keine Betriebsspannung, aber 
vielleicht kann trotzdem der Buffer-Ausgang auf Low gezogen werden, 
wodurch der Stromkreis für die LED geschlossen wird und sie leuchtet.

Schaltet man jetzt die Spannung vom Target ein, wird der Buffer mit 
Spannung versorgt, Reset wird vom Target auf High gezogen und schaltet 
dadurch den Buffer auf High-Z. Dadurch geht die LED wieder aus.

Wenn der ISP-Stecker verkehrt herum eingesteckt wurde, liegt Pin3 des 
ISP-Ausgangs ständig auf Masse, die LED leuchtet also immer, egal was 
der Buffer macht...

MfG

von Stefan (Gast)


Lesenswert?

Komisch, was manche Leute für einen Aufwand treiben.

Ich habe einfach 220 Ohm Widerstände in Reihe zu MISO, MOSI, SCK und 
RESET geschaltet. Sofern man das bei der restlichen Beschaltung des AVR 
berücksichtigt, reicht das doch. Und bei fertig-Geräten, wo das nicht 
geht, brauche ich auch keine Schutzschaltung, denn die sind ja schon 
erprobt.

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.