fr:configuration_port_serial

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

fr:configuration_port_serial [2016/01/23 22:07]
fr:configuration_port_serial [2020/07/05 17:12] (Version actuelle)
Ligne 1: Ligne 1:
 +====== Configuration du port série (fonction optionnelle) ======
  
 +=====  Dévalidation du mode console  =====
 +Tout d'abord, il faut dévalider le mode console du raspberry pi. En effet, par défaut le port série peut être utilisé pour si connecté avec un simple terminal (pour les français ;-) tel un minitel).
 +
 +  * Pour un Raspbian Wheezy (version 7) édition le fichier le fichier avec la commande: 
 +<code bash> 
 +sudo nano /etc/inittab
 +</code>
 +
 +<code bash> 
 +T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
 +</code>
 +doit être mise en commentaire en ajoutant un dièse (#) en début de ligne
 +<code bash> 
 +#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
 +</code>
 +
 + * Pour un Raspbian Jessie (version 8) (/etc/initab n'existant plus), vous lancez la commande pour que le service de console serie ne se lance plus au démarrage: 
 +<code bash> 
 +sudo systemctl disable serial-getty@ttyAMA0.service</code>
 +=====  Fichier ''/boot/cmdline.txt''  =====
 +Lorsque le Raspberry Pi démarre, il envoi des information de démarrage au port série. Il est préférable de désactiver ce fonctionnement pour que l'équipement qui sera branché sur le port série ne réceptionne pas ces lignes d'information.
 +Vous pouvez désactiver ce fonctionnement en éditant le fichier /boot/cmdline.txt
 +<code bash> 
 +sudo nano /boot/cmdline.txt
 +</code>
 +
 +Le contenu du fichier est celui-ci par défaut
 +<code>
 +dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline dwc_otg.speed=1 rootwait
 +</code>
 +Enlever la partie faisant référence au port série ttyAMA0. Cela doit alors resembler à ceci
 +<code>
 +dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline dwc_otg.speed=1 rootwait
 +
 +</code>
 +===== Installation de la biliotheque pyserial =====
 +<code>
 +sudo apt-get install python-pip
 +sudo pip install pyserial
 +</code>
 +
 +===== Tests de fonctionnements =====
 +:!: Sur la carte SVXLCard version 1.0, la sérigraphie est incorrecte pour les broches RS232.
 +  * La pin TXD est en réalité RXD
 +  * La pin RXD est en réalité TXD
 +
 +Le code Python suivant va permettre de vérifie à l'oscilloscope que les signaux sont bien générés.
 +<code python test-serial.py>
 +#!/usr/bin/python
 +import serial
 +import RPi.GPIO as GPIO      
 +import os, time
 + 
 +GPIO.setmode(GPIO.BOARD)    
 +port = serial.Serial("/dev/ttyAMA0", baudrate=9600, timeout=0.5)
 + 
 +while True:
 +    port.write('Un test !')
 +    rcv = port.read(10)
 +    print rcv
 +</code>
 +
 +Lancer l'exécution du code avec :
 +<code bash>sudo python test-serial.py
 +</code>
 +
 +L'oscillogramme (mesure entre GND et TXD) ressemble à cela.
 +
 +{{ :documents:oscillogramme_serial_port_svxcard.jpg?nolink&200 | Oscillogramme}}
 +Pour vérifier la fonction de réception et émission en même temps, relier les 2 pins RXD et RXD ensemble. Avec le même code python, vous allez voir apparaitre à l'écran l'écho (données arrivant sur RXD) de ce qui est émis (par TXD)
 +{{ :fr:test_port_serie_svxcard.gif?nolink |}}
 +
 +Vous pouvez également relier directement le port série de la carte au port série d'un PC.
 +Le brochage d'un port 9 points DB9 est le suivant.
 +{{ :documents:cable-serial-rs232-db9-female-db9-male-generic-oem-xxx-pinout.jpg?nolink |}}
 +
 +Brancher le RXD sur le TX du PC (broche 3) et le TXD sur le RX du PC (broche 2). Egalement GND sur la broche 7 du PC.
 +Vous voyez ici les échanges bi-directionnels entre la carte SVXCard et le PC (port série COM1)
 +{{ :fr:connexion_svxcard_et_pc.gif?nolink |}}