Différences entre les versions de « RaspberryPi »

De VoWiki
Aller à la navigation Aller à la recherche
Ligne 77 : Ligne 77 :


=== Rappel&nbsp;: Libérer l'UART pour l'utiliser depuis le GPIO<br/>===
=== Rappel&nbsp;: Libérer l'UART pour l'utiliser depuis le GPIO<br/>===
Par défaut, l'UART et réserver au debug et n'est accessible qu'en mode console vous devez donc le désactiver dans l'outil de configuration.<br/>  
Par défaut, l'UART est réservé au debug et n'est accessible qu'en mode console LINUX, vous devez donc le désactiver dans l'outil de configuration.<br/>  


* Intérroger le journal sur les dernier événement de la liaison série pour vérifier que l'opération n'a pas déjà été effectuer<br />
* Intérroger le journal sur les derniers événements de la liaison série pour vérifier que l'opération n'a pas déjà été effectuer<br />
::dmesg | grep tty<br /><br />
::dmesg | grep tty<br /><br />


:Si l'opération n'a pas encore été effectuer, le résultat obtenu doit être :<br/>
:Si l'opération n'a pas encore été effectuée, le résultat obtenu doit être :<br/>
::[ 0.002072] console [tty1] enabled<br/>  
::[ 0.002072] console [tty1] enabled<br/>  
::[ 0.195363] 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 83, base_baud = 0) is a PL011 rev2<br/>
::[ 0.195363] 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 83, base_baud = 0) is a PL011 rev2<br/>

Version du 31 août 2015 à 18:27

AccueilMicrocontroleurs et Nano-Ordinateurs

Raspberry Pi Logo.svg.png
Le Raspberry Pi

VoLAB

Association VoRoBoTics

Date : 31/08/2015

Auteur : Poltergeist42

Relecteur :

Thème: Nano-Ordinateurs

Projet : Cook Book RPi

Introduction :

Nous allons ici vous présenter seulement les informations réellement utiles que nous avons trouvées ou expérimentées lors de nos recherches.

Ce document ne sera certainement pas un document exhaustif. Il est simplement le reflet de nos expériences. Ce document est donc à la croisée d'un pense-bête et d'un journal de manip.

UART :

Comment avoir plusieurs UART (ports séries) sur un seul Raspberry Pi :

Vous le savez certainement, le Raspberry Pi dispose sur ses GPIO d'un UART qui est accessible sur les broches physiques 8 et 10


Broche Physique
BCM
BRD
Fonction
8
14
15
Tx
10
15
16
Rx

Cela peut suffire dans la plupart des cas. Cependant, il peut arriver que vous ayez besoin de port série supplémentaire. Si votre projet est strictement confiné aux dimensions du Raspberry Pi, nous n'avons pas de solution pour vous.

Si au contraire vous disposez de tout l’espace situé devant les ports USB, alors vous allez pouvoir vous amuser.

Vous devez vous procurez un adaptateur usb-TTL que vous trouverez sur internet pour 2 ou 3 euros.

Avant de commencer, voici un petit rappel sur la correspondance des noms "Windows" et les noms "Linux" :


COM1 -> /dev/ttyS0

COM2 -> /dev/ttyS1

COM3 -> /dev/ttyS2

COM4 -> /dev/ttyS3


Connaître la liste des ports séries utilisés :

Il y a deux façons simples de connaître la liste des ports séries utiliés :
ls /dev/tty*


La commande retourne généralement plus de 50 tty. Cependant, les tty associés aux ports USB disposent d'une nomenclature différente. Ils contiennent habituellement USB ou ACM (Abstract Control Model)
La seconde façon, est d’interroger le journal sur toutes les entrées "tty"
dmesg | grep tty


Cette seconde méthode peut paraitre plus complexe à interpréter, mais elle nous renseigne directement sur le matériel et sur le port utilisé.


Rappel : Libérer l'UART pour l'utiliser depuis le GPIO

Par défaut, l'UART est réservé au debug et n'est accessible qu'en mode console LINUX, vous devez donc le désactiver dans l'outil de configuration.

  • Intérroger le journal sur les derniers événements de la liaison série pour vérifier que l'opération n'a pas déjà été effectuer
dmesg | grep tty

Si l'opération n'a pas encore été effectuée, le résultat obtenu doit être :
[ 0.002072] console [tty1] enabled
[ 0.195363] 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 83, base_baud = 0) is a PL011 rev2
[ 0.695429] console [ttyAMA0] enabled

  • configurer l'UART avec l'outil de configuration du Rpi
