mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Eine UART abwechseln mit IC und PC verwenden?


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.
Autor: M. G. (ixil96)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mein kleiner STM32 Controller hat nur eine UART und diese möchte ich 
gemeinsam zur Kommunikation mit einem Funkmodul und einem PC (hier über 
einen UART/USB Converter) verwenden.

Geht das mit fixer Verdrahtung, ohne Jumper für UART-PC bzw. 
UART-Funkmodul zu setzen?

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Zauberwort lautet Multiplexer. Der 74HC157 ist dein Freund, den kann 
man auch gleich als Demux nutzen.

Autor: Jim M. (turboj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann Dein STM32 den UART an mehr als einem Pin Paar (TX/RX) raus lassen? 
IIRC können das viele über die AF Konfiguration.

Autor: Peter D. (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Baudraten denn?
Man kann eine UART auch mit einem Timer in SW machen.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> fixer Verdrahtung
Es ist Murx, aber mit einem MUX wuerde das schon gehen.
Ob ein 4066 bei 3.3 V noch ausreicht, musst du selber probieren.
Zusaetzlich muessen dann natuerlich Pull-Up/Down den nicht
aktiven Teil ruhig halten.
Ansonsten richtige digitale Muxe (74HCT157) und 2 AND-Gatter
mit jeweils invertiertem Select.

Ich wuerde eher fuer den langsameren Partner eine Soft-UART nehmen.
Vermutlich das Funkmodul.

Autor: Niklas G. (erlkoenig) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat dein STM32 einen USB-Controller? Dann benutze den für die 
Kommunikation mit dem PC, das ist nicht so kompliziert.

Autor: Axel S. (a-za-z0-9)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:
> mein kleiner STM32 Controller hat nur eine UART und diese möchte ich
> gemeinsam zur Kommunikation mit einem Funkmodul und einem PC (hier über
> einen UART/USB Converter) verwenden.
>
> Geht das mit fixer Verdrahtung

Nun, senden kann dein µC an USB und Funk gleichzeitig. Einfach TxD vom 
µC mit beiden RxD verbinden. In der Gegenrichtung wird es interessant. 
Da brauchst du entweder einen mechanischen (Jumper) oder elektronischen 
(Multiplexer) Umschalter.

Als Hack könnte man die beiden TxD von USB und Funk per AND verknüppern 
und das dann an RxD des µC führen. Dann darf aber immer nur einer von 
beiden senden. Wenn RxD jeweils ein open-drain Ausgang ist, dann geht 
sogar wired-AND. Sonst mit Dioden. Oder man mißbraucht die typische I²C 
Pegelwandlerschaltung mit MOSFET in Gate-Schaltung dafür.

Autor: Peter D. (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... schrieb:
> Ansonsten richtige digitale Muxe (74HCT157) und 2 AND-Gatter
> mit jeweils invertiertem Select.

Für 3,3V sollte man besser einen 74HC157 nehmen, HCT ist nur für >=4,5V 
spzifiziert. 2 MUXe schalten die beide TXD um, und einer die beiden RXD 
zum MC durch. Vom 4. MUX legt man die Eingänge auf GND.

Wozu die AND-Gatter?

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter D. schrieb:
> Wozu die AND-Gatter?

Damit es automatisch funktioniert

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Nun, senden kann dein µC an USB und Funk gleichzeitig.

Vielleicht nochmal drueber nachdenken?

> Für 3,3V sollte man besser einen 74HC157 nehmen, HCT ist nur für >=4,5V
> spzifiziert.

Ja, vertan. Ich meinte LVC.

> Wozu die AND-Gatter?

Na, als MUX :-).
Aber mit einem richtigen MUX geht es natuerlich auch.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man muss halt nur beachten, dass der Ruhepegel bei seriellen Ports HIGH 
ist.

Autor: M. G. (ixil96)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter D. schrieb:
> Welche Baudraten denn?
> Man kann eine UART auch mit einem Timer in SW machen.

Ich benötige 57600

Autor: M. G. (ixil96)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Axel S. schrieb:

> Als Hack könnte man die beiden TxD von USB und Funk per AND verknüppern
> und das dann an RxD des µC führen. Dann darf aber immer nur einer von
> beiden senden. Wenn RxD jeweils ein open-drain Ausgang ist, dann geht
> sogar wired-AND. Sonst mit Dioden. Oder man mißbraucht die typische I²C
> Pegelwandlerschaltung mit MOSFET in Gate-Schaltung dafür.

Das klingt interessant!

Du meinst diese Schaltung? Wobei alle Pull-Ups auf +3V3 gehen.

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... schrieb:
> Ob ein 4066 bei 3.3 V noch ausreicht, musst du selber probieren.

Warum ein Analogschalter?
RX und TX sind digitale, unidirektionale Signale und die kann man auch 
als solche behandeln ;-)

Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:

> mein kleiner STM32 Controller hat nur eine UART und diese möchte ich
> gemeinsam zur Kommunikation mit einem Funkmodul und einem PC (hier über
> einen UART/USB Converter) verwenden.

Einfache Lösung: nimm einen größeren! Die Auswahl ist ja nun wirklich 
groß genug.

fchk

Autor: Axel S. (a-za-z0-9)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:
> Du meinst diese Schaltung?

Ja.

Die linken SDA/SCL verbindest du - das ist der Ausgang deines wired-AND 
Gatters. Dort brauchst du dann natürlich nur noch einen Pullup. Die 
rechten SCL/SDA sind die Eingänge des Gatters. Die Pullups werden nur 
gebraucht, wenn das Gatter von open-drain (oder open-collector) 
Ausgängen gesteuert werden soll. Wobei in diesem Fall der jeweilige 
Eingang auch einfach mit dem Ausgang verbunden werden könnte.

Im Prinzip ist das wie ein AND Gatter mit Dioden und Pullup am Ausgang 
(die Body-Dioden der MOSFET beachten). Durch die MOSFET selber wird der 
Spannungsabfall an einer leitenden Diode jedoch auf wenige mV 
verringert.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Ob ein 4066 bei 3.3 V noch ausreicht, musst du selber probieren.

> Warum ein Analogschalter?
> RX und TX sind digitale, unidirektionale Signale und die kann man auch
> als solche behandeln ;-)

