STM32 “Dispositivo USB” vs. “USB OTG HS” - qual é a diferença?


10

Recentemente, baixei o aplicativo stm32 para pesquisa no MCU e descobri que, por exemplo, o STM32F429 possui "NÃO" no periférico "Dispositivo USB", enquanto diz "SIM" em "USB OTG FS" e "USB OTG HS". O que é bastante surpreendente, pois o STM32F429 é totalmente funcional como dispositivo USB, ou seja, suporta todas as bibliotecas e classes USB.
Alguns outros MCUs possuem "Dispositivo USB", por exemplo. STM32L052 insira a descrição da imagem aqui

Então tentei verificar o CubeMX e descobri que existe um periférico USB_Device em sua pesquisa (e novamente o STM32F429 não o inclui, o material USB é feito através do OTG).

Pode ser uma pergunta bastante fácil, pois suspeito que o dispositivo USB significa simplesmente aquele que não suporta OTG, mas não tenho certeza, geralmente os MCUs usam o OTG de qualquer maneira (além disso, existe apenas uma biblioteca, então por que indicar "NÃO" no USB periférico). Não consegui encontrar informações sobre isso no google ou na documentação do CubeMX.

Não estou muito preocupado com isso, pois o USB OTG HS parece funcionar bem com a biblioteca, mas estou pensando em terminologia.

Eu entendo que provavelmente o fórum ST é um lugar melhor para esta pergunta, mas muitos tópicos existem apenas que não são respondidos ou respondidos após dois anos. :)

Obrigado.


1
Eu tive essa experiência com os fóruns de ST, então eu simpatizo ... #
1616

Quanto ao fórum do ST ter uma contribuição ruim, aparentemente não é apenas o fórum, mas também por e-mail, abri um ticket sobre um possível erro em uma de suas documentações e exemplos de USB, mas ninguém (ainda) se preocupou em me escrever de volta. O que é realmente irritante.
Mohammed Noureldin

Respostas:


16

Sua opinião está correta: os dispositivos marcados com "Sim" na coluna do dispositivo USB são capazes de funcionar como um dispositivo USB. Eles não suportam as especificações do OTG e também não podem atuar como host.

Mas é claro que qualquer dispositivo capaz de USB OTG pode, por outro lado, atuar como um dispositivo simples. Quem pode fazer mais pode fazer menos.

Eles os identificam dessa maneira porque o "dispositivo USB", "OTG FS" e "OTG HS" são três núcleos IP diferentes nos chips. Todos eles têm suas capacidades / especificações particulares e podem exigir drivers diferentes (como você notou).

Resumindo:

  • Dispositivo USB: capaz de funcionar apenas como dispositivo, a toda velocidade (12Mbps)
  • USB OTG FS: capaz de atuar como um dispositivo / host / periférico OTG, em velocidade máxima (12Mbps)
  • USB OTG HS: capaz de atuar como um dispositivo / host / periférico OTG, em velocidade máxima (12Mbps) ou alta velocidade (480Mbps). Observe que o núcleo HS da [a grande maioria dos] * ST MCUs exige um chip ULPI PHY externo para realmente suportar alta velocidade. O PHY no chip só pode funcionar a toda velocidade. ... Sim, é muito confuso.

* Editar : Parece que a ST finalmente fez alguns esforços para integrar um PHY de alta velocidade no chip em alguns de seus MCUs mais recentes (mais especificamente: algumas das versões STM32F7x3 e STM32F730, no momento). No entanto, não há uma coluna específica que indique claramente esse recurso em sua tabela de seleção de dispositivos, o que novamente aumenta a confusão. Você precisa observar os detalhes da folha de dados.


Ok, obrigado, só queria ouvi-lo não de minha própria cabeça :)
ScienceSamovar

1
Relacionado com isto eu tenho um sistema IMX que tem tanto "host USB" e "fs OTG", dando-lhe duas portas USB utilizáveis - mas exigem drivers diferentes! Algo semelhante pode se aplicar à ST - mesma funcionalidade que requer software diferente.
Pjc50 16/05

Na verdade, tenho certeza de que eles têm, ou tinham no passado, dispositivos que tinham várias portas periféricas com diferentes níveis de recursos. Esta é uma forma inequívoca de listar as características de uma gama de peças (ou que teria parecia tão no passado)
Sean Houlihane

Ei! Você poderia expandir um pouco? Se um microcontrolador suporta USB OTG, você poderia, teoricamente, ter duas portas USB conectadas ao chip: 1 para atuar como host USB OTG (por exemplo, conectar um teclado) e o outro USB para atuar como dispositivo? Existe um termo para descrever esse comportamento?
NessDan 11/01

1
@Ness Se o chip incorporar apenas o bloco USB OTG, não, você não pode. Mas muitos MCUs de ponta incluem o dispositivo USB e os blocos OTG USB. Em seguida, você pode usar os dois simultaneamente e ter duas portas independentes no seu MCU: uma atuando como dispositivo e a outra como host, sim. Verifique as folhas de dados.
dim
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.