Frage:
UART Tx als digitalen Ausgang verwenden?
Sponge Bob
2012-06-22 00:59:44 UTC
view on stackexchange narkive permalink

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

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

Sie dachten nicht, dass du verrückt bist, sie trainierten, um zu erklären, dass sie keine wirkliche Energie antreiben sollen. Die Stromleitung ist dafür gedacht.
Sechs antworten:
Russell McMahon
2012-06-22 01:26:00 UTC
view on stackexchange narkive permalink

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

Bedingtes Ja.

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

Dies bedeutet, dass RXD im Ruhezustand 5 V beträgt, ein Startbit 0 V, Datenbits +5 für logische 1 und 0 V für logische 0 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 + 8xdata + stop = 0 00000000 1 Der durchschnittliche Gleichstrompegel 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 und der USB-Schnittstelle sowie der PC-Konfiguration und der Mondphase kann es zu Unterbrechungen zwischen btes und gelegentlichem 5-V-Signalpegel kommen.

Wenn Sie einen sehr einfachen RC + -Diodenfilter hinzufügen, z. B. einen RDX Niedrig entlädt die Kappe sofort, aber das Aufladen erfolgt über den Widerstand. Während Perioden, in denen die TXD-Leitung für begrenzte Zeiträume hoch ist, kann eine niedrige Leistung erzielt werden.
Wenn $ 00-Bytes ohne Unterbrechungen durchgehend gesendet werden können, wird ein RC unterbrochen + D-Filter können 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 dazu dient, etwas zu steuern, das eine langsame Reaktion erfordert - beispielsweise 1 Sekunde oder länger zwischen den Änderungen und eine langsame niedrige bis hohe Änderung ist akzeptabel, kann dies für Sie gut 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 decodieren. Dies gibt Ihnen 8 Bit Ein-Aus.


(3) Wenn Sie möchten, dass bereits etwas gebaut ist, das genau das tut, was Sie möchten, kaufen Sie einen USB-Parallel-Port-Konverter (Druckeranschluss) - dies bietet 8 (oder mehr) Zeilen für die Ein / Aus-Steuerung von USB. Viele bei ebay. Hier ist eine für 2,66 US-Dollar. Jetzt ohne kostenlosen Versand kaufen !!!!!!!!!!!!!!!!! . Viele weitere ähnlich. Einige Leute haben kommentiert, dass dies möglicherweise Druckerfunktionalität, aber keine Parallelport-Funktionalität hat. Wenn ja, sollte es noch verwendbar sein. Im schlimmsten Fall müssen Sie die Daten möglicherweise zur "Druckzeit" zwischenspeichern.

enter image description here


Hinzugefügt:

Einrückter Text, der aufgrund 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 Flusskontrollleitungen erwähnt (die auf Ihrem Gerät nicht sichtbar verfügbar zu sein schienen und in der Anzeige nicht erwähnt wurden). und einige schlugen vor, einen Konverter zu kaufen, der diese Signale hatte.

    Ich habe kürzlich einen seriellen USB-TTL-Konverter auf einem lokalen Auktionsgelände entdeckt und festgestellt, dass die Löcher an den Seiten der Platine Beschriftungen zur Durchflussregelung hatten. Da Ihr Gerät ähnliche Löcher hat, kann es auch ähnliche Funktionen haben. Also ...

Sehen Sie sich die Unterseite Ihres USB-TTL-Konverters an - möglicherweise sind RTS / CTS und möglicherweise andere Signale verfügbar. In diesem Fall können einer oder mehrere davon als Ausgang gesteuert werden.

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

enter image description here

Das Foto unten ist eine Einheit, die auf einem lokalen Auktionsgelände verkauft wird.
Von den 4 mit Pfeilen markierten Linien werden 2 angezeigt Ausgänge sein und zwei werden Eingänge sein. Diese sind als Teil eines COM-Ports steuerbar. Möglicherweise sind diese Leitungen bei Ihnen aktiv oder sie sind deaktiviert. Haben Sie ein Datenblatt oder eine detaillierte Modellnummer?

enter image description here