Das ist richtig. Daher steht ja auch noch ein 157 in neiner Antwort.
Aber abhaengig vom Inhalt der Bastelkiste, haette es fuer ein
relativ langsames UART-Signal auch ein 4066 getan.

Autor: Christian B. (christian_b5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ggf. kannst du auch einfach einen Ring bilden, wenn alles dauerhaft 
angeschlossen sein soll und du dein Funkmodul so programmieren kannst, 
das es ankommende Daten wieder ausgibt und es nur das sendet, was es 
auch senden soll.

Autor: Karl B. (gustav)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:
> Funkmodul und einem PC (hier über
> einen UART/USB Converter)

Hi,
habe ich das jetzt richtig verstanden:
kein V24 über Max232?
Sonst muss man noch den Pegelwandler dazwischenschalten.
Die UARTs TXD/RXD-Pins von den µPs haben "normalerweise" die 5V 
(Vcc)Pegel.
Der PC aber hat an seiner (echten) seriellen Schnittstelle (DB9) die + - 
12...15V Pegel. Wobei + 12V logisch "low" entsprechen.

Stefanus F. schrieb:
> Man muss halt nur beachten, dass der Ruhepegel bei seriellen Ports HIGH
> ist.

Also mein UART/USB-Converter liefert die +-12V. Kann so direkt nicht an 
den µP angeschlossen werden, da muss dann noch ein Pegelwandler (Max232 
bzw. 1488, 1489) dazwischen.
Es gibt aber auch UART/USB-Converter, die setzen auf 5V (bzw. 3,3V) um, 
die brauchen den Pegelwandler dann nicht.

Wie @stefanus gesagt, die evtl. Invertierung beachten.

ciao
gustav

Autor: M. G. (ixil96)
Datum:
Angehängte Dateien:
  • preview image for 1.png
    1.png
    425 KB, 86 Downloads

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ein Bild sagt bekanntlich mehr als 1000 Worte...

Über die USB/UART Bridge (1) soll IC (3) per UART verbunden werden.
Gleichzeitig soll auch die MCU (2) mit IC (3) per UART verbunden sein.

1 und 2 sind niemals gleichzeitig aktiv!

Sobald ich Tx von 2 dazu hänge habe ich Probleme bei der 
Datenübertragung.

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:
> Sobald ich Tx von 2 dazu hänge habe ich Probleme bei der
> Datenübertragung.

Weil deine Schaltung falsch ist. Die Dioden müssen umgeolt werden und 
dein Widerstand gegen VCC geschaltet werden.

Beitrag "Re: 3 Mikrocontroller, 1 UART"

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:
> Sobald ich Tx von 2 dazu hänge habe ich Probleme bei der
> Datenübertragung.

Weil der Ruhepegel bei UART Schnittstellen HIGH ist. Bei 
Datenübertragung werden LOW-Pulse übertragen.

Mache da mal LEDs dran, dann wird es offensichtlich.

Stefanus F. schrieb:
> Man muss halt nur beachten, dass der Ruhepegel bei seriellen Ports HIGH
> ist.

: Bearbeitet durch User
Autor: M. G. (ixil96)
Datum:
Angehängte Dateien:
  • preview image for 2.png
    2.png
    140 KB, 73 Downloads

Bewertung
0 lesenswert
nicht lesenswert
Falk B. schrieb:

> Weil deine Schaltung falsch ist. Die Dioden müssen umgeolt werden und
> dein Widerstand gegen VCC geschaltet werden.

Du meinst also so, richtig?

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:
> Du meinst also so, richtig?

Schon besser, ja.

Autor: Karl B. (gustav)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
da gibt es andere Vorschläge zu RS232-TTL-Converter.
Allerdings mit Optokopplern dazwischen.
Die Spannungsversorgung erfolgt über die "unbenutzten" 
Handshake-Leitungen RTS und DTR.
Man kann das also den Wünschen entsprechend erweitern. Auch zum Beispiel 
mit LS Schottky TTL ICs.

ciao
gustav

: Bearbeitet durch User
Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl B. schrieb:
> da gibt es andere Vorschläge zu RS232-TTL-Converter.

Er will doch gar keinen Pegelwandler bauen/verwenden! Dein Vorschlag 
passt nicht zur Aufgabe.

: Bearbeitet durch User
Autor: Karl B. (gustav)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Er will doch gar keinen Pegelwandler bauen/verwenden! Dein Vorschlag
> passt nicht zur Aufgabe.

Hi,
darum ging es ja auch nicht das war mir schon klar. Es sollte dazu 
dienen, wie die Modifikation stattfinden kann. Und da kann man die Idee, 
DTR etc. Anschlüsse als "Spannungsquelle" zu "missbrauchen", vielleicht 
gut anwenden. Die +5V Seite kommt ja vom µP so wie so.

Prinzipiell zwei Aufgabenstellungen.
Einmal zwei serielle Schnittstellen abwechselnd bedienen.
Dabei unter Umständen die unterschiedlichen Specs. bei PC und µP 
Direktverbindung mit Pegelanpassungs-Schaltung ausgleichen.

Zweitens, eine Steuerung vorsehen, die "remote" die Umschaltung der
Datenquellen/Senken bewerkstelligt, um Datenkollision zu vermeiden.
So hatte ich den Thread auch verstanden.

Dazu findet man im Netz eben eine Reihe von Schaltungsvorschläge, die 
zusätzlich mit Optokopplern eine Trennung vornehmen. Die Optos kann man 
ja weglassen. Ein wenig Kreativität für den TO sollte noch übrigbleiben.

ciao
gustav

Autor: Tobi P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:
> Das klingt interessant!

Das ist imo overkill. Die Empfangsseite ist ja kein Problem, beim senden 
reicht es meist die beiden Sender mit Widerständen zu entkoppeln.

Das Kollisionsproblem kannst du evtl. lösen indem die Widerstände 
unterschiedliche Werte bekommen, dann ist einer quasi bevorrechtigt.

Das funzt nicht immer, ist aber einen Versuch Wert weil schön einfach.


sonst nimmst du halt ne open collector Schaltung (oder open Emitter wenn 
du nicht auf der 5V Seite bist wg der Invertierung).

Autor: M. G. (ixil96)
Datum:
Angehängte Dateien:
  • preview image for 2.png
    2.png
    140 KB, 51 Downloads

Bewertung
0 lesenswert
nicht lesenswert
Tobi P. schrieb:

> Das ist imo overkill. Die Empfangsseite ist ja kein Problem, beim senden
> reicht es meist die beiden Sender mit Widerständen zu entkoppeln.
>
> Das Kollisionsproblem kannst du evtl. lösen indem die Widerstände
> unterschiedliche Werte bekommen, dann ist einer quasi bevorrechtigt.
>
> Das funzt nicht immer, ist aber einen Versuch Wert weil schön einfach.
>
>
> sonst nimmst du halt ne open collector Schaltung (oder open Emitter wenn
> du nicht auf der 5V Seite bist wg der Invertierung).

Also ich habe es mit den beiden Schottky-Dioden wie in der Abbildung 
versucht. Meistens funktioniert es, aber eben nicht immer.

Das Entkoppeln mit Widerständen (je ein Widerstand in einer Tx Leitung) 
wie von dir vorgeschlagen möchte ich versuchen. Welche Widerstandswerte 
soll ich hier verwenden?

Autor: Falk B. (falk)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:

> Also ich habe es mit den beiden Schottky-Dioden wie in der Abbildung
> versucht. Meistens funktioniert es, aber eben nicht immer.

Was heißt das GENAU?

Kann es sein, daß dein Schaltplan falsch ist? Denn so wie er jetzt ist, 
sendet entweder der MCU oder der FTDI an dein Funkmodul. Ich glaube 
aber, daß du das nicht willst. Eher willst du wahlweise vom MCU an das 
Funkmodul oder den FTDI senden.

Das Problem dieser Sparschaltung ist schlicht, daß beim Senden immer bei 
Empfänger (FTDI und Funkmodul) die Daten sehen. Das wird bei einem der 
Empfänger für Verwirrung sorgen.

> Das Entkoppeln mit Widerständen (je ein Widerstand in einer Tx Leitung)
> wie von dir vorgeschlagen möchte ich versuchen. Welche Widerstandswerte
> soll ich hier verwenden?

Laß den Murks und nimm einen 74HC157, dann ist das solide. Siehe Anhang.

Autor: Karl B. (gustav)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:
> Welche Widerstandswerte
> soll ich hier verwenden?

Hi,
hängt davon ab, was die Eingänge/Ausgänge verkraften. Auch in 
Reversrichtung.
Nehme an, bei USB wird mit 5V gearbeitet.
Bei einigen Schaltungen wird mit 470 Ohm Widerständen gearbeitet.
Auf ca. 10 mA wäre dann der Strom begrenzt.

M. G. schrieb:
> Meistens funktioniert es, aber eben nicht immer.
Dann hängt das auch bestimmt noch von der verwendeten Baudrate ab.

ciao
gustav

Autor: neuer PIC Freund (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 1 und 2 sind niemals gleichzeitig aktiv!

Wie funktioniert das?

Ansonsten anstatt Diode/PullUp würde ich zu einem LVC1G08 AND tendieren. 
Der bringt wenigstens schöne Pegel im Zusammenhang mit steilen Flanken. 
Und bringt die evtl. 5V-Seite auf deine 3V3.

Autor: M. G. (ixil96)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk B. schrieb:

> Was heißt das GENAU?
>
> Kann es sein, daß dein Schaltplan falsch ist? Denn so wie er jetzt ist,
> sendet entweder der MCU oder der FTDI an dein Funkmodul. Ich glaube
> aber, daß du das nicht willst. Eher willst du wahlweise vom MCU an das
> Funkmodul oder den FTDI senden.

Ich möchte entweder vom FTDI an das Funkmodul ODER von der MCU an das 
Funkmodul senden.

Autor: Amateur (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da wirst Du einen Multiplexer benötigen, damit sich nicht jemand, 
während des Umschaltens in Dein Datenregister einschleicht.
Übrigens: Vergiss nicht die Problematik, die sich auch beim 
"fehlerfreien" Umschalten ergibt. Wissen nämlich beide Teilnehmer nicht, 
was Du machst, so kann es sein, dass Du dem einen 4 Bit schickst - mit 
Startzeichen - und dem anderen die restlichen Zeichen mit 
Protokollabschluss. Oops!

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Meiner beschiedenen Meinung nach, ist die Serielle kein Bus.
Und, will man daraus einen Bus machen, ist RS485 das Mittel der Wahl.

Die Alternative, ist ein Ring, ein Token passing Verfahren.

Alles andere ordne ich als Pfusch ein.

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arduino Fanboy D. schrieb:
> Meiner beschiedenen Meinung nach, ist die Serielle kein Bus.

Diese Aussage ist korrekt, hier aber vollkommen OT.

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:
> Ich möchte entweder vom FTDI an das Funkmodul ODER von der MCU an das
> Funkmodul senden.

Das kam in deinem 1. Beitrag aber nicht so an!

Ok, dann muss man in dem Bild MCU und FTDI tauschen. Und wer 
entscheidet, welche Verbindung aktiv ist?

Autor: M. G. (ixil96)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk B. schrieb:
> M. G. schrieb:
>> Ich möchte entweder vom FTDI an das Funkmodul ODER von der MCU an das
>> Funkmodul senden.

> Ok, dann muss man in dem Bild MCU und FTDI tauschen. Und wer
> entscheidet, welche Verbindung aktiv ist?

Das entscheide ich. Über den FTDI möchte ich nur eine Initialisierung 
durchführen bzw. per manueller Befehlseingabe am Terminal Daten 
auslesen.
(Ich möchte hier aber auch keine Jumper setzen um die UART umzuschalten)

Ist das erledigt, kommuniziert das Funkmodul nur mehr mit der MCU.

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:
> Das entscheide ich. Über den FTDI möchte ich nur eine Initialisierung
> durchführen bzw. per manueller Befehlseingabe am Terminal Daten
> auslesen.
> (Ich möchte hier aber auch keine Jumper setzen um die UART umzuschalten)
>
> Ist das erledigt, kommuniziert das Funkmodul nur mehr mit der MCU.

Und wie kriegst du den MCU dazu, die Klappe zu halten, solange du per 
FTDI kommunizierst?

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:
> Das Entkoppeln mit Widerständen (je ein Widerstand in einer Tx Leitung)
> wie von dir vorgeschlagen möchte ich versuchen. Welche Widerstandswerte
> soll ich hier verwenden?

Ich denke, das kann nicht klappen weil die Sender ihre Ausgänge in den 
Sendepausen nicht inaktiv (hochohmig) schalten.

> will man daraus einen Bus machen, ist RS485 das Mittel der Wahl.

Was nichts an der Tatsache ändert, dass die beiden Sender nur 
abwechselnd senden können. Egal wie die Übertragung elektrisch 
stattfindet, muss ein Protokoll her mit dem sich die beiden Sender 
gegenseitig abstimmen, wer wann "reden" darf.

: Bearbeitet durch User
Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Was nichts an der Tatsache ändert, dass die beiden Sender nur
> abwechselnd senden können. Egal wie die Übertragung elektrisch
> stattfindet, muss ein Protokoll her mit dem sich die beiden Sender
> gegenseitig abstimmen, wer wann "reden" darf.

Immerhin kann man auf RS485 Verbindungen ein solches Protokoll fahren.
Dummerweise wird ein dummes Funkdingen kein solches steuern können.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arduino Fanboy D. schrieb:
> Immerhin kann man auf RS485 Verbindungen ein solches Protokoll fahren.

Auf UART (mit den Dioden) ebenso

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Arduino Fanboy D. schrieb:
>> Immerhin kann man auf RS485 Verbindungen ein solches Protokoll fahren.
>
> Auf UART (mit den Dioden) ebenso

Und das geheime Funkmodul kann ein solches Protokoll...
Mag sein, aber dann bist du schlauer, als ich.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arduino Fanboy D. schrieb:
> Stefanus F. schrieb:
>> Arduino Fanboy D. schrieb:
>>> Immerhin kann man auf RS485 Verbindungen ein solches Protokoll fahren.
>>
>> Auf UART (mit den Dioden) ebenso
>
> Und das geheime Funkmodul kann ein solches Protokoll...
> Mag sein, aber dann bist du schlauer, als ich.

Kann es nicht, aber da nützt ein RS485 Pegelkonverter auch nichts, denn 
der fügt kein Protokoll hinzu.

Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:
> Falk B. schrieb:
>> M. G. schrieb:
>>> Ich möchte entweder vom FTDI an das Funkmodul ODER von der MCU an das
>>> Funkmodul senden.
>
>> Ok, dann muss man in dem Bild MCU und FTDI tauschen. Und wer
>> entscheidet, welche Verbindung aktiv ist?
>
> Das entscheide ich. Über den FTDI möchte ich nur eine Initialisierung
> durchführen bzw. per manueller Befehlseingabe am Terminal Daten
> auslesen.
> (Ich möchte hier aber auch keine Jumper setzen um die UART umzuschalten)

Dann nimm doch einfach das DTR-SIgnal vom FTDI, um einen Multiplexer 
umzuschalten. Zum Multiplexen kannst Du z.B. einen 74LVC2G125 und einen 
74LVC2G126 nehmen - neim 125 ist der Enable invertiert, beim 126 nicht. 
Problem gelöst. Wenn Du magst, kannst Du das DTR noch an einen Pin vom 
Prozessor führen, damit der dann auch mitbekommt, wer mit ihm gerade 
spricht.

Der Rest ist dann Software.

fchk

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank K. schrieb:
> Problem gelöst.

Wirklich? Wenn sich die beiden Sender nicht abstimmen, dann wird der PC 
dem anderen IC einfach die Verbindung kappen - mitten in der 
Kommunikation. Das kann kaum besser sein, als einfach rein zu plappern.

Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Frank K. schrieb:
>> Problem gelöst.
>
> Wirklich? Wenn sich die beiden Sender nicht abstimmen, dann wird der PC
> dem anderen IC einfach die Verbindung kappen - mitten in der
> Kommunikation. Das kann kaum besser sein, als einfach rein zu plappern.

Dann lässt er eben den Prozessor den Mux bedienen und nimmt das DTR nur 
als Signal, dass der PC dran ist.

Ich hätte da eh einen Prozessor mit zwei UARTs genommen. Dann wäre die 
ganze Diskussion überflüssig gewesen.

fchk

Autor: M. G. (ixil96)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank K. schrieb:

> Ich hätte da eh einen Prozessor mit zwei UARTs genommen. Dann wäre die
> ganze Diskussion überflüssig gewesen.

Sicher, nur war das anfangs so nicht geplant. Und jetzt die MCU 
austauschen ist zu aufwendig.
Aber ich denke das Einfachste wäre ein Analog switch, der mit der 
5V-Versorgung von der USB-Seite die TX-Leitung des Mikrocontrollers 
trennt und somit beim Abstecken des USB-Steckers wieder schließt.

Kenn jemand einen "einfachen" diskreten Aufbau eines analogen switch?

Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welchen Prozessor nimmst Du denn jetzt genau?

fchk

Autor: Niklas G. (erlkoenig) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank K. schrieb:
> Welchen Prozessor nimmst Du denn jetzt genau?

Das fragen sich wohl alle hier... Und wie ist die Pinbelegung bis dato?

M. G. schrieb:
> Und jetzt die MCU
> austauschen ist zu aufwendig.

Für viele STM32 gibt es pinkompatible größere Versionen, und Software 
kann auch oft größtenteils gleich bleiben.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:
> Kenn jemand einen "einfachen" diskreten Aufbau eines analogen switch?

Guck Dir mal den CD4052BE an.

Autor: M. G. (ixil96)
Datum:
Angehängte Dateien:
  • preview image for 3.png
    3.png
    397 KB, 22 Downloads

Bewertung
0 lesenswert
nicht lesenswert
Ich habe einen STM32L010K8 in Verwendung.
Wobei eine einfache Trennung mittels P-MOSFET wie im Bild sollte doch 
eigentlich auch reichen. Ist der USB-Stecker nicht angesteckt, liegt das 
Gate auf GND und Tx vom Mikrocontroller kommt durch. Wird der 
USB-Stecker angesteckt (+5V) sperrt der MOSFET. Eine Diode in der MCU 
TX-Leitung in Sperrichtung sollte noch rein.

Autor: Niklas G. (erlkoenig) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:
> Ich habe einen STM32L010K8 in Verwendung.

Der STM32L062K8 hat das gleiche Pinout, 2 UARTs und rein zufällig auch 
USB. Von letzterem die einfache Variante, mit der man recht einfach eine 
Verbindung zum PC aufbauen kann.

Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Niklas G. schrieb:
> M. G. schrieb:
>> Ich habe einen STM32L010K8 in Verwendung.
>
> Der STM32L062K8 hat das gleiche Pinout, 2 UARTs und rein zufällig auch
> USB. Von letzterem die einfache Variante, mit der man recht einfach eine
> Verbindung zum PC aufbauen kann.

Das ist eine vernünftige Lösung.

fchk

Autor: Elektrofan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. G. schrieb:
> Wobei eine einfache Trennung mittels P-MOSFET wie im Bild sollte doch
> eigentlich auch reichen. Ist der USB-Stecker nicht angesteckt, liegt das
> Gate auf GND und Tx vom Mikrocontroller kommt durch. Wird der
> USB-Stecker angesteckt (+5V) sperrt der MOSFET. Eine Diode in der MCU
> TX-Leitung in Sperrichtung sollte noch rein.

Ich sehe ein Problem in dem 100k-Widerstand. Bist Du sicher, dass der 
richtig dimensioniert ist? Hast Du mal mit LTSpice einen Testlauf 
gemacht oder die Schaltung so aktiv in Betrieb verwendet?

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.

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