FTDI-Friend-PCs

De MCHobby - Wiki
Aller à : navigation, rechercher

MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

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:

  1. de maitriser le raccordement série (et le comprendre)
  2. de s'assurer que l'on maitrise l'outil informatique (HyperTerminal, Minicom, etc) avec ce module
  3. d'avoir des certitude sur le module, son montage et son utilisation

Lorsque l'on maitrise cette technique de base:

  1. 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!!!
  2. 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

FTDI-Friend-PCs-Raccordement.jpg

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

FTDI-Friend-PCs-Raccordement.jpg

Dans un monde exigeant

Dans un monde idéal, on croise également les signaux RTS et CTS entre les deux ports séries.

FTDI-Friend-PCs-CTS-RTS 01.jpg
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:

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

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

FTDI-Friend-PCs-01.jpg

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

FTDI-Friend-PCs-02.jpg


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.