Me gustaría hacer una pregunta bastante específica sobre la administración de energía USB.
En primer lugar, describiré el diseño de mi dispositivo. Es un controlador de línea de señal simétrica con un códec de audio incorporado para mi sistema de altavoces DIY. El dispositivo se divide internamente en dos bloques en su mayoría independientes: el controlador de línea con un MCU de control y el códec de audio (PCM2706 de TI). Ambos necesitan conectividad de datos USB (a través de un FT232R para el bloque del controlador) y todo el dispositivo debe estar alimentado por bus. Los dos bloques estarán unidos entre sí mediante un chip concentrador USB, lo que proporcionará una única conexión USB de enlace ascendente a la PC. Espero que el consumo de la etapa del controlador sea entre 100 y 200 mA (definitivamente más de una unidad de carga).
Aquí viene el problema: de acuerdo con la especificación USB, un concentrador alimentado por bus puede proporcionar solo una unidad por puerto descendente mientras extrae un máximo de 5 unidades del ascendente. Me gustaría saber qué haría el hub si solicitara dos unidades a través del FT232 para la etapa del conductor. No se alcanzará el límite ascendente de 5 unidades (1 unidad para el concentrador, 1 unidad para el códec y dos para el controlador), por lo que la computadora debe poder suministrar esa corriente físicamente.
Para el chip del concentrador, he estado visitando http://www.ti.com/lit/ds/symlink/tusb2036.pdf . Hay una opción de modo de alimentación "agrupado", ¿sería de alguna ayuda? ¿O el chip simplemente se negaría a otorgar dos unidades al conductor? Y en este caso, ¿hay alguna solución sucia?
Soy consciente del requisito de que también se requieren dispositivos de alta potencia para extraer un máximo de 100 mA durante la enumeración; Esto no es un problema ya que el FT232 puede encender el controlador justo después de la enumeración. El centro también activará las etapas de forma independiente.
Espero haber declarado mi problema lo suficientemente claro y gracias por su tiempo de antemano :)
ACTUALIZAR:
Investigué un poco más sobre el chip TUSB2036. La protección contra sobrecorriente se puede desactivar con el pin / OCPROT. Luego, el concentrador informa al controlador raíz que no puede detectar sobrecorriente. Hay una advertencia en la hoja de datos de que la especificación USB 2.0 requiere protección OC; esto no me importa, solo necesito 1.1 a toda velocidad. El concentrador raíz de la PC debería suministrar 500 mAmps a todo el dispositivo. Por lo tanto, podría configurar el FT232 del controlador para que solo requiera 100 mA y el concentrador nunca sabría si hubiera excedido el límite (respetando los 500 mA de la PC, por supuesto). ¿Alguien puede decir si esto podría funcionar?
He diseñado una placa alrededor de ese centro.
En mi aplicación, estaba permitiendo el acceso a un FT232 y un FT245.
Si todo está en su propia PCB, le recomendaría que ignore por completo los sistemas completos de protección contra sobrecorriente. Después de todo, si algo falla en su PCB, todo necesitará trabajo, por lo que hacer que el dispositivo pueda manejar una falla parcial es un punto discutible.
En mi situación, até el TUSB para solicitar los 500 ma completos y deshabilité la protección contra sobrecorriente, y simplemente ejecuté todo directamente desde el USB 5.0v. Lo logré obligando al concentrador a informar como autoalimentado al host ascendente.
He hecho un par de tablas, sin ningún problema real, por lo que parece una estrategia perfectamente viable. También se ha utilizado con varias computadoras diferentes, por lo que me sentiría bastante seguro de usarlo tal cual.
Por supuesto, si esto es para un dispositivo de producción, en lugar de un proyecto personal o un arnés de prueba (que es lo que es en mi caso), es un problema completamente diferente.
(Ver la nota en el esquema)
Por lo que vale, a menudo puedes abusar horriblemente de la mayoría de los puertos USB modernos sin demasiados problemas. Muchos de ellos pueden suministrar mucha más potencia que los 500ma para los que están clasificados, sin demasiados problemas.
Además, la mayoría de ellos (todo lo que he probado, salvo algunas computadoras portátiles ) suministrarán felizmente los 500 ma completos sin tener que enumerar ningún dispositivo.
Sin embargo, esto varía de una placa base a otra, dependiendo de cómo esté diseñado el host USB. Su experiencia puede ser diferente.
fuente
Puede estar un poco sucio: el TUSB2036 permite la selección de puertos aguas abajo (p3 NPINT1-0 configurado en 10). Luego, conecte su dispositivo a dos puertos (físicos) para que pueda dibujar 2 unidades en paralelo.
fuente