Forum: Mikrocontroller und Digitale Elektronik CTS oder DTR von "Sparkfun FTDI Basic Breakout" für AVR Reset nutzen


von Peter C. (Gast)


Lesenswert?

Hallo zusammen,
ich nutze ein Sparkfun FTDI Basic Breakout 5V für die Kommunikation 
zwischen einem AVR ATMega1284p und meinem Notebook.

den hier......
http://www.exp-tech.de/Shields/Sparkfun-FTDI-Basic-Breakout---5V.html

Der Adapter arbeitet per USB und direkt auf TTL Pegel des AVR - gut und 
zuverlässig.

Da ich die Schaltung nicht nur für die Datenverbidnung zum PC nutzen 
möchte sondern auch nach dem verdeckten Einbau der Schaltung für den 
Bootloader würde ich gerne einen der zusätzlichen Pins für den Reset des 
AVR nutzen. So ließe sich der Bootloader komfortabler starten als durch 
eine Power-on-reset.

Die Fakten:
Wenn ich die Daten per Terminalprogramm empfange bleibt der Pin "DTR" 
auf high 5V ...(warum ????? ).......starte ich die Bootloader 
PC-Software und versuche dann mit einem Klick auf den Buton die 
Kommunikation aufzubauen wird "DTR" für die ganze Zeit low =0V und 
bleibt auch in diesem Zustand bis die Anwendung geschlossen wird.

Ich suche nach Infos wie ich diesen Zustand beeinflussen kann bzw. einen 
Baustein der diese abfallende Flanke in einen kurzen high-low-high am 
reset Pin des AVR umsetzen kann.
Ich möchte nicht noch einen zusätzlichen kleinen Tiny einsetzen der das 
sicher könnte.

ich bin für jeden Tip dankbar....leider bin ich da unwissend.

Danke

Peter

von Jürgen S. (jurs)


Lesenswert?

Peter C. schrieb:
> Ich suche nach Infos wie ich diesen Zustand beeinflussen kann bzw. einen
> Baustein der diese abfallende Flanke in einen kurzen high-low-high am
> reset Pin des AVR umsetzen kann.

Bei den Arduino-Boards ist dieser Baustein immer ein 100 nF Kondensator, 
der für die Auto-Reset Funktionalität sorgt.

Zwischen "DTR" am USB-TTL-Adapter und "RESET" des Mikrocontrollers.

> starte ich die Bootloader PC-Software und versuche dann mit einem
> Klick auf den Buton die Kommunikation aufzubauen wird "DTR" für
> die ganze Zeit low =0V und bleibt auch in diesem Zustand bis die
> Anwendung geschlossen wird.

Dieses Verhalten, dass DTR für wenigstens eine Sekunde oder die ganze 
Zeit LOW geht, ist natürlich Voraussetzung für den Auto-Reset.

Das ist das Standardverhalten beim Öffnen eines COM-Ports, wenigstens 
unter Windows.

von Peter C. (Gast)


Lesenswert?

Hallo Jürgen,
wenn ich das Terminalprogramm nutze wird der DTR nicht auf Low gezogen,
das passiert nur wenn die PC Software Verbidnung mit dem AVR Aufbauen 
soll.

Vom Verständnis her würde ich sagen öffnen beide Progs. den Com Port 
???!!!!


Wenn der 100nF auf den Arduino-Boards in Reihe ??????? liegt 
.................das probiere ich gleich mal aus.

Danke

Peter

von Peter C. (Gast)


Angehängte Dateien:

Lesenswert?

Also nur der 100nF vom DTR in Reihe zum reset Pin des AVR ...geht nicht.

Der AVR Reset Pin ist ja mit einem 10K als pullup belegt ist, natürlich 
auch mit einem 100nF gegen GND.

Ich habe kurz eine Skitzze gemalt vielleicht erläutert das die Umstände 
besser

von Peter C. (Gast)


Lesenswert?

Achja der untere verlauf der Spannung am reset Pin in Abhängiogkeit des 
oberen entstehen. Mit Low auf dem DTR soll der Rest kurz auf Low gezogen 
werden.

vielleicht drück ich mich auch nur zu kompliziert aus.

Peter

von Jürgen S. (jurs)


Lesenswert?

Peter C. schrieb:
> Der AVR Reset Pin ist ja mit einem 10K als pullup belegt ist, natürlich
> auch mit einem 100nF gegen GND.

Genau das ist die Autoreset-Schaltung, nur eben nicht mit 100 nF gegen 
GND, sondern mit 100 nF gegen DTR.

Siehe Bild:
http://2.bp.blogspot.com/-h-w2Ly6uJlA/TjXM0NIyKWI/AAAAAAAAAF8/G8uvIN9v0jQ/s400/reset_circuit.png

Den in diesem Bild angezeigten 1K Widerstand aber am besten sogar 
weglassen.

In dem Augenblick, in dem DTR von 5V auf 0V wechselt, leitet der 
Kondensator ganz kurzfristig Strom, wodurch der Reset-Pin für wenige 
Millisekunden LOW geht, ganz so als wäre der Resetschalter für einige 
Millisekunden gedrückt worden.

Wenn Dein Terminalprogramm so konfiguriert ist, dass DTR auf HIGH 
bleibt, musst Du es ggf. in den Einstellungen umkonfigurieren, so dass 
es beim Öffnen des COM-Ports auf LOW wechselt, wenn Du einen Autoreset 
haben möchtest. Bei Terminalprogrammen ist sowas üblicherweise frei 
einstellbar.

von Peter C. (Gast)


Lesenswert?

Hallo Jürgen,
nein nein nur im Terminalprogramm bleibt DTR auf 5V high, was er ja auch 
soll denn da möchte ich auch keinen AVR reset herbeiführen.

Vermutlich die Bootloader Software von Hagen sorgt für den Wechsel von 
5V auf 0V mit dem Drücken des Button -> "connct to device" (Wenn die 
Verbindung zum Bootloader  mit einem "Reset Power on" zustande gekommen 
ist, was ja auch ginge und ich dann wiederum den Button zum trennen 
drücke, wechselt der DTR auch wieder von 0V auf 5V also von low auf 
high)

In der INI Datei steht noch was von Beeiflussung des RTS Pins, ich schau 
mal ob das durch den USB auf den DTR wirkt - obwohl da die Rede ist von 
den Wechsel high - low - high und das paßt nicht zum verhalten am DTR.

Die Anschaltung des DTR habe ich in meinem Versuch so wie in deiner 
Skitze ausgeführt (ohne 1k) leider ging es nicht, hatte allerdings ca. 
20cm fliegende Leitung dazwischen.

Peter

PS: in meinem Bild ist der Spannungsverlauf am DTR zusehen und ich 
möchte gerne daraus das untere Bild erreichen deshalb auch die gleiche 
Zeitschiene

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.