O Linux corta energia para dispositivos USB que consomem muita energia?

1

Se eu curto um Arduino, o Linux detectará que algo está errado e desativará a porta? O Mabook exibirá um aviso e dissolverá o dispositivo.

    
por Metonymy 17.09.2016 / 19:11

1 resposta

0

Proteção contra curto-circuito é o papel do hardware na interface USB. USB 2.0 s7.1.1 diz

A USB transceiver is required to withstand a continuous short circuit of D+ and/or D- to VBUS, GND, other data line, or the cable shield at the connector, for a minimum of 24 hours without degradation.

O Linux reportará um curto-circuito se o hardware do transceptor USB reportar essa condição ao Linux. Veja fonte / drivers / usb / core / hub.c: port_event () . Neste caso, o Linux evita o envio de dados para a porta de 0,1 a 0,5s, a fim de fornecer um tempo uniforme de curto prazo para dissipar e desabilitar a porta se a condição de sobrecorrente persistir.

Se você estiver desenvolvendo hardware USB, poderá optar por usar um hub alimentado por USB (com proteção contra sobrecorrente, consulte o atributo USB wHubCharacteristics ) como um dispositivo de sacrifício para proteger seu computador mais caro , ao invés de confiar no transceptor USB do seu computador operando dentro da especificação. Observe que, em alguns projetos USB, a proteção contra sobrecorrente é implementada usando um polifusão , e eles têm um número limitado de eventos de acionamento e também podem algum tempo para retomar a operação, presumivelmente tempo você prefere gastar trocando em outro hub e continuar a desenvolver o seu dispositivo.

Quando um dispositivo USB é inserido, o Linux verifica se as configurações USB propostas não excedem a corrente nominal da porta (consulte drivers / usb / core / generic.c: usb_choose_configuration () ), mas isso é para condições sem erro, onde pode-se supor que os dispositivos não atraem mais corrente do que o solicitado seu software.

    
por 18.09.2016 / 16:25