Nos últimos dois meses, consegui destruir dois laptops perfeitamente bons através da programação de eletrônicos de desenvolvimento via USB. Fiquei me perguntando o que poderia ser feito para evitar isso. Algumas idéias que tive (não tenho certeza de quão prático):
- Conector / hub USB com diodos zener de fixação de 5V nas linhas de energia e dados
- Conector / hub USB com opto-isoladores nas linhas de dados
- fornecendo a conexão USB com fonte de alimentação externa, além da idéia mencionada anteriormente
Em combinação com essas idéias, talvez resistores nas linhas 5v D + e D- para limitar a corrente para dizer 200mA (o suficiente para a maioria dos dispositivos que uso).
Apenas me perguntei o que alguns engenheiros mais experientes do que eu pensavam sobre essas idéias e suas implicações práticas.
usb
protection
usb-device
circuit-protection
awsem_eng
fonte
fonte
Respostas:
O problema real não é a porta USB desprotegida, o problema real é que seu dispositivo coloca você e seus dispositivos em risco de serem conectados a fontes de alta voltagem e corrente relativamente alta.
Você pode resolver a sobretensão transitória com diodos de aperto, mas isso não ajudará se a fonte de alimentação for suficientemente forte - eles simplesmente falharão e você estará na mesma situação de antes, apenas milissegundos e o cheiro de semicondutores queimados ainda mais.
Seu problema é ruim, por várias razões, e seus laptops são os menores:
O USB deve ser manuseado manualmente (isso é redundante); portanto, se essa falha matar o seu laptop, não tenho a maior confiança de que ela é inerentemente salva para a interação humana.
Por um bom motivo, existem critérios de projeto para circuitos que envolvem a comutação de tensões mais altas com tensões mais baixas.
Geralmente: você precisa de isolamento galvânico entre o que qualquer humano (mesmo um técnico de serviço) possa tocar durante a operação e as tensões perigosas.
Portanto: separe estritamente o seu controlador USB e as coisas que ele alterna. É prática comum acionar cargas indutivas ou de alta tensão usando acopladores ópticos, cujo lado secundário é acionado por uma fonte de alimentação separada.
O layout da placa deve separar as regiões de alta tensão do ambiente 5V / MCU. Somente acopladores ópticos, núcleos de transformador e relés podem atravessar esse limite. Sem compromissos.
Um problema típico é que o aterramento da fonte de alimentação do seu dispositivo tem um potencial completamente diferente do aterramento USB - embora isso não deva ser um problema para um laptop, que deve ser galvanicamente separado de qualquer outra coisa, existem muitos casos em que você encontra problemas com isso (por exemplo, a terra do laptop acaba em terra Ethernet, terra de áudio, terra RS-232 ...). A separação estrita (isolamento) entre controlador e controlado faz com que isso não seja um problema inerente.
fonte
Boa. Como você menciona o "uso de diodos zener" para proteger contra uma "alta tensão" mal definida, agora temos um ponto de dados confiável: você não tem idéia do que está fazendo.
Portanto, você precisa de um isolador USB para proteger a porta do laptop. Sinto muito por esse laptop, aliás.
Quero dizer, os laptops são isolados do solo devido ao fato de suas fontes de alimentação não serem aterradas. Então, soprar a porta USB de um laptop é como ... difícil ... Como exatamente você conseguiu fazer isso exatamente? Você enviou a tensão da rede elétrica pela porta USB ou algo assim?
fonte
Como você está usando o Arduino como base, a solução é fácil .... use um processador descartável para programação e depuração. O ambiente de desenvolvimento do Arduino se encaixa perfeitamente em um Raspberry Pi, que você pode usar no seu ambiente incorporado e conversar com a tecnologia sem fio nos laptops restantes ou talvez em um desktop.
Isso não impedirá que você frite um Raspberry Pi, mas reduzirá o custo de uma falha no circuito para cerca de US $ 35.
fonte
Ok, depois de vários esclarecimentos e vários casos apresentados, deixe-me oferecer uma solução para o problema de como proteger um laptop de fritar no ambiente de serviço de campo:
Sempre conecte seu equipamento de teste / diagnóstico ao objeto de serviço primeiro e ligue-o.
Antes de conectar o equipamento ao laptop, verifique se há voltagens suspeitas entre as blindagens USB usando um DMM de baixa impedância (padrão 10-20k), entre a porta DUT e a porta do laptop, tanto no modo DC quanto no AC.
Se uma tensão significativa for encontrada (5 - 10 - 50 V), use um transformador de isolamento verdadeiro em uma das extremidades.
fonte
Usar um Pi / Beaglebone / Tinkerbox por WiFi seria barato e fácil. O CHIP parece bom, consulte https://getchip.com/pages/chip . 5-9 $ por dispositivo. Você pode assassinar 7 CHIPs pelo preço de 1 Pi3. Obviamente, você ainda precisa resolver o problema de que as tensões de interrupção atingem as portas USB, mas pelo menos sua estação de trabalho estará segura. Não conecte-o à sua LAN com Ethernet, no entanto.
A transferência dos arquivos é simplesmente uma questão de usar o acesso ssh sem senha, com base em chave, aos arquivos scp para o Pi / outro e um shell remoto para carregar. Para o arduino, existe o pacote arduino-mk e existem ferramentas semelhantes para o PIC. Sem dúvida, você também pode salvar seus arquivos em um compartilhamento SMB / CIFS exportado e usar o shell remoto para fazer e fazer o upload para suas placas.
Se ocorrer uma voltagem fatal, você perderá apenas 30-35 $.
Ainda não descobri como essas tensões conseguem atravessar seus MCUs e entrar na porta USB. É curto? De onde isso vem? Eu destruí muitos clones do arduino e estou sinceramente curioso.
Além disso, as portas USB geralmente são polifundidas contra tensões moderadas. Você realmente precisa colocar uma tensão negativa no pino de 5V para matar a porta (ou positivo para o pino GND), o controlador e talvez a placa-mãe. Como você está gerenciando o assassinato de dois laptops? Poderia ser a mágica da corrente alternada no trabalho?
fonte