Forum: Mikrocontroller und Digitale Elektronik USB zu >4V TTL Signal


von Blanker (Gast)


Lesenswert?

Guten Abend,

ich such schon einige Tage nach einer Moeglichkeit meinen HTS Switch vom 
Pc aus via USB anzusteuern. Ich benoetige hierfuer eine 5V Versorgung 
und einen Input >3,5V. Da normale USB Datenuebertragung mit 3V zu 
niedrig fuer den Schmitt Trigger im Switch ausfaellt, richtet es ein 
einfacher USB-TTL Wandler nicht. Das Ansteuerungssignal sollte 
mindestens 5V haben.
Ich benoetige ausserdem noch die Moeglichkeit ein TTL Signal zu 
empfangen und natuerlich Ground.

Hat jemand eine Idee wie ich den Switch ueber USB ansteuern kann?

von Rudolph R. (rudolph)


Lesenswert?

FT232 kann man mit 5V und 3,3V I/O betreiben

von Hm? (Gast)


Lesenswert?

Ich sehe da kein Problem.
5V sind bei USB frei Haus mitgeliefert.

Einfach durchschalten. Oder auch nicht.

von Jim M. (turboj)


Lesenswert?

Blanker schrieb:
> Ich benoetige ausserdem noch die Moeglichkeit ein TTL Signal zu
> empfangen und natuerlich Ground.

Hast Du Dir mal einen IOWarrior angeschaut? Bei USB kann man die 
(Daten-)Signale nicht direkt ansteuern, man braucht immer einen aktiven 
Chip.

Wenn Du nur einen +5V Ausgang brauchst: Bei einigen USB Hubs kann man 
die Ausgangsspannung an den Ports ein- und ausschalten. Geht AFAIK aber 
nur
unter Linux und auch nicht bei billigem Chinakrams.

von Blanker (Gast)


Lesenswert?

Hm? schrieb:
> Ich sehe da kein Problem. 5V sind bei USB frei Haus mitgeliefert.

Die Datenkabel liefern doch 3V, da ich aber 5V Supply und 5V als 
Steuerinput brauche, reicht es eben nicht aus.

Ist es nicht möglich mittels Pyvisa (oder ähnlichem) über den 
Datenausgang gesteuerte Signale zu bekommen?

von Andreas I. (andy5macht)


Lesenswert?

ich verstehe das Problem auch noch nicht ganz.
Was spricht gegen:
USB-Port-PC => USB-TTL-Modul(5V TTL) => 5V-Versorgung/5V-Pegel bei TX/RX 
=> Schmitt-Trigger/Sonstiges

von Dr. Sommer (Gast)


Lesenswert?

Blanker schrieb:
> Ist es nicht möglich mittels Pyvisa (oder ähnlichem) über den
> Datenausgang gesteuerte Signale zu bekommen?

Nein. Die USB Signale kann man nicht direkt steuern. Da kann man nur 
serielle Datenpakete drüber schicken, und auch das kann nur der 
Betriebssystemkern direkt.
Wenn du über USB etwas steuern willst brauchst du immer einen IC der 
das USB Protokoll spricht.
FTDI hat sowas, NI hat Geräte die das (und viel mehr) können, oder du 
baust das selbst mit einem Mikrocontroller (kompliziert) .

