Nano102_112 Series BSP  V3.03.002
The Board Support Package for Nano102_112 Series
Macros | Functions
spi.h File Reference

Nano102/112 series SPI driver header file. More...

Go to the source code of this file.

Macros

#define SPI_MODE_0   (SPI_CTL_TX_NEG_Msk)
 
#define SPI_MODE_1   (SPI_CTL_RX_NEG_Msk)
 
#define SPI_MODE_2   (SPI_CTL_CLKP_Msk | SPI_CTL_RX_NEG_Msk)
 
#define SPI_MODE_3   (SPI_CTL_CLKP_Msk | SPI_CTL_TX_NEG_Msk)
 
#define SPI_SLAVE   (SPI_CTL_SLAVE_Msk)
 
#define SPI_MASTER   (0x0)
 
#define SPI_SS0   (0x1)
 
#define SPI_SS0_ACTIVE_HIGH   (SPI_SSR_SS_LVL_Msk)
 
#define SPI_SS0_ACTIVE_LOW   (0x0)
 
#define SPI_SS1   (0x2)
 
#define SPI_SS1_ACTIVE_HIGH   (SPI_SSR_SS_LVL_Msk)
 
#define SPI_SS1_ACTIVE_LOW   (0x0)
 
#define SPI_IE_MASK   (0x01)
 
#define SPI_SSTA_INTEN_MASK   (0x04)
 
#define SPI_FIFO_TX_INTEN_MASK   (0x08)
 
#define SPI_FIFO_RX_INTEN_MASK   (0x10)
 
#define SPI_FIFO_RXOVR_INTEN_MASK   (0x20)
 
#define SPI_FIFO_TIMEOUT_INTEN_MASK   (0x40)
 
#define SPI_ABORT_3WIRE_TRANSFER(spi)
 Abort the current transfer in slave 3-wire mode. More...
 
#define SPI_CLR_3WIRE_START_INT_FLAG(spi)
 Clear the slave 3-wire mode start interrupt flag. More...
 
#define SPI_CLR_UNIT_TRANS_INT_FLAG(spi)
 Clear the unit transfer interrupt flag. More...
 
#define SPI_DISABLE_3WIRE_MODE(spi)
 Disable slave 3-wire mode. More...
 
#define SPI_ENABLE_3WIRE_MODE(spi)
 Enable slave 3-wire mode. More...
 
#define SPI_GET_RX_FIFO_COUNT(spi)
 Get the count of available data in RX FIFO. More...
 
#define SPI_GET_RX_FIFO_EMPTY_FLAG(spi)
 Get the Rx FIFO empty flag. More...
 
#define SPI_GET_TX_FIFO_EMPTY_FLAG(spi)
 Get the Tx FIFO empty flag. More...
 
#define SPI_GET_TX_FIFO_FULL_FLAG(spi)
 Get the Tx FIFO full flag. More...
 
#define SPI_READ_RX0(spi)
 Get the datum read from RX0 FIFO. More...
 
#define SPI_READ_RX1(spi)   ((spi)->RX1)
 Get the datum read from RX1 FIFO. More...
 
#define SPI_WRITE_TX0(spi, u32TxData)
 Write datum to TX0 register. More...
 
#define SPI_WRITE_TX1(spi, u32TxData)
 Write datum to TX1 register. More...
 
#define SPI_SET_SS0_HIGH(spi)
 Set SPIn_SS0 pin to high state. More...
 
#define SPI_SET_SS0_LOW(spi)
 Set SPIn_SS0 pin to low state. More...
 
#define SPI_SET_SS1_HIGH(spi)
 Set SPIn_SS1 pin to high state. More...
 
#define SPI_SET_SS1_LOW(spi)
 Set SPIn_SS1 pin to low state. More...
 
#define SPI_SET_SS_LEVEL(spi, ss0, ss1)   ((spi)->SSR = ((spi)->SSR & ~(SPI_SSR_AUTOSS_Msk|SPI_SSR_SS_LVL_Msk|SPI_SSR_SSR_Msk)) | (((ss1)^1) << 1) | ((ss0)^1))
 Set SPIn_SS0, SPIn_SS1 pin to high or low state. More...
 
#define SPI_ENABLE_BYTE_REORDER(spi)
 Enable byte reorder function. More...
 
