Hallo zusammen, ich habe einen Arduino UNO via USB an den PC angeschlossen (virt. COM4) und gleichzeitig die Serielle-Schnittstelle des Arduino via MAX232 an virt. COM6 des PC's verbunden. Problem: Der Sketch-Upload funktioniert dann nicht. Fehlermeldung der IDE "avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x69" Erst als ich den MAX232 vom Arduino getrennt habe (RX, TX Pin) hat der Upload funktioniert. Wer kann mir sagen warum sich der Arduino so verhält und warum Rx, Tx Pins nicht mit dem MAX232 verbunden sein dürfen, damit der Sketch-Upload via USB funktioniert ? Habe ich den MAX232 noch nicht richtig mit dem Arduino verbunden? Ich benutze nur die Rx, TX Pin's. CTS/RTS vom MAX232 sind nicht mit dem Arduino verbunden. Danke für eure Rückmeldungen. Grüße krametob
Tobias schrieb: > Erst als ich den MAX232 vom Arduino getrennt habe (RX, TX Pin) hat der > Upload funktioniert. Logisch, denn der Bootloader nutzt den UART. Die Schaltung auf dem Arduion ist sogar so gestaltet, daß ein externer UART Vorrang vor dem USB-UART hat. Das TX Pin ist egal, das ist ein Ausgang an der CPU. Kritisch ist das RX-Pin, das vom USB als auch externen UART getrieben werden kann.
Tobias schrieb: > COM6 des PC's Tobias schrieb: > TX Pin's Bitte keine Deppenapostrophen. http://www.deppenapostroph.info Tobias schrieb: > ich habe einen Arduino UNO via USB an den PC angeschlossen (virt. COM4) > und gleichzeitig die Serielle-Schnittstelle des Arduino via MAX232 an > virt. COM6 des PC's verbunden. Wozu soll das auch gut sein? Die USB Verbindung ist nur solange belegt solange der Flash-Vorgang läuft. Sie ist danach ohne weitere Künsteleien für normale Rx/Tx Übertragungen nutzbar.
Man könnte mittels Diode und Widerstand ein logisches AND erzeugen, dann muss man den externen UART nicht immer abziehen. Der muss dann aber auch ruhig sein, wenn ein Upload auf den Arduino erfolgt.
Hallo Falk, Danke für die schnelle Antwort. Also ist es nicht ohne weiteres möglich den Arduino via USB zu programmieren, wenn der UART RX-Pin gleichzeitig verbunden ist ? Für mich wäre diese Möglichkeit praktisch, da dann eine Programmierung ohne Umbau oder weitere Schaltung (RX-Disconnect) möglich wäre. Grüße Tobias
Tobias schrieb: > Also ist es nicht ohne weiteres möglich den Arduino via USB zu > programmieren, wenn der UART RX-Pin gleichzeitig verbunden ist ? Guck dir den Schaltplan an. Wenn der Ausgang von deinem MAX232 den RXD vom Arduino auf einen Pegel zwingt, hat das Signal vom USB keine Chance mehr. https://www.arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf
Tobias schrieb: > Hallo Falk, > > Danke für die schnelle Antwort. > > Also ist es nicht ohne weiteres möglich den Arduino via USB zu > programmieren, wenn der UART RX-Pin gleichzeitig verbunden ist ? So wie es jetzt aufgebaut ist, nein. Aber wie Wastl schon feststellte. Wozu meinst du, die EXTRA Verbindung über einen MAX232 zum PC zu brauchen? Die braucht man an sich nicht! Sein Serial.Print() etc. läuft auch über den USB-UART! > Für mich wäre diese Möglichkeit praktisch, da dann eine Programmierung > ohne Umbau oder weitere Schaltung (RX-Disconnect) möglich wäre. Siehe mein anderer Beitrag.
Falk B. schrieb: > Tobias schrieb: > >> Erst als ich den MAX232 vom Arduino getrennt habe (RX, TX Pin) hat der >> Upload funktioniert. > > Logisch, denn der Bootloader nutzt den UART. Die Schaltung auf dem > Arduion ist sogar so gestaltet, daß ein externer UART Vorrang vor dem > USB-UART hat. > > Das TX Pin ist egal, das ist ein Ausgang an der CPU. Kritisch ist das > RX-Pin, das vom USB als auch externen UART getrieben werden kann. Beim Nano oder Pro-Mini schalte ich vom TX Pin des externen MAX232 eine Isolationsdiode mit Cathode auf MAX232 TX Pin. Das isoliert die Blockade des Bootloaders durch den externen MAX232 TX Pin. Man muß lediglich darauf achten, daß während des Bootloader Betriebs, der MAX232 keine Daten erhält und dann den USB TX Pin blockiert. Umgekehrt funktioniert das, weil der USB Serial über 1K Widerstände mit dem uC RX/TX Pin verbunden sind und ein externer Serial Betrieb deswegen den Vorrang hat und die Isolationsdiode am MAX232 TX Ausgang notwendig ist. Es ist auch zweckmässig einen 10-20K vom RX Pin nach Vcc zu schalten um bessere Flankensteilheit zu gewinnen. Jedenfalls funktioniert das bei mir bestens. In einen Sensor Projekt läuft so ein RS485 Transceiver in Parallel mit dem Einsteck Serial Transceiver über USB bei einem Pro-Mini bestens. Nachtrag: Sehe gerade im Nachhinein, daß Falk es ohnehin schon früher vorgeschlagen hatte.
:
Bearbeitet durch User
Okay, die Schaltung macht es ganz klar. Danke Wenn ich nur über die Verbindung vom MAX232 (USB nicht verbunden) gehe funktioniert der Sketch-Upload ebenfalls nicht. (Externe Spg.-Versorgung ist vorhanden ;-) ) Das soll nicht heißen, dass ich mit eurer Lösung nur die USB-Verbindung zu verwenden nicht einverstanden bin. Wenn ihr mich an dieser Stelle nochmal aufklärt. Danke für die schnellen Antworten und Grüße
Tobias schrieb: > gehe > funktioniert der Sketch-Upload ebenfalls nicht. (Externe Spg.-Versorgung > ist vorhanden ;-) ) DTR vergessen!
Tobias schrieb: > Wenn ihr mich an dieser Stelle nochmal aufklärt. Also nochmal: du brauchst keine zwei Verbindungen vom Arduino zum PC. Eine reicht für alles. Wenn doch, begründe das ausführlich.
Tobias schrieb: > Okay, die Schaltung macht es ganz klar. Danke > > Wenn ich nur über die Verbindung vom MAX232 (USB nicht verbunden) gehe > funktioniert der Sketch-Upload ebenfalls nicht. (Externe Spg.-Versorgung > ist vorhanden ;-) ) > Das soll nicht heißen, dass ich mit eurer Lösung nur die USB-Verbindung > zu verwenden nicht einverstanden bin. > Wenn ihr mich an dieser Stelle nochmal aufklärt. > > Danke für die schnellen Antworten und Grüße Bin nicht sicher, was Du da meinst. Wenn Du auch über den MAX232 den Bootloader ansprechen willst, musst Du den RTS Pin über einen C mit dem Reset Eingang des 328er verbinden, damit AVRDUDE den 328er resetten kann. Oder Du machst den Reset einfach bei Hand über den Druckknopf. Das funktioniert mit etwas Übung auch. AVR Dude hält den RTS Pin während des Programmiervorgangs permanent auf LOW und startet über ein Serien C durch einmaligen Reset am Anfang den Bootloader. Kannst Du Dein Problem sonst etwas näher beschreiben?
Hi, kannst Du bitte etwas genauer auf DTR eingehen. Ich habe noch CTS und RTS am MAX232 zur Verfügung. Was genau müsste ich machen ? Mein Ziel: Wahlweise entweder die USB-Verbindung zu verwenden oder über reinen UART-Betrieb zu gehen Grüße
Hallo Gerhard, Danke für die Erklärung mit dem RTS-Pin. Ich werde das so aufbauen und freue mich wenn ich dann auch via UART einen Sketch-Upload machen kann. Nochmal vielen Dank in die Runde für eure schnellen Antworten. Ihr habt mir sehr geholfen. Grüße an alle und ein schönes Wochenende Tobias
Tobias schrieb: > Hi, kannst Du bitte etwas genauer auf DTR eingehen. Ich habe noch CTS > und RTS am MAX232 zur Verfügung. Was genau müsste ich machen ? Das was der Rest der Welt macht. Nur USB anstecken und gut! > Mein Ziel: Wahlweise entweder die USB-Verbindung zu verwenden oder über > reinen UART-Betrieb zu gehen Wofür? Für die Kommunikation mit dem PC? Dafür reicht die USB-Verbindung mit dem virtuellen COM-Port! Darüber läuft auch die Programmierung des Arduino. So wie es Millionen von Arduion-Anwendern tun!
Tobias schrieb: > Hallo Gerhard, > > Danke für die Erklärung mit dem RTS-Pin. Ich werde das so aufbauen und > freue mich wenn ich dann auch via UART einen Sketch-Upload machen kann. > > Nochmal vielen Dank in die Runde für eure schnellen Antworten. Ihr habt > mir sehr geholfen. > > Grüße an alle und ein schönes Wochenende > > Tobias Gern geschehen. Ich habe das mit dem manuellen RESET auf einem STK500 früher genauso gemacht um einen Arduino Bootloader für einen ATMEGA1284P zu testen. Mit dem STK500 war ich über RS232 verbunden und startete dann den Bootloader einfach mit dem RESET Taster auf dem STK500. Das funktionierte ganz gut, weil AVRDUDE wiederholt versucht sich mit dem Target in Verbindung zu setzen, bevor er aufgibt. Da kann man dann relaxed vorgehen.
Falk B. schrieb: > Tobias schrieb: >> Hi, kannst Du bitte etwas genauer auf DTR eingehen. Ich habe noch CTS >> und RTS am MAX232 zur Verfügung. Was genau müsste ich machen ? > > Das was der Rest der Welt macht. Nur USB anstecken und gut! > >> Mein Ziel: Wahlweise entweder die USB-Verbindung zu verwenden oder über >> reinen UART-Betrieb zu gehen > > Wofür? Für die Kommunikation mit dem PC? Dafür reicht die USB-Verbindung > mit dem virtuellen COM-Port! > Darüber läuft auch die Programmierung des Arduino. So wie es Millionen > von Arduion-Anwendern tun! Beim UNO vielleicht. Beim PRO-MINI ist das zumindest für mich auch ein aktuelles Problem, weil dann temporär ein USB Serial Kabel am 6-Pin Header eingesteckt ist und ich von der Anwendungsseite her einen MAX232 oder MAX483 parallel mit dran habe. Vielleicht ist es bei Tobias ähnlich, daß er aus irgendeinen triftigen Grund den USB Serial des UNOs oder NANO nicht (immer) einsetzen möchte.
:
Bearbeitet durch User
Gerhard O. schrieb: > Beim UNO vielleicht. Beim PRO-MINI ist das zumindest für mich ein > aktuelles Problem, weil dann temporär ein USB Serial Kabel am 6-Pin > Header eingesteckt ist und ich von der Anwendungsseite her einen MAX232 > oder MAX483 parallel mit dran habe. > Vielleicht ist es bei Tobias > ähnlich, Nö, sein MAX232 verbindet nach seiner Aussage auch zum PC. "ich habe einen Arduino UNO via USB an den PC angeschlossen (virt. COM4) und gleichzeitig die Serielle-Schnittstelle des Arduino via MAX232 an virt. COM6 des PC's verbunden." Das ist sinnlos.
Falk B. schrieb: > Gerhard O. schrieb: >> Beim UNO vielleicht. Beim PRO-MINI ist das zumindest für mich ein >> aktuelles Problem, weil dann temporär ein USB Serial Kabel am 6-Pin >> Header eingesteckt ist und ich von der Anwendungsseite her einen MAX232 >> oder MAX483 parallel mit dran habe. > >> Vielleicht ist es bei Tobias >> ähnlich, > > Nö, sein MAX232 verbindet nach seiner Aussage auch zum PC. > > "ich habe einen Arduino UNO via USB an den PC angeschlossen (virt. COM4) > und gleichzeitig die Serielle-Schnittstelle des Arduino via MAX232 an > virt. COM6 des PC's verbunden." > > Das ist sinnlos. Das habe ich aber auch schon so gemacht. Ein USB port gehört dem AVRDUDE und der andere ist mit anderer HW verbunden oder Teraterm für gewisse Upload Aktivitäten. Das einfache Terminalprogram im IDE kann ja das nicht. So ist das IDE bequemer bedienbar, weil dann das Terminalprogram nicht den USB port freigeben muß. Dann kann der 2. USB Port mit dem Terminalprogram immer dran bleiben. Nur darf der zweite Serial Port nur dann aktiv sein, wenn AVRDude nicht kommuniziert.
:
Bearbeitet durch User
Gerhard O. schrieb: > musst Du den RTS Pin Arduino UNO Schaltplan: DTR! Nix RTS Auch Pro Mini und Nano. Tobias schrieb: > Hi, kannst Du bitte etwas genauer auf DTR eingehen. Einfach mal den Schaltplan des UNO untersuchen. Den lese ich jetzt hier nicht vor.
Arduino F. schrieb: > Gerhard O. schrieb: >> musst Du den RTS Pin > Arduino UNO Schaltplan: DTR! > Nix RTS > Auch Pro Mini und Nano. > > Tobias schrieb: >> Hi, kannst Du bitte etwas genauer auf DTR eingehen. > Einfach mal den Schaltplan des UNO untersuchen. > Den lese ich jetzt hier nicht vor. Wenn ich mich recht erinnere, wird zumindest beim FT232RL der RTS Pin während des AVRDude Zugriffs aktiviert. Aber Du magst recht haben. Kann es aber derzeit nicht verifizieren. Beim USB CH340 Kabel mit den 6 Pins, welches ich meist mit dem Pro-Mini verwende, wird in der Tat der DTR Pin dafür verwendet und ist auch so beschriftet dort. Lässt sich ja leicht feststellen, welchen Ausgang AVRDude tatsächlich beansprucht.
Tobias schrieb: > Also ist es nicht ohne weiteres möglich den Arduino via USB zu > programmieren, wenn der UART RX-Pin gleichzeitig verbunden ist ?
1 | Signal von USB o-----[===]---+--------o Rx Eingang Mikrocontroller |
2 | | |
3 | Signal vom MAX o-------------+ (High) |
Im Ruhezustand liefern beide Signalquellen einen HIGH Pegel. Die Kommunikation findet durch LOW-Impulse statt. Weil dein ruhender MAX aber ständig HIGH liefert, sieht der Mikrocontroller ständig HIGH. Was der USB-UART Chip durch den Widerstand liefert, kann der Mikrocontroller nicht sehen. Dessen Signal wird komplett im Widerstand verheizt.
Gerhard O. schrieb: > So ist das IDE bequemer bedienbar, weil dann das Terminalprogram nicht > den USB port freigeben muß. Früher hat das der lustige "Serial-Monitor" von der Arduino-IDE automatisch gemacht, seit 2.x ist das kaputt-geupdated... Gruss Chregu
Hallo Gerhard, kurzes Feedback. Ich habe Deinen Schaltungsvorschlag umgesetzt und siehe da jetzt funktioniert der Sketch-Upload auch wenn der RS232 angeschlossen ist :-) Habe meine kompletten Schaltungsaufbau mal als Bild angehängt. Nochmal herzlichen Dank und Grüße Tobias
:
Bearbeitet durch User
Tobias schrieb: > Hallo Gerhard, > > kurzes Feedback. Ich habe Deinen Schaltungsvorschlag umgesetzt und siehe > da jetzt funktioniert der Sketch-Upload auch wenn der RS232 > angeschlossen ist :-) > > Habe meine kompletten Schaltungsaufbau mal als Bild angehängt. > > Nochmal herzlichen Dank und Grüße > > Tobias Hallo Tobias, vielen Dank für Deine Erfolgsrückmeldung. Freut mich sehr. Mit vereinten Kräften aller Beteiligten;-) VG, Gerhard
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.