Class SPISettings_SPIClass

Description

Defines a class to set SPI parameters.

Syntax

class SPISettings

Members

Public Constructors

SPISettings::SPISettings

Create a SPISettings object and set SPI clock speed, bit order and data mode


SPISettings::SPISettings

Description

Construct an object and configure SPI parameters — clock speed, bit order and data model to the preferred default value.

Syntax

SPISettings YourObject(uint32_t clock, BitOrder bitOrder, uint8_t dataMode);

Parameters

clock : SPI clock speed, default is 4000000

bitOrder : order of bit stream, MSB first or LSB first, default is MSBFIRST

dataMode : There are 4 modes -> SPI_MODE0~3, default is SPI_MODE0

Returns

The function returns nothing.

Example Code

NA

Notes and Warnings

This class seldom used alone, it is always used with beginTransaction() as a parameter in SPIClass.


SPIClass Class

Description

Defines a class of SPI implementation for Ameba.

Syntax

class SPIClass

Members

Public Constructors

SPIClass::SPIClass

Constructs an SPI object

Public Methods

SPIClass::transfer

Transfer data through SPI

SPIClass::transfer16

Transfer a 16-bits data through SPI

SPIClass::beginTransaction

Set slave select pin and SPI initial settings

SPIClass::endTransaction

Stop SPI transaction

SPIClass::begin

Associate each SPI pin to Ameba pin using ameba HAL APIs

SPIClass::end

Stop SPI master mode

SPIClass::setBitOrder

Set MSB first or LSB first

SPIClass::setDataMode

Set to one of the four data modes

SPIClass::setClockDivider

Set to correct clock speed (no effect on Ameba)

SPIClass::setDefaultFrequency

Set default SPI frequency


SPIClass::SPIClass

Description

Construct an SPI object, create a pointer to the object, and attach “MOSI, MISO, CLK, and SS” to each pin on Ameba.

Syntax

SPIClass(void *pSpiObj, int mosi, int miso, int clk, int ss);

Parameters

pSpiObj : SPI pointer to the object

mosi : master out slave in

miso : master in slave out

clk : clock

ss: slave select

Returns

The function returns nothing.

Example Code

SPIClass SPI((void*)(&spi_obj0), 11, 12, 13, 10);

Notes and Warnings

2 SPI objects are created in the library for 2 different hardware SPI on Ameba (if applicable), use “SPI” for first hardware SPI and “SPI1” for the second.


SPIClass::transfer

Description

Calling HAL API to send data in the buffer to the slave

Syntax

byte SPIClass::transfer (byte _pin, uint8_t _data, SPITransferMode _mode);
byte SPIClass::transfer (uint8_t _data, SPITransferMode _mode);
void SPIClass::transfer (byte _pin, void*_buf, size_t _count, SPITransferMode _mode);
void SPIClass::transfer (void *_buf, size_t _count, SPITransferMode _mode);

Parameters

_pin : Slave select pin

_data : Actual data being sent over

_mode : SPI transfer mode

_count : number of bytes of data

_buf : data buffer

Returns

Void or “0” in case of error, “d” in case success

Example Code

NA

Notes and Warnings

NA


SPIClass::transfer16

Description

Same as “transfer” method above except data being of 16-bits.

Syntax

uint16_t SPIClass::transfer16(byte _pin, uint16_t _data, SPITransferMode _mode)
uint16_t SPIClass::transfer16(uint16_t _data, SPITransferMode _mode)

Parameters

_pin : Slave select pin

_data : Actual data being sent over

_mode : SPI transfer mode

Returns

The data being transferred

Example Code

NA

Notes and Warnings

NA


SPIClass::beginTransaction

Description

Set slave select pin and initialize SPI with default settings using SPISettings class.

Syntax

void SPIClass::beginTransaction(uint8_t pin, SPISettings settings)
void SPIClass::beginTransaction(SPISettings settings)

Parameters

pin: slave select pin

settings: an object of SPISettings class

Returns

The function returns nothing.

Example Code

NA

Notes and Warnings

Refer to SPISettings class for details of the initial settings.


SPIClass::endTransaction

Description

Set slave select pin to 1 and stop SPI transaction.

Syntax

void SPIClass::endTransaction(void);

Parameters

The function requires no input parameter.

Returns

The function returns nothing.

Example Code

NA

Notes and Warnings

NA


SPIClass::begin

Description

Calling HAL APIs to initialize SPI pins to physical Ameba pins and set SPI format and frequency

Syntax

void SPIClass::begin(void)
void SPIClass::begin(int ss)

Parameters

void or ss: slave select

Returns

The function returns nothing.

Example Code

NA

Notes and Warnings

This is a required method to use SPI on Ameba.


SPIClass::end

Description

Free hardware SPI from any activity.

Syntax

void SPIClass::end(void);

Parameters

The function requires no input parameter.

Returns

The function returns nothing.

Example Code

NA

Notes and Warnings

NA


SPIClass::setBitOrder

Description

A specific method to set bit order to either MSB first or LSB first

and set slave select pin.

Syntax

void SPIClass::setBitOrder(uint8_t _pin, BitOrder _bitOrder)
void SPIClass::setBitOrder(BitOrder _order)

Parameters

_pin : slave select

_bitOrder : bit order -> either MSB first or LSB first

_order: same as above

Returns

The function returns nothing.

Example Code

NA

Notes and Warnings

NA


SPIClass::setDataMode

Description

A specific method to set data mode to one of the 4 modes (default: SPI_MODE0) and set slave lave select pin.

Syntax

void SPIClass::setDataMode(uint8_t _pin, uint8_t _mode)
void SPIClass::setDataMode(uint8_t _mode)

Parameters

_pin: slave select

_mode: one of the 4 modes (default: SPI_MODE0)

Returns

The function returns nothing.

Example Code

NA

Notes and Warnings

NA


SPIClass::setClockDivider

Description

A specific method to set to divider in order to get correct clock speed

Syntax

void SPIClass::setClockDivider(uint8_t _pin, uint8_t _divider)
void SPIClass::setClockDivider(uint8_t _div)

Parameters

_pin : slave select

_divider : clock divider

_div : same as above

Returns

The function returns nothing.

Example Code

NA

Notes and Warnings

This function does not affect the Ameba board.


SPIClass::setDefaultFrequency

Description

A specific method to set default SPI frequency

Syntax

void SPIClass::setDefaultFrequency(int _frequency)

Parameters

_frequency: the default SPI frequency

Returns

The function returns nothing.

Example Code

Example: PM25_on_ILI9341_TFT_LCD

Details of the code are given in the previous section of AmebaILI9341:: AmebaILI9341.

Notes and Warnings

Take note that defaultFrequency = _frequency.