[TERMINE] Interface USB->Série à 2 composants[Monnoliv]
L'interface s'articule autour d'un composant spécialisé du fabricant FTDI, il s'agit du FT232RL (28SSOP, c'est un composant CMS). Un condensateur supplémentaire se charge de stabiliser la tension. Pour obtenir une interface compatible RS232 il faudrait rajouter un circuit de conversion de tension (genre max232). Cependant, dans 99% des cas l'interface série sert à faire communiquer le PC avec une réalisation personnelle à base de micro-contrôleur et il n'y a pas besoin de convertisseur. Le schéma est donné pour des signaux de 5[V]. Si on désire une interface avec des signaux de 3.3[V], il suffit de connecter la broche 4 à la broche 17 au lieu de la connecter au +5[V] USB. Tous les signaux de l'interface standard série sont disponible mais dans la plupart des cas, on se contente de la masse, Tx et Rx. Le circuit FT232RL est reconnu par le PC directement comme un port COM supplémentaire. L'installation des drivers (sur WinXP du moins) s'effectue automatiquement par téléchargement depuis internet. Pour les autres OS, FTDI fournit les drivers sur leur site. Quelques photos montrent comment j'ai réalisé l'interface. Un bout de plaquette d'expérimentation sur laquelle j'ai collé le FT232RL à l'envers, un câble USB coupé d'un côté, du fin fil pour connecter les broches du CI (ne pas trembler), du fil et un jack pour le côté rs232 et finalement faire tenir le tout avec de la colle à chauffer, on obtient un montage très solide.
Re : [TERMINE] Interface USB->Série à 2 composants
Voici la datasheet du chip.
Ne soldez pas grand mère, elle brosse encore.
06/10/2006 - 02h31
berdec25
Date d'inscription
juillet 2006
Localisation
Doubs
Âge
43
Messages
356
Re : [TERMINE] Interface USB->Série à 2 composants
Bonjour.
Cet adaptateur, comme TOUS les adaptateurs USB vers RS232 ne pourra pas fonctionner avec tous les softs qui s'adressent directement à l'UART. La lecture et l'écriture directe des ports du CPU ne pouvant évidemment pas se faire via l'USB ou même un autre port (série, parallèle, firewire, ...) !
Si les softs ne sont pas réécrits pour supporter les drivers de tels convertisseurs, utiliser un vrai port série restera la seule solution.
Vous trouverez sur le forum électronique de nombreux cas ou des membres sont incapables de faire fonctionner leurs périphériques RS232 sur un adaptateur USB. Les portables n'ont plus de port série et celà pose problème. La seule solution dans ce cas sera le port série sur carte PCMCIA (ou carte ISA et PCI si PC de bureau).
Cordialement.
berdec25
06/10/2006 - 10h45
monnoliv
Date d'inscription
décembre 2003
Localisation
Belgique
Messages
2 311
Re : [TERMINE] Interface USB->Série à 2 composants
Cet adaptateur, comme TOUS les adaptateurs USB vers RS232 ne pourra pas fonctionner avec tous les softs qui s'adressent directement à l'UART. La lecture et l'écriture directe des ports du CPU ne pouvant évidemment pas se faire via l'USB ou même un autre port (série, parallèle, firewire, ...) !
Oui, il faut supposer que les programmes utilisant les ports série le fasse correctement, c'est à dire à travers l'API de Windows.
Concernant les petits programmateurs sur port série, s'ils ne fonctionnent pas (ou pas bien) avec les interfaces USB-série, c'est parce qu'ils ne respectent pas le standard RS232. Quand on regarde leurs schémas, on s'aperçoit que ce n'est que du bricolage pour économiser quelques composants, c'est regrettable.
Si les softs ne sont pas réécrits pour supporter les drivers de tels convertisseurs, utiliser un vrai port série restera la seule solution.
Si les softs font appel à l'API, il n'y a aucun problème vu que l'interface est vu comme un port COM (COM4 chez moi).
Vous trouverez sur le forum électronique de nombreux cas ou des membres sont incapables de faire fonctionner leurs périphériques RS232 sur un adaptateur USB. Les portables n'ont plus de port série et celà pose problème. La seule solution dans ce cas sera le port série sur carte PCMCIA (ou carte ISA et PCI si PC de bureau).
Je ne vois pas ce que la carte PCMCIA va apporter de plus ??? Si les softs ne font pas appel à l'API, ça ne marchera pas mieux avec une carte PCMCIA...
Ne soldez pas grand mère, elle brosse encore.
07/10/2006 - 01h48
berdec25
Date d'inscription
juillet 2006
Localisation
Doubs
Âge
43
Messages
356
Re : [TERMINE] Interface USB->Série à 2 composants
Bonjour.
Oui, il faut supposer que les programmes utilisant les ports série le fasse correctement, c'est à dire à travers l'API de Windows.
Il n'y a pas que Windaube qui fasse tourner (ou plutôt planter) une application, mais Microflop est à mon avis responsable de cet état de fait :
Les programmeurs ne pouvaient pas se contenter des fonctions très limitées du DOS et des premières versions de Windaube et ont donc court-circuité le système et aussi le BIOS en programmant ce qui devait normallement faire partie du système, ou en utilisant des librairies déjà toutes faites ! Adressage direct des ports de l'UART pour lire et écrire dans les registres du composant 8251, 16C450, 16C550, ...
et détourner les interruptions à leur profit. J'en fait partie, et je sais de quoi je parles, même si l'on s'en tient au protocole RS232 !
Tout les programmes d'origine DOS et anciens Win sont de ce type, et je ne parles même pas d'un protocole RS232 non respecté pour des raisons de fourniture d'alimentation ou autres artifices.
Si les softs font appel à l'API, il n'y a aucun problème vu que l'interface est vu comme un port COM (COM4 chez moi).
Oui s'ils se limitent aux appels de fonctions.
Je ne vois pas ce que la carte PCMCIA va apporter de plus ??? Si les softs ne font pas appel à l'API, ça ne marchera pas mieux avec une carte PCMCIA...
Une carte PCMCIA est pour le portable l'équivalent d'une carte d'extension ISA sur un PC de bureau : Elle dispose des adresses et ports directs du processeur. Un UART intégré à une telle carte est identique à un UART soudé sur carte mère et permettra donc à ces programmes AUTONOMES de trouver un UART REEL et pas un faut port COM virtuel.
Rappelez vous le temps des premiers PC ou vous aviez les ports parallèles, série, IDE et floppy sur des cartes d'extensions ISA car la carte mère était déjà pleine de circuits DIP traversants ! en 1988, ça se rencontrait encore ! et des cartes (PCI, ISA, PCMCIA) RS232 avec de vrais UART sont encore en vente.
Cordialement.
berdec25
07/10/2006 - 19h01
monnoliv
Date d'inscription
décembre 2003
Localisation
Belgique
Messages
2 311
Re : [TERMINE] Interface USB->Série à 2 composants
Une carte PCMCIA est pour le portable l'équivalent d'une carte d'extension ISA sur un PC de bureau : Elle dispose des adresses et ports directs du processeur.
Ah bon, ces adresses ne changent pas d'une carte à l'autre? Elles ne doivent plus être documentées je suppose...
Merci pour l'info, cependant je reste réticent à court-circuiter les OS, que ce soit WinXX ou Linux...
Dernière modification par monnoliv ; 07/10/2006 à 19h05.
Re : [TERMINE] Interface USB->Série à 2 composants
Bonjour.
Ah bon, ces adresses ne changent pas d'une carte à l'autre? Elles ne doivent plus être documentées je suppose...
Même si les adresses changent, des programmes sérieux savent interroger les zone de données BIOS pour connaitre l'adresse de port des UART, encore faut t'il la préciser au BIOS lors de l'installation du matériel, si le BIOS ne l'a pas détecté lui même automatiquement. Reportez vous à la documentation de votre carte d'interface et de votre carte mère (pour le BIOS).
Merci pour l'info, cependant je reste réticent à court-circuiter les OS, que ce soit WinXX ou Linux...
Désolé, mais il n'y a malheureusement parfois pas le choix, et je sais de quoi je parles...
Pour info, jetez un coup d'oeil au projet lirc.org (pour Linux et aussi pour Windows). C'est un support pour toutes les télécommandes (émission et réception) à travers différents ports (série, parallèle, USB) http://www.lirc.org/
Il est très instructif sur ce qu'on peut faire avec les différents ports.
Cordialement.
berdec25
16/10/2006 - 10h44
monnoliv
Date d'inscription
décembre 2003
Localisation
Belgique
Messages
2 311
Re : [TERMINE] Interface USB->Série à 2 composants
Désolé, mais il n'y a malheureusement parfois pas le choix, et je sais de quoi je parles...
Pour info, jetez un coup d'oeil au projet lirc.org (pour Linux et aussi pour Windows). C'est un support pour toutes les télécommandes (émission et réception) à travers différents ports (série, parallèle, USB) http://www.lirc.org/
Il est très instructif sur ce qu'on peut faire avec les différents ports
Je regrette mais le projet en question a fait le choix d'essayer de faire du temps réel avec des OS qui ne le sont pas (WinXX et Linux). Donc forcément, il faut s'attendre à des problèmes de timing (même en adressant les ports directement). L'avantage du projet que tu cites c'est que c'est simple d'un point de vue électronique. Je ne suis pas contre ce genre de projet, bien au contraire mais il y a eu un choix très clair au départ de faire très simple quitte à "bidouiller".
Ne soldez pas grand mère, elle brosse encore.
17/10/2006 - 03h13
berdec25
Date d'inscription
juillet 2006
Localisation
Doubs
Âge
43
Messages
356
Re : [TERMINE] Interface USB->Série à 2 composants
Bonjour.
Ca n'est pas un problème de temps réel mais surtout une lacune dans les fonctions BIOS et systèmes (qu'il s'agisse de DOS, Win, ou Linux ou autre). Les fonctions se limitent seulement à un échange de caractères, mais ne permettent pas l'accès ni le contrôle des bits des différents registres de l'UART et les particularités d'un programme développé peuvent obliger à ce que l'on s'adresse directement à l'UART.
C'est de tels programmes qui ne pourront plus fonctionner à travers un adaptateur USB sans avoir été réécrits pour s'adresser directement à l'UART, mais cette fois-ci à travers l'USB !
Il est clair que lorsque le temps est critique, le temps de réponse à travers l'USB étant assez variable et aléatoire, de telles applications de télécommande IR par port série ne pourront plus être fiables, c'est la raison pour laquelle il existe une version spécifique USB, dotée d'un microcontrôleur qui gèrera directement les impulsions.
Concernant le temps réel, Linux est plus satisfaisant que win.
Conclusion :
L'adaptateur, sujet de ce projet, convient seulement aux programmes qui passent par les fonctions RS232 du systèmes pour s'adresser à l'UART. Dans ce cas, un émulateur de port série (driver) se chargera d'adresser l'UART raccordé à l'USB.
Dernière modification par berdec25 ; 17/10/2006 à 03h17.
Cordialement.
berdec25
18/10/2006 - 23h24
berdec25
Date d'inscription
juillet 2006
Localisation
Doubs
Âge
43
Messages
356
Re : [TERMINE] Interface USB->Série à 2 composants
Bonjour.
Le fabricant du circuit propose sur son site les pilotes pour tous les principaux systèmes d'exploitation (Win 98 à XP x64, Mac OS 8 à Mac OS X, Linux noyau 2.4 (le noyau 2.6 intègre déjà les drivers) et aussi Win CE.
Pour Port série virtuel (Virtual COM Port VCP) : http://www.ftdichip.com/Drivers/VCP.htm
Pour Pilotes pour accès direct au périphérique (Direct Drivers D2XX) :
Ces pilotes seront très utiles aux développeurs... http://www.ftdichip.com/Drivers/D2XX.htm
N'hésitez pas à fouiller le site du fabricant pour dénicher bien d'autres choses très interressantes.
Celà serait souhaitable que les membres trouvent ces précisions et ces liens sur le premier post. Avis à monnoliv qui avait juste précisé, parlant de win XP : "Pour les autres OS, FTDI fournit les drivers sur leur site".
Ok je le place, merci
Dernière modification par monnoliv ; 20/10/2006 à 13h36.
Re : [TERMINE] Interface USB->Série à 2 composants
Envoyé par berdec25
Les fonctions se limitent seulement à un échange de caractères
C'est exactement pourquoi le port COM est là : COMuniquer ...
Envoyé par berdec25
, mais ne permettent pas l'accès ni le contrôle des bits des différents registres de l'UART et les particularités d'un programme développé peuvent obliger à ce que l'on s'adresse directement à l'UART.
C'est de tels programmes qui ne pourront plus fonctionner à travers un adaptateur USB sans avoir été réécrits pour s'adresser directement à l'UART, mais cette fois-ci à travers l'USB !
Le problème est là : un port COM n'est pas un registre d'entrées / sorties ... même si cela a été possible avant, ce n'etait qu'une bidouille ...
AMA evidement ...
27/10/2006 - 01h33
berdec25
Date d'inscription
juillet 2006
Localisation
Doubs
Âge
43
Messages
356
Re : [TERMINE] Interface USB->Série à 2 composants
Bonjour.
Seb.26 a écrit :
C'est exactement pourquoi le port COM est là : COMuniquer ...
Je n'ai jamais dit le contraire ! Sachez qu'il y a plein de façons de communiquer et que des besoins spécifiques existent et ne sont pas toujours pris en compte par les fonctions des systèmes surtout les plus anciens, d'ou la naissance de cette discussion.
Seb.26 a écrit :
Le problème est là : un port COM n'est pas un registre d'entrées / sorties ... même si cela a été possible avant, ce n'etait qu'une bidouille ...
Les registres de l'UART ne servent pas à de "l'entrée / sortie" mais à contrôler l'état de l'UART, la façon de déclencher les interruptions, le débit (baudrate), l'état des signaux RS232, ... Référez vous donc aux datasheets des 82C50, 16C450, 16C550, ...
Ce n'était pas une "bidouille" mais l'implémentation complète, fonctionnelle et sérieuse de ce qui aurait dû être présent dans le système d'exploitation ! (DOS et Windows en particulier). De ce fait, chaque développeur a dû développer ses propres fonctions, ou utiliser des librairies de fonctions toutes faites. Ca n'était pas par plaisir, mais par nécessité ! Tous les pilotes de modem, les logiciels de fax, minitel, programmation d'automates et de composants, ... et même parmi les grandes marques ont pratiqué cette "bidouille". Ne trouvez vous pas celà étrange ?
Maintenant que les OS implémentent ces fonctions au travers des API, il est facile de dire sans savoir de quoi on parle que c'est la faute des développeurs.
Pour de tels programmes, deux solutions existent :
1) Ils doivent être réécrits pour utiliser les fonctions du système
2) Les éditeurs ont disparu, ou ils ne maintiennent plus leurs programmes : la présence d'un UART réel relié DIRECTEMENT au bus du microprocesseur est nécessaire.
Cordialement.
berdec25
19/01/2007 - 18h54
bbrunetd
Date d'inscription
janvier 2007
Âge
28
Messages
1
Re : [TERMINE] Interface USB->Série à 2 composants
Bonjour,
J'ai bien lu le sujet mais je n'ai pas trouvé de réponse à ma question :
J'ai un GPS de rando (Garmin Etrex) à connecter en RS232 sur mon PC portable (Win XP). Le logiciel qui fait l'interface est IGN Rando.
N'ayant pas de port série, j'ai essayé avec plusieurs modèles d'adaptateurs USB série, sans succès. Je viens d'essayer une carte série PCMCIA, sans succès non plus.
Pourtant dans tous les cas le port est bien reconnu par Windows et les témoins lumineux fonctionnent pour montrer que le PC envoie des signaux... mais sans réponse !
Le problème ne vient pas du GPS puisque sur un PC avec port série aucun pb.
Merci d'avance pour votre aide, je craque un peu
PS : je ne suis pas un pro de l'informatique. Si ça peut aider, ma carte PCMCIA porte la mention : "compatible avec la norme 16C550 UART"
PPS : le logiciel est sensé (et il le fait, d'après un logiciel espion de port série) faire le setup des paramètres de connexion série.
19/06/2007 - 01h04
romain145
Date d'inscription
juin 2007
Âge
25
Messages
4
Re : [TERMINE] Interface USB->Série à 2 composants[Monnoliv]
Bonjour,
voici une interface USB-série que je me suis fabriqué grâce à un FTDI 232RL.
La led est allumée si connexion au PC OK et clignote lors de transmission de données.