"Dispositivo USB" STM32 vs. "USB OTG HS": qual è la differenza?


10

Di recente ho scaricato l'app stm32 per la ricerca MCU e ho scoperto che ad esempio STM32F429 ha "NO" nella periferica "Dispositivo USB", mentre dice "SÌ" in "USB OTG FS" e "USB OTG HS". Il che è abbastanza sorprendente poiché STM32F429 è perfettamente funzionante come dispositivo USB, cioè supporta tutte le librerie e le classi USB.
In alcune altre MCU è indicato "Dispositivo USB", ad es. STM32L052 inserisci qui la descrizione dell'immagine

Quindi ho provato a controllare CubeMX e ho scoperto che c'è una periferica USB_Device nella loro ricerca (e di nuovo STM32F429 non lo include, le cose USB sono fatte tramite OTG).

Potrebbe essere una domanda abbastanza semplice poiché sospetto che il dispositivo USB significhi semplicemente quello che non supporta OTG, ma non sono sicuro, di solito gli MCU usano OTG (e inoltre c'è solo una libreria, quindi perché dichiarare "NO" in USB periferica). Non sono riuscito a trovare informazioni al riguardo in Google o nella documentazione di CubeMX.

Non mi preoccupo molto perché USB OTG HS sembra funzionare bene con la libreria, ma mi chiedo la terminologia.

Capisco che probabilmente il forum ST è un posto migliore per questa domanda, ma molti argomenti non hanno ricevuto risposta o risposta dopo 2 anni. :)

Grazie.


1
Ho avuto questa esperienza con i forum di ST, quindi sono d'accordo ...
fioco

Per quanto riguarda il fatto che il forum ST abbia un cattivo contributo, apparentemente non è solo il forum, ma anche per e-mail, ho aperto un ticket su un possibile errore in uno dei loro esempi di documentazione e USB, ma nessuno (ancora) si è preso la briga di rispondermi. Il che è davvero fastidioso.
Mohammed Noureldin,

Risposte:


16

Il tuo pensiero è corretto: i dispositivi contrassegnati come "Sì" nella colonna dei dispositivi USB sono solo in grado di fungere da dispositivi USB. Non supportano le specifiche OTG e non possono nemmeno fungere da host.

Ma, naturalmente, qualsiasi dispositivo in grado di USB OTG può, al contrario, fungere da dispositivo semplice. Chi può fare di più può fare di meno.

Li identificano in questo modo perché il "dispositivo USB", "OTG FS" e "OTG HS" sono tre diversi core IP nei chip. Tutti hanno le loro capacità / specifiche particolari e possono richiedere driver diversi (come hai notato).

Per riassumere:

  • Dispositivo USB: in grado di fungere solo da dispositivo, alla massima velocità (12 Mbps)
  • USB OTG FS: in grado di fungere da dispositivo / host / periferica OTG, a piena velocità (12 Mbps)
  • USB OTG HS: in grado di fungere da dispositivo / host / periferica OTG, a piena velocità (12 Mbps) o alta velocità (480 Mbps). Si noti che il core HS per [la stragrande maggioranza di] * MCU ST richiede un chip ULPI PHY esterno per supportare effettivamente l'alta velocità. Il PHY on-chip può fare solo la massima velocità. ... Sì, è molto confuso.

* Modifica : sembra che ST abbia finalmente compiuto alcuni sforzi per integrare un PHY ad alta velocità su chip su alcune delle loro MCU più recenti (più specificamente: alcune delle versioni STM32F7x3 e STM32F730, al momento). Tuttavia, non esiste una colonna specifica che indichi chiaramente questa funzione nella loro tabella di selezione dei dispositivi, il che aumenta ulteriormente la confusione. Devi guardare i dettagli del foglio dati.


Ok, grazie, volevo solo non sentirlo dalla mia testa :)
ScienceSamovar,

1
Allo stesso modo ho un sistema iMX che ha sia "host usb" che "otg fs", dandogli due porte USB utilizzabili - ma richiedono driver diversi! Qualcosa di simile può applicarsi a ST - stessa funzionalità che richiede software diverso.
pjc50,

In effetti, sono sicuro che hanno, o avevano in passato, dispositivi che avevano più porte periferiche con livello di funzionalità diverso. Questo è un modo inequivocabile di elencare le caratteristiche di una serie di parti (o sarebbe sembrato così in passato)
Sean Houlihane,

Hey! Potresti espandere un po '? Se un microcontrollore supporta USB OTG, in teoria potresti avere due porte USB collegate al chip: 1 per fungere da host OTG USB (ad esempio collegare una tastiera) e l'altra USB per fungere da dispositivo? C'è un termine per descrivere questo comportamento?
NessDan,

1
@Ness Se il chip incorpora solo il blocco USB OTG, no, non puoi. Ma un sacco di MCU di fascia alta include sia il dispositivo USB che i blocchi USB OTG. Quindi puoi usare entrambi contemporaneamente e avere due porte indipendenti sul tuo MCU: uno che funge da dispositivo e l'altro come host, sì. Controlla i fogli dati.
dim
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.