Pi-WiringPi-Reference-SpiBus
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);
This performs a simultaneous write/read transaction over the selected SPI bus. Data that was in your buffer is overwritten by data returned from the SPI bus.
That’s all there is in the helper library. It is possible to do simple read and writes over the SPI bus using the standard read() and write() system calls though – write() may be better to use for sending data to chains of shift registers, or those LED strings where you send RGB triplets of data. Devices such as A/D and D/A converters usually need to perform a concurrent write/read transaction to work.
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.