api / mbed / trunk / SPISlave

SPISlave

class SPISlave : public Base

A SPI slave, used for communicating with a SPI Master device

The default format is set to 8-bits, mode 0, and a clock frequency of 1MHz

Example

// Reply to a SPI master as slave

#include "mbed.h"

SPISlave device(p5, p6, p7, p8); // mosi, miso, sclk, ssel

int main() {
    device.reply(0x00);              // Prime SPI with first reply
    while(1) {
        if(device.receive()) {
            int v = device.read();   // Read byte from master
            v = (v + 1) % 0x100;     // Add one to it, modulo 256
            device.reply(v);         // Make this the next reply
        }
    }
}
SPISlaveA SPI slave, used for communicating with a SPI Master device
Functions
SPICreate a SPI slave connected to the specified pins
formatConfigure the data transmission format
frequencySet the spi bus clock frequency
receivePolls the SPI to see if data has been received
readRetrieve data from receive buffer as slave
replyFill the transmission buffer with the value to be written out as slave on the next received message from the master.

Functions

SPI

SPISlave(PinName mosi,  
PinName miso,  
PinName sclk,  
PinName ssel,  
const char *name =  NULL)

Create a SPI slave connected to the specified pins

Variables

mosiSPI Master Out, Slave In pin
misoSPI Master In, Slave Out pin
sclkSPI Clock pin
sselSPI chip select pin
name(optional) A string to identify the object

Pin Options

(5, 6, 7i, 8) or (11, 12, 13, 14)

mosi or miso can be specfied as NC if not used

format

void format(int bits,  
int mode =  0)

Configure the data transmission format

Variables

bitsNumber of bits per SPI frame (4 - 16)
modeClock polarity and phase mode (0 - 3)
mode | POL PHA
-----+--------
  0  |  0   0
  1  |  0   1
  2  |  1   0
  3  |  1   1

frequency

void frequency(int hz =  1000000)

Set the spi bus clock frequency

Variables

hzSCLK frequency in hz (default = 1MHz)

receive

int receive(void)

Polls the SPI to see if data has been received

Variables

returnszero if no data, 1 otherwise

read

int read(void)

Retrieve data from receive buffer as slave

Variables

returnsthe data in the receive buffer

reply

void reply(int value)

Fill the transmission buffer with the value to be written out as slave on the next received message from the master.

Variables

valuethe data to be transmitted next
class SPISlave : public Base
A SPI slave, used for communicating with a SPI Master device
SPISlave(PinName mosi,  
PinName miso,  
PinName sclk,  
PinName ssel,  
const char *name =  NULL)
Create a SPI slave connected to the specified pins
void format(int bits,  
int mode =  0)
Configure the data transmission format
void frequency(int hz =  1000000)
Set the spi bus clock frequency
int receive(void)
Polls the SPI to see if data has been received
int read(void)
Retrieve data from receive buffer as slave
void reply(int value)
Fill the transmission buffer with the value to be written out as slave on the next received message from the master.