Pages: [1] 2   Go Down
Author Topic: Arduino UNO: Reset und der 100nF Kondensator; -> Seriell flashen über TX/RX  (Read 2770 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Sr. Member
****
Karma: 3
Posts: 406
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

bin gerade dabei einen UNO seriell mit einem USB-TTL Adapter zu flashen.
Mit manuellem Reset klappt das einwandfrei.

Da der Adapter auch einen RST-Pin hat, wollte ich den UNO automatisch resetten lassen.
Also den RST-Pin des Adapters mit dem Reset (der nebem 3,3V) des Arduino verbunden.
--> Geht nicht. Programmdownload nicht erfolgreich
Code:
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Recv:
avrdude: stk500_getsync(): not in sync: resp=0x00

avrdude done.  Thank you.

Wenn der Reset-Pin angeschlossen ist, dann geht auch der manuelle Download nicht mehr. Beim Drücken des ResetPins am Arduino wird der USB-Adapter vom Betriebssystem kurz abgemeldet, und die Arduino IDE meckert, daß der COM-Port nicht mehr verfügbar ist.

Ich hab im Internet nachgeforscht, und da wird öfters geschrieben, daß in die Resetleitung noch ein 0,1µF-Kondensator rein soll. Aber wenn ich mir das Layout des Uno so anschau, dann ist da ja bereits einer drauf.
In der Nähe befindet sich auch noch eine Art Lötbrücke: RESET-EN. Aber deren Sinn werde ich nach Studieren des Schaltplans wohl nie ergründen können. Die brückt eine Verbindungsleitung?????

Im Anhang mal der angesprochene Schaltplan


* Unbenannt.JPG (48.98 KB, 524x413 - viewed 66 times.)
« Last Edit: March 02, 2013, 05:20:08 am by hk007 » Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Offline Offline
Sr. Member
****
Karma: 3
Posts: 406
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Uups wie doof von mir.
Der C geht ja rüber zum ATMEGA16.

OK, ich hab dann mal einen 100nF in die RST-Leitung rein gehängt. Aber das Verhalten ist dassselbe. Kein Download und COM-Port Verlust beim Reset-Taster drücken.
Muss da die Verbindung zum ATMEGA16 aufgebrochen werden??
Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Switzerland
Offline Offline
Faraday Member
**
Karma: 111
Posts: 5242
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Du hast eine Reset-Leitung bei Deinem USB-TTL-Adapter? Welchen Adapter nimmst Du? Die Reset-Leitung muss für einen Reset für ein paar Mikrosekunden nach Masse gezogen werden. Macht das die Leitung Deines TTL-Adapters?

Edit: aus Millisekunden werden Mikrosekunden.
Logged

Offline Offline
Sr. Member
****
Karma: 3
Posts: 406
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Welchen Adapter nimmst Du?

Den hier: (siehe Bild)

Quote
Die Reset-Leitung muss für einen Reset für ein paar Mikrosekunden nach Masse gezogen werden. Macht das die Leitung Deines TTL-Adapters?
Muss ich mal morgen mit dem Oszi prüfen.


* Unbenannt.JPG (54.74 KB, 540x538 - viewed 36 times.)
Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Switzerland
Offline Offline
Faraday Member
**
Karma: 111
Posts: 5242
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich schätze mal, die RST-Leitung ist direkt mit DTR verbunden, dann müsstest Du statt einer direkten Verbindung einen Kondensator nehmen. Der leitet dann den Impuls kurz durch, zieht aber die Leitung nicht durchgehend nach Masse (womit der Arduino ausser Gefecht gesetzt wäre).
Logged

Offline Offline
Sr. Member
****
Karma: 3
Posts: 406
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
...dann müsstest Du statt einer direkten Verbindung einen Kondensator nehmen...

Hab ich probiert. Sieh mal in "Reply#1" des Threads
Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Offline Offline
Sr. Member
****
Karma: 3
Posts: 406
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Quote
Die Reset-Leitung muss für einen Reset für ein paar Mikrosekunden nach Masse gezogen werden. Macht das die Leitung Deines TTL-Adapters?
Muss ich mal morgen mit dem Oszi prüfen.

Wieso Oszi...habs jetzt mal mit dem Multimeter gemessen. Der RST-Pin hat 4,4V. Während des Programmierens fällt der Pegel auf 3,3V?????

Damit wirds wohl nicht gehen :-(
Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Offline Offline
Sr. Member
****
Karma: 3
Posts: 406
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So, jetzt glaub ich , daß ich den Wandler gehimmelt habe. Über RX und TX geht nichts mehr rein oder raus. Pech gehabt.

Mein nächster Versuch ist jetzt mit einem RS232/TTL-Wandler:
http://www.pollin.de/shop/dt/MzY5OTgxOTk-/Bausaetze_Module/Bausaetze/RS232_TTL_Wandler_Bausatz.html

Aufbau: Wandler an serielle Schnittstelle, Arduino und Wandler mit 5V versorgt. RX und TX verbunden. RTS mit reset (mal ohne, mal mit Kondensator)
Mit dem Konstrukt kann ich über das Terminalfenster seriell mit dem Arduino kommunizieren. Aber Download ( auch ohne verbundener Resetleitung und mit manuellem Reset) klappt einfach nicht.
Ist das vllt. auch ein Problem der Baudrate? Im Sketch sind 9600 für die serielle Kommunikation eingetragen. Die IDE will aber mit 115200 flashen. Muss man da in Windows was umstellen?
Wobei ich bei meinem USB-TTL Wandler auch nichts umstellen musste.

Irgendwie komm ich da jetzt nicht weiter.

-----------------------------------------------------------------------------------------

Hab jetzt noch einen RS232-TTL Wandler gefunden. Allerdings ohne RST-Leitung. Mit dem geht es wieder prima zu flashen (allerdings manueller Reset)
Ich fürchte bei dem Pollin-Modul ist der MAX232N von der Baudrate an der Grenze. Der kann lt. Datenblatt maximal 120kBit/s.
Da beim Arduino mit 115200 geflasht wird, ist das wohl mit dem Wandler nicht mehr möglich.

Der andere RS232-TTL Wandler hat einen MAX3232. Und der kann 250kBit/s.

Ist  ne Vermutung von mir.

Kennt jetzt jemand einen RS232-TTL-Konverter, der die Baudrate kann und auch eine Reset-Leitung hat?
« Last Edit: March 01, 2013, 07:15:07 pm by hk007 » Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Offline Offline
Sr. Member
****
Karma: 3
Posts: 406
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hmm... nach längerer Recherche im Internet, glaube ich, daß der ATMega16U das serielle flashen über die TX/RX-Leitungen stört.
Hier steht einiges dazu:
http://blog.solutions-cubed.com/programming-the-arduino-uno-with-a-serial-port/

Sieht so aus, als ob ich mir das serielle Flashen ohne modifizierten Arduino abschminken kann.
Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 271
Posts: 21873
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Quote
Die Reset-Leitung muss für einen Reset für ein paar Mikrosekunden nach Masse gezogen werden. Macht das die Leitung Deines TTL-Adapters?
Muss ich mal morgen mit dem Oszi prüfen.

Wieso Oszi...habs jetzt mal mit dem Multimeter gemessen. Der RST-Pin hat 4,4V. Während des Programmierens fällt der Pegel auf 3,3V?????

Damit wirds wohl nicht gehen :-(
Der Impuls ist zu kurz als daß Du etwas sinnvolles mit dem Multimeter messen kannst. Du brauchst ein Osziloskop um diese Messung durchführen zu können.



Die zwei Widerstände sind eigendlich dazu da, daß man die Seriele Schnittstelle trotz  ATMega16U verwenden kann.

Du kannst den  ATMega16U in Reset halten und so deaktivieren. Dazu brauchst Du nur den Reset-Pin des  ATMega16U auf Masse zu schalten. Am einfachsten geht das am ICSP-Anschluß des ATMega16U.
http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

Ciao Uwe
« Last Edit: March 02, 2013, 02:07:24 pm by uwefed » Logged

Offline Offline
Sr. Member
****
Karma: 3
Posts: 406
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Uwe
Quote
Dazu brauchst Du nur den Reset-Pin des  ATMega16U auf Masse zu schalten. Am einfachsten geht das am ICSP-Anschluß des ATMega16U
Ich hab das jetzt mal probiert. Sind am linken oberen 6pol. ISP-Stecker die beiden rechten Pins oder?
Aber gebracht hat es nichts. Die Reset-Leitung bleibt immer auf 4,7 Volt.

Ich verwende aktuell einen RS232-TTL-Wandler mit einem MAX2323-Chip. Da auf dem Modul nur RX und TX "verbaut" sind hab ich die DTR-Leitung über einen der freien Level-Shifter gelegt.
Ohne Arduino ist dieses Signal HIGH und beim Starten des Download-Vorganges wird das Signal LOW. Damit es nur der benötigte kurze Impuls wird, hab ich noch den berüchtigten 100nF-Kondensator (kein Elko) in Reihe geschaltet.
Aber wie es aussieht schafft es die Schaltung nicht den Reset-Pin des Arduino für die notwendige Zeit auf Low zu ziehen.

Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 271
Posts: 21873
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Uwe
Quote
Dazu brauchst Du nur den Reset-Pin des  ATMega16U auf Masse zu schalten. Am einfachsten geht das am ICSP-Anschluß des ATMega16U
Ich hab das jetzt mal probiert. Sind am linken oberen 6pol. ISP-Stecker die beiden rechten Pins oder?
Aber gebracht hat es nichts. Die Reset-Leitung bleibt immer auf 4,7 Volt.

Damit hälst Du den ATmega16U2 im Reset und nicht den ATmega328. Es ist richtig dort 4.7V zu messen.

Quote from: hk007
Ich verwende aktuell einen RS232-TTL-Wandler mit einem MAX2323-Chip. Da auf dem Modul nur RX und TX "verbaut" sind hab ich die DTR-Leitung über einen der freien Level-Shifter gelegt.
Ohne Arduino ist dieses Signal HIGH und beim Starten des Download-Vorganges wird das Signal LOW. Damit es nur der benötigte kurze Impuls wird, hab ich noch den berüchtigten 100nF-Kondensator (kein Elko) in Reihe geschaltet.
Aber wie es aussieht schafft es die Schaltung nicht den Reset-Pin des Arduino für die notwendige Zeit auf Low zu ziehen.

Ich nehme an der RS232-TTL-Wandler wird über Arduino mit Spannung versorgt. Bist Du sicher daß TX und RX richtig angeschlossen sind? Hast Du zB einen Sketch der Pin 13 HIGH schaltet auf den Arduino draufgeladen? Was passiert wenn dann der Upload-Vorgang startet? Geht das Led an pin 13 kurz aus?

Grüße Uwe
Logged

Offline Offline
Sr. Member
****
Karma: 3
Posts: 406
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Damit hälst Du den ATmega16U2 im Reset und nicht den ATmega328. Es ist richtig dort 4.7V zu messen.
Das ist mir klar  smiley-wink
Ich meinte damit, daß ich es nicht schaffe die Reset-Leitung des 328 auf LOW zu ziehen, selbst wenn ich den den ATMega16U durch den Trick lahmlege.

Quote
Ich nehme an der RS232-TTL-Wandler wird über Arduino mit Spannung versorgt
JA

Quote
Bist Du sicher daß TX und RX richtig angeschlossen sind?
JA, denn mit manuellem Reset geht der Download, und auch über den seriellen Monitor bekomm ich Daten. (Ich sende im Sketch über die Schnittstelle)

Quote
Hast Du zB. einen Sketch der Pin 13 HIGH schaltet auf den Arduino draufgeladen? Was passiert wenn dann der Upload-Vorgang startet? Geht das Led an pin 13 kurz aus?
Ich hab mal in meinen Sketch die LED mit eingebunden.
NEIN, die geht beim Start des Download nicht aus.

Ich habs jetzt mal so gemacht. Die DTR ohne Kondensator an den Reset. An dem Pin mit dem Multimeter gemessen. Wenn ich den Download starte, dann sehe ich daß die Reset-Leitung auf LOW geht. Gleich anschliessend hab ich die reset-Leitung geöffnet. Damit geht wie erwartet der Download.
Es ist nur das Problem, daß ich es mit dem Kondensator nicht schaffe, einen Impuls auf die Reset-leitung zu bekommen.

Den C in Reihe einschleifen ist schon richtig, oder??

Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Offline Offline
Sr. Member
****
Karma: 3
Posts: 406
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

HI,

jetzt hab ich mal mit dem Oszi gemessen, wie das Reset-Signal aussieht.

So wie das aussieht, kann es ja nicht gehen. Ich krieg die Reset-Leitung maximal auf 2,2V runter.
Sind da 100nF zu wenig?
Was mir auch noch Sorgen macht, ist die Spannungsspitze im Anschluß. Wo kommt die denn plötzlich her?????


* Reset.bmp (146.3 KB, 320x234 - viewed 28 times.)
Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Offline Offline
Sr. Member
****
Karma: 3
Posts: 406
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nächster Versuch:

Ich hab die kleine Brücke in der Reset-Leitung zum ATMega16U aufgemacht.
Jetzt läuft es.
Auch auf dem Oszi sieht man, daß die Reset-Leitung auf annähernd 0V gezogen wird.

Aber 2 Probleme hab ich noch mit der Lösung:
- Der Spike nach dem Reset-Impuls. Das sind annähernd 10V. Da hab ich jetzt aber doch Angst um meinen Arduino
- Durch das Auftrennen der Leitung hab ich mir die Möglichkeit genommen weiterhin über USB zu flashen. (Ja ich weiss, manuell geht es trotzdem)


* Reset_2.bmp (146.3 KB, 320x234 - viewed 32 times.)
Logged

Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

Pages: [1] 2   Go Up
Jump to: