Est-il possible d’implémenter un hôte sur stm32 (sans support matériel) avec uniquement le code du programme pour écrire des données sur la clé USB? [fermé]

никита богатов

Est-il possible d’implémenter un hôte sur stm32 (sans support matériel) avec uniquement le code du programme pour écrire des données sur la clé USB? [fermé]


Est-il possible d’implémenter un hôte sur stm32 (sans support matériel) avec uniquement le code du programme pour écrire des données sur la clé USB? Je n’ai trouvé aucune information sur Internet à ce sujet. Il existe un périphérique d’implémentation, mais pas d’hôte. J’étudie les spécifications USB pour la réponse, mais je ne la comprends toujours pas bien.

Eugene Sh.

Il existe des centaines de STM32 différents

Jasen

voulez-vous dire hôte USB? et vous voulez démarrer cela sans frimware spécial sur le STM32?

никита богатов

@EugeneSh. Oui, mais j’en ai un qui ne prend pas en charge le matériel

Marcus Müller

qu’est-ce que le « support matériel »?

никита богатов

@ Jasen Oui, je veux dire hôte USB. Peut-être avec des capacités limitées, car je n’ai besoin que d’écrire sur une clé USB.

Réponses


 Ale..chenski

Pourquoi la fonction hôte ne peut-elle pas être implémentée avec du matériel uniquement périphérique? Parce que l’USB n’est pas symétrique par rapport à l’hôte et aux périphériques.

Du côté de l’appareil, la fonction USB est de prendre en charge le protocole USB de base appelé « SIE », Serial Interface Engine. Ce moteur inclut la capacité de l’appareil à RECEVOIR les demandes d’hôte, en commençant par le «canal par défaut», et à répondre correctement en obtenant des données avec une réponse ACK, ou en envoyant des données et en attendant que l’hôte ACK termine les transactions. En raison des limitations de synchronisation USB (temps de réponse de 1,7 us), la dernière étape de la transaction de contrôle ne peut pas être implémentée par des moyens logiciels, et la plupart des parties des moteurs SIE des appareils sont codées par matériel. Les autres fonctions de SIE sont d’accepter l’attribution d’adresse et d’accepter / activer la configuration, ce qui conclut la phase d’énumération du protocole de connexion USB. Ensuite, le SIE prend en charge les canaux d’entrée / sortie de base / autres, dans les mêmes contraintes de protocole. En bref, la fonction de l’appareil est de RÉPONDRE.

En raison de ces limitations matérielles, il est impossible d’utiliser le moteur de périphérique pour la fonction hôte, principalement parce que les fonctions hôte sont totalement opposées aux fonctions du périphérique. La gestion des bus suit des machines d’état très différentes. L’hôte doit GÉNÉRER des paquets de trames périodiques et INITIER toutes les transactions. Et puis fournissez un flux de données fluide, le tout généralement effectué à l’aide du matériel Direct Memory Access. L’hôte doit fournir une fonction d’alimentation de port et une fonction de réinitialisation de port, qui ne figurent pas dans les implémentations de périphérique.

Ce sont les principales raisons pour lesquelles les microcontrôleurs sont conçus avec un matériel hôte et des contrôleurs matériels de périphérique séparés.

Marcus Müller

Sans oublier que je serais vraiment ravi si quelqu’un était même sur une couche physique capable de bitbang FS USB avec un cheapo STM32 – ce n’est pas comme si vous pouviez utiliser LS pour parler d’un périphérique de stockage de masse, n’est-ce pas? Et faire du LS (appareil) sur un Cortex-M n’est qu’à peine possible dans le logiciel, même avec beaucoup de bonne volonté du côté de l’hôte.

Ale..chenski

@ MarcusMüller, si vous avez un PHY USB externe sur UTMI / ULPI, il pourrait être possible de créer un hôte FS en utilisant BYTE-banging, si vous avez un accès direct au port UTMI. Ce que vous n’avez généralement pas. Vous pouvez faire du wrapper FPGA. Et oui, il n’y a pas de stockage de masse aux vitesses LS.

Marcus Müller

Oui, mais ajouter un FPGA juste pour ne pas avoir à acheter un MCU qui soit fourni avec un accès UTMI ou un matériel de contrôleur hôte dédié serait … une décision surprenante, c’est le moins qu’on puisse dire. Sans parler du fait que la quantité de renseignements nus nécessaires pour gérer un potentiel

 

[fermé], #(sans, #la, #pour, avec, clé, code, d’implémenter, des, données), du, écrire, Est-il, hôte, Le, matériel, possible, Programme, STM32?, support, sur, un, uniquement, USB

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *