Pi-WiringPi-Reference-SpiBus

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


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.

Librairie SPI

WiringPi inclus une librairie qui facilite l'utilisation du bus SPI du Raspberry Pi.

Avant de pouvoir utiliser l'interface SPI, vous pourriez avoir besoin d'utiliser l'utilitaire gpio pour charger le pilote SPI dans le noyaux (Kernel):

gpio load spi

Si vous avez besoin d'une mémoire tampon (buffer) supérieur à 4KB alors vous devez spécifier la taille (en KB) dans la ligne de commande:

gpio load spi 100

allouera une mémoire tampon de 100KB. Vous aurez rarement besoin d'une taille taille de buffer, la valeur par défaut sera plus qu'assez pour la plupart des application.

Pour utiliser la librairie SPI, vous devez ajouter la ligne suivante dans votre programme:

#include <wiringPiSPI.h>

Comme d'habitude, le programme doit être linké avec le paramètre -lwiringPi .

Fonctions

Une fois wiringPiSPI inclus, les fonctions suivantes sont disponibles:

wiringPiSPISetup

int wiringPiSPISetup(int channel, int speed);

C'est la façon dont il faut initialiser un canal SPI (le Pi dispose de 2 canaux; 0 et 1).

Paramètres:

  • channel: Le canal SPI à initialiser.
  • speed: la vitesse du canal SPI. Un entier (integer) dont la valeur varie entre 500,000 et 32,000,000 et représente la vitesse d'horloge du bus SPI en Hz.

La valeur retournée est un file descriptor Linux correspondant au périphérique. En cas d'erreur, c'est -1 qui est retourné en qui est retourné et la variable globale errno est initialisée avec un code d'erreur standard.

wiringPiSPIDataRW

int wiringPiSPIDataRW(int channel, unsigned char *data, int len);

Effectue simultanément une transaction d'écriture/lecture sur le bus SPI sélectionné. Les données qui étaient disponibles dans votre mémoire tampon (buffer) sont écrasées avec les données obtenues sur le bus SPI.

Sommaire

Voila, c'est tout pour la librairie SPI.

Il est possible d'effectuer de simple lecture et écriture sur le bus SPI en faisant appel aux fonctions systèmes standards read() et write().

L'utilisation de la fonction write() sera plus appropriée pour l'envoi de données vers une chaine de registre à décalage, ou ces chaines de LED où vous envoyez des triplet de données RGB.

Pour fonctionner correctement, les convertisseurs A/D (analogique/digital) et D/A ont habituellement besoin d'effectuer une transaction écriture/lecture concurrent.


Source: WiringPi.com. WiringPi est une libraire sous licence GPL écrite par Gordon Henderson. Crédit: wiringpi.com

Traduit de l'anglais par Meurisse D. pour MCHobby.be

Traduit avec l'accord de Gordon Henderson, créateur de wiringPi - Translated with authorization of Gordon Henderson, creator of wiringPi

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.