Forum: Mikrocontroller und Digitale Elektronik CH340 UART to USB - Rx und Tx Pegel


von Michael K. (Gast)



Lesenswert?

Guten Morgen zuammen,

ich habe folgendes Problem: Über ein selbst erstelltes Board möchte ich 
mit eine seriellen Schnittstelle Befehle empfangen und weiter 
verarbeiten.  Die Spannungsversorgung wird über den USB Port realisiert, 
der die 5 V auf 3.3V  regelt. Der CH340N wird als USB to serial Chip 
verwendet. An Tx und Rx habe ich zwei LEDs über einen Pullup Widerstand 
angeschlossen, um zu sehen, ob sich was tut.
Wenn ich das USB Kabel anschließe, dann taucht auch der COM Port im 
Windows Geräte Manger auf. Ich habe eine Baudrate von 19200 Bauds 
eingestellt.
Als Terminal Programm benutze ich HTerm.

Ich habe den wichtigen Teil des Schaltplans hochgeladen. Dabei habe ich 
mich an den Schaltplan von SParkfun und Arduino Nano orientiert.
https://cdn.sparkfun.com/assets/5/2/5/4/2/Serial-Basic-CH340C-and-USBC.pdf

Bei der Bestellung der Platinen ist mir jedoch ein Fehler passiert. Ich 
habe ausversehen statt 1kOhm Widerstände, Widerstände mit 5.1kOhm in die 
BOM eingetragen. Also habe ich erstmal R4 und R5 ausgelötet und 
überbrückt. R2 und R3 sind eigentlich auch zu groß, aber die habe ich 
erstmal nicht ausgelötet, damit ich sehe, ob die LEDs leuchten.

1. Im Anhang befinden sich paar Bilder mit den Signalverläufen. Wenn ich 
eine Nachricht sende, dann messe ich mit den Oszilloskop folgenden 
verlauf wie im Bild Tx-Taster.PNG. Ich messe ein Signal, aber der Pegel 
geht nicht auf 0V sondern auf ca. 0,27V runter und man erkennt eine Art 
Sinusschwingung. Über HTerm empfange ich nichts.

2. Wenn ich über den COM Port Zeichen vom PC zum Board sende, dann 
empfange ich auf der Rx Leitung was, aber der Pegel geht auf 2V runter.

3. Im letzten Bild(Tx_3V3_ohne_USB) habe ich das USB Kabel nicht 
angeschlossen und die 3.3V über den Debugger Stecker angelegt. Wenn ich 
jetzt den Spannungsverlauf messe, dann geht der Pegel auf 0V runter und 
sieht auch nicht so wellig aus.

