UART Tx als digitalen Ausgang verwenden?

Wäre es möglich, ein "wahres" 5-V-Signal vom Tx eines UART-Dongles zu senden? Als wäre es ein digitaler Ausgang?

Hier ist der UART-Adapter, den ich gekauft habe.

Sie hielten dich nicht für verrückt, sie trainierten, um zu erklären, dass diese nicht dazu gedacht sind, echte Kraft zu fahren, die Stromleitung ist dafür gedacht.

Antworten (6)

Wäre es möglich, ein "wahres" 5-Volt-Signal vom Tx eines UART-Dongles zu senden? Als wäre es ein digitaler Ausgang?

Bedingt ja.

(1) Das Modul, mit dem Sie verbunden sind, hat TTL-Ausgangspegel.
Angenommen, es verwendet +5 V = hoch und 0 V = niedrig (ich sehe, dass auf seiner Platine 3 V3 und 5 V angegeben sind).

Dies bedeutet, dass RXD im Ruhezustand auf 5 V liegt, ein Startbit 0 V beträgt, Datenbits +5 für logisch 1 und 0 V für logisch 0 sind und Sytop-Bits 5 V betragen.

Wenn keine Daten gesendet werden, beträgt V_RXD 5 V.

Wenn Sie ein $00-Signal (00000000 binär) senden, gibt der UART
Start + 8xDaten + Stopp = 0 00000000 1
aus. Der durchschnittliche DC-Pegel für dieses Signal beträgt 1/10 x 5 V = 0,5 V.

Wenn Sie aufeinanderfolgende $00-Bytes bei maximaler Kanalgeschwindigkeit erneut senden, kann der Ausgang bei geeigneter Filterung nur 0,5 V DC betragen. Abhängig von der Hardware, der USB-Schnittstelle und der PC-Konfiguration und der Mondphase KÖNNEN Sie Unterbrechungen zwischen den BTEs bekommen und gelegentlich einen 5-V-Signalpegel sehen.

Wenn Sie einen sehr einfachen RC + -Diodenfilter hinzufügen, sodass ein RDX-Tief die Kappe sofort entlädt, das Aufladen jedoch über den Widerstand erfolgt, können Sie in Zeiten, in denen die TXD-Leitung für begrenzte Zeiträume hoch ist, einen niedrigen Ausgang erhalten.
Wenn $00 Bytes durchgehend ohne Unterbrechungen gesendet werden können, kann ein RC+D-Filter eine Zeitkonstante von nur einer Bitzeit oder so haben. Wenn längere Höhen auftreten, benötigen Sie eine längere Zeitkonstante.

Ob ein RC+D-Filter Ihren Anforderungen entspricht, hängt von der gewünschten Datenrate und dem Systemverhalten ab. Wenn dies etwas steuern soll, das eine langsame Reaktion erfordert - sagen wir 1 Sekunde oder länger zwischen Änderungen und langsame Änderungen von niedrig nach hoch sind akzeptabel, dann könnte dies gut für Sie funktionieren.


(2) Externer UART:

Eine bessere Methode besteht darin, einen externen UART am Empfangsende hinzuzufügen und das serielle Signal in ein paralleles Wort zu dekodieren. Dies gibt Ihnen 8 Bits von on off.


(3) Wenn Sie etwas bereits gebautes wollen, das das tut, was Sie wollen, kaufen Sie einen USB-zu-Parallel-Port-Konverter (Druckerport) - dies gibt 8 (oder mehr) Leitungen für die Ein-/Aus-Steuerung von USB. Viele bei ebay. Hier ist einer für 2,66 US-Dollar, kaufen Sie ihn jetzt mit kostenlosem Versand !!!!!!!!!!!!!!!!! . Viele weitere ähnliche. Einige Leute haben kommentiert, dass dies möglicherweise eine Druckerfunktionalität, aber keine Parallelport-Funktionalität hat. Wenn ja, sollte es noch brauchbar sein. Im schlimmsten Fall müssen Sie die Daten möglicherweise zur "Druckzeit" zwischenspeichern.

Geben Sie hier die Bildbeschreibung ein


Hinzugefügt:

Eingerückter Text, der als Ergebnis eines Kommentars von CS hinzugefügt wurde:

  • Sie haben ausdrücklich die Verwendung der TX-Leitung erwähnt, worauf ich ursprünglich geantwortet habe.
    Andere haben die Verwendung von Flusssteuerungsleitungen erwähnt (die nicht sichtbar auf Ihrem Gerät verfügbar zu sein schienen und in der Anzeige nicht erwähnt wurden) und einige schlugen vor, einen Konverter mit diesen Signalen zu kaufen.

    Ich habe kürzlich einen seriellen USB-TTL-Konverter auf einer lokalen Auktionsseite entdeckt und festgestellt, dass die Löcher an den Seiten der Platine mit Flusskontrolletiketten versehen waren. Da Ihr Gerät ähnliche Löcher hat, KANN es auch ähnliche Funktionen haben. So ...

