mbed-drivers
|
#include <SPI.h>
Classes | |
class | SPITransferAdder |
Public Types | |
typedef mbed::util::FunctionPointer3< void, Buffer, Buffer, int > | event_callback_t |
Public Member Functions | |
SPI (PinName mosi, PinName miso, PinName sclk) | |
void | format (int bits, int mode=0, spi_bitorder_t order=SPI_MSB) |
void | frequency (int hz=1000000) |
virtual int | write (int value) |
SPITransferAdder | transfer () |
void | abort_transfer () |
void | clear_transfer_buffer () |
void | abort_all_transfers () |
int | set_dma_usage (DMAUsage usage) |
Protected Member Functions | |
void | irq_handler_asynch (void) |
int | queue_transfer (const transaction_data_t &td) |
void | start_transfer (const transaction_data_t &td) |
void | start_transaction (transaction_data_t *data) |
void | dequeue_transaction () |
int | transfer (const SPITransferAdder &xfer) |
void | aquire (void) |
Protected Attributes | |
spi_t | _spi |
CThunk< SPI > | _irq |
transaction_data_t | _current_transaction |
DMAUsage | _usage |
int | _bits |
int | _mode |
spi_bitorder_t | _order |
int | _hz |
bool | _busy |
Static Protected Attributes | |
static CircularBuffer< transaction_t, TRANSACTION_QUEUE_SIZE_SPI > | _transaction_buffer |
static SPI * | _owner = NULL |
A SPI Master, used for communicating with SPI slave devices
The default format is set to 8-bits, mode 0, and a clock frequency of 1MHz
NOTE: This information will be deprecated soon. Most SPI devices will also require Chip Select and Reset signals. These can be controlled using <DigitalOut> pins
typedef mbed::util::FunctionPointer3<void, Buffer, Buffer, int> mbed::SPI::event_callback_t |
mbed::SPI::SPI | ( | PinName | mosi, |
PinName | miso, | ||
PinName | sclk | ||
) |
void mbed::SPI::abort_all_transfers | ( | ) |
Clear the transaction buffer and abort on-going transfer.
void mbed::SPI::abort_transfer | ( | void | ) |
Abort the on-going SPI transfer, and continue with transfer's in the queue if any.
void mbed::SPI::clear_transfer_buffer | ( | ) |
Clear the transaction buffer
|
protected |
Dequeue a transaction
void mbed::SPI::format | ( | int | bits, |
int | mode = 0 , |
||
spi_bitorder_t | order = SPI_MSB |
||
) |
Configure the data transmission format
bits | Number of bits per SPI frame (4 - 16) |
mode | Clock polarity and phase mode (0 - 3) |
order | Bit order. SPI_MSB (standard) or SPI_LSB. |
void mbed::SPI::frequency | ( | int | hz = 1000000 | ) |
Set the spi bus clock frequency
hz | SCLK frequency in hz (default = 1MHz) |
|
protected |
SPI IRQ handler
|
protected |
Add a transfer to the queue
data | Transaction data |
int mbed::SPI::set_dma_usage | ( | DMAUsage | usage | ) |
Configure DMA usage suggestion for non-blocking transfers
usage | The usage DMA hint for peripheral |
|
protected |
Start a new transaction
data | Transaction data |
|
protected |
Configures a callback, spi peripheral and initiate a new transfer
data | Transaction data |
SPI::SPITransferAdder mbed::SPI::transfer | ( | ) |
Start an SPI transfer The transfer() method returns a SPITransferAdder. This class allows each parameter to be set with a dedicated method. This way, the many optional parameters are easy to identify and set.
|
protected |
Initiate a transfer
xfer | the SPITransferAdder object used to create the SPI transfer |
|
virtual |