Ich habe VCC mit einer kurzen Leitung an V3 verbunden, weil ich im 
Datenblatt gesehen 
habe(https://cdn.sparkfun.com/datasheets/Dev/Arduino/Other/CH340DS1.PDF):
" CH340 chip supports 5V and 3.3V power voltage. When using 5V source 
power, the VCC input 5V
power and the pin of V3 must connect with 4700pF or 0.01uF decoupling 
capacitance. When using 3.3V power voltage, connects V3 with VCC, and 
input 3.3V power voltage. And the other circuit voltage which is 
connected with CH340 is no more than 3.3V"
Es hat aber nichts gebracht, da die Verläufe genau so aussehen.

Woran liegt es, dass der Pegel nicht auf 0V sinkt, wenn ich USB 
anschließe? Weder bei der Tx noch bei der Rx Leitung.

Viele Grüße
Michael K.

von Hermann Kokoschka (Gast)


Lesenswert?

Sehr merkwürdig...

Die 0,27V Offset sollten eigentlich nicht stören.
Aber ein Ansatz wäre erstmal Spannungsversorgung und MASSE,
ist das ALLES sehr-genau getestet?

ALLE Masse-Verbindungen, besonders die vom USB vorhanden und händisch 
gemessen?
Spannungsversorgung unter Betriebslast gemessen?

von Jester (Gast)


Lesenswert?

Im Datenblatt zum CH340N finde ich unter V3 (Pin 8): Connect to VCC when 
VCC is 3V3, connect to 0.1uF decoupling capacitor when VCC is 5V. Wieso 
hast du das anders beschaltet?

TxD (Pin 6) und RxD (Pin 7) gehen wo hin?

Das Signal "Rx-Tx_usb.PNG" - siehst du das sonst noch wo außer an RxD 
(Pin 7)?

von Michael K. (Gast)



Lesenswert?

Guten Morgen zusammen,

@Jester: Pin 6 und 7 gehen zum Mikrocontroller an die passenden UART 
GPIOs.  Ich habe es anders beschalet, weil ich anfangs mich an den 
Schaltplan von Sparkfun gehalten habe. Jetzt habe ich mit einem kurzen 
Leitungsstück den Pin 8 (V3) mit VCC zusammen geschaltet.

Bei dem einem Bild mit den Signalverlauf:1 Zeigt, was passiert, wenn der 
µC sendet und wie der Signalverlauf auf dem PCB Trace aussieht und die 2 
Umkreist zeigt an, wenn ich vom PC Daten sende und was tatächlich 
ankommt.
Blau: Tx Trace auf der PCB
Rot: Rx Trance auf der PCB

Ich habe auch bei der ersten Platine die Pullup Widerstände 
rausgeloetet, aber es brachte keine Veränderung.

@Hermann: Ich habe alle Massepunkte gemessen, ob sie eine Verbindung 
haben und Masse gegen 3.3V oder VBUS um einen Kurzschluss zu finden. Ich 
habe nichts gefunden. Ich habe dazu auch das USB Kabel angeschlossen und 
mit den Messspitzen kontrolliert, ob eine Verbindung von GND vom Kabel 
zu GND am Stecker/Platine vorhanden ist und mit VBUS habe ich das 
gleiche gemacht.


Ich habe eine neue Platine ohne µC genommen und nur den USB Stecker und 
einen Header dran gelötet. Ich habe jetzt einen FTDI USB Adapter 
angeschlossen, da ich einen Header zum Notfall vorgesehen habe.

Ich habe folgendes versucht: PC sendet über USB (COM14) Zeichen -> Tx 
LED leuchtet -> Tx Pin Platine an Rx Pin FTDI -> FTDI Rx COM3 empfängt 
die Zeichen... Das funktioniert

Also wenn ich vom PC Daten über USB sende, kommt es auf der Platine an 
Tx an, was ja falsch ist, da ich an an den Rx Pin die Daten empfangen 
müsste.

Wenn ich vom FTDI Daten über den Tx Pin an Rx oder Tx sende, kann ich am 
PC über den USB Stecker keine Daten empfangen. (PrinzipBild)

Ich habe die Pinbelegung vom CH340N kontrolliert, aber ich finde keinen 
Fehler.

Meine Vermutung ist, dass ich einen Fehler beim Layout habe. Wenn die 
Daten vom PC kommen und beim Tx angekommen, dann ist es doch falsch? Es 
müsste doch an Rx ankommen oder? Und warum ich keine Daten von der 
Platine an den PC senden kann, kann ich mir auch nicht erklären.



Viele Grüße
Michael K.

von Klaus S. (kseege)


Lesenswert?

Michael K. schrieb:
> Und warum ich keine Daten von der
> Platine an den PC senden kann, kann ich mir auch nicht erklären.

Wenn man zum Test Tx-Ausgänge mit einem weitern Tx-Anschluß verbindet, 
darf man sich nicht wundern, wenn nichts mehr funktioniert. Tx-Ausgänge 
sind in der Regel nicht kurzschlußfest.

Just my 2 cents

von Hermann Kokoschka (Gast)


Lesenswert?

Also, der CH340x ist absolut beherrschbar und war bei mir in mindestens 
10 Projekten unkritisch. Dies mal als Hoffnungs-Schimmer...

Sende mal das GANZE Layout und notiere bitte eventuelle Änderungen 
gegenüber dem tatsächlichen Aufbau.

von Michael K. (Gast)


Angehängte Dateien:

Lesenswert?

Klaus S. schrieb:
> Wenn man zum Test Tx-Ausgänge mit einem weitern Tx-Anschluß verbindet,
> darf man sich nicht wundern, wenn nichts mehr funktioniert. Tx-Ausgänge
> sind in der Regel nicht kurzschlußfest.
>
> Just my 2 cents
Danke fü die Info. Ich habe es tatsächlich nicht gewusst.
Ich Empfange am Tx Ausgang die Zeichen statt am Rx Ausgang der Platine. 
Kann sein, dass ich mir durch das Probieren jetzt was zerschossen habe.
Ich teste meinen FDTI USB Adapter nachher, ob er noch richtig 
funktioniert.

Hermann Kokoschka schrieb:
> Also, der CH340x ist absolut beherrschbar und war bei mir in
> mindestens
> 10 Projekten unkritisch. Dies mal als Hoffnungs-Schimmer...
>
> Sende mal das GANZE Layout und notiere bitte eventuelle Änderungen
> gegenüber dem tatsächlichen Aufbau.

 Ich habe das KiCad Projekt hochgeladen. Die Änderungen habe ich im Bild 
gekennzeichnet.
- R4 und R5 entfernt und gebrückt.
- R2 und R3 entfernt
- VCC(Pin 5) mit V3 (Pin 8) verbunden



Viele Grüße und danke für die Hilfe
Michael

von Jester (Gast)


Lesenswert?

Michael K. schrieb:
> @Jester: Pin 6 und 7 gehen zum Mikrocontroller an die passenden UART
> GPIOs.  Ich habe es anders beschalet, weil ich anfangs mich an den
> Schaltplan von Sparkfun gehalten habe.

> Meine Vermutung ist, dass ich einen Fehler beim Layout habe. Wenn die
> Daten vom PC kommen und beim Tx angekommen, dann ist es doch falsch? Es
> müsste doch an Rx ankommen oder? Und warum ich keine Daten von der
> Platine an den PC senden kann, kann ich mir auch nicht erklären.

Wohin hast den "TxD vom PC" denn hinverdrahtelt? Wenn ein TxD gegen 
einen TxD verschaltet wird, dann gibt es dort "Datensalat". Sieht dann 
oft so aus wie in 
https://www.mikrocontroller.net/attachment/573715/Rx-Tx_usb.PNG.

Aber das hat Dir Klaus S. schon geschrieben.

von Hermann Kokoschka (Gast)


Lesenswert?

TX-Sender gehört natürlich an RX-Empfänger!
Und umgekehrt!

Falls Du das mal versehentlich verwechselt hast könnte der CH340 
beschädigt sein, ist nicht unwahrscheinlich.

> - R4 und R5 entfernt und gebrückt.
> - R2 und R3 entfernt
Die LED sind also nun außer Betrieb.

von Hermann Kokoschka (Gast)


Lesenswert?

> Meine Vermutung ist, dass ich einen Fehler beim Layout habe.
Sende doch bitte das Layout nochmal einzeln als BITMAP.
Nicht jeder hat KiCad...

von Hermann Kokoschka (Gast)


Lesenswert?

Noch ein paar unsortierte Hinweise:

> Als Terminal Programm benutze ich HTerm.
a) Ich auch @XP und das klappt stets völlig problemlos auf Anhieb.
b) Ich musste mich nie mit dem "CH340-selbst" beschäftigen.
c) CTS-Flow ist bei mir stets abgeschaltet.
d) Protokoll liegt natürlich bei Dir,
also ob Du als Telegramm-Ende CR / CR+LF sendest, iss abba erssma eine 
nachranginge Software-Frage.
e) Die furchtbaren Spikes in Deinen OsziPics machen mir Sorge, kann aber 
am Tastkopf/MessAufbau liegen. Sah jedenfalls bei mir sauberer aus.

