Arduino Leonardo Reset für UART

OP #4183559
Lesenswert?
• ▲
▼
Hallo,

ich habe ein Problem mit meinem Leonardo, bei dem ich die UART (RX/TX) 
Schnittstelle (welche gleichzeitig auch für USB mitverwendet wird) 
verwenden möchte. Wenn ich den Leonardo das erste mal an Power Supply 
hänge, muss ich einmal die Kommunikation mit meinem Interface (nicht PC) 
starten (welche nicht klappt), dann die Reset Taste drücken und 
anschließend scheint die UART Schnittstelle richtig konfiguriert zu 
sein, da es dann fehlerfrei läuft.

Mache ich was falsch, oder liegt das an der gleichzeitigen Nutzung als 
USB Interface?

Was ich noch dazu sagen muss, ich verwende in diesem Fall weder das 
Monitoring der IDE noch hängt es per USB am PC. Nach dem flashen 
verwende ich den Leonardo "autonom".

Vielen Dank schonmal für eure Hilfe.
#4183710
Lesenswert?
• ▲
▼
Naja das sind ja 2 verschiedene Schnittstellen.. eigentlich sogar 3.

1. Einige Sekunden nach reset Bootloader
2. Dann wechselt der Treiber in USB Serial Interface
3. Hast du noch das Hardware basierte Serial das mit dem USB Serial nix 
zu tun hat.

Wie du das nun haben willst ist nicht ganz ersichtlich.. vielleicht 
braucht die Com gegenstelle auf der anderen seite zu lange zum 
hochfahren.. wobei das ja eigentlich Plug&Play sein sollte.
OP #4187036
Lesenswert?
• ▲
▼
Also ich habe das gleiche Programm auf einem Mega2560 laufen und dort 
habe ich nicht solche Schwierigkeiten. Kann mir da jemand weiterhelfen 
warum es beim Leonardo nicht vernünftig läuft. Schließlich verwende ich 
auch den Befehl Serial1 ähnlich wie beim Mega2560 dort gibt es 
Serial1...3
#4187060
Lesenswert?
• ▲
▼
Beim Leonardo ist Serial0 ein reines USB Interface wo auch nur USB was 
lesen und schreiben kann (USB-CDC-Device).

Serial1 hingegen sind D0 und D1 für direkte TTL Serial Verbindung.

Hast du die Warteschleife im Setup:
Serial.begin(9600);
   // while the serial stream is not open, do nothing:
   while (!Serial) ;

Norbert V. schrieb:
> ich habe ein Problem mit meinem Leonardo, bei dem ich die UART (RX/TX)
> Schnittstelle (welche gleichzeitig auch für USB mitverwendet wird)

So stimmt das ja nicht wenn Du Serial1 benutzt.. versuche das mal 
zeitlich zu experimentieren welches von beiden geräten zu früh/spät 
ist.. bzw was passiert wenn Du Usb am Rechner hast.. ggf. mal einige 
Debug Outputs auf Serial0 legen?
OP #4187421
Lesenswert?
• ▲
▼
Wenn ich USB am Rechner bzw. Leonardo dran habe funktioniert es ohne 
Reset, nur wenn ich den Leonardo "autonom" laufen lassen will habe ich 
diese Schwierigkeiten.

Ich verwende Serial1, das ist korrekt, denn ich möchte RX/TX verwenden 
welches eigentlich abgekoppelt ist beim Leonardo, da hast du recht.

Diese while loop im Setup, muss die für Serial und Serial1 drin sein? 
Wenn ich sie für Serial hinein nehme und nichts über USB kommuniziere 
werde ich hier ewig drin fest sitzen oder nicht?
Gast #4187441
Lesenswert?
• ▲
▼
Norbert V. schrieb:

> Diese while loop im Setup, muss die für Serial und Serial1 drin sein?
> Wenn ich sie für Serial hinein nehme und nichts über USB kommuniziere
> werde ich hier ewig drin fest sitzen oder nicht?

Falls das Manual nichts anderes sagt, würde ich erwarten, dass die 
while-Schleife jeweils für diejenige serielle Schnittstelle vorhanden 
sein muss, für die Du Serial.begin aufrufst. Im Umkehrschluss, also 
nicht für diejenigen für die Du die Methode nicht aufrufst.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.