Um dispositivo USB com alimentação própria precisa se conectar ao VCC a partir da porta do host?

16

Um periférico USB auto-alimentado fornece sua própria energia; portanto, não há problema em conectar apenas D +, D- e GND à porta do host ou você sempre precisa conectar + 5V também e aguarde a fase de negociação do dispositivo dizer ao host que ele é auto-alimentado e, portanto, não quer energia, muito obrigado?

O periférico específico que estou olhando é baseado em um adaptador USB-serial FTDI FT4232H, mas estou realmente esperando por uma resposta genérica para a pergunta.

kbro
fonte
11
O FTDI tem muitas notas e informações sobre aplicativos em suas planilhas de dados. Você deu uma olhada lá?
Gustavo Litovsky
A folha de dados da FTDI ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT4232H.pdf mostra o VBUS conectado ao RESET # através de uma ponte de resistores, para que (presumivelmente) desconectar o cabo USB faça com que o dispositivo seja redefinido (se for alimentado por barramento) , obviamente, desconectar o cabo USB desligaria completamente o dispositivo!). Mas a questão é: a carga no VBUS significa algo para o host USB e a falta de carga ao deixar o VBUS n / c quebra algo no handshaking USB?
kbro
O USB geralmente não faz ideia de se há algo conectado. A menos que você puxe mais de 100mA, ele não pode dizer se algo está conectado.
Gustavo Litovsky
@GustavoLitovsky, na verdade, os hosts USB não têm como discriminar entre nenhuma corrente ou corrente de 100 mA extraída de sua porta. O único meio definido nas especificações USB é quando ocorre sobrecorrente, muito acima de 500 ou 900 mA. No entanto, tudo pode ser projetado usando circuitos extras e pinos GPIO extras.
Ale..chenski 31/01/19

Respostas:

6

A resposta genérica para esta pergunta é sim, o VBUS (+ 5V do cabo) deve ser conectado ao dispositivo, mesmo que seja auto-alimentado. O motivo é o seguinte:

Para iniciar o processo de conexão no lado do host, o dispositivo deve puxar para cima D + (no caso do modo FS / HS) ou D- (no caso do dispositivo LS).

No entanto, as especificações USB têm um requisito obrigatório de que nenhum dispositivo USB deve fornecer corrente em qualquer pino da interface, a menos que esteja conectado a um cabo, consulte a seção 7.1.5.1, que diz:

A fonte de tensão no resistor de pull-up deve ser derivada ou controlada pela energia fornecida no cabo USB, de modo que, quando o VBUS for removido, o resistor de pull-up não forneça corrente na linha de dados à qual está conectado.

Se um dispositivo USB não tiver esse controle, uma das linhas de dados será uma fonte de corrente. A afirmação prematura de pull-ups foi uma fonte de problemas para alguns hosts USB herdados. É por isso que essa regra foi instituída, e há um teste especial para isso no programa de certificação USB-IF.

Portanto, o USB VBUS é um importante sinal de "banda lateral" no protocolo de conexão USB. Como tal, os CIs de dispositivos USB normais possuem um pino de entrada separado para detectar a presença do host USB. Alguns fabricantes de IC (por exemplo, FT232H, MCP2221 etc.) ignoram esse requisito, assumindo que seu chip será usado apenas na configuração de barramento, onde o requisito de controle de pull-up é automaticamente satisfeito. No entanto, ao projetar esses chips em projetos autoalimentados, são necessários alguns esforços extras no circuito para vincular a ativação de pull-ups com a presença de VBUS na porta USB.

Em relação ao protocolo "handshake" de conexão USB, o USB não depende da corrente consumida pelo VBUS. O protocolo é o seguinte: A porta do host deve ter o VBUS ativo; O VBUS está conectado ao dispositivo; o dispositivo vê o VBUS e puxa 1,5k em um dos fios D + / D; O host vê essa conexão e, após um atraso de 100ms, assina a sinalização USB_RESET (SE0 etc.).

Ale..chenski
fonte
18

Com um dispositivo autoalimentado , não conecte 5V aos 5V do host, você pode queimar a fonte de alimentação. GNDe D+, D-vai fazer bem.

Lembre-se de que os níveis para D+e D-são classificados para + 3.6V máx, não para 5V como você pode esperar!

jippie
fonte
4
No entanto, vale a pena monitorar o VBUS para detectar condições de desconexão / conexão, pois parte da negociação inicial do USB envolve flexões em D + e D-. Certa vez, encontramos problemas em que um hub não podia enumerar adequadamente os dispositivos, dependendo da ordem em que o hub e os dispositivos com alimentação própria estavam ligados, a menos que você observe o VBUS. A solução foi usar um divisor em potencial no VBUS para lidar com isso.
perfil completo de Jxj
11
Pelo mesmo motivo, o resistor pullup - que notifica um host que um dispositivo foi conectado e identifica sua velocidade inicial - deve ser referenciado ao VBUS, não ao suprimento local do dispositivo.
Dave Tweed
11
Hmmm - a caixa de texto "Dispositivos com alimentação própria" em usbmadesimple.co.uk/ums_2.htm diz o mesmo - não puxe D + ou D- acima do VBUS. Mais interessante, não dirija D + ou D- quando o VBUS estiver desativado. A folha de dados do FT4232H ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT4232H.pdf mostra o VBUS conectando-se ao RESET #, que seria associado ao "não dirija quando o VBUS estiver desligado", mas não parece haver nenhum garanta que D + / D- esteja sempre abaixo de VBUS na redefinição. Eu pensei que o ponto principal sobre a redefinição é que D + está acima ou abaixo de D-, não que seja próximo ao VBUS.
kbro