sudo raspi-config
  • se déplacer dans les menu selon la séquence suivante
[ 8 ] --> [ A8] --> [ Non ]

Le quatrième écran vous informe que Serial est maintenant désactivé
[ Ok ] --> [ Finish ]

  • Redémarer
sudo reboot
  • Vérifier dans le journal que l'opération a bien été prise en compte
demsg | grep tty

Ce qui doit vous donner le résultat suivant :
[ 0.002051] console [tty1] enabled
[ 0.195175] 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 83, base_baud = 0) is a PL011 rev2



On constate que la dernière ligne à disparue, le mode debug sur la sortie UART est donc bien désactivée.

Utilisation de l’adaptateur USB-TTL

La première chose à faire est bien évidement de connecter l’adaptateur dans l'un des ports USB disponible.

  • Connaitre le port de l'adaptateur
Avant de s'inquiéter du port utiliser par l'adaptateur, il faut s'assurer qu'il a bien été pris en compte par le système au moment du branchement :
lsusb


Vous devriez obtenir un résultat proche de ceci :
Bus 001 Device 005: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light


la commande suivante :


ls /dev/tty*


Doit à présent s'être enrichie d'une étiquette supplémentaire à la toute fin du tableau, ressemblant à :
/dev/ttyUSB0


On peut donc deviné que le composant CP210x communique sur le port /dev/ttyUSB0. Pour le vérifier on interroge le journal sur les éléments tty :


dmesg | grep tty


la dernière entrée dans le journal est alors :
[ 4708.499632] usb 1-1.4: cp210x converter now attached to ttyUSB0
Nous somme donc assuré que notre adaptateur a bien été pris en compte et que le système lui a effectivement attaché un port série. Il ne reste plus qu'a utiliser notre nouveau port série
BranchementUsbTTL.png


Pour pouvoir tester notre communication série, nous avons placé un cavalier entre les broches Rx et Tx de l'adaptateur. Nous avons ensuite lancer un petit script en Python3 pour vérifier le bon fonctionnement du couple envoie / réception :
code :

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Pour executer se script, lancer la commande :
# python serialWrite.py

# Ce script envoie en continue la chaine de caractère :
# "Write counter:" suivie de la variable "counter"
# cette variable est incrémenter de 1 à chaque tour
# de boucle
# La chaine transmise est reçu et afficher dans la foulée

import time
import serial

ser = serial.Serial(
        port='/dev/ttyUSB0',
        baudrate = 9600,
        parity=serial.PARITY_NONE,
        stopbits=serial.STOPBITS_ONE,
        bytesize=serial.EIGHTBITS,
        timeout=1
)

counter=0

while 1:
        ser.write('Write counter: %d \n'%(counter))
        print("test d'envoie ok")
        time.sleep(1)
        counter += 1
        x=ser.readline()
        print(x)

Fichiers sources

Licence

Ce document est mise à disposition selon les termes de la Licence Creative Commons Attribution 4.0 International.

CC88x31.jpg


Paternité 'by' :L'œuvre peut être librement utilisée, à la condition de l'attribuer à l'auteur en citant son nom.


Note aux auteurs de documents du VoLAB, Vous avez la possibilité de changer de licence. Mais ce serait bien de rester libre et ouvert. Encore une fois ceci est une recommandation et pas une obligation.

Bibliographie

Webographie

  • La page Wikipedia consacré au Raspberry Pi :
https://en.wikipedia.org/wiki/Raspberry_Pi



http://fr.wikipedia.org/wiki/Licence_Creative_Commons

Rédaction en langue française

Partant du constat de terrain qu'une énorme masse d'information concernant les sujets qui nous intéressent comme entre autres l'impression 3D n'étaient disponibles que dans la langue de Shakespeare et que de nombreuses personnes dans notre entourage ne maîtrisaient pas la dite langue et soucieux de diffuser encore plus l'information, nous avons pris le parti, au VoLAB, de rédiger nos documents de préférence en langue française.

VoLAB

Un mot sur le VoLAB. VoLAB est un fablab implanté à environ 30km au nord-ouest de Paris dans la commune de Vauréal dans l'agglomération de Cergy Pontoise. Il est animé par l'association VoRoBoTics.

Site internet www.vorobotics.com