Forum: Mikrocontroller und Digitale Elektronik Komisches Verhalten von RX am Arduino


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Olli Z. (z80freak)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ein Bekannter von mir hat einen China Arduino Uno. Der lässt sich 
problemlos programmieren. Bei Versuchen ein serielles Gerät über den 
UART des Uno (RX/TX Pins) anzusteuern stellte sich jedoch heraus, das 
die Empfangsleitung scheinbar immer nur HIGH-Pegel erkennt. Auch die 
RX-LED geht nicht an, selbst wenn man den Pin am Uno auf Masse legt. 
Beim TX-Pin klappt das und auch bei anderen Uno-Clones geht die RX-LED 
an wenn man den RX-Pin auf GND legt.

Jetzt ist natürlich klar das da irgendein Defekt vorliegt. Ich frage 
mich nur wie das geht, obwohl die Programmierung einwandfrei 
funktioniert? Und dabei muss der RX ja wohl klappen...

Die LEDs werden ja nicht direkt vom Uno angesteuert, sondern von dem 
zweiten Atmega der als USB-Chip dient. Beim programmieren sieht man auch 
sowohl RX als auch TX flackern.

Irgendeiner ne Idee wie das sein kann? Ein merkwürdiges Fehlerbild...

von Jim M. (turboj)


Bewertung
0 lesenswert
nicht lesenswert
RX Pin im Programm aus Versehen auf Ausgang und High gestellt?

von Olli Z. (z80freak)


Bewertung
0 lesenswert
nicht lesenswert
Jim M. schrieb:
> RX Pin im Programm aus Versehen auf Ausgang und High gestellt?
"Leider" nicht.

Serial.end();
pinMode(0, INPUT);

von spess53 (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Hi

>RX Pin im Programm aus Versehen auf Ausgang und High gestellt?

Wenn RX enabled (RXE = 1 in UCSR0B) wird, übernimmt die USART die 
Kontrolle über das PIN.

Deswegen ist das

 pinMode(0, INPUT);

auch überflüssig.

MfG Spess

von Manfred (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Olli Z. schrieb:
> China Arduino Uno.
> ..
> sondern von dem zweiten Atmega der als USB-Chip dient.
Das wäre beim China Uno höchst ungewöhnlich, da ist USB nach Seriell 
meist als Hardwarebaustein CH340 drauf.

> Jetzt ist natürlich klar das da irgendein Defekt vorliegt. Ich frage
> mich nur wie das geht, obwohl die Programmierung einwandfrei
> funktioniert?
Eben, wenn Programmieren über USB funktioniert, kann die Hardware an 
dieser Stelle nicht defekt sein.

von Sebastian S. (amateur)


Bewertung
0 lesenswert
nicht lesenswert
Ob die Led richtig funktioniert kannst Du einfach feststellen, indem Du 
den seriellen Kram beiseite lässt und den zugehörigen Pin in einer 
08/15-Schleife - von mir aus mit delay - befummelst.
Natürlich kann es nicht schaden vorher die Richtung usw. zu setzen.

von Olli Z. (z80freak)


Bewertung
0 lesenswert
nicht lesenswert
Ohje... Hab grad mal im Uno-Datenblatt 
(https://www.arduino.cc/en/Main/ArduinoBoardUno) und da steht:

"... Arduino board. The RX and TX LEDs on the board will flash when data 
is being transmitted via the USB-to-serial chip and USB connection to 
the computer (but not for serial communication on pins 0 and 1). "

Das gilt auch für den original Nano. Ich habe hier einen China-Nano und 
der hat natürlich keinen FTDI-Chip, sondern einen CH340 drauf.

Des Rätsels Lösung ist aber: Die Chinesen haben sich bei dem nicht an 
den Originalbauplan gehalten. Die RX-Led ist dabei sowohl mit dem RX-Pin 
des Atmega als auch mit dem des CH340 verbunden!
Im originalplan ist die LED ausschließlich mit dem USB-Chip verbunden.

Somit ist mit nun klar, warum sich unsere Arduinos, obwohl beides 
Clones, in der Sache unterschiedlich verhalten.

Trotzdem vielen Dank für die Hilfe!

: Bearbeitet durch User
von Dieter F. (Gast)


Bewertung
-3 lesenswert
nicht lesenswert
Olli Z. schrieb:
> Im originalplan ist die LED ausschließlich mit dem USB-Chip verbunden.

Spannend - wo genau steht das? Arbeitet der "USB-Chip" autark vom MC?

von Olli Z. (z80freak)


Bewertung
0 lesenswert
nicht lesenswert
Dieter F. schrieb:
> Olli Z. schrieb:
>> Im originalplan ist die LED ausschließlich mit dem USB-Chip verbunden.
>
> Spannend - wo genau steht das? Arbeitet der "USB-Chip" autark vom MC?

Schau mal hier: https://www.arduino.cc/en/Main/ArduinoBoardUno
und suche nach "Communication". In dem Absatz steht das Zitat von mir.

Auf der Seite ist auch der Schaltplan zu finden: 
https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

von Dieter F. (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Olli Z. schrieb:
> Auf der Seite ist auch der Schaltplan zu finden:
> https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

Schön, bekannt. Und wieso schreibst Du mal vom UNO und mal vom NANO?

Olli Z. schrieb:
> Das gilt auch für den original Nano. Ich habe hier einen China-Nano und
> der hat natürlich keinen FTDI-Chip, sondern einen CH340 drauf.

Da gibt es deutliche Unterschiede, welche Du Dir mal genau anschauen 
solltest.

von Olli Z. (z80freak)


Bewertung
2 lesenswert
nicht lesenswert
Dieter F. schrieb:
> Schön, bekannt. Und wieso schreibst Du mal vom UNO und mal vom NANO?
>
> Da gibt es deutliche Unterschiede, welche Du Dir mal genau anschauen
> solltest.

Ach gottchen, der Herr Oberlehrer. Erst scheinheilig fragen um dann den 
Schlauberger raushängen zu lassen. Bei Langeweile empfehle ich ein Buch, 
oder die Threads mal von ANFANG lesen und nicht nur den letzten Post...
--------------------------------
 ENDE des Thread. Bitte keine weiteren sinnbefreiten Kommentare mehr.

von Dieter F. (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Olli Z. schrieb:
> Erst scheinheilig fragen um dann den
> Schlauberger raushängen zu lassen.

Olli Z. schrieb:
> Des Rätsels Lösung ist aber: Die Chinesen haben sich bei dem nicht an
> den Originalbauplan gehalten. Die RX-Led ist dabei sowohl mit dem RX-Pin
> des Atmega als auch mit dem des CH340 verbunden!

Zumindest schreibe ich keinen  Unsinn :-)

von Manfred (Gast)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Olli Z. schrieb:
> Die RX-Led ist dabei sowohl mit dem RX-Pin
> des Atmega als auch mit dem des CH340 verbunden!
Beim China Uno sind jeweils 1 kOhm zwischen CH340 und AT328, habe ich 
bei dem hier vorliegenden gerade nachgemessen.

Dementsprechend ist eine LED direkt am Tx des AT328 und die andere am Tx 
des CH340 - andernfalls würde das mit den 1k im Signalweg nicht 
funktionieren.

Beim China Nano sollte es genauso sein, aber ich habe jetzt keine Lust, 
das nachzumessen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.