SysIo  1.9.0
Embedded Library and tools
Bus SPI

Detailed Description

Ce module fournit les fonctions permettant d'accéder au bus SPI.

Classes

struct  xSpiIos
 

Functions

int iSpiClose (int fd)
 Fermeture d'une connexion vers un circuit SPI. More...
 
int iSpiGetConfig (int fd, xSpiIos *config)
 Lecture configuration. More...
 
int iSpiOpen (const char *device)
 Ouverture d'une connexion vers un circuit SPI. More...
 
int iSpiRead (int fd, uint8_t *buffer, uint8_t len)
 Lecture d'un bloc octets. More...
 
int iSpiReadReg8 (int fd, uint8_t reg)
 Lecture d'un registre 8 bits. More...
 
int iSpiReadRegBlock (int fd, uint8_t reg, uint8_t *buffer, uint8_t len)
 Lecture d'un bloc de registres. More...
 
int iSpiSetConfig (int fd, const xSpiIos *config)
 Lecture configuration. More...
 
int iSpiWrite (int fd, uint8_t *buffer, uint8_t len)
 Ecriture d'un bloc octets. More...
 
int iSpiWriteReg16 (int fd, uint8_t reg, uint16_t data)
 Ecriture d'un registre 16 bits. More...
 
int iSpiWriteReg8 (int fd, uint8_t reg, uint8_t data)
 Ecriture d'un registre 8 bits. More...
 
int iSpiWriteRegBlock (int fd, uint8_t reg, const uint8_t *buffer, uint8_t len)
 Ecriture d'un bloc de registres. More...
 
int iSpiXfer (int fd, uint8_t *tx_buffer, uint8_t tx_len, uint8_t *rx_buffer, uint8_t rx_len)
 Lecture/Ecriture d'un bloc octets. More...
 
long lSpiReadReg16 (int fd, uint8_t reg)
 Lecture d'un registre 16 bits. More...
 

Macros

#define SPI_CPHA   0x01
 
#define SPI_CPOL   0x02
 
#define SPI_REG_RW_BIT   7
 

Typedefs

typedef struct xSpiIos xSpiIos
 

Enumerations

enum  eSpiBits { eSpiBits8 = 8, eSpiBits7 = 7, eSpiBitsNotSet = -1 }
 Nombre de bits par mot. More...
 
enum  eSpiMode {
  eSpiMode0 = (0|0), eSpiMode1 = (0|SPI_CPHA), eSpiMode2 = (SPI_CPOL|0), eSpiMode3 = (SPI_CPOL|SPI_CPHA),
  eSpiModeNotSet = -1
}
 Mode SPI. More...
 
enum  eSpiNumbering { eSpiNumberingMsb = 0, eSpiNumberingLsb = 1, eSpiNumberingNotSet = -1 }
 Ordre des bits. More...
 

Macro Definition Documentation

#define SPI_CPHA   0x01

#include <spi.h>

phase horloge: 0 premier front (montant si CPOL=0), 1 deuxième front (descendant si CPOL=0)

Definition at line 26 of file spi.h.

#define SPI_CPOL   0x02

#include <spi.h>

polarité horloge: 0 horloge sur état haut, 1 horloge sur état bas

Definition at line 27 of file spi.h.

#define SPI_REG_RW_BIT   7

#include <spi.h>

bit lecture-écriture pour les fonctions de la famille Reg

Definition at line 28 of file spi.h.

Typedef Documentation

typedef struct xSpiIos xSpiIos

#include <spi.h>

Configuration d'un port SPI

Enumeration Type Documentation

enum eSpiBits

#include <spi.h>

Nombre de bits par mot.

Enumerator
eSpiBits8 

8 bits

eSpiBits7 

7 bits

eSpiBitsNotSet 

Non modifié

Definition at line 66 of file spi.h.

66  {
67  eSpiBits8 = 8,
68  eSpiBits7 = 7,
69  eSpiBitsNotSet = -1
70 } eSpiBits;
eSpiBits
Nombre de bits par mot.
Definition: spi.h:66
Definition: spi.h:67
Definition: spi.h:68
enum eSpiMode

#include <spi.h>

Mode SPI.

Différents modes


SPI Mode POL PHA 1er front 2ème front
0 0 0 montant, échantillonnage descendant, changement état
1 0 1 montant, changement état descendant, échantillonnage
2 1 0 descendant, échantillonnage montant, changement état
3 1 1 descendant, changement état montant, échantillonnage

cf Wikipedia

Enumerator
eSpiModeNotSet 

Non modifié

Definition at line 44 of file spi.h.

44  {
45  eSpiMode0 = (0|0),
46  eSpiMode1 = (0|SPI_CPHA),
47  eSpiMode2 = (SPI_CPOL|0),
48  eSpiMode3 = (SPI_CPOL|SPI_CPHA),
49  eSpiModeNotSet = -1
50 } eSpiMode;
#define SPI_CPOL
Definition: spi.h:27
eSpiMode
Mode SPI.
Definition: spi.h:44
#define SPI_CPHA
Definition: spi.h:26

#include <spi.h>

Ordre des bits.

Enumerator
eSpiNumberingMsb 

MSB en premier

eSpiNumberingLsb 

LSB en premier

eSpiNumberingNotSet 