Neben "CH340 defekt geworden" denke ich dennoch an Masse-Probleme, 
Effekte und die leichte Welligkeit halte ich für Gründe dort zu 
forschen.

von Michael K. (Gast)


Angehängte Dateien:

Lesenswert?

Hermann Kokoschka schrieb:
> TX-Sender gehört natürlich an RX-Empfänger!
> Und umgekehrt!
>
> Falls Du das mal versehentlich verwechselt hast könnte der CH340
> beschädigt sein, ist nicht unwahrscheinlich.
>
>> - R4 und R5 entfernt und gebrückt.
>> - R2 und R3 entfernt
> Die LED sind also nun außer Betrieb.

Ja, ich glaube das ist der Fehler, wie Klaus schon geschrieben hat.  Ich 
habe den Mikrocontroller mit den CH340N wie einen Max232 mit einen CH340 
verschaltet (Bild im Anhang). Also Tx zu Tx und Rx zu Rx.
Schande über mein Haupt -_-.

Hermann Kokoschka schrieb:
> e) Die furchtbaren Spikes in Deinen OsziPics machen mir Sorge, kann aber
> am Tastkopf/MessAufbau liegen. Sah jedenfalls bei mir sauberer aus.
>
> Neben "CH340 defekt geworden" denke ich dennoch an Masse-Probleme,
> Effekte und die leichte Welligkeit halte ich für Gründe dort zu
> forschen.

