Mon programme ftdi usb
à divers appareils électroniques via un ftdi usb
au serial port
. Du côté du matériel, il peut arriver que la puce ftdi soit perturbée par une courte panne de courant. Si cela se produit, le logiciel devrait réinitialiser la connexion et continuer à communiquer avec le périphérique. Cela fonctionne bien tant que la panne de courant est suffisamment longue (>~0.5 s)
. S’il est très court (comme <~0.1 s
), il n’est plus possible de réinitialiser la connexion pendant plusieurs minutes. Chaque connexion au port échoue avec le message que le port est toujours utilisé. Alors voici ce que j’ai essayé jusqu’à présent:
L’exécution des commandes de l’API FT_ResetDevice
, FT_CyclePort
et même FT_Rescan
et FT_Reload
pas.
Détwigr le périphérique de l’USB et de l’alimentation et le retwigr ne aide pas. Le port est toujours bloqué.
Même lorsque le câble USB est déconnecté, un port fantôme est toujours visible dans le gestionnaire de périphériques Windows. Toutes les tentatives de connexion à ce port échouent avec le message de port utilisé, quel que soit le programme que j’utilise pour me connecter au port.
Je pourrais également reproduire l’effet si le port n’était pas ouvert lors de la panne de courant.
Jusqu’ici, la seule action qui a aidé est de redémarrer Windows ou d’attendre quelques minutes. Bien sûr, ce n’est pas une option réalisable.
Ce que je recherche, c’est un moyen de réinitialiser le port USB / série par programmation s’il se trouvait dans un état fantôme. Peut-être que cela pourrait être directement géré via l’API Windows au lieu de l’API ftdi.