c# - microsoft - winusb nt




Controllare la potenza della porta USB? (7)

L'USB non è banale, quindi suppongo che avrai qualche problema (errato) nell'usarlo. Saresti / molto / migliore (IMHO) con le porte seriali standard, che sono state utilizzate per cose del genere per anni, con un sacco di esempi disponibili. Se non si dispone di una porta seriale disponibile sul computer di destinazione, è possibile utilizzare USB-> Cavo di interfaccia seriale.

Detto questo, probabilmente vorrai dare un'occhiata @: http://sourceforge.net/projects/libusbdotnet/

LP, Dejan

Qualcuno sa come controllare i pin USB su una determinata porta USB? Penso che sia sicuramente possibile in assembler, ma che dire di C ++ o C #?

Voglio essere in grado di utilizzare la batteria USB come un alimentatore per un LED o qualcosa del genere. Quindi un programma lo accenderebbe e lo spegnerebbe facendolo lampeggiare.

So che sembra inutile ma ho bisogno di farlo per qualcosa di fantastico.

So anche che potrebbe richiedere un driver personalizzato.


La domanda è controllare l'amperaggio della maggior parte delle risposte USB non è riuscito a mettere in conto la varietà di mA di USB e il suo effetto su volt.

L'uscita USB 1.0 e 2.0 comune equivale a 500 mA o 0,5 A. 500 mA volte 5 volt equivalgono a 2,5 watt di potenza.

1 A ti darà i 5 Watt completi e USB 2.0 può essere manipolata dal caricabatterie ASUS Ai per produrre 1,2 A o 1200 mA per darti una potenza di 6 watt.


Non esiste un controllo software sui pin di alimentazione e di messa a terra di una porta USB, almeno sui chipset PC. Questo viene gestito dall'hardware tramite il controller USB. Cerca di ottenere un adattatore USB per porta parallela se desideri un controllo software sulle tensioni TTL.


Non puoi semplicemente commutare i pin su una porta USB. Periodo. USB è un protocollo seriale. Il connettore contiene

  1. Energia. L'host può controllare le linee elettriche in quanto può ridurre la potenza in caso di sovraccarico. Questo è qualcosa fatto dal driver host USB, il che significa che il driver dell'adattatore host nel PC. Questo non significa alcun driver di dispositivo personalizzato che potrebbe essere necessario per l'hardware che non utilizza nessuna delle classi di dispositivi che il sistema operativo già invia i driver.
  2. Dati. I dati vengono inviati tramite un protocollo seriale, quindi non è possibile controllare questi pin se si utilizza l'USB.

Se vuoi ottenere alcune porte IO hai bisogno di più logica. È necessario almeno qualcosa che segue il protocollo USB, il che significa una sorta di microcontrollore (o uno speciale controller di dispositivo USB come i controller USB FTDI : l'FT232 e l'FT245 sono particolarmente piacevoli da utilizzare). Per una soluzione basata su microcontroller di fascia bassa, il driver V-USB per i controller AVR potrebbe essere interessante.

Per semplici pin IO-bang sul PC, utilizzare la porta parallela. L'USB non è davvero fatto né adatto per questo.


Penso che tu stia cercando un dispositivo USB. Un caricatore semplice potrebbe essere fatto, mettendo o aumentare il regolatore per urtare il 5v superiore o il regolatore per guidare a una tensione di carica inferiore. Accensione o spegnimento richiederebbe un dispositivo USB.


Quello di cui hai bisogno è una scheda di sviluppo con pin I / O programmabili (aka PIO ) o UART (RS232).

Il metodo più semplice è collegare il LED al Clear To Send (CTS) e a Ground o VCC. L'uscita sulla linea CTS accenderà o spegnerà il LED a seconda che l'altra estremità sia collegata a terra o meno. I normali pin I / O potrebbero essere usati, ma sono per la trasmissione seriale dei dati nella UART. L'UART di solito crea un carattere a 8 bit da questi pin; ma passa direttamente i valori RTS (Request To Send) e CTS.

Quando si utilizza un PIO, tutto ciò che si deve fare è impostare un bit in una variabile e scrivere tale variabile sull'indirizzo del set PIO. Potrebbe anche essere necessario bloccare i bit. Alcuni pin PIO ricorderanno il valore finché non verrà scritto il valore successivo (chiamato latched), altri ricorderanno il valore fintanto che viene scritto.


Potrebbe essere possibile accendere e spegnere il dispositivo facendo qualsiasi cosa accada quando si "rimuove in modo sicuro l'hardware" da un dispositivo USB, ma non sono sicuro al 100% che questo si spenga, potrebbe semplicemente inviare un segnale al dispositivo dispositivo dire che è disconnesso, che lo fa spegnere se stesso.

La soluzione migliore per ciò che stai cercando di fare è costruire un dispositivo USB che comunichi effettivamente con il computer (possibilmente tramite un driver personalizzato, ma probabilmente puoi anche usare un driver standard come un dispositivo HID). Il tuo computer dovrebbe inviare "on" o "off" (o qualsiasi altra cosa tu possa immaginare) al tuo dispositivo, che interpreterebbe i segnali come meglio credi (probabilmente accendendo e spegnendo il LED di cui stavi parlando). Non è così difficile come sembra. È possibile acquistare microcontrollori con interfacce USB a bordo, come Arduino o alcuni dei PIC high-end. Molti produttori di questo tipo di microcontrollori dispongono di documenti che spiegano come interfacciare USB con loro.