von Planlos (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Wenn du über USB etwas steuern willst brauchst du immer einen IC der
> das USB Protokoll spricht.

Aber: Der Chip kann auch im HUB sein. (Wenn's nur um den Ausgang geht)

HUBs die "Per Port Power Switching" nicht nur per Descriptor ankündigen, 
sondern sogar echt implementieren, sind aber rar.
Geiz ist Geil, der Cent für die Schalttansistoren musste weg..

Vor langer Zeit gabs z.B. einen 5€-Hub bei Reichelt, der das konnte.
Damit waren dann so USB-Gadgets ohne Eigenintelligenz (Kaffewärmer, 
Ventilatoren, LEDs usw.) direkt per Software schaltbar.

Leider wurde der ohne Ankündigung oder Änderung der Bestellnummer durch 
ein schrottiges Nachfolgemodell ersetzt.

von Blanker (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Nein. Die USB Signale kann man nicht direkt steuern. Da kann man nur
> serielle Datenpakete drüber schicken, und auch das kann nur der
> Betriebssystemkern direkt.

Oh das ist gut zu wissen. Mit dem FTDI  TTL-232R sollte es dann aber 
moeglich sein den ueber PYVisa anzusteuern?

Andreas I. schrieb:
> USB-Port-PC => USB-TTL-Modul(5V TTL) => 5V-Versorgung/5V-Pegel bei TX/RX
> => Schmitt-Trigger/Sonstiges

Das war meine Vorstellung wie es funktionieren soll. Ich habe aber 
einfach kein Modul gefunden das am Ende auch 5V Signale ausgibt (nicht 
nur am Supply). Wie oben bereits von rudolph geschrieben sollte das aber 
mit dem RT232R funtkionieren.

von Dr. Sommer (Gast)


Lesenswert?

Blanker schrieb:
> Oh das ist gut zu wissen. Mit dem FTDI  TTL-232R sollte es dann aber
> moeglich sein den ueber PYVisa anzusteuern?

Das ist dann ein Serial Port. Den solltest du eher über ein API für 
Serial Ports ansteuern. Weiß Grad nicht wie so was bei Python heißt.
Du würdest dann wahrscheinlich die Flusskontrolle Leitungen schalten 
(CTS und so) statt den eigentlichen RX/TX Leitungen. Die geben aber 
glaube ich nur 3.3V aus, aber dafür gibt's ja Pegelwandler.
ich meine FTDI hat auch ICs die so was besser können (einzelne Leitugen 
schalten), das wäre schlauer als einen Serial Adapter zu 
zweckentfremden. Weiß aber grad nicht wie das heißt

von Blanker (Gast)


Lesenswert?

Kann mir jemand eine Empfehlung fuer einen Konverter geben? Ich habe mir 
die Datasheets zu den verschiedenen Konvertern durchgelesen, finde mich 
da aber nicht so zu recht. Ich benoetige einfach eine 5V 
Spannungsversorgung, Ground, ~5V Output Signal (via PYVisa o.ä. 
steuerbar) und die TTL Signale vom Switch sollten auch ankommen.

Wuerde der  FTDI Chip TTL-232R-5V-PCB 
(http://de.rs-online.com/web/p/products/0429278/) funktionieren? Wenn 
ja, wie stelle ich hier ein das ich 5V Output Signale erhalte? Das ist 
mir nicht ganz ersichtlich.

von Dr. Sommer (Gast)


Lesenswert?

Alternativ Vorschlag: Nimm einen Arduino (einen von den alten mit AVR). 
Der kann über den integrierten Serial Adapter mit dem PC kommunizieren 
und viele Pins schalten (mit 5V). Ggf. brauchst du dann den PC gar nicht 
mehr weil der evtl. schon die Logik durchführen kann die du brauchst...

Warum brauchst du überhaupt die 5V? Alle bisher vorgeschlagenen Lösungen 
können keine Lasten außer einer LED schalten, und die meisten 5V 
kompatiblen Eingänge können auch 3,3V.

von Dr. Sommer (Gast)


Lesenswert?

Blanker schrieb:
> Wuerde der  FTDI Chip TTL-232R-5V-PCB
> (http://de.rs-online.com/web/p/products/0429278/) funktionieren? Wenn
> ja, wie stelle ich hier ein das ich 5V Output Signale erhalte? Das ist
> mir nicht ganz ersichtlich.

Je nachdem welchen du kaufst haben die 5V oder nicht. Das Teil bringt 
aber nicht viel weil da die Flusskontroll-Leitungen nicht rausgeführt 
sind, und du da nur serielle Daten drüber schicken kannst, aber nicht 
einzelne Pins schalten.

von Stefan F. (Gast)


Lesenswert?

> Kann mir jemand eine Empfehlung fuer einen Konverter geben?

Der I/O Warrior wurde Dir bereits empfohlen. Wenn du etwas selber bauen 
willst, dann nimm meine Firmware auf einem Arduino Nano Modul: 
http://stefanfrings.de/serial_io/index.html

von Blanker (Gast)


Lesenswert?

Danke erstmal fuer eure schnellen Antworten! Ich benoetige auf jeden 
Fall die Moeglichkeit die Ausgabe ueber Python zu steuern, ich erklaere 
auch gerne warum.

Dr. Sommer schrieb:
> Ggf. brauchst du dann den PC gar nicht
> mehr weil der evtl. schon die Logik durchführen kann die du brauchst...
> Warum brauchst du überhaupt die 5V?

/Offtopic
Der Switch dient als Blanking Einheit fuer einen Protonenbeschleuniger. 
D.h. wir lenken den Protonenstrahl mit eienr Kondensatorplatte ab, 
welche ueber den Switch geladen wird. Da wir mit dem Protonenstrahl 
Muster schreiben wollen, muss das Blanking System am Ende voll 
automatisch angesteuert werden. Wir wollen also unser Muster "eingeben", 
sodass die Probe automatisch bestrahlt wird. Das Verstellen der Probe 
funktioniert bereits automatisch und genauso soll auch das Blanking 
System funktionieren um Ueberbelichtung zu vermeiden. Daher benoetige 
ich eine Ausgabe um den Switch zu bestimmten Zeiten an- bzw. 
auszuschalten.

Mir ist mittlerweile noch ein weiteres Problem eingefallen. Da die 
Blanking Einheit circa 6m vom Rechner entfernt steht wird ueber diese 
Distanz Spannung abfallen, weshalb 5V wahrscheinlich nicht als Ausgabe 
ausreichen. Besser waere also eine Ausgabe von 10V um den Schmitt 
Trigger noch zu aktivieren (schaltet ab ca. 3,4V).
Ich gucke mir jetzt mal den I/O Warrior an...

von Dr. Sommer (Gast)


Lesenswert?

Das Hauptproblem bei einem Teilchenbeschleuniger ist also die Erzeugung 
eines 5V-Signals? Uff.

Ist die Ansteuerung vielleicht zeitkritisch? Weil über USB und Python 
wirst du vielleicht auf 100ms Genauigkeit kommen. Wenn du genaues Timing 
brauchst, geht das z.B. mit Arduino besser.

Wenn es unbedingt Python sein muss, wäre vielleicht auch ein 
Raspberry-PI eine Möglichkeit. Da kannst du direkt aus Python heraus die 
GPIO-Pins ansteuern. Mit Pegelwandlern kommst du auf 5V oder 10V oder 
was auch immer du brauchst.

von Hmmm (Gast)


Lesenswert?

Wenn Du es lieber bequem hast und der Preis zweitrangig ist: Es gibt 
fertige USB/5V-TTL-"Adapterkabel" mit FT232 im Stecker.

Davon kannst Du dann wahlweise die Handshake-Leitungen missbrauchen oder 
den FT232 im Bit-Bang-Modus betreiben.

Gibt es unter anderem von FTDI selbst oder z.B. bei Reichelt als DELOCK 
83116.

von Blanker (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Das Hauptproblem bei einem Teilchenbeschleuniger ist also die Erzeugung
> eines 5V-Signals? Uff.

Naja nicht so ganz. Das ist halt mein Problem an dem ich sitze, momentan 
wird das ganze per Hand gesteuert...
Zeitkritisch ist es nicht wirklich,es sollte schon um die 100ms liegen.
Das Problem ist eher die Zeit bis es fertig sein soll. Daher habe ich 
auch nicht mehr wirklich die Zeit noch mit Rapsberry oder Arduino zu 
arbeiten.
Wie genau meinst du eigentlich das:

Dr. Sommer schrieb:
> Je nachdem welchen du kaufst haben die 5V oder nicht. Das Teil bringt
> aber nicht viel weil da die Flusskontroll-Leitungen nicht rausgeführt
> sind, und du da nur serielle Daten drüber schicken kannst, aber nicht
> einzelne Pins schalten.

Heisst das es ist mir nicht moeglich mit dem TTL-232R-5V zu bestimmten 
Zeiten eine Spannung zu erzeugen?

von Dr. Sommer (Gast)


Lesenswert?

Blanker schrieb:
> Heisst das es ist mir nicht moeglich mit dem TTL-232R-5V zu bestimmten
> Zeiten eine Spannung zu erzeugen?

Mit einem Adapter, der nur RX/TX rausgeführt hat, kannst du nur serielle 
Datenpakete raussenden. Du kannst die Pegel nicht direkt setzen.

"Hmmm" hat hier schon geschrieben mit welchen Adaptern es geht:

Hmmm schrieb:
> Davon kannst Du dann wahlweise die Handshake-Leitungen missbrauchen oder
> den FT232 im Bit-Bang-Modus betreiben.
>
> Gibt es unter anderem von FTDI selbst oder z.B. bei Reichelt als DELOCK
> 83116.

Das ganze ist natürlich eine ziemliche Frickellösung. Für ordentlich 
wäre sowas wie der IOWarrior wesentlich besser.

Blanker schrieb:
> Daher habe ich
> auch nicht mehr wirklich die Zeit noch mit Rapsberry oder Arduino zu
> arbeiten.
Wie kompliziert ist denn das Signal was generiert werden soll? Wenn das 
simpel ist kann man da ja ggf. helfen das fix fertig zu machen...

von Blanker (Gast)


Lesenswert?

Das Signal das generiert werden soll haengt von der Probe ab. Wenn wir 
zum Beispiel drei Striche bestrahlen wollen muss das Signal dann 
schalten, wenn die Probe weiterbewegt wird um Belichtung zwischen den 
Strichen zu vermeiden. Das ist dann auch nicht mehr meine Aufgabe. Ich 
muss es nur hinbekommen, dass der Switch vom PC aus angesteuert werden 
kann.

von Dr. Sommer (Gast)


Lesenswert?

Blanker schrieb:
> Wenn wir
> zum Beispiel drei Striche bestrahlen wollen muss das Signal dann
> schalten, wenn die Probe weiterbewegt wird um Belichtung zwischen den
> Strichen zu vermeiden.

Achso, also in Abhängigkeit mit einer weiteren bereits implementierten 
Steuerung für die Bewegung?
Warum kannst du dann nicht das Blanking genau so steuern wie bereits die 
Bewegung gesteuert wird?

von Blanker (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Achso, also in Abhängigkeit mit einer weiteren bereits implementierten
> Steuerung für die Bewegung?
> Warum kannst du dann nicht das Blanking genau so steuern wie bereits die
> Bewegung gesteuert wird?

Genau. Das ist eine gute Frage, auf die Idee bin ich bisher nicht 
gekommen. Ich werde es mir einmal anschauen, denke aber das es noch 
wesentlich komplizierter wird.

von Dr. Sommer (Gast)


Lesenswert?

Blanker schrieb:
> Genau. Das ist eine gute Frage, auf die Idee bin ich bisher nicht
> gekommen. Ich werde es mir einmal anschauen, denke aber das es noch
> wesentlich komplizierter wird.
Wäre irgendwie etwas komisch, wenn jeder Aktor über sein eigenes 
Interface vom PC gesteuert wird... Es gibt hunderte Produkte die die 
Entwicklung solch einer Steuerung vereinfachen, wie SPS, NI RIO boards, 
NI Interface Boards, und eben Arduinos & Co...

von Stefan F. (Gast)


Lesenswert?

> Ich benoetige auf jeden Fall die Moeglichkeit die Ausgabe ueber Python
> zu steuern

Meine I/O Firmware erfüllt diese Anforderung. Python kann wie fast jede 
andere Programmiersprache (virtuelle) serielle Ports ansteuern.

von Stefan F. (Gast)


Lesenswert?

> Daher habe ich
> auch nicht mehr wirklich die Zeit noch mit Rapsberry oder Arduino zu
> arbeiten.

In diesem Fall schlage ich vor, daß du irgendein fertiges I/O Modul 
kaufst. Diese werden für die Industrie ihn alle erdenklichen Varianten 
zum kauf angeboten.

von Blanker (Gast)


Lesenswert?

Also die Kopplung mit der Probe wird nicht funktionieren, zum einen ist 
dort kein Pin mehr frei und zum anderen soll das Blanking auch 
unabhaengig davon funktionieren.
Ich werde mir daher wohl, wie Hmmm schrieb:

Hmmm schrieb:
> Wenn Du es lieber bequem hast und der Preis zweitrangig ist: Es gibt
> fertige USB/5V-TTL-"Adapterkabel" mit FT232 im Stecker.
>
> Davon kannst Du dann wahlweise die Handshake-Leitungen missbrauchen oder
> den FT232 im Bit-Bang-Modus betreiben.
>
> Gibt es unter anderem von FTDI selbst oder z.B. bei Reichelt als DELOCK
> 83116.

einen FT232 bestellen. Dann werde ich das Signal verstaerken und hoffen 
dass das klappt. Ich werde dann erstmal ein 2Hz Signal versuchen zu 
generieren um die Funktionalitaet zu ueberpruefen.

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.