www.beck-ipc.com

@CHIP-RTOS C Library V2.06 - SPI API


spi_waiton_sem_setmode

Wait on the SPI semaphore, set mode and divider (hardware interface)

unsigned int spi_waiton_sem_setmode ( unsigned int mode, unsigned int div );

Parameters

mode

Combine the following defines with a bitwise OR to select the operation mode

SPI mode:
    set on of these: SPI_MODE0, SPI_MODE1, SPI_MODE2 or SPI_MODE3
Open-Drain-Mode:
    select SPI_OPEN_DRAIN for open-drain-mode,
    else output mode is used
Autodrive:
    select SPI_AUTODRIVE to autodrive SLVSEL chipselect pin,
    works only together with SPI_ALTERNATE_IO
    else do not drive SLVSEL pin
Invert chipselect:
    select SPI_INVERT_CS to invert SLVSEL chipselect pin (active high),
    else do not invert SLVSEL pin (active low)
Shift count:
    select the shift count with these defines:
    SPI_SHIFT1, SPI_SHIFT2, SPI_SHIFT3, SPI_SHIFT4,
    SPI_SHIFT5, SPI_SHIFT6, SPI_SHIFT7, SPI_SHIFT8
Swap SDI and SDO:
    select SPI_ALTERNATE_IO to swap SDI and SDO pins

div

SPI speed clock divider (valid values: 0-65535)
The SPI clock frequency is calculated with the formula:
SPI freq = CPU freq / (divider*2+2)

Return Value

0 on success else error code.

Comments

A Wired-OR mode is provided which allows multiple masters to collide on the bus without risk of damage. In this mode, an external pull-up resistor is required on the Master Out Slave In (MOSI) and Master In Slave Out (MISO) pins. Generally, pull-ups are recommended on all of the external SPI signals to ensure they are held in a valid state, even when the SPI interface is disabled.

If multiple tasks use the SPI hardware master interface to access different slaves through different slave chip select PIO pins, this call should be used to synchronise the SPI activity on the bus. The external MMC/SD driver examples uses this call since version V1.02.

RTOS API

This library function invokes a RTOS software interrupt. Refer to this RTOS API function's documentation for more details.

Supported since or modified in @CHIP-RTOS version

    SC12SC13SC11SC1x3
    n/an/an/aV1.05

Supported by @CHIP-RTOS C Library since version

    CLIB
    V2.04

This API List
List of C Libraries
@CHIP-RTOS Main Index


End of document