Aparentemente, una de las principales razones por las que la mayoría de los uC de 8 bits/16 bits no admiten la operación en modo host USB es debido al proceso bastante costoso llamado "enumeración". Según mi investigación, este paso parece ser necesario cuando el host debe identificar la clase de dispositivo conectado a él, identificar un proveedor/dispositivo específico y luego cargar el controlador apropiado para manejar la comunicación entre el procesador del host y el dispositivo. La otra razón es la necesidad de proporcionar suficiente corriente a los dispositivos.
Ahora, si la "corriente suficiente" no es un gran problema, digamos porque mi uC (que me gustaría que actúe como host USB) está alimentado (a través de un wallwart regulado y bien clasificado), y solo hay 3 dispositivos USB con que necesita para funcionar, por ejemplo --
a través de, por ejemplo, un dispositivo concentrador USB? De hecho, si puede ser un concentrador alimentado, entonces la cuestión de la "corriente suficiente" se aborda de todos modos.
¿Es posible conformarse con decir algo como Atmel ATmega32U2? La idea es que, en lugar de enumerar dispositivos de una gran lista de posibles dispositivos, sé de antemano qué dispositivos están conectados y cómo están conectados. ¿Cuáles podrían ser las advertencias si esto fuera posible? Si alguien está al tanto de tales intentos (con éxito o no), me encantaría saber de ellos.
Hay suficientes formas disponibles para proporcionar el modo host con un microcontrolador que tratar de hacerlo con algo que no está diseñado para el rol es "hacerlo de la manera difícil".
Busque dispositivos con capacidad USB OTG" = "On the Go".
Estos pueden proporcionar capacidad de host o esclavo según sea necesario.
Si "... algo como Atmel ATmega32U2..." incluye un Atmel AT90USB64 , entonces sí.
es decir, usar una de las partes disponibles que SÍ tienen esta capacidad es la "manera fácil" de hacerlo. Hay suficientes formas disponibles para proporcionar el modo host con un microcontrolador que tratar de hacerlo con algo que no está diseñado para el rol es "hacerlo de la manera difícil". Busque dispositivos con capacidad USB OTG" = "On the Go". Estos pueden proporcionar capacidad de host o esclavo según sea necesario.
Circuitos integrados con capacidad OTG de algún tipo
Más barato en 1 en stock en Digikey:
Microcontrolador AVR con capacidad USB OTG $8.43/1 Digikey en existencia.
Microcontrolador compatible con PIC OTG y host $4.22/1 en existencia Digikey
El dispositivo PIC también es el microcontrolador host/OTG más económico de cualquier tipo disponible en stock en unidades de 1 de Digikey.
Hay alguna implementación basada en SW del controlador USB Host en Atmega uControllers
SIAM32 USB HC (controlador de host de bus serie universal Atmel Mega32 implementado por software) https://courses.cit.cornell.edu/ee476/FinalProjects/s2007/blh36_cdl28_dct23/blh36_cdl28_dct23/
http://ibm-cvut.felk.cvut.cz/~usbhatm07/presentation/presentation.pdf
Russel McMahon
gbarry