Sehen Sie sich die Unterseite Ihres USB-zu-TTL-Konverters an – möglicherweise sind RTS/CTS und möglicherweise andere Signale verfügbar. Wenn ja, können einer oder mehrere davon als Ausgang angesteuert werden.

Siehe Foto unten. Das ist Ihre Einheit. Beachten Sie die durch rote Linien markierten Löcher.

Geben Sie hier die Bildbeschreibung ein

Das Foto unten ist eine Einheit, die auf einer lokalen Auktionsseite verkauft wurde.
Von den 4 mit Pfeilen markierten Leitungen sind 2 Ausgänge und zwei Eingänge. Diese sind als Teil eines COM-Ports steuerbar. Diese Leitungen können bei Ihnen aktiv oder deaktiviert sein. Haben Sie ein Datenblatt oder eine genaue Modellnummer?

Geben Sie hier die Bildbeschreibung ein

Sind Sie sicher, dass USB-zu-Parallel-Druckerkabel für Bitbang verwendet werden können? Ich bin mir ziemlich sicher, dass für so etwas tatsächlich eine echte PCI/PCI-E-Karte benötigt wird, da USB-zu-Parallel-Port-Geräte fast immer einen virtuellen Drucker erstellen und nicht bitbangbar sind.
@TobyJaffey - Ich war nicht der Benutzer von "crazy". Möglicherweise haben Sie der falschen Person +1 gegeben :-).
Nein, ich denke, das Senden von 0x00 und die Verwendung eines Filters ist verrückt, aber ich mag es.
@AndrejaKo - Wenn es Ihnen keinen Portzugriff, aber Druckerzugriff gibt, würde es vermutlich einen Latch (der über den Port mit Strom versorgt werden könnte) auslösen, und Sie könnten eine logische Anordnung mit ein paar Transistoren oder Gattern treffen, die das Setzen von Bits zuließen / klar mit minimaler Hardware. / Für die serielle Schnittstelle Ein Mikrocontroller, der als uART und Seriell-zu-Latch-Parallel-Konverter fungiert, klingt nach einer einfachen Lösung.
Diese Antwort scheint überbewertet zu sein, da sie die offensichtliche und allgemein (in den üblichen Fällen, in denen sie unterstützt wird) überlegene Verwendung der Flusssteuerungssignale als stetige Ausgänge verpasst hat. Das Bearbeiten dieser Idee als nachträglicher Einfall in die Antwort, nachdem andere sie gepostet hatten, scheint denjenigen, die sie von Anfang an angesprochen haben, nicht ganz fair zu sein.
@Chris - Egal. Ich (mit sehr wenigen bemerkenswerten Ausnahmen :-) ) antworte nicht für Bewertungen, ich antworte, um zu versuchen, für die größtmögliche Anzahl von Menschen nützlich zu sein, und Nachahmer-Post-Priori-Antworten auf meine Posts sind üblich. Ich kenne Flusssteuerungssignale seit über 40 Jahren und war mir bewusst, dass andere erwähnt haben, einen Dongle zu bekommen, der sie enthält. Der Nutzer hat sie auf seinem Gerät nicht erwähnt UND sie waren nicht auf seinem Bild UND nicht in der Anzeige erwähnt. Ich habe das Extra hinzugefügt, weil ich das Gerät auf einer lokalen Auktionsseite gesehen habe und gesehen habe, dass die Düsenlöcher für Flusssteuerungssignale waren und dass ...
@ChrisStratton ... er hatte die gleiche Art von Löchern, also können diese möglicherweise auch für RTS CTS usw. sein weiß oder "kaufe eins mit ..." und was der Benutzer hat. || Also habe ich mir die Mühe gemacht, das Extra hinzuzufügen, da ich dachte, dass es von Nutzen sein könnte. Wenn das alles überbewertet wird, soll es so sein. | Tippfehler oben: "Matrizenlöcher" -> "Seitenlöcher".
@ChrisStratton - Text hinzugefügt, der Ihre Kommentare anspricht.
Wow – der Phantom-Downvoter schlägt 5,4 Jahre später zu. (Dezember 2017). Wer auch immer Sie sind – bitte kontaktieren Sie mich und ich erkläre Ihnen die Bedeutung des Wortes „nützlich“. Und alles andere, was Sie zu diesem Thema nicht verstehen, wenn Sie möchten.

Ich hielt Sie nicht für verrückt, dass Sie gefragt haben, obwohl die Antwort eindeutig „unmöglich“ war.