#define SPI_DISABLE_BYTE_REORDER(spi)
 Disable byte reorder function. More...
 
#define SPI_SET_SUSPEND_CYCLE(spi, u32SuspCycle)
 Set the length of suspend interval. More...
 
#define SPI_SET_LSB_FIRST(spi)
 Set the SPI transfer sequence with LSB first. More...
 
#define SPI_SET_MSB_FIRST(spi)
 Set the SPI transfer sequence with MSB first. More...
 
#define SPI_IS_BUSY(spi)
 Get the SPI busy state. More...
 
#define SPI_TRIGGER(spi)
 Set the GO_BUSY bit to trigger SPI transfer. More...
 
#define SPI_ENABLE_DUAL_MODE(spi)
 Enable SPI Dual IO function. More...
 
#define SPI_DISABLE_DUAL_MODE(spi)
 Disable SPI Dual IO function. More...
 
#define SPI_ENABLE_DUAL_INPUT_MODE(spi)
 Set SPI Dual IO direction to input. More...
 
#define SPI_ENABLE_DUAL_OUTPUT_MODE(spi)
 Set SPI Dual IO direction to output. More...
 
#define SPI_TRIGGER_RX_PDMA(spi)
 Trigger RX PDMA transfer. More...
 
#define SPI_TRIGGER_TX_PDMA(spi)
 Trigger TX PDMA transfer. More...
 
#define SPI_ENABLE_2BIT_MODE(spi)
 Enable 2-bit transfer mode. More...
 
#define SPI_DISABLE_2BIT_MODE(spi)
 Disable 2-bit transfer mode. More...
 
#define SPI_GET_STATUS(spi)
 Get the status register value. More...
 

Functions

static __INLINE void SPI_SET_DATA_WIDTH (SPI_T *spi, uint32_t u32Width)
 Set the data width of a SPI transaction. More...
 
uint32_t SPI_Open (SPI_T *spi, uint32_t u32MasterSlave, uint32_t u32SPIMode, uint32_t u32DataWidth, uint32_t u32BusClock)
 This function make SPI module be ready to transfer. By default, the SPI transfer sequence is MSB first and the automatic slave select function is disabled. In Slave mode, the u32BusClock must be NULL and the SPI clock divider setting will be 0. More...
 
void SPI_Close (SPI_T *spi)
 Reset SPI module and disable SPI peripheral clock. More...
 
void SPI_ClearRxFIFO (SPI_T *spi)
 Clear Rx FIFO buffer. More...
 
void SPI_ClearTxFIFO (SPI_T *spi)
 Clear Tx FIFO buffer. More...
 
void SPI_DisableAutoSS (SPI_T *spi)
 Disable the automatic slave select function. More...
 
void SPI_EnableAutoSS (SPI_T *spi, uint32_t u32SSPinMask, uint32_t u32ActiveLevel)
 Enable the automatic slave select function. Only available in Master mode. More...
 
uint32_t SPI_SetBusClock (SPI_T *spi, uint32_t u32BusClock)
 Set the SPI bus clock. Only available in Master mode. More...
 
void SPI_EnableFIFO (SPI_T *spi, uint32_t u32TxThreshold, uint32_t u32RxThreshold)
 Enable FIFO mode with user-specified Tx FIFO threshold and Rx FIFO threshold configurations. More...
 
void SPI_DisableFIFO (SPI_T *spi)
 Disable FIFO mode. More...
 
uint32_t SPI_GetBusClock (SPI_T *spi)
 Get the actual frequency of SPI bus clock. Only available in Master mode. More...
 
void SPI_EnableInt (SPI_T *spi, uint32_t u32Mask)
 Enable FIFO related interrupts specified by u32Mask parameter. More...
 
void SPI_DisableInt (SPI_T *spi, uint32_t u32Mask)
 Disable FIFO related interrupts specified by u32Mask parameter. More...
 
void SPI_EnableWakeup (SPI_T *spi)
 Enable wake-up function. More...
 
void SPI_DisableWakeup (SPI_T *spi)
 Disable wake-up function. More...
 

Detailed Description

Nano102/112 series SPI driver header file.

Version
V1.00
Revision
12
Date
15/04/17 2:12p
Note
SPDX-License-Identifier: Apache-2.0 Copyright (C) 2013~2014 Nuvoton Technology Corp. All rights reserved.

Definition in file spi.h.