SysIo  1.9.0
Embedded Library and tools
spi.h
1 
8 #ifndef _SYSIO_SPI_H_
9 #define _SYSIO_SPI_H_
10 #include <sysio/defs.h>
11 #ifdef __cplusplus
12  extern "C" {
13 #endif
14 /* ========================================================================== */
15 
25 /* constants ================================================================ */
26 #define SPI_CPHA 0x01
27 #define SPI_CPOL 0x02
28 #define SPI_REG_RW_BIT 7
44 typedef enum {
45  eSpiMode0 = (0|0),
46  eSpiMode1 = (0|SPI_CPHA),
47  eSpiMode2 = (SPI_CPOL|0),
48  eSpiMode3 = (SPI_CPOL|SPI_CPHA),
50 } eSpiMode;
51 
56 typedef enum {
61 
66 typedef enum {
67  eSpiBits8 = 8,
68  eSpiBits7 = 7,
70 } eSpiBits;
71 
72 /* structures =============================================================== */
76 typedef struct xSpiIos {
79  uint8_t bits;
80  uint32_t speed;
81 } xSpiIos;
82 
83 
84 /* internal public functions ================================================ */
93 int iSpiOpen (const char *device);
94 
101 int iSpiClose (int fd);
102 
109 int iSpiSetConfig (int fd, const xSpiIos * config);
110 
117 int iSpiGetConfig (int fd, xSpiIos * config);
118 
128 int iSpiRead (int fd, uint8_t * buffer, uint8_t len);
129 
138 int iSpiWrite (int fd, uint8_t * buffer, uint8_t len);
139 
151 int iSpiXfer (int fd, uint8_t * tx_buffer, uint8_t tx_len, uint8_t *rx_buffer, uint8_t rx_len);
152 
162 int iSpiReadReg8 (int fd, uint8_t reg);
163 
173 long lSpiReadReg16 (int fd, uint8_t reg);
174 
185 int iSpiReadRegBlock (int fd, uint8_t reg, uint8_t * buffer, uint8_t len);
186 
195 int iSpiWriteReg8 (int fd, uint8_t reg, uint8_t data);
196 
205 int iSpiWriteReg16 (int fd, uint8_t reg, uint16_t data);
206 
216 int iSpiWriteRegBlock (int fd, uint8_t reg, const uint8_t * buffer, uint8_t len);
217 
222 /* ========================================================================== */
223 #ifdef __cplusplus
224  }
225 #endif
226 #endif /*_SYSIO_SPI_H_ defined */
int iSpiOpen(const char *device)
Ouverture d&#39;une connexion vers un circuit SPI.
int iSpiWriteReg16(int fd, uint8_t reg, uint16_t data)
Ecriture d&#39;un registre 16 bits.
eSpiMode mode
Definition: spi.h:77
eSpiNumbering lsb
Definition: spi.h:78
uint8_t bits
Definition: spi.h:79
int iSpiWriteReg8(int fd, uint8_t reg, uint8_t data)
Ecriture d&#39;un registre 8 bits.
int iSpiSetConfig(int fd, const xSpiIos *config)
Lecture configuration.
#define SPI_CPOL
Definition: spi.h:27
int iSpiReadRegBlock(int fd, uint8_t reg, uint8_t *buffer, uint8_t len)
Lecture d&#39;un bloc de registres.
Definition: spi.h:76
struct xSpiIos xSpiIos
eSpiNumbering
Ordre des bits.
Definition: spi.h:56
eSpiMode
Mode SPI.
Definition: spi.h:44
int iSpiReadReg8(int fd, uint8_t reg)
Lecture d&#39;un registre 8 bits.
int iSpiXfer(int fd, uint8_t *tx_buffer, uint8_t tx_len, uint8_t *rx_buffer, uint8_t rx_len)
Lecture/Ecriture d&#39;un bloc octets.
uint32_t speed
Definition: spi.h:80
int iSpiRead(int fd, uint8_t *buffer, uint8_t len)
Lecture d&#39;un bloc octets.
eSpiBits
Nombre de bits par mot.
Definition: spi.h:66
int iSpiGetConfig(int fd, xSpiIos *config)
Lecture configuration.
int iSpiWrite(int fd, uint8_t *buffer, uint8_t len)
Ecriture d&#39;un bloc octets.
Definition: spi.h:67
long lSpiReadReg16(int fd, uint8_t reg)
Lecture d&#39;un registre 16 bits.
int iSpiClose(int fd)
Fermeture d&#39;une connexion vers un circuit SPI.
Definition: spi.h:68
#define SPI_CPHA
Definition: spi.h:26
int iSpiWriteRegBlock(int fd, uint8_t reg, const uint8_t *buffer, uint8_t len)
Ecriture d&#39;un bloc de registres.