Ich finde die Spikes auch nicht schön. Aber wenn es erstmal 
funktioniert, dann würde ich mich damit näher beschäftigen


Vielen Danke für die Hilfe. Ich kann den PSoC 4 so programmieren, dass 
ich Tx und Rx tausche. Dann müsste es von der Pin Belegung passen, wenn 
der CH340 noch funktionieren sollte.

von Michael K. (Gast)


Angehängte Dateien:

Lesenswert?

Nachtrag:

Ich habe es heute getestet und es lag tasäschlich daran, dass ich die 
zwei GPIOs falsch verbunden habe.

Der CH340 funktioniert dennoch und ich kann mit ihm Sachen über USB 
empfangen und senden.

Hermann Kokoschka schrieb:
> Also, der CH340x ist absolut beherrschbar und war bei mir in
> mindestens
> 10 Projekten unkritisch. Dies mal als Hoffnungs-Schimmer...
>
> Sende mal das GANZE Layout und notiere bitte eventuelle Änderungen
> gegenüber dem tatsächlichen Aufbau.

Ich habe das ganze Layout hochgeladen, falls es noch nötig ist.

Viele Grüße
Michael

von OMG (Gast)


Angehängte Dateien:

Lesenswert?

Michael K. schrieb:
> 04_Gateway_WVB-brd.svg

Wieder mal eine Posting-Glanzleistung. Unleserliches Bild in
Datenmengen verschwendenden Format.

von FragmenteHelfenNicht (Gast)


Lesenswert?

Das ganze Drama wäre nicht nötig gewesen, wenn Du einen Schaltplan 
hochgeladen hättest, und nicht Fragmentschnipsel.

von Gerald B. (gerald_b)


Lesenswert?

Ist das Oszi Bild jetzt sauberer, nachdem du den Fehler gefunden hast?
Was gut sein kann, das die Ladungspumpe vom MAX232 da Störnebel 
produziert. Die Betriebsspannung ist ja nur mit dem Allernötigsten 
abgeblockt. Vom Bauchgefühl würde sich da ein keiner Elko im 
zweistellige µF Bereich gut machen. Der sollte auch vom Platzverbrauch 
her nicht stören.

von Michael K. (Gast)


Angehängte Dateien:

Lesenswert?

OMG schrieb:
> Wieder mal eine Posting-Glanzleistung. Unleserliches Bild in
> Datenmengen verschwendenden Format.
Ich finde es echt gut, dass du mich noch versuchst in Verruf zu bringen, 
obwohl ich meinen Fehler durch die Hilfe des Forums gefunden habe und du 
dabei selbst nicht geholfen hast :)

FragmenteHelfenNicht schrieb:
> Das ganze Drama wäre nicht nötig gewesen, wenn Du einen Schaltplan
> hochgeladen hättest, und nicht Fragmentschnipsel.

Nächste mal weiß ich Bescheid.

Gerald B. schrieb:
> Ist das Oszi Bild jetzt sauberer, nachdem du den Fehler gefunden
> hast?
> Was gut sein kann, das die Ladungspumpe vom MAX232 da Störnebel
> produziert. Die Betriebsspannung ist ja nur mit dem Allernötigsten
> abgeblockt. Vom Bauchgefühl würde sich da ein keiner Elko im
> zweistellige µF Bereich gut machen. Der sollte auch vom Platzverbrauch
> her nicht stören.

Die Welligkeit ist nicht mehr vorhanden. Ich denke die Spikes kommen 
daher, weil das Kabel des Tastköpfs 3m lang ist und ich die 
Bandbreitenbegrenzung nicht eingeschaltet habe.

Viele Grüße
Michael

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.