Commination directe avec un PC (Windows) autre que UART

Bonjour,

Voilà, je me demandais s'il existait des alternatives à l'UART qui pose tout de même des soucis (limitation de vitesse, obligation de définir un port, pas de présence d'un nom de périphérique, empêchement de mise en veille dans certains cas, plantages...)

L'objectif serait de dialoguer directement avec le port USB du PC, ce qui nécessiterait bien évidemment de devoir écrire un pilote pour l'OS, et puis certainement un wrapper pour l'exploiter. Mais cela ne me fait pas peur, car je suis développeur de métier et je sais m'adapter (même si je suis juste développeur applicatif).

J'ai fait quelques recherches sur Google, mais à vrai dire, en anglais comme en français je n'arrive pas vraiment à formuler ma demande. Du coup je ne trouve rien sur le sujet.

Comment font les constructeurs de périphériques "exotiques" ? Ceux qui n'ont pas de pilote génériques sous Windows ? Je me demande quel protocole ils utilisent ? Est-ce qu'il est possible de relier par exemple un I2C directement sur les broches data de l'USB et d'écrire (ou d'utiliser) un pilote spécifique ? Je me demande bien comment ça fonctionne.

Voilà donc si un "expert" passe par là et qu'il a la gentillesse de bien vouloir m'aider à orienter mes recherches :smiley:

Merci d'avance.

l'USB de votre PC est maintenant relativement complexe et comme c'est un bus, le concept de l'énumération restera toujours présent.

Côté débit - l'USB Implementers Forum (USB-IF) est l'organisme en charge de la standardisation de l'USB. L'USB 3.2 est techniquement capable de supporter un débit de 20 Gb/s et USB4 a été annoncé en 2019 et supporte 40 Gbit/s (si câble certifié 40 Gbit/s)

Ensuite c'est un protocole, donc du moment que vous vous conformez au protocole (par exemple HID) vous pouvez faire ce que vous voulez --> plus d'infos ici

En pratique cependant, mon petit arduino Uno peut communiquer avec mon mac en port série à 2 million de bauds... c'est quand même déjà pas mal car il faut garder du temps pour alimenter en données cette communication... Qu'avez vous en tête comme besoin ?

Bonjour,

Merci pour votre réponse. Grace à elle, j'ai pu orienter ma recherche et trouver plusieurs pistes (dont celle-ci assez intéressante) en à peine 2 minutes :wink:

L'objectif est surtout de ne plus dépendre des ports COM. Comme je l'explique plus haut cela à divers inconvénients. Déjà j'aimerai que mon périphérique soit nommé correctement. Et j'aimerais que l'utilisateur (si je venais à fabriquer des périphériques pour les distribuer) n'ait pas à paramétrer un port pour utiliser le périphérique.

oui le HID est assez généraliste - vous dépendez du driver adapté à ce type de périphérique sur votre PC

@Mayzz, le lien que vous donnez, c’est pout le DFU mode ?.

Il y a aussi le HID Raw, la lib HID de NicoHood le permet (avec une carte gérant le HID comme l’arduino pro micro, possible avec une carte Uno, à voir sur le site) ou une carte Teensy; ensuite il vous faudra un logiciel de test comme SimpleHIDWrite.

Certaines cartes avec un SAMD21 ou un SAMD51 (Seeeduino xiao, Adafruit QT PY ou autres, le choix est large concernant Adafruit) qui utilisent le core USB TinyUsb peuvent monter un lecteur facilement avec une carte SD ou une mémoire flash externe, dans ce cas là un drag drop du fichier et c’est terminé.

C’est de cette façon que fonctionne circuitpython d’Adafruit (raspberry pi pico compatible), un lecteur est créé à la connexion (drag drop du fichier du programme python et autres fichiers), mais là tout est accessible, a voir ce qu’il est possible de faire avec circuitpython.

Ces cartes sont programmables en c ou en circuitpython, des exemples de codes sont fournis.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.