Ich habe mir auf Ebay ein Arduino Board gekauft mit dem ATmega32u4 bestückt. (Arduino-Pro-Micro-komp-ATmega32U4-USB-Entwicklungsboard-5V-16MHz) Erkannt wird das ganze als Arduino Leonardo Board. Ich verwende einige Digital Pin für Tasten. Das funktioniert sehr gut. Jetzt wollte ich die Serial1 Schnittstelle benutzen. Dabei habe ich Probleme. Was immer ich für ein Code Beispiel von ARDUINO benutze Z.b: https://www.arduino.cc/en/Tutorial/MultiSerialMega Sollte von port1 auf port0 ausgeben und umgekehrt. Die Serielle Ausgabe von der Arduino IDE wird permanent besendet mit leeren Zeichen oder non printable characters. Ob ich ein Device auf RX1 angesteckt habe oder nicht scheint dabei keine Rolle zu spielen. Gemäß der Beschreibung sollte die Schnittstelle Serial1 ttl conform laufen. https://www.arduino.cc/en/Reference/Serial Das Device funktioniert jedoch mit einem TTL Converter am PC einwandfrei. Ist der Serial1 Port womöglich hinüber oder ich zu blöd?
Ohne jetzt nachzuschauen: Braucht die ser1+ evtl. Softserial? (Nur eine Hardware-Serielle?) Gruss Chregu
Christian M. schrieb: > Braucht die ser1+ evtl. Softserial? Nein! Serial geht über USB Serial1 ist vom Type Hardwareserial. Robin H. schrieb: > Das Device funktioniert jedoch mit einem TTL Converter am PC > einwandfrei. > > Ist der Serial1 Port womöglich hinüber oder ich zu blöd? Wenn das am PC über einen Konverter funktioniert, dann ist die Schnittstelle in Ordnung. Also baust du irgendeinen Mist. Aber ka welchen....
Kann ich die Arduino serial1 Schnittstelle testen. Ich vermute dass die einen Schaden hatt.
Eine Brücke zwischen TX und RX schlagen. Dann muss das aus Serial1 wieder raus kommen, was du rein steckst.
Das hat mir auch den Einstieg zum Arduino-UNO vermiest! Die serielle Schnittstelle an Pin 0 und 1 wird (über USB) vom Arduino-Entwicklerprogramm konfisziert und ist zumindest in der Entwicklungsphase nicht frei nutzbar. (Ich glaube mit Einstellung auf 115,2 kBaud kann man das "abhören".) Obwohl man ein µC-Board hat, das HW-Serial kann, darf man sich mit SW-Serial rumärgern. Daher liegt der erwartungsvoll gekaufte UNO schon seit Wochen ungenutzt rum...
Jacko schrieb: > Die serielle Schnittstelle an Pin 0 und 1 wird (über USB) vom > Arduino-Entwicklerprogramm konfisziert und ist zumindest in der > Entwicklungsphase nicht frei nutzbar. (Ich glaube mit Einstellung > auf 115,2 kBaud kann man das "abhören".) Bein Leonardo ist das nicht der Fall. Jacko schrieb: > Obwohl man ein µC-Board hat, das HW-Serial kann, darf man sich mit > SW-Serial rumärgern. Daher liegt der erwartungsvoll gekaufte UNO > schon seit Wochen ungenutzt rum... Du kannst den USB Seriell Wandler des UNO, ein ATMega16U2, im Reset halten. Eine Steckbrücke auf dessen ISP reicht. Dann kannst du Pin0 und Pin1, und damit auch Hardware Serial, ungehindert für eigene Zwecke nutzen.
Also ich habe heute wieder getestet. Byte von serial1 sollen auf serial ausgegeben werden. Die ganze Anzeige wird vollgemüllt. Der Arduino sendet permanent auf Serial1. Obwohl nichts dransteckt. Ich habe mir jetzt noch einen bestellt um zu schauen ob der einen defekt hat. Ich war auch der Meinung dass der Leonardo den HW SERIAL1 ohne weiters benutzen kann unabhängig der USB Verbindung zum PC.
Robin H. schrieb: > Ich war auch der Meinung dass der Leonardo den HW SERIAL1 ohne weiters > benutzen kann unabhängig der USB Verbindung zum PC. Ich stimme dir zu! Dieses Programm habe ich mal getestet: https://www.arduino.cc/en/Tutorial/MultiSerialMega Anpassung: Eine Steckbrücke zwischen Tx1 und Rx1 Und eine zusätzliche Zeile in Setup, extra für den Leonardo
1 | void setup() { |
2 | // initialize both serial ports:
|
3 | Serial.begin(9600); |
4 | Serial1.begin(9600); |
5 | while(!Serial); // Warte auf öffnen der Schnittstelle |
6 | }
|
Es werden alle Eingaben von der seriellen Konsole angezeigt. Wenn ich dann die Steckbrücke ziehe, kommen keine Schrottdaten. Wenn da bei dir Schrott kommt, dürfte dein ATMega32U4 (oder das Board) wirklich defekt sein.
Interessant jetzt scheint es zu funktionieren. Aber kannst du mir jetzt erklären. Warum der erst keinen Müll mehr sendet wenn ich zwischen rx & tx eine Brücke mach. Ich versteh das nicht?
Wenn RxD keinen klaren Pegel bekommt, dann könnte das für die Serielle wie Daten aussehen. Floatende Eingänge spielen Antenne, und deine Serielle Hardware macht aus dem Restrauschen des Urknalls halt eben schöne 8bittige Bytes. Warum das bei mir nicht passiert? KA, vielleicht wohne ich in einer ruhigeren Ecke dieses Universums...
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.