Forum: Mikrocontroller und Digitale Elektronik Arduino RX Problem beim Hochladen von Sketch über USB


von Michael K. (seq303)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe eine MIDI IN und OUT Schaltung aufgebaut.
Die Schaltung funktioniert prima.

Aber das Hochladen vom Sketch geht nur wenn RX vom 6N139 Pin 6 getrennt 
ist.

Ich verwende ein Arduino Nano V3 mit einem CH340G USB Konverter der ist 
zur Einfachheit nicht gezeichnet.

Welche Möglichkeit gibt es den Sketch hochzuladen ohne die RX Leitung zu 
trennen?

Ein Schalter geht ist aber nicht schön. Kann man überhaupt ein Sketch 
über USB hochladen wenn RX mit dem Optokoppler verbunden ist. Der RX PIN 
am Nano ist dann ja wenn nix empfangen wird auf HIGH oder?

Würde mich über eure Hilfe freuen.

Gruß Michael

von Thomas Z. (usbman)


Lesenswert?

Michael K. schrieb:
> mit einem CH340G USB Konverter der ist zur Einfachheit nicht gezeichnet

Genau diese Anschaltung wäre aber interessant. Es scheint ja so zu sein 
dass der Optokoppler da was blockiert. Dann helfen wahrscheinlich 
Dioden.

: Bearbeitet durch User
von Michael D. (nospam2000)


Lesenswert?

Hallo Michael,

Nimm ein ATMega32U4 basiertes Board (Pro Micro ATmega32U4 5V 16MHz), der 
hat einen USB-Serial Port und einen unabhängigen Hardware UART Port.


Wichtig ist auf die Spannung die Taktfrequenz zu achten, es gibt zwei 
Varianten:
1. 5V mit 16MHz
2. 3.3V mit 8MHz

Wenn ein Verkäufer dies nicht klar ausweist und die Frequenz des Quarzes 
im Bild nicht klar erkennbar ist, dann kauf bei einem anderen Händler.

Kostet 2,50Euro bei Aliexpress.com

Du sparst dir auch noch den Ärger mit den CH340 Treibern (siehe Linux 
patches der letzten Monate)...

Der Code bleibt fast identisch, nur dass du nicht "Serial" sondern 
"Serial1" verwenden musst, wenn du mit MIDI redest. Über "Serial" redest 
du mit dem PC.

 Michael

von Dietrich L. (dietrichl)


Lesenswert?

Michael K. schrieb:
> Der RX PIN
> am Nano ist dann ja wenn nix empfangen wird auf HIGH oder?

Ob der auf HIGH ist kann ich dir nicht sagen (ich kenne den Ruhezustand 
von MIDI IN nicht). Aber wenn das so ist (du kannst es ja selber messen) 
hast du einen Ziehwiderstand von 220Ω nach +5V. Das ist wahrscheinlich 
viel zu niederohmig für den CH340G. Du kannst es ja mit größeren Werten 
probieren.

Andersherum: wird der MIDI-Empfang nicht auch durch den CH340G gestört? 
Dann hilft nur eine Oder-Schaltung.

von Dietrich L. (dietrichl)


Lesenswert?

Dietrich L. schrieb:
> wird der MIDI-Empfang nicht auch durch den CH340G gestört?

Wenn ich das Datenblatt des CH340 richtig gelesen habe, hat er einen 
Push-Pull-Ausgang. Dann dürfte dein MIDI gar nicht laufen - oder du 
zwingst dem CH340-Ausgang mit den Optokoppler und dem R4 mit 220Ω 
ausreichende Pegel auf.
Dann dürfte mit einem größeren R4 aber MIDI nicht mehr gehen...
Also dann müsste man doch einen ODER-Schaltung mit Dioden oder 
Logik-Gattern dazwischen bauen; dabei die Ruhepegel beider Ausgänge 
beachten!

von Stefan F. (Gast)


Lesenswert?

Wenn am M2 nichts eingesteckt ist, ist der Optokoppler hochohmig, so 
dass er nicht stören sollte. Aber R4 stört, denn er bildet zusammen mit 
dem 1k Widerstand am USB-UART einen Spannungsteiler, der das Signal zu 
stark hoch zieht.

Siehe 
http://actrl.cz/blog/wp-content/uploads/nano_ch340_schematics-rev1.pdf
1
                 1k                 R4 220Ω
2
USB-UART Tx o---[===]---+-------------[===]----o VCC
3
                        |
4
                        +----|<|------[===]----o VCC
5
                        |   Rx LED     1k
6
                        |
7
                       AVR Rx

Schon ohne deinen 220Ω Widerstand kommt beim AVR kein sauberer LOW Pegel 
an, weil die LED das Signal hoch zieht. An dem 1kΩ Widerstand (links 
oben) fallen 1,5V ab. Der Low Pegel ist damit genau auf der Grenze zum 
undefinierten Bereich. Meistens geht es noch so gerade eben, manchmal 
aber nicht. Ich musste schon bei einigen Modulen die Rx LED entfernen, 
damit sie zuverlässig Daten vom USB Port empfangen konnten.

Mit deinem 220Ω Widerstand verschärfst du das Problem noch, weil der ja 
noch stärker hoch zieht. Lasse den mal einfach weg! Du brauchst ihn 
nicht, denn der USB-UART zieht den Pin im Ruhezustand bereits auf High.

