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


von Olli Z. (z80freak)


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)


Lesenswert?

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

von Olli Z. (z80freak)


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)


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)


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)


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)


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)


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)


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)


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)


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)


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:

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.

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
Noch kein Account? Hier anmelden.