USB-C pin togglen unter windows möglich?

OP #7328690
Lesenswert?

Hi ist es eigentlich unter Windows möglich einen einzelnen USB-C pin zu toggeln? Ich habe ein USB-C Adapter(siehe Bild) und wurde gerne PIN A7 (D-) dauerhaft auf high/low ziehen. Ist das möglich? Ein anderer Pin? Danke

Gast #7328703
Lesenswert?

Nein, das ist komplett unmöglich.

Informiere Dich darüber, was USB ist.

Dein Bild hat zwar einen schön langen Dateinamen, das *.jpg aber, das nötig ist, damit man was damit anfangen kann, das fehlt.

#7328741
Lesenswert?

Mat. K. schrieb:

Ist das möglich? Ein anderer Pin?

Wenn du einen HUB mit "per Port Power Switching hast" (erstes Bit in den wHubCharacteristics gesetzt) https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/usbspec/ns-usbspec-_usb_30_hub_descriptor dann kannst du per Software den "VCC"-Pin an deinem Adapter an/abschalten.

Vorsicht, bei USB3-Hubs musst du das evtl. auch für den "USB2"-Part machen.

OP #7328755
Lesenswert?

genaugenommen wollte ich unter windows aus meinem laptop raus einen 3v Pulse generieren Dauer < 1ms. Der soll möglich sauber sein.
https://www.amazon.de/HALJIA-Module-Control-Switch-Intelligent/dp/B075F6J6WL Bisher hatte ich ein USB Relay, der generiert aber kein sauberes Signal. Eine bessere Idee? Ein Arduibo Board was ich als USB CDC koniguriere um ein Pin zu togglen?

Gast #7328780
Lesenswert?

??? schrieb:

wäre das nicht eine Aufgabe für einen Arduino?

...OK! heute ist erst Donnerstag.

??? Funktioniert das nur an einem Dienstag, oder was?

Ich erinnere mich an die Seite "Obdev.at", wo man eine Software WIMRE für Atmega8 fand, die einzelne Portpins einlesen und/ oder schalten konnte.

Gast #7329841
Lesenswert?

Émile schrieb:

Nein, das ist komplett unmöglich.

Informiere Dich darüber, was USB ist.

Windows checkt als erstes, wenn der USB-Stecker eingesteckt wird, ob die Datenleitung auf + oder - gezogen ist, anhand von dem entscheidet Windows, ob es sich um usb1 oder usb2 handelt, also vielleicht doch nicht ganz unmöglich?

Gast #7331356
Lesenswert?

Hans schrieb:

Windows checkt als erstes, wenn der USB-Stecker eingesteckt wird, ob die Datenleitung auf + oder - gezogen ist, anhand von dem entscheidet Windows, ob es sich um usb1 oder usb2 handelt, also vielleicht doch nicht ganz unmöglich?

Also das ist nun wirklich an mehreren Stellen falsch… Die Unterscheidung ist für Low Speed oder Full Speed und da gibt es nur einen Pull-Up an D+ oder D- für diese Kennung.

Und ja, es ist komplett unmöglich eine der Leitungen gezielt anzusteuern, das sind keine I/O-Pins, das ist eine differenzielle digitale Leitung mit einem Protokoll, von dem die untere Ebene in Hardware ausgeführt ist.

Die Frage ist etwa so, als wenn jemand den Ethernet-Port verwenden wollte,um damit direkt ein Steuersignal zu erzeugen.

Um über USB etwas zu steuern, benötigt man ein Device, das das Protokoll spricht und dann entsprechende Funktionen zur Verfügung stellt. Das kann man entweder selber bauen (wenn man weiss was man da tut) oder als fertigen Chip/Modul kaufen, z.B. die hier: https://www.codemercs.com/de/io

Moderator (Firma: Titel) Persönliche Seite #7331510
Lesenswert?

Mat. K. schrieb:

und wurde gerne PIN A7 (D-) dauerhaft auf high/low ziehen. Ist das möglich?

Ja, völlig problemlos: löte den Pin mit einer Drahtbrücke dauerhaft auf high oder low. [/sarkasmus]

Mat. K. schrieb:

3v Pulse generieren Dauer < 1ms. Der soll möglich sauber sein. Bisher hatte ich ein USB Relay, der generiert aber kein sauberes Signal.

Definiere "sauber". Für mich heißt "sauber" so viel wie "möglichst rechteckig und ohne Überschwinger".

Pulse generieren Dauer < 1ms.

In definierten Zeitabständen? Unter Windows? Als offensichtlich blutiger Laie? Vergiss es!

Mat. K. schrieb:

Ein Arduibo Board was ich als USB CDC koniguriere um ein Pin zu togglen?

Nein, völlig anders: der Arduino gibt den Puls aus. Der PC konfiguriert nur die Zeiten. Oder gibt evtl. sogar nur die Versorgungsspannung für den Arduino her.

Diese Anleitung war schon die allererste Antwort auf deine erste Frage vor einem halben Jahr: Beitrag "Re: wie erzeuge ich von einem windows laptop aus einen 1 mikrosekunden puls mit 3.3 Volt"

Du siehst: die einzig sinnvolle Vorgehensweise "nimm einen externen µC für den zeitlichen Ablauf" hat sich seither nicht geändert. Was ist an diesem Vorschlag schlecht zu verstehen?

Gast #7332904
Lesenswert?

Guido Körber schrieb:

Hans schrieb:

Windows checkt als erstes, wenn der USB-Stecker eingesteckt wird, ob die Datenleitung auf + oder - gezogen ist, anhand von dem entscheidet Windows, ob es sich um usb1 oder usb2 handelt, also vielleicht doch nicht ganz unmöglich?

Also das ist nun wirklich an mehreren Stellen falsch… Die Unterscheidung ist für Low Speed oder Full Speed und da gibt es nur einen Pull-Up an D+ oder D- für diese Kennung.

Low speed und full speed ist ja nichts anderes als USB1 u. USB2...

  • Aber natürlich zieht das device die Steuerleitungen herunter und nicht der USB-host, sorry. Also ist das Toggeln der Datenleitung durch den host nicht möglich.
Gast #7332909
Lesenswert?

Hans schrieb:

Low speed und full speed ist ja nichts anderes als USB1 u. USB2...

Nein, Low- und Fullspeed waren beide bereits Bestandteil von USB1.

USB2.0 erweiterte das um Highspeed.

Es ist aber nicht sinnvoll, die genutzte Geschwindigkeit mit einer Versionsnummer zu assoziieren, weils einfach nicht eindeutig ist.

Alle Geschwindigkeiten gehören nämlich jetzt auch zu USB3.2 (so wie sie früher zu 3.0 und 3.1 gehörten, gehörten Low- und Fullspeed mit der Einführung von USB2.0 zu diesem Standard.

Persönliche Seite #7332912
Lesenswert?

Hans schrieb:

Low speed und full speed ist ja nichts anderes als USB1 u. USB2...

Nein. USB 1.1 Geräte können Low Speed und Full Speed sein.

USB 2.0 Geräte können Low Speed, Full Speed und High Speed sein. Letztere werden aber initial erst als Full Speed erkannt und auf High Speed umgeschaltet, sofern der Host das überhaupt unterstützt. Es sind aber z.B. auch USB 2.0 Geräte möglich, die nur Full Speed können.

Der Unterschied zwischen USB 1.1 und USB 2.0 ist anfangs erstmal nur eine Software-Sache, nämlich eine andere bcdDevice-Angabe im Device Descriptor.

??? schrieb:

wäre das nicht eine Aufgabe für einen Arduino?

Eine komplett fertige Firmware für einen STM32F103 die genau die Anforderungen mehr als erfüllt und Mikrosekunden-genaue Pulse ausgibt hatte ich ja schon eingestellt, aber scheint ja irgendwie nicht passend zu sein ( in Beitrag "Re: wie erzeuge ich von einem windows laptop aus einen 1 mikrosekunden puls mit 3.3 Volt" ).

Diese Firmware meldet sich übrigens als USB 2.1 Gerät an, obwohl sie nur FullSpeed unterstützt. Das ist für den Microsoft Extended Compat ID OS Feature Descriptor nötig, welcher das automatische Laden von WinUSB ermöglicht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren