Anscheinend ist einer der Hauptgründe, warum die meisten 8-Bit/16-Bit-uCs den Betrieb im USB-Hostmodus nicht unterstützen, der ziemlich teure Prozess namens "Enumeration". Nach meinen Recherchen scheint dieser Schritt notwendig zu sein, wenn der Host die mit ihm verbundene Geräteklasse identifizieren muss, einen bestimmten Anbieter/ein bestimmtes Gerät identifizieren und dann den entsprechenden Treiber laden muss, um die Kommunikation zwischen dem Host-Prozessor und dem Gerät zu handhaben. Der andere Grund ist die Notwendigkeit, die Geräte mit ausreichend Strom zu versorgen.
Nun, wenn der "ausreichende Strom" kein großes Problem ist, sagen wir, weil mein uC (das ich als USB-Host fungieren möchte) mit Strom versorgt wird (über eine gut bewertete, geregelte Steckdose) und es nur 3 USB-Geräte mit gibt was es zum Beispiel funktionieren muss --
über sagen wir ein USB-Hub-Gerät? In der Tat, wenn es ein Powered Hub sein kann, dann ist die Frage nach "ausreichend Strom" sowieso damit beantwortet.
Ist es möglich, sich mit etwas wie Atmel ATmega32U2 zu begnügen? Die Idee ist, anstatt Geräte aus einer großen Liste möglicher Geräte aufzuzählen, weiß ich im Voraus, welche Geräte angeschlossen sind und wie sie angeschlossen sind? Was könnten die Vorbehalte sein, wenn dies möglich wäre? Wenn jemand solche Versuche kennt (erfolgreich oder nicht), würde ich gerne davon hören.
Es gibt genügend Möglichkeiten, den Host-Modus mit einem Mikrocontroller bereitzustellen, der versucht, dies mit etwas zu tun, das nicht für die Rolle vorgesehen ist, "es auf die harte Tour zu tun".
Suchen Sie nach Geräten mit USB OTG" = "On the Go"-Fähigkeit.
Diese können je nach Bedarf entweder Host- oder Slave-Fähigkeit bereitstellen.
Wenn "... so etwas wie Atmel ATmega32U2 ... " einen Atmel AT90USB64 enthält , dann ja.
dh die Verwendung eines der verfügbaren Teile, die diese Fähigkeit haben, ist der "einfache Weg". Es gibt genügend Möglichkeiten, den Host-Modus mit einem Mikrocontroller bereitzustellen, der versucht, dies mit etwas zu tun, das nicht für die Rolle vorgesehen ist, "es auf die harte Tour zu tun". Suchen Sie nach Geräten mit USB OTG" = "On the Go"-Fähigkeit. Diese können je nach Bedarf entweder Host- oder Slave-Fähigkeit bereitstellen.
ICs mit irgendeiner Art von OTG-Fähigkeit
Günstigster in 1 auf Lager bei Digikey:
AVR-Mikrocontroller mit USB-OTG-Fähigkeit 8,43 $/1 Digikey auf Lager.
PIC OTG & Host-fähiger Mikrocontroller $4.22/1 auf Lager Digikey
Das PIC-Gerät ist auch der billigste Host-/OTG-Mikrocontroller aller Art, der von Digikey in 1 Stück auf Lager erhältlich ist.
Es gibt eine SW-basierte Implementierung des USB-Host-Controllers auf Atmega uControllers
SIAM32 USB HC (Software Implementierter Atmel Mega32 Universal Serial Bus Host Controller) https://courses.cit.cornell.edu/ee476/FinalProjects/s2007/blh36_cdl28_dct23/blh36_cdl28_dct23/
http://ibm-cvut.felk.cvut.cz/~usbhatm07/presentation/presentation.pdf
Russell McMahon
gbarry