Zu Ihrer neuen Frage: Ja, Sie können wahrscheinlich den Pegel des Tx-Pins steuern, indem Sie entweder überhaupt nichts senden oder die Bedingung „Break“ festlegen. (Aber die Break-Bedingung ist nicht sehr gut spezifiziert, es kann sein, dass einige Betriebssysteme oder Treiber sie als zeitlich begrenzt interpretieren. IME Windows und Linux fallen NICHT in diese Kategorie.)

Aber es ist wahrscheinlich viel einfacher, die Pegel der verschiedenen Steuerpins einzustellen. Wie dies geschieht, hängt von Ihrer Programmiersprache und Bibliothek ab.

Wenn Sie einen seriellen Standardanschluss oder einen handelsüblichen USB-zu-Seriell-Konverter verwenden, erhalten Sie Ausgänge mit RS232-Polarität (= invertiert) und Pegel (-10 V / +10 V oder so ähnlich).

Es ist wahrscheinlich einfacher, einen "nackten" Wandlerchip ohne den RS232-Pegelumsetzer zu verwenden. FTDIchip stellt einige her, siehe http://www.ftdichip.com/Products/Cables/USBTTLSerial.htm

IME-USB-zu-Parallel-Konverter sind für Ihren Zweck nutzlos, da sie einen virtuellen Druckeranschluss und keinen virtuellen parallelen Anschluss erstellen.

+1 Ich weiß nicht, was IME bedeutet, aber ich weiß, dass es einfach ist, in Windows eine unendliche oder beliebig lange Unterbrechung festzulegen.
@kenny - IME = "Meiner Erfahrung nach"
Ich bin mir noch nicht sicher, welche Sprache ich verwenden soll. Ich denke, ich werde Python oder C # verwenden, weil es (nach dem Googlen, das ich getan habe) so aussieht, als hätte Python eine sehr gute "PySerial" -Bibliothek, und (aus Erfahrung) hat C # .NET, das es unterstützt, was auch sehr einfach ist zu verwenden . Aber wenn Leute andere Sprachen oder Bibliotheken haben, die sie empfehlen, freue ich mich über Vorschläge.
Ich verwende Python und Pyserial zu meiner Zufriedenheit.

Ich glaube nicht, dass Sie den TX-Pin immer hoch oder niedrig halten können. Jedes gesendete Byte hat ein Startbit (logisch niedrig) und ein Stoppbit (logisch hoch). Am besten besorgen Sie sich einen USB-zu-UART-Adapter mit DTR- und / oder RTS-Pins. Diese Zeilen können einfach umgeschaltet werden.

Jedoch.

Diese Antwort ist nur so gut wie Ihre Frage, die eigentlich nicht so gut ist, da Sie nicht viele Details angeben. Wenn Sie uns mitteilen, was Sie genau vorhaben, welche Hardware Sie haben (usw.), können wir Ihnen möglicherweise einen besseren Rat geben.

Meine erste Frage wäre folgende: Wenn Sie ein Arduino und ein Relaismodul dafür haben, warum müssen Sie dann einen Umweg gehen, um Ihr Problem zu lösen?

+1 für den Vorschlag eines DTR-Pins anstelle von TX.

Der CP2102 unterstützt DTR- und RTS-Flusssteuerungssignale. Diese können als USB-gesteuerte Ausgänge verwendet werden.

Nach dem Aussehen des von Ihnen geposteten ebay-Bildes werden die Pins zu J2 oder J3 geleitet.

Ja. Und wenn Sie ein Board finden, das mit dem CP2103 bestückt ist, hat das auch einige GPIOs.

Es ist tatsächlich möglich, den tx-Pin digital zu verwenden: Wenn nichts übertragen wird, ist der Ausgang hochpegelig. Und wenn Sie die Unterbrechungsoption für die serielle Schnittstelle in einer beliebigen Programmiersprache verwenden, setzen Sie den tx-Pin in den niedrigen Zustand.

Zwei Dinge gilt es zu beachten. Der Ausgangspegel kann sich unerwartet ändern, wenn ein Treiber oder eine andere Betriebssystemkomponente das USART-System zurücksetzt. Das Senden von Daten erzeugt eine gepulste Ausgabe, die durch die Bitrate, das Framing und den Dateninhalt bestimmt wird. Die verfügbare Leistung ist auf das begrenzt, was der IO-Anbieter als digitalen Logikpegelausgang anbietet, aber 2-10 mA sind oft verfügbar, wenn Sie mit einer schlechten Spannungsregelung zufrieden sind.

Die Eingabe von 'Strg-Leertaste' in einem Com-Port-Terminal scheint einen schönen aktiven niedrigen Impuls auf der TX-Leitung meines TTL-Konverters zu senden.