picoAPI  1.0.0
SPI

Typedefs

typedef enum picoSPIPort picoSPIPort
 

Enumerations

enum  picoSPIPort { SPI0, SPI1 }
 

Functions

void picoSPIInit (picoSPIPort p, uint32_t clock_rate)
 
int32_t picoSPITransfer (picoSPIPort p, picoPin_e ssel, uint8_t *txbuf, uint8_t *rxbuf, int32_t len)
 

Detailed Description

Serial Peripheral Interface communication API

Available signals and pins:

picoCIAA Signal
P6_11 SPI0_MOSI
P6_12 SPI0_SCK
P6_14 SPI0_MISO
P6_15 SPI1_MOSI
P6_16 SPI1_SCK
P6_18 SPI1_MISO
Warning
SD interface uses SPI0, do not use SD API and SPI API with SPI0 at the same time!

Typedef Documentation

typedef enum picoSPIPort picoSPIPort

available SPI ports

Enumeration Type Documentation

available SPI ports

Enumerator
SPI0 

SPI0 interface

SPI1 

SPI1 interface

Function Documentation

void picoSPIInit ( picoSPIPort  p,
uint32_t  clock_rate 
)

initialize SPI port

Parameters
pport number, SPI0 or SPI1
clock_rateSPI clock rate

Here is the call graph for this function:

int32_t picoSPITransfer ( picoSPIPort  p,
picoPin_e  ssel,
uint8_t *  txbuf,
uint8_t *  rxbuf,
int32_t  len 
)

transmit and receive data through SPI port (full-duplex)

Parameters
pport number, SPI0 or SPI1
sseldigital output to use as slave select, user must previously configure it with picoConfigDigitalOutput and initial value 1 (logic high). If ssel is set as PICOPIN_COUNT, user must take control of SSEL signal.
txbuftransmit buffer
rxbufreceive buffer
lentransfer length in bytes
Returns
transfer status, -1 on error

Here is the call graph for this function: