Un dispositivo USB autoalimentato deve connettersi a VCC dalla porta host?


16

Una periferica USB autoalimentata fornisce la propria potenza, quindi è corretto collegare solo D +, D- e GND alla porta host, oppure è necessario collegare anche + 5V, quindi attendere la fase di negoziazione per il dispositivo dire all'host che è autoalimentato e quindi non vuole alcun potere, grazie mille?

La periferica specifica che sto guardando si basa su un adattatore da USB a seriale FTDI FT4232H, ma spero davvero in una risposta generica alla domanda.


1
FTDI ha molte note e informazioni sull'app nei loro fogli dati. Hai dato un'occhiata lì?
Gustavo Litovsky,

La scheda tecnica FTDI ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT4232H.pdf mostra VBUS collegato a RESET # attraverso un ponte resistore, in modo che (presumibilmente) scollegando il cavo USB si ripristini il dispositivo (se era alimentato dal bus allora , ovviamente, scollegare il cavo USB disinserire completamente il dispositivo!). Ma la domanda è: il carico su VBUS significa qualcosa per l'host USB e la mancanza di carico lasciando VBUS n / c interrompe qualcosa nell'handshaking USB?
Kbro,

L'USB di solito non ha idea se ci sia qualcosa di connesso. A meno che non si stia tirando più di 100 mA, non è possibile stabilire se qualcosa è collegato.
Gustavo Litovsky,

@GustavoLitovsky, in realtà, gli host USB non hanno alcun modo di discriminare tra nessuna corrente o corrente di 100 mA prelevata dalla sua porta. L'unico mezzo definito nelle specifiche USB è quando si verifica la sovracorrente, che è molto al di sopra di 500 o 900 mA. Tuttavia, tutto può essere progettato utilizzando circuiti extra e pin GPIO extra.
Ale..chenski,

Risposte:


6

La risposta generica a questa domanda è sì, il VBUS (+ 5V dal cavo) deve essere collegato al dispositivo anche se è autoalimentato. Il motivo è il seguente:

Per avviare il processo di connessione sul lato host, il dispositivo deve richiamare D + (nel caso della modalità FS / HS) o D- (nel caso del dispositivo LS).

Tuttavia, le specifiche USB hanno un requisito obbligatorio che nessun dispositivo USB dovrebbe generare corrente su alcun pin di interfaccia a meno che non sia collegato a un cavo, vedere la sezione 7.1.5.1, che recita,

La sorgente di tensione sulla resistenza di pull-up deve essere derivata o controllata dall'alimentazione fornita sul cavo USB in modo tale che quando VBUS viene rimosso, la resistenza di pull-up non fornisce corrente sulla linea dati a cui è collegata.

Se un dispositivo USB non ha questo controllo, una delle linee di dati sarà una fonte di corrente. L'asserzione prematura dei pull-up era fonte di problemi per alcuni host USB legacy. Ecco perché è stata istituita questa regola e c'è un test speciale per questo nel programma di certificazione USB-IF.

Pertanto, USB VBUS è un segnale "banda laterale" importante nel protocollo di connessione USB. Pertanto, i normali CI di dispositivi USB dispongono di un pin di ingresso separato per rilevare la presenza di host USB. Alcuni produttori di circuiti integrati (ad es. FT232H, MCP2221, ecc.) Ignorano questo requisito, supponendo che il loro chip verrà utilizzato esclusivamente nella configurazione alimentata dal bus, in cui il requisito del controllo pull-up viene automaticamente soddisfatto. Tuttavia, quando si progettano questi chip in progetti autoalimentati, sono necessari alcuni sforzi extra per collegare l'abilitazione dei pull-up con la presenza di VBUS sulla porta USB.

Per quanto riguarda il protocollo "handshake" di connessione USB, USB non si basa sulla corrente prelevata da VBUS. Il protocollo è questo: la porta host deve avere VBUS attivo; VBUS è collegato al dispositivo; il dispositivo vede il VBUS e tira su 1,5k su uno dei cavi D + / D; l'host vede questa connessione e dopo un ritardo di 100 ms asserisce la segnalazione USB_RESET (SE0 ecc.).


18

Con un dispositivo autoalimentato non collegare i suoi 5 V ai 5 V dell'host, è possibile interrompere entrambi gli alimentatori. GNDe D+, D-andrà bene.

Ricorda che i livelli per D+e D-sono classificati per + 3,6 V max, non a 5 V come ci si potrebbe aspettare!


4
Vale comunque la pena monitorare VBUS per rilevare le condizioni di disconnessione / connessione, in quanto parte della negoziazione iniziale di USB prevede pull-up su D + e D-. Una volta abbiamo riscontrato problemi in cui un hub non era in grado di enumerare correttamente i dispositivi in ​​base all'ordine in cui l'hub autoalimentato e i dispositivi autoalimentati erano accesi, a meno che non si osservasse VBUS. La soluzione era usare un potenziale divisore su VBUS per gestirlo.
Jxj,

1
Per lo stesso motivo, la resistenza di pullup - che notifica a un host che è stato collegato un dispositivo e identifica la sua velocità iniziale - dovrebbe essere riferita a VBUS, non alla fornitura locale del dispositivo.
Dave Tweed

1
Hmmm - la casella callout "Dispositivi autoalimentati" su usbmadesimple.co.uk/ums_2.htm dice lo stesso - non tirare D + o D- sopra VBUS. Ancora più interessante, non guidare D + o D- quando VBUS è spento. La scheda tecnica FT4232H ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT4232H.pdf mostra VBUS che si collega a RESET # che si collegherebbe a "non guidare quando VBUS è spento", ma non sembra esserci alcun garantire che D + / D- siano sempre inferiori a VBUS al ripristino. Ho pensato che il punto sul reset fosse che D + è sopra o sotto D-, non che fosse vicino a VBUS.
Kbro,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.