FTDI-Friend-PCs
Introduction
De nos jours, tous les ordinateurs, systèmes informatiques ou systèmes embarqués disposent de ports USB mais pas plus de connexion séries.
Le FTDI Friend permet d'ajouter un ou plusieurs ports série et d'autoriser une communication série matérielle là où ce ne serait simplement pas possible autrement.
Maitriser la communication série matériel avec FTDI Friend à l'aide de PC/Raspberry/beagle permet:
- de maitriser le raccordement série (et le comprendre)
- de s'assurer que l'on maitrise l'outil informatique (HyperTerminal, Minicom, etc) avec ce module
- d'avoir des certitude sur le module, son montage et son utilisation
Lorsque l'on maitrise cette technique de base:
- Il est plus facile d'ajouter une couche complémentaire comme un convertisseur RS232 <-> RS485 (Bus de terrain) permettant d'établir une communication série jusqu'a 1200 mètres!!!
- Vous pouvez également utiliser votre ordinateur + FTDI Friend pour tester des protocoles séries... en étant très confortablement installé derrière votre clavier.
Montage
Le montage est relativement simple, n'oubliez pas de croiser rx et tx.
TX = Transmit (transmission) doit forcement arriver sur une broche RX = Receive (Réception)
RTS et CTS
Ce sont deux signaux complémentaires permettant de synchroniser la communication entre deux port série.
Le but premier de ces signaux est d'éviter d'envoyer des informations sur le port série si le destinataire n'est pas prêt à les recevoir (parce que son buffer/mémoire tampon serait plein).
Signification:
- RTS: Ready To Send - Prêt à l'envoi. Avec ce signal, le port série indique qu'il est disposé à recevoir des données.
- Si RTS passe en position basse (tension négative), cela se traduit par "arrêtez d'envoyer".
- Quand le récepteur est prêt à recevoir plus de données, il lance RTS, demandant à l'autre côté de reprendre l'envoi.
- CTS: Clear To Send - Prêt à recevoir. Lorsqu'un port série reçoit ce signal (émit par le RTS de l'autre port série), il sait que le port série distant est prêt à recevoir des infos.
La pratique courante
Dans la pratique, les systèmes sont devenu tellement puissant que la capacité de traitement est devenu infinie par rapport à la vitesse de transmission série. A moins de communiquer à 115.200 bauds de façon soutenue, les signaux de contrôle de flux CTS et RTS peuvent être ignorés. La mémoire tampon du port série à peu de chance d'être engorgé.
Ainsi donc, dans la pratique les signaux CTS/RTS sont rarement mis en oeuvre.
Lorsque CTS/RTS n'est pas exploité, le plus simple est encore de ponter CTS - RTS sur le port série
Dans un monde exigeant
Dans un monde idéal, on croise également les signaux RTS et CTS entre les deux ports séries.
Source: ce document de Brette Stephane
Ces signaux ne sont vraiment utiles que dans des cas vraiment très spécifique où la sécurité/stabilité de communication est primordial.
Ainsi, il sera normal d'utiliser les signaux dans les situations suivantes:
- Matériel d'aviation et/ou militaire où rien ne peut être perdu.
- Matériel hospitalier... très règlementé laissant peu de place au hasard et l'insécurité qui en découle
- Le milieu industriel où les automates programmables sont, par nature, plus robuste mais aussi plus lent (par rapport à votre PC).
- Les système temps réel dont les systèmes périphériques ne sont pas actif 100% du temps et donc pas forcement disponible immédiatement. He oui, le noyaux aura la priorité de traitement et votre demande de lecture de température/vitesse peut être mise en suspend... histoire de faire éclater les airbags en priorité.
Ressource
Plus d'informations à propos de CTS et RTS:
- Sur ce billet de developpez.net
- Sur ce document en ligne de Stephane Brette (pdf)
PC et Mac
Nous n'avons plus de machine Windows chez MCHobby, mais vous pouvez utiliser le module FTDI avec Windows (voir notre documentation sur Boarduino + FTDI) et le logiciel Putty qui fonctionne sur de nombreuses plateforme.
PuTTY
- Le site officiel de PuTTY, avec documentation en anglais
- Traduction française de la documentation de PuTTY réalisé par Marc Terrier
Machine Linux
Chez MCHobby, nous n'utilisons que des machines Linux... nous allons donc faire un tuto pour ces machines (nous utilisons Mint).
L'avantage, c'est que ce tuto, c'est qu'il fonctionnera également avec un environnement type Raspberry-Pi.
Installer MiniCom
Pour établir la communication sous Linux, nous allons utiliser minicom.
c'est un logiciel très simple qui fonctionne en ligne de commande mais aussi dans un terminal... un avantage indéniable.
sudo apt-get install minicom
Découvrir le port série
Lorsque vous branché votre convertisseur USB/Série sur votre ordinateur, il sera automatiquement reconnu par le système et monté comme un périphérique... mais où?
Utilisez la commande dmesg pour voir les message de deboggage, ces dernier contiennent plain d'information
dmesg | tail
Ce qui produira les messages suivants:
[695830.436802] usb 3-1: >Product: FT232R USB UART [695830.436806] usb 3-1: >Manufacturer: FTDI [695830.436809] usb 3-1: >SerialNumber: A501E7JR [695830.439785] ftdi_sio 3-1:1.0: >FTDI USB Serial Device converter detected [695830.439836] usb 3-1: >Detected FT232RL [695830.439840] usb 3-1: >Number of endpoints 2 [695830.439846] usb 3-1: >Endpoint 1 MaxPacketSize 64 [695830.439850] usb 3-1: >Endpoint 2 MaxPacketSize 64 [695830.439855] usb 3-1: >Setting MaxPacketSize 64 [695830.440083] usb 3-1: >FTDI USB Serial Device converter now attached to ttyUSB0
Pour trouver rapidement le point de montage, vous pouvez utiliser un bon vieux grep
dmesg | grep attached
Pour voir afficher la réponse
[695830.440083] usb 3-1: >FTDI USB Serial Device converter now attached to ttyUSB0
Et le point de montage est ttyUSB0 :)
Le FTDI est donc accessible via /dev/ttyUSB0
Communication
Pour démarrer une communication en 19200 bauds en 8N1, il ne reste plus qu'a taper la commande suivante
sudo minicom -b 19200 -o -D /dev/ttyUSB0
A l'autre bout
A l'autre bout de la connexion, sur l'autre PC, nous allons aussi démarrer une session minicom
sudo minicom -b 19200 -o -D /dev/ttyUSB1
Avec cette commande, nos deux sessions minicom sont maintenant en communication
Test et résultat
Le minicom de gauche est sur /dev/ttyUSB0
- Tapez y des aaaaaaaaaaa
Le minicom de droite est sur /dev/ttyUSB1 (d'un autre PC).
- tapez y des bbbbbb
Réaliser par Meurisse D. pour MCHobby.
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : « Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.
L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.