FIXME Cette page n'est pas encore traduite entièrement. Merci de terminer la traduction
(supprimez ce paragraphe une fois la traduction terminée)

GPIO Input/output Configuration

Edit the file with the command:

sudo nano /etc/rc.local

#CONFIGURATION PORT PTT & SQL
 
# Radio "VHF" GPIO 16:PTT - GPIO 19:SQUELCH
echo "16" > /sys/class/gpio/export &
sleep 2
echo out > /sys/class/gpio/gpio16/direction
 
echo "19" > /sys/class/gpio/export &
sleep 2
echo in > /sys/class/gpio/gpio19/direction
sleep 2
#echo 1 >  /sys/class/gpio/gpio19/active_low  
# MODE A : Squelch is active when the signal from receiver come from 0V to +5V (or 0V => +x V) / Upper config 'active_low' line is NOT in the script (line commented with # at its begin)
# MODE B : Squelch is active when the signal from receiver come from +5V to 0V (or +xV => 0V ) / Upper config 'active_low' line is in the script (uncommented)
 
# Radio "LINK" GPIO 17:PTT - GPIO 18:SQUELCH
echo "17" > /sys/class/gpio/export &
sleep 2
echo out > /sys/class/gpio/gpio17/direction
 
echo "18" > /sys/class/gpio/export &
sleep 2
echo in > /sys/class/gpio/gpio18/direction
sleep 2
#echo 1 >  /sys/class/gpio/gpio18/active_low
# MODE A : Squelch is active when the signal from receiver come from 0V to +5V (or 0V => +x V) / Upper config 'active_low' line is NOT in the script (line commented with # at its begin)
# MODE B : Squelch is active when the signal from receiver come from +5V to 0V (or +xV => 0V ) / Upper config 'active_low' line is in the script (uncommented)
 
#RELAYS OUTPUTS
echo "20" > /sys/class/gpio/export &
sleep 2
echo out > /sys/class/gpio/gpio20/direction
echo "21" > /sys/class/gpio/export &
sleep 2
echo out > /sys/class/gpio/gpio21/direction
echo "22" > /sys/class/gpio/export &
sleep 2
echo out > /sys/class/gpio/gpio22/direction
echo "23" > /sys/class/gpio/export &
sleep 2
echo out > /sys/class/gpio/gpio23/direction
 
#INPUTS
echo "24" > /sys/class/gpio/export &
sleep 2
echo in > /sys/class/gpio/gpio24/direction
echo "25" > /sys/class/gpio/export &
sleep 2
echo in > /sys/class/gpio/gpio25/direction
echo "26" > /sys/class/gpio/export &
sleep 2
echo in > /sys/class/gpio/gpio26/direction
echo "27" > /sys/class/gpio/export &
sleep 2
echo in > /sys/class/gpio/gpio27/direction
 
#WATCHDOG
echo "12" > /sys/class/gpio/export &
sleep 2
echo out > /sys/class/gpio/gpio12/direction

The configuration could be test with [http://wiringpi.com/ wiringPi] The result must be conform to this state (instruction gpio readall):

800px|Les états des ports GPIO pour la ''SVXLink Card''

Configuration du port série (Fonction optionnelle)

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).

Editer le fichier avec la commande:

sudo nano /etc/inittab

T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
doit être mise en commentaire en ajoutant un dièse (#) en début de ligne
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

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

sudo nano /boot/cmdline.txt

Le contenu du fichie est celui-ci par défaut

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
Enlever la partie faisant référence au port série ttyAMA0. Cela doit alors resembler à ceci
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline dwc_otg.speed=1 rootwait

:!: 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.

#!/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

Lancer l'exécution du code avec :

sudo python test-serial.py

L'oscillogramme (mesure entre GND et TXD) ressemble à cela.

 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)

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.

Connect RXD to TX pin on the PC (pin 3) and TXD to RX on the PC (pin 2). Also GND is connected to pin 7on the serial port of the PC. Here are the bidirectional exchanges between the SVXcard (Raspberry Pi) and the PC (serial port COM1)