Eu tenho um dispositivo USB de velocidade total que desejo fornecer 2 portas - uma em extremidades opostas do gabinete. Isso permite que o cabo possa ser conectado sempre que for mais conveniente. Meu MCU (atmega32u4) possui apenas uma interface, portanto as portas físicas serão compartilhadas, mas apenas uma deve ser conectada ao mesmo tempo.
Obviamente, não se pode confiar nos usuários para não conectar os dois lados ao mesmo tempo. Como se proteger contra isso?
Idéias que tive:
- Apenas conecte-os "como estão" e espere que o host possa lidar com pinos D + / D- unidos
- Porta NAND com pinos de 5V separados como entrada, saída para um MOSFET que desconecta o Vcc quando os dois estão conectados.
A segunda opção parece razoável ou é necessária uma solução mais complexa?
protection
usb-device
monty
fonte
fonte
Respostas:
Conforme indicado, você não pode conectar diretamente dois hosts a um dispositivo - portanto, se você os conectasse e alguém o conectasse nas duas extremidades, teria um problema.
No entanto, você também terá um problema se apenas uma extremidade estiver conectada. USB, especialmente o modo de alta velocidade (480 Mbps), é impedância controlada. Se você conectar as duas linhas de dados dos conectores, terá o que é conhecido como esboço no design de alta frequência. O cabo que vai para o conector não utilizado prejudicará o desempenho do conector ativo.
Para fazer isso corretamente, você deseja um IC multiplexador. Você pode comprar multiplexadores USB2.0 dedicados projetados especificamente para esse tipo de aplicativo - algo como o TS3USB30 . Isso permitiria conectar as linhas de dados de ambas as portas às entradas mux e conectar a saída ao seu dispositivo internamente. O mux desconectará o conector não utilizado, que desconectará os stubs da linha de transmissão.
Para energia, provavelmente usaria um multiplexador de energia, como um circuito de diodo OR-ing. A linha VBUS de uma das portas (antes do multiplexador de energia) pode ser usada como entrada para o multiplexador de dados.
O aterramento seria comum (conectado) entre as duas portas USB e o seu dispositivo.
fonte
O multiplexador, conforme sugerido por Tom Carpenter, é uma boa solução.
Mas para USB de velocidade máxima (12 Mbps), os stubs nos sinais não são particularmente importantes. Se a distância entre as extremidades das pontas permanecer abaixo de 1/10 do comprimento de onda, ou seja, abaixo de ~ 2 metros, as reflexões não distorcerão muito a forma de onda.
Além disso, os níveis de tensão nos pinos D + e D- permanecerão dentro da faixa aceitável, portanto, não há muito risco de danos eletrônicos a qualquer host.
O principal problema que resta é se você conectar os pinos de + 5V de ambos os hosts juntos, poderá haver grandes correntes envolvidas. Você pode usar um diodo do pino de + 5V de cada conector USB para permitir que a corrente entre, nunca saia.
fonte
A maneira preguiçosa do design eletrônico seria apenas usar um comutador físico de múltiplos conectores para escolher entre qual deles seria usado.
Observe que isso teria o benefício adicional de poder deixá-los conectados e usar o comutador para selecionar qual entrada será usada.
fonte
Não existe uma maneira compatível com USB de fazer isso. O USB não foi projetado para ser compartilhado entre dois hosts e a tentativa de fazê-lo levará a situações potencialmente desastrosas.
Na melhor das hipóteses, você pode usar um multiplexador USB ou alternar IC, com o GPIO para determinar qual conector está conectado. Você terá que decidir qual conexão USB tem precedência, porque ambas não podem ser conectadas à sua interface USB ao mesmo tempo.
Ou procure alternativas. Faça com que um computador se comunique com o outro. Ou use Bluetooth ou Wi-Fi ou outro tipo de conexão.
fonte
Eu tenho um tablet Wacom com esse recurso. Eles lidam com o problema que você está descrevendo usando um intertravamento mecânico.
Há um controle deslizante de plástico que bloqueia uma porta ou outra, dependendo da posição.
fonte
Talvez seja mais fácil deixar o conector USB em um lado do gabinete e duplicar e / ou realocar todos os outros elementos voltados para o usuário simetricamente. Em seguida, o gabinete pode ser girado para que a porta USB fique voltada para o conector, enquanto todos os outros elementos ainda estão convenientemente acessíveis.
Outra opção é localizar as duas portas em um lado do gabinete (nas extremidades opostas) e adicionar um esboço deslizante no interior do gabinete que o usuário pode mover para abrir uma porta ou a outra. O USB de 12 MHz tem uma boa chance de trabalhar com uma porta desconectada extra conectada a ele.
fonte