Vorrei porre una domanda abbastanza specifica sulla gestione dell'alimentazione USB.
Prima di tutto, illustrerò il design del mio dispositivo. È un driver di linea di segnale simmetrico con un codec audio incorporato per il mio sistema di altoparlanti fai-da-te. Il dispositivo è diviso internamente in due blocchi per lo più indipendenti: il driver di linea con un MCU di controllo e il codec audio (PCM2706 di TI). Entrambi necessitano di connettività dati USB (tramite un FT232R per il blocco driver) e l'intero dispositivo deve essere alimentato dal bus. I due blocchi saranno collegati tra loro da un chip hub USB, producendo una singola connessione USB uplink al PC. Mi aspetto che il consumo del palco del conducente sia compreso tra 100 e 200 mA (sicuramente più di un'unità di carico).
Ecco il problema: secondo le specifiche USB, un hub alimentato dal bus può fornire solo un'unità per porta downstream mentre estrae massimo 5 unità dall'upstream. Mi piacerebbe sapere cosa farebbe l'hub se avessi richiesto due unità tramite FT232 per il palco del conducente. Non verrà raggiunto il limite di 5 unità a monte (1 unità per l'hub, 1 unità per il codec e due per il driver), quindi il computer dovrebbe essere fisicamente in grado di fornire quella corrente.
Per il chip hub, ho controllato http://www.ti.com/lit/ds/symlink/tusb2036.pdf . C'è un'opzione di modalità di alimentazione "ganged", questo sarebbe di aiuto? O il chip si rifiuta di concedere due unità al conducente? E in questo caso, c'è qualche soluzione sporca?
Sono consapevole del requisito secondo cui anche i dispositivi ad alta potenza devono assorbire max 100 mA durante l'enumerazione; questo non è un problema in quanto FT232 è in grado di accendere il driver subito dopo l'enumerazione. L'hub accenderà anche le fasi in modo indipendente.
Spero di aver chiarito il mio problema abbastanza chiaramente e grazie per il tuo tempo in anticipo :)
AGGIORNARE:
Ho fatto qualche ricerca in più sul chip TUSB2036. La protezione da sovracorrente può essere disattivata dal pin / OCPROT. L'hub quindi segnala al controller di root che non è in grado di rilevare la sovracorrente. C'è un avvertimento nel foglio dati, che la protezione OC è richiesta dalla specifica USB 2.0 - questo non importa per me, ho solo bisogno di 1.1 a piena velocità. L'hub di root del PC dovrebbe quindi fornire IMO a 500 mAmps all'intero dispositivo. Quindi, potrei impostare FT232 del driver in modo che richieda solo 100 mA e l'hub non saprebbe mai se avrei superato il limite (rispettando naturalmente i 500 mA dal PC). Qualcuno può dire se questo potrebbe funzionare?