Forum: Mikrocontroller und Digitale Elektronik STM32 USB Host


von SKBK (Gast)


Lesenswert?

Hallo,

ich befinde mich in der Planungsphase für ein Projekt, finde aber nicht 
die optimalen Komponenten und hoffe das mir hier jemand Empfehlungen 
geben kann.
Da ich ein ST-Link-V2 habe, würde ich das Ganze auch gerne mit STM32 
Microcontroller realisieren.

Was ich benötige ist Folgendes:
2 x USB Host für Maus und Tastatur (gleichzeitig)
1 x USB Client zum PC für Konfiguration (Zur not könnte ich hier ein 
USART mit FTDI benutzt werden)
1 x ISP-BUS
1 x Digital input ISP-Chip-Select
2 x Digital Output für LEDs

Ich habe natürlich schon auf der Internetseite von ST gesucht, bin da 
aber ein wenig von der riesigen Datenmenge erschlagen und finde in den 
Tabellen auch irgendwie nichts konkretes zu USB Host.

Es wäre natürlich schön, wenn es hier eine Microcontroller gäbe der die 
3 USB Schnittstellen hat. Noch besser wäre es, wenn es bereits fertige 
Boards (Olimex und Co.) dazu gäbe.

von Jim M. (turboj)


Lesenswert?

Da würde ich eher einen Raspberry Pi verwenden. Für die Tastatur und 
Maus braucht man auch ein Display irgendwo, dann wird der Stromverbauch 
des RPi nebensächlich.

Ohne Linux darunter ist USB HID für Tastatur/Maus eher aufwändig wenn 
man die Host Seite selber implementieren muss. Und nur ganz dicke µCs 
haben mehr als einen USB Port.

von SKBK (Gast)


Lesenswert?

Den RPI kann man nur mit ein Betriebssystem von einer SD-Specherkarte 
laufen lassen (z.B. Linux). Das ist für mein vorhaben zu langsam, und 
wegen Multitasking auch nicht permanent.
Die Daten von den beiden USB-Host sollen via ISP an ein weiteren 
Microcontroller übertragen werden.

von holger (Gast)


Lesenswert?

>Den RPI kann man nur mit ein Betriebssystem von einer SD-Specherkarte
>laufen lassen (z.B. Linux). Das ist für mein vorhaben zu langsam, und
>wegen Multitasking auch nicht permanent.

Was ist da zu langsam?
Was bedeutet "permanent"?

>Die Daten von den beiden USB-Host sollen via ISP an ein weiteren
>Microcontroller übertragen werden.

Welche zwei Hosts?
Was ist ISP?

Du redest einfach nur wirres Zeug.
Vergiss deinen Blödsinn.

von Dr. Sommer (Gast)


Lesenswert?

SKBK schrieb:
> Das ist für mein vorhaben zu langsam

Was hat die Ausführungsgeschwindigkeit des Programms mit der SD-Karte zu 
tun? Nichts, denn der Programmcode wird natürlich beim Starten des 
Programms von Linux automatisch in den RAM kopiert. Wenn es sein muss 
kannst du auch das komplette Linux in den RAM kopieren und die SD-Karte 
danach rausziehen...

von SKBK (Gast)


Lesenswert?

Ich habe da einen kleinen Buchstaben dreher, ISP ist falsch, korrekt ist 
SPI-Bus.

holger schrieb:
> Was ist da zu langsam?
> Was bedeutet "permanent"?

Das im ersten Kommentar beschriebene ist nur Funktionsblock des 
Gesamzprojekts, ich habe es hier auf diesen Funktionsblock reduziert, um 
es hier nicht unnötig zu verkomplizieren.

Der Funktionsblock soll alle Eingabe einer Maus und einer Tastatur 
möglichst ohne Zeitverlust erfassen und an den nächsten Funktionsblock 
via SPI-Bus senden. Unterbrechunchungen wie man sie bei Multitasking 
Betrienbssystem erwarten muß, sind hierbei nicht nützlich.

Es sprechen hierbei aber noch mehr Punkte gegen RPI
- Unzuverlässigkeit (Die SD-Karten haben ständig Datenverluste)
- Stromverbrauch
- Zu teuer (Zwei separate STM32 mit jeweils einen USB-Host sind 
günstiger als ein RPI)


Ich könnte natülich einfach zwei STM32 mit jeweills einen USB-host 
benutzen, ich hätte aber lieber einen Microcontroller an dem ich Maus 
und Tatsatur gleichzeitig anschließen kann.

Aber ich suche schon einen Microcontroller und nicht einen Mini-Computer 
wie den RPI.


holger schrieb:
> Du redest einfach nur wirres Zeug.
> Vergiss deinen Blödsinn.

Deinen Kommentar könnest du dir auch einfach sparren.


Ich formuliere meine Frage nochmal etwas einfacher,
kennt einen Microcontroller mit 2 USB Host und einen SPI-BUS?

von SKBK (Gast)


Lesenswert?

Sorry da ist von mir ein Wort verschluckt wordern:

Ich formuliere meine Frage nochmal etwas einfacher,
kennt jemand einen Microcontroller mit 2 USB Host und einen SPI-BUS?

von Dieter Gräf (Gast)


Lesenswert?


von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

So sehr ich STM32 schaetzte, die F2/4/7 Serien haben nur einen USB-Host.

von Dieter Gräf (Gast)


Lesenswert?

Uwe B. schrieb:
> So sehr ich STM32 schaetzte, die F2/4/7 Serien haben nur einen USB-Host.

einen USB-Host der 2 Userprozesse abarbeiten kann. STM Cube generiert 
mir:
void MX_USB_HOST_Init(void)
{
  /* Init Host Library,Add Supported Class and Start the library*/
  USBH_Init(&hUsbHostHS, USBH_UserProcess1, HOST_HS);

  USBH_RegisterClass(&hUsbHostHS, USBH_HID_CLASS);

  USBH_Start(&hUsbHostHS);

  /* Init Host Library,Add Supported Class and Start the library*/
  USBH_Init(&hUsbHostFS, USBH_UserProcess2, HOST_FS);

  USBH_RegisterClass(&hUsbHostFS, USBH_HID_CLASS);

  USBH_Start(&hUsbHostFS);
}

m.f.G.
Dieter

von SKBK (Gast)


Lesenswert?

@ Dieter Gräf
Danke für den Tipp, dass scheint genau der Microcontroller zu sein den 
ich gesucht habe.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.