Apparently, one of the main reasons why most 8-bit/16-bit uC's do not support USB host-mode operation is because of the rather expensive process called "enumeration". From my research, this step seems to be necessary when the host must identify the class of device connected to it, identify specific vendor/device and then load the appropriate driver to handle communication between host processor and device. The other reason being need to provide sufficient current to the devices.
Now if the "sufficient current" is not a big issue, let's say because my uC (which I'd like to act as USB host) is powered (via a well rated, regulated wallwart), and there are only 3 USB devices with which it needs to work, for instance --
- Device that uses proprietary Serial over USB
- Device (sensor) that uses USB-HID
- Specific vendor/model USB2.0 Bluetooth2.1 device
via say a USB hub device ? In fact, if it can be a powered hub, then the question of "sufficient current" is anyway addressed by it.
Is it possible to make do with say something like Atmel ATmega32U2 ? The idea being, instead of enumerating devices from a large list of possible devices, I know in advance which devices are connected, and how they are connected ? What might be the caveats if this were to be possible ? If someone is aware of such attempts (successful or not), would love to hear about them.