von STK500-Besitzer (Gast)


Lesenswert?

Einfach statt des SW1 eine Diode einsetzen, so dass sie nur den 
Low-Pegel des Optokopplers durchlässt.

von Stefan F. (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> Einfach statt des SW1 eine Diode einsetzen, so dass sie nur den
> Low-Pegel des Optokopplers durchlässt.

Das wird auch gehen. Ich würde SW1 und den Pull-Up Widerstand weg 
lassen. Das sind zwei verzichtbare Bauteile.

von Michael D. (nospam2000)


Lesenswert?

Warum so kompliziert. Nimm ein Board welches einen getrennten UART für 
den Midi Anschluss hat, so wie ich oben geschrieben habe (Stichwort 
"ATMega32U4").

Dann musst du nix verodern oder Umschalten.

von Michael K. (seq303)


Lesenswert?

Wenn kein MIDI angeschlossen ist ist der Pegel am RX Pin auf HIGH 5.12V 
auf dem OSSI. Vmin ist 640 mV wenn MIDI Signale über RX reinkommen, Ohne 
R4!  Mit R4 ist Vmin 880mV aber ganz auf LOW geht der Pegel leider nicht 
aber MIDI wird PC empfangen. Ein anderes Board geht in meinem Fall nicht 
da die PCB schon fertig ist. Muss der Pegel ganz auf 0 mV? Gruß Michael

Ist der R3 und R5 richtig gewählt?

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Michael K. schrieb:
>  Muss der Pegel ganz auf 0 mV?

Nein, bei 5V Versorgungsspannung "sollte" alles unter 1V OK sein. Warum 
es bei Dir mit 640 und 880mV nicht funktioniert, ist mir ein Rätsel.

Deine Messwerte deuten darauf hin, dass auf deinem Board wohl andere 
Widerstände verbaut sind, oder vielleicht LEDs mit mehr als 2V 
Spannungsabfall. Vielleicht ist die Schaltung des Boardes noch in 
anderen Punkten anders. Dir 640/880mV hast du außen an der Stiftleiste 
gemessen, nehme ich an. Kannst du direkt am Mikrocontroller die gleichen 
Werte messen?

von Michael K. (seq303)


Lesenswert?

Ich habe am Breadboard gemessen nicht am Nano direkt. Werde es später 
nochmal versuchen.

Wie gesagt MIDI wird Fehler frei empfangen.

Mich nervt nur das ich jedes Mal, wenn ich den Sketch neu updaten möchte 
ich den Nano aus seiner Halterung nehmen muss. Dann ist ja auch nix 
angeschlossen und der neue Sketch wird sauber hochgeladen mit der 
Meldung (Hochladen abgeschlossen).

Ist der Nano in seinem Sockel und kein MIDI Kabel ist angeschlossen. 
Wird der Sketch nicht hochgeladen und bleibt hängen. Ist die RX Leitung 
unterbrochen (da wo der Schalter in der Zeichnung ist) geht es wieder.

Was kann ich da machen? Mit der Diode hat es bis jetzt noch nicht 
funktioniert. Ich glaube soweit ist alles richtig oder? Den R4 
Widerstand kann ich ja noch ändern aber sonst ist alles so wie in der 
Zeichnung. Bis auf den Schalter den könnte ich noch irgendwie auf dem 
PCB einbauen.
Gruß Michael

von Stefan F. (Gast)


Lesenswert?

Michael K. schrieb:
> Ich habe am Breadboard gemessen nicht am Nano direkt. Werde es später
> nochmal versuchen.

Messe direkt am Mikrocontroller-Pin.

Michael K. schrieb:
> Was kann ich da machen? Mit der Diode hat es bis jetzt noch nicht
> funktioniert.

Das mich wundert. Aber deine Messung klärt das vielleicht auf.

Messe die Spannung am Mikrocontroller-Pin während S1 offen ist. Baue 
dann die Diode anstelle von S1 ein und messe die Spannung auf beiden 
Seiten der Diode (ich erwarte High). Lege dann eine Spannung an den Midi 
EIngang, damit der Optokoppler durch schaltet und messe nochmal die 
Spannungen an beiden Seiten der Diode.

Ein Oszilloskop hast du wohl nicht, nehme ich an? Es billiges DSO138 
wäre bereits sehr hilfreich. Vielleicht legst du dir so ein Ding mal zu 
- für die Zukunft.

von Michael K. (seq303)


Lesenswert?

Hallo Stefan ich habe den R4 durch ein 1k Widerstand ersetzt und jetzt 
gehts auch ohne Diode. Das MIDI IN Kabel muss allerdings raus vor dem 
Upload. Danke euch allen. Gruß Michael

von Stefan F. (Gast)


Lesenswert?

Lasse den R4 besser ganz weg.

von Michael K. (seq303)


Angehängte Dateien:

Lesenswert?

Michael K. schrieb:
> Hallo Stefan ich habe den R4 durch ein 1k Widerstand ersetzt und jetzt
> gehts auch ohne Diode. Das MIDI IN Kabel muss allerdings raus vor dem
> Upload. Danke euch allen. Gruß Michael

von Stefan F. (Gast)


Lesenswert?

Mit den 320mV bist du auf der sicheren Seite.

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.