Sind Sie sicher, dass USB-zu-Parallel-Druckerkabel zum 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 fast immer USB-Geräte mit parallelem Anschluss einen virtuellen Drucker erstellen und nicht bitbangbar sind.
@TobyJaffey - Ich war nicht der Benutzer von "verrückt". Möglicherweise haben Sie + 1 die falsche Person :-).
Nein, ich denke, 0x00 zu senden und einen Filter zu verwenden ist verrückt, aber ich mag es.
@AndrejaKo - Wenn es Ihnen keinen Portzugriff, aber Druckerzugriff gewährt, würde es vermutlich einen Latch (der vom Port gespeist werden könnte) streichen und Sie könnten eine logische Anordnung mit einigen Transistoren oder Gates treffen, die das Setzen / Löschen von Bits ermöglichen mit minimaler Hardware. / Für die serielle Schnittstelle Ein Mikrocontroller, der als uART- und seriell-verriegelter Parallelkonverter fungiert, klingt nach einer einfachen Lösung.
Diese Antwort scheint überbewertet zu sein, da sie die offensichtliche und im Allgemeinen (in den üblichen Fällen, in denen dies unterstützt wird) überlegene Verwendung der Flusssteuersignale als stetige Ausgänge verpasst hat. Das Bearbeiten dieser Idee als nachträglicher Einfall in die Antwort, nachdem andere sie veröffentlicht hatten, erscheint denjenigen, die sie von Anfang an angesprochen haben, nicht ganz fair.
@Chris - Was auch immer. Ich (mit sehr wenigen bemerkenswerten Ausnahmen :-)) antworte nicht für Bewertungen, ich antworte, um zu versuchen, für die maximal mögliche Anzahl von Personen nützlich zu sein, und Nachahmer-Post-priori-Antworten auf meine Beiträge sind häufig. Ich bin mir seit mehr als 40 Jahren der Flusskontrollsignale bewusst und war mir bewusst, dass andere erwähnten, einen Dongle zu bekommen, der sie enthielt. Der Benutzer hat sie auf seinem Gerät nicht erwähnt UND sie waren nicht auf seinem Bild UND wurden in der Anzeige nicht erwähnt. Ich habe das Extra hinzugefügt, weil ich das auf einem lokalen Auktionsgelände gezeigte Gerät gesehen habe und gesehen habe, dass die Matrizenlöcher für Flusskontrollsignale waren und dass ...
@ChrisStratton ... er hatte den gleichen Lochstil, so dass diese möglicherweise auch für RTS CTS usw. gelten. || Beachten Sie, dass ich seine eigentliche Frage explizit angesprochen habe und dass es eine Lücke zwischen "Use Flow Control" und dem, was der Benutzer weiß, gibt über 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 würde. Wenn all das eine Überbewertung darstellt, soll es so sein. | Tippfehler oben: "Matrizenlöcher" -> "Seitenlöcher".
@ChrisStratton - Text hinzugefügt, der Ihre Kommentare adressiert.
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 werde die Bedeutung des Wortes "nützlich" erklären.Und alles andere, was Sie über dieses Thema nicht verstehen, wenn Sie es wünschen.
Wouter van Ooijen
2012-06-22 02:03:53 UTC
view on stackexchange narkive permalink

Ich dachte nicht, dass Sie verrückt nach Fragen sind, 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 senden überhaupt nichts oder die 'Break'-Bedingung einstellen. (Die Unterbrechungsbedingung ist jedoch nicht sehr genau festgelegt. Einige Betriebssysteme oder Treiber interpretieren sie möglicherweise als zeitlich begrenzt. IME Windows und Linux fallen NICHT in diese Kategorie.)

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

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

Es ist wahrscheinlich einfacher, einen "nackten" Konverterchip ohne den RS232-Pegelumsetzer zu verwenden. FTDIchip macht einige, überprüfen Sie http://www.ftdichip.com/Products/Cables/USBTTLSerial.htm

IME-USB-Parallel-Wandler sind für Ihren Zweck nutzlos, weil Sie erstellen einen virtuellen Drucker -Port, keinen virtuellen parallelen -Port.

+1 Ich weiß nicht, was IME bedeutet, aber ich weiß, dass es in Windows einfach ist, eine unendliche oder beliebige Längenunterbrechung festzulegen.
AiliecdujwCMT - IME = "In My Experience"
Ich bin mir noch nicht sicher, welche Sprache ich verwenden soll. Ich denke, ich werde Python oder C # verwenden, da Python (nach dem von mir durchgeführten Googleing) eine sehr gute "PySerial" -Bibliothek zu haben scheint und (aus Erfahrung) C # .NET unterstützt, was ebenfalls sehr einfach zu verwenden ist . Aber wenn Leute andere Sprachen oder Bibliotheken haben, die sie empfehlen, freue ich mich über Vorschläge.
Ich benutze Python und Pyserial zu meiner Zufriedenheit.
Armandas
2012-06-22 01:17:04 UTC
view on stackexchange narkive permalink

Ich glaube nicht, dass Sie den TX-Pin jederzeit 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 leicht umgeschaltet werden.

Allerdings.

Diese Antwort ist nur so gut wie Ihre Frage, die wirklich nicht so gut ist, wie Sie es tun Ich gebe nicht viele Details. Wenn Sie uns sagen, was genau Sie versuchen, welche Hardware Sie haben (und so weiter), können wir Ihnen möglicherweise einen besseren Rat geben.

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

+1 für den Vorschlag eines DTR-Pins anstelle von TX.
Toby Jaffey
2012-06-22 02:48:17 UTC
view on stackexchange narkive permalink

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

Nach dem Aussehen des von Ihnen geposteten eBay-Bilds werden die Pins an J2 oder J3 weitergeleitet.

Ja. Und wenn Sie eine Karte finden, die mit dem CP2103 bestückt ist, hat diese auch einige GPIOs.
ilie321
2017-12-12 02:56:23 UTC
view on stackexchange narkive permalink

Es ist tatsächlich möglich, den TX-Pin als 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 müssen beachtet werden.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, den Rahmen und den Dateninhalt bestimmt wird.Die verfügbare Leistung ist auf das beschränkt, was der E / A-Anbieter als digitalen Logikpegelausgang anbietet. Wenn Sie jedoch mit einer schlechten Spannungsregelung zufrieden sind, stehen häufig 2-10 mA zur Verfügung.
Anonymous
2015-03-27 20:48:46 UTC
view on stackexchange narkive permalink

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.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...