Non modifié

Definition at line 56 of file spi.h.

56  {
57  eSpiNumberingMsb = 0,
58  eSpiNumberingLsb = 1,
eSpiNumbering
Ordre des bits.
Definition: spi.h:56

Function Documentation

int iSpiClose ( int  fd)

#include <spi.h>

Fermeture d'une connexion vers un circuit SPI.

Parameters
fddescripteur de fichier vers la connexion ouverte
Returns
0, -1 si erreur
int iSpiGetConfig ( int  fd,
xSpiIos config 
)

#include <spi.h>

Lecture configuration.

Parameters
fddescripteur de fichier vers la connexion ouverte
configconfiguration de la connexion (lue)
Returns
0, -1 si erreur
int iSpiOpen ( const char *  device)

#include <spi.h>

Ouverture d'une connexion vers un circuit SPI.

Parameters
devicenom du fichier d'accès au bus SPI (par exemple /dev/spidev0.1, 0 pour le numéro de bus, 1 pour le numéro de broche CS)
configconfiguration de la connexion
Returns
le descripteur de fichier vers la connexion ouverte, -1 si erreur
int iSpiRead ( int  fd,
uint8_t *  buffer,
uint8_t  len 
)

#include <spi.h>

Lecture d'un bloc octets.

Parameters
fddescripteur de fichier vers la connexion ouverte
bufferpointeur vers la zone de stockage des octets, la taille doit être suffisante pour y stocker le nombre d'octets demandés.
lennombre d'octets à lire
Returns
la valeur de l'octet comme un unsigned int, -1 si erreur
int iSpiReadReg8 ( int  fd,
uint8_t  reg 
)

#include <spi.h>

Lecture d'un registre 8 bits.

Cette fonction réalise une transmission de l'adresse du registre à lire, suivie d'une lecture d'un octet.

Parameters
fddescripteur de fichier vers la connexion ouverte
regadresse du registre
Returns
la valeur de l'octet comme un unsigned int, -1 si erreur
int iSpiReadRegBlock ( int  fd,
uint8_t  reg,
uint8_t *  buffer,
uint8_t  len 
)

#include <spi.h>

Lecture d'un bloc de registres.

Parameters
fddescripteur de fichier vers la connexion ouverte
regadresse du premier registre
bufferpointeur vers la zone de stockage des octets, la taille doit être suffisante pour y stocker le nombre d'octets demandés.
lennombre de registres à lire
Returns
le nombre d'octets lus, -1 si erreur
int iSpiSetConfig ( int  fd,
const xSpiIos config 
)

#include <spi.h>

Lecture configuration.

Parameters
fddescripteur de fichier vers la connexion ouverte
configconfiguration de la connexion
Returns
0, -1 si erreur
int iSpiWrite ( int  fd,
uint8_t *  buffer,
uint8_t  len 
)

#include <spi.h>

Ecriture d'un bloc octets.

Parameters
fddescripteur de fichier vers la connexion ouverte
bufferpointeur vers la zone de stockage des octets
lennombre d'octets à écrire
Returns
le nombre d'octets écrits, -1 si erreur
int iSpiWriteReg16 ( int  fd,
uint8_t  reg,
uint16_t  data 
)

#include <spi.h>

Ecriture d'un registre 16 bits.

Parameters
fddescripteur de fichier vers la connexion ouverte
regadresse du registre
datavaleur du mot
Returns
nombre d'octets écrits, -1 si erreur
int iSpiWriteReg8 ( int  fd,
uint8_t  reg,
uint8_t  data 
)

#include <spi.h>

Ecriture d'un registre 8 bits.

Parameters
fddescripteur de fichier vers la connexion ouverte
regadresse du registre
datavaleur de l'octet
Returns
nombre d'octets écrits, -1 si erreur
int iSpiWriteRegBlock ( int  fd,
uint8_t  reg,
const uint8_t *  buffer,
uint8_t  len 
)

#include <spi.h>

Ecriture d'un bloc de registres.

Parameters
fddescripteur de fichier vers la connexion ouverte
regadresse du premier registre
bufferpointeur vers la zone de stockage des octets
lennombre d'octets à écrire
Returns
nombre d'octets écrits, -1 si erreur
int iSpiXfer ( int  fd,
uint8_t *  tx_buffer,
uint8_t  tx_len,
uint8_t *  rx_buffer,
uint8_t  rx_len 
)

#include <spi.h>

Lecture/Ecriture d'un bloc octets.

Parameters
fddescripteur de fichier vers la connexion ouverte
tx_bufferpointeur vers la zone de stockage des octets
tx_lennombre d'octets à écrire
rx_bufferpointeur vers la zone de stockage des octets, la taille doit être suffisante pour y stocker le nombre d'octets demandés.
rx_lennombre d'octets à lire
Returns
le nombre d'octets transférés, -1 si erreur
long lSpiReadReg16 ( int  fd,
uint8_t  reg 
)

#include <spi.h>

Lecture d'un registre 16 bits.

Cette fonction réalise une transmission de l'adresse du registre à lire, suivie d'une lecture de 2 octets

Parameters
fddescripteur de fichier vers la connexion ouverte
regadresse du registre
Returns
la valeur du mot comme un unsigned long, -1 si erreur