NetBurner 3.5.6
PDF Version |
#include <fsl_common.h>
Go to the source code of this file.
Classes | |
struct | _lpspi_master_config |
LPSPI master configuration structure. More... | |
struct | _lpspi_slave_config |
LPSPI slave configuration structure. More... | |
struct | _lpspi_transfer |
LPSPI master/slave transfer structure. More... | |
struct | _lpspi_master_handle |
LPSPI master transfer handle structure used for transactional API. More... | |
struct | _lpspi_slave_handle |
LPSPI slave transfer handle structure used for transactional API. More... | |
Functions | |
Initialization and deinitialization | |
void | LPSPI_MasterInit (LPSPI_Type *base, const lpspi_master_config_t *masterConfig, uint32_t srcClock_Hz) |
Initializes the LPSPI master. | |
void | LPSPI_MasterGetDefaultConfig (lpspi_master_config_t *masterConfig) |
Sets the lpspi_master_config_t structure to default values. | |
void | LPSPI_SlaveInit (LPSPI_Type *base, const lpspi_slave_config_t *slaveConfig) |
LPSPI slave configuration. | |
void | LPSPI_SlaveGetDefaultConfig (lpspi_slave_config_t *slaveConfig) |
Sets the lpspi_slave_config_t structure to default values. | |
void | LPSPI_Deinit (LPSPI_Type *base) |
De-initializes the LPSPI peripheral. Call this API to disable the LPSPI clock. | |
void | LPSPI_Reset (LPSPI_Type *base) |
Restores the LPSPI peripheral to reset state. Note that this function sets all registers to reset state. As a result, the LPSPI module can't work after calling this API. | |
uint32_t | LPSPI_GetInstance (LPSPI_Type *base) |
Get the LPSPI instance from peripheral base address. | |
Status | |
Interrupts | |
DMA Control | |
Bus Operations | |
bool | LPSPI_CheckTransferArgument (LPSPI_Type *base, lpspi_transfer_t *transfer, bool isEdma) |
Check the argument for transfer . | |
uint32_t | LPSPI_MasterSetBaudRate (LPSPI_Type *base, uint32_t baudRate_Bps, uint32_t srcClock_Hz, uint32_t *tcrPrescaleValue) |
Sets the LPSPI baud rate in bits per second. | |
void | LPSPI_MasterSetDelayScaler (LPSPI_Type *base, uint32_t scaler, lpspi_delay_type_t whichDelay) |
Manually configures a specific LPSPI delay parameter (module must be disabled to change the delay values). | |
uint32_t | LPSPI_MasterSetDelayTimes (LPSPI_Type *base, uint32_t delayTimeInNanoSec, lpspi_delay_type_t whichDelay, uint32_t srcClock_Hz) |
Calculates the delay based on the desired delay input in nanoseconds (module must be disabled to change the delay values). | |
void | LPSPI_SetDummyData (LPSPI_Type *base, uint8_t dummyData) |
Set up the dummy data. | |
Transactional | |
void | LPSPI_MasterTransferCreateHandle (LPSPI_Type *base, lpspi_master_handle_t *handle, lpspi_master_transfer_callback_t callback, void *userData) |
Initializes the LPSPI master handle. | |
status_t | LPSPI_MasterTransferBlocking (LPSPI_Type *base, lpspi_transfer_t *transfer) |
LPSPI master transfer data using a polling method. | |
status_t | LPSPI_MasterTransferNonBlocking (LPSPI_Type *base, lpspi_master_handle_t *handle, lpspi_transfer_t *transfer) |
LPSPI master transfer data using an interrupt method. | |
status_t | LPSPI_MasterTransferGetCount (LPSPI_Type *base, lpspi_master_handle_t *handle, size_t *count) |
Gets the master transfer remaining bytes. | |
void | LPSPI_MasterTransferAbort (LPSPI_Type *base, lpspi_master_handle_t *handle) |
LPSPI master abort transfer which uses an interrupt method. | |
void | LPSPI_MasterTransferHandleIRQ (LPSPI_Type *base, lpspi_master_handle_t *handle) |
LPSPI Master IRQ handler function. | |
void | LPSPI_SlaveTransferCreateHandle (LPSPI_Type *base, lpspi_slave_handle_t *handle, lpspi_slave_transfer_callback_t callback, void *userData) |
Initializes the LPSPI slave handle. | |
status_t | LPSPI_SlaveTransferNonBlocking (LPSPI_Type *base, lpspi_slave_handle_t *handle, lpspi_transfer_t *transfer) |
LPSPI slave transfer data using an interrupt method. | |
status_t | LPSPI_SlaveTransferGetCount (LPSPI_Type *base, lpspi_slave_handle_t *handle, size_t *count) |
Gets the slave transfer remaining bytes. | |
void | LPSPI_SlaveTransferAbort (LPSPI_Type *base, lpspi_slave_handle_t *handle) |
LPSPI slave aborts a transfer which uses an interrupt method. | |
void | LPSPI_SlaveTransferHandleIRQ (LPSPI_Type *base, lpspi_slave_handle_t *handle) |
LPSPI Slave IRQ handler function. | |
Driver version | |
#define | FSL_LPSPI_DRIVER_VERSION (MAKE_VERSION(2, 4, 0)) |
LPSPI driver version. | |
#define | LPSPI_DUMMY_DATA (0x00U) |
LPSPI dummy data if no Tx data. | |
#define | SPI_RETRY_TIMES 0U /* Define to zero means keep waiting until the flag is assert/deassert. */ |
Retry times for waiting flag. | |
#define | LPSPI_MASTER_PCS_SHIFT (4U) |
#define | LPSPI_MASTER_PCS_MASK (0xF0U) |
#define | LPSPI_SLAVE_PCS_SHIFT (4U) |
#define | LPSPI_SLAVE_PCS_MASK (0xF0U) |
enum | { kStatus_LPSPI_Busy = MAKE_STATUS(kStatusGroup_LPSPI, 0) , kStatus_LPSPI_Error = MAKE_STATUS(kStatusGroup_LPSPI, 1) , kStatus_LPSPI_Idle = MAKE_STATUS(kStatusGroup_LPSPI, 2) , kStatus_LPSPI_OutOfRange = MAKE_STATUS(kStatusGroup_LPSPI, 3) , kStatus_LPSPI_Timeout = MAKE_STATUS(kStatusGroup_LPSPI, 4) } |
Status for the LPSPI driver. More... | |
enum | _lpspi_flags { kLPSPI_TxDataRequestFlag = LPSPI_SR_TDF_MASK , kLPSPI_RxDataReadyFlag = LPSPI_SR_RDF_MASK , kLPSPI_WordCompleteFlag = LPSPI_SR_WCF_MASK , kLPSPI_FrameCompleteFlag = LPSPI_SR_FCF_MASK , kLPSPI_TransferCompleteFlag = LPSPI_SR_TCF_MASK , kLPSPI_TransmitErrorFlag = LPSPI_SR_TEF_MASK , kLPSPI_ReceiveErrorFlag = LPSPI_SR_REF_MASK , kLPSPI_DataMatchFlag = LPSPI_SR_DMF_MASK , kLPSPI_ModuleBusyFlag = LPSPI_SR_MBF_MASK , kLPSPI_AllStatusFlag } |
LPSPI status flags in SPIx_SR register. More... | |
enum | _lpspi_interrupt_enable { kLPSPI_TxInterruptEnable = LPSPI_IER_TDIE_MASK , kLPSPI_RxInterruptEnable = LPSPI_IER_RDIE_MASK , kLPSPI_WordCompleteInterruptEnable = LPSPI_IER_WCIE_MASK , kLPSPI_FrameCompleteInterruptEnable = LPSPI_IER_FCIE_MASK , kLPSPI_TransferCompleteInterruptEnable = LPSPI_IER_TCIE_MASK , kLPSPI_TransmitErrorInterruptEnable = LPSPI_IER_TEIE_MASK , kLPSPI_ReceiveErrorInterruptEnable = LPSPI_IER_REIE_MASK , kLPSPI_DataMatchInterruptEnable = LPSPI_IER_DMIE_MASK , kLPSPI_AllInterruptEnable } |
LPSPI interrupt source. More... | |
enum | _lpspi_dma_enable { kLPSPI_TxDmaEnable = LPSPI_DER_TDDE_MASK , kLPSPI_RxDmaEnable = LPSPI_DER_RDDE_MASK } |
LPSPI DMA source. More... | |
enum | _lpspi_master_slave_mode { kLPSPI_Master = 1U , kLPSPI_Slave = 0U } |
LPSPI master or slave mode configuration. More... | |
enum | _lpspi_which_pcs_config { kLPSPI_Pcs0 = 0U , kLPSPI_Pcs1 = 1U , kLPSPI_Pcs2 = 2U , kLPSPI_Pcs3 = 3U } |
LPSPI Peripheral Chip Select (PCS) configuration (which PCS to configure). More... | |
enum | _lpspi_pcs_polarity_config { kLPSPI_PcsActiveHigh = 1U , kLPSPI_PcsActiveLow = 0U } |
LPSPI Peripheral Chip Select (PCS) Polarity configuration. More... | |
enum | _lpspi_pcs_polarity { kLPSPI_Pcs0ActiveLow = 1U << 0 , kLPSPI_Pcs1ActiveLow = 1U << 1 , kLPSPI_Pcs2ActiveLow = 1U << 2 , kLPSPI_Pcs3ActiveLow = 1U << 3 , kLPSPI_PcsAllActiveLow = 0xFU } |
LPSPI Peripheral Chip Select (PCS) Polarity. More... | |
enum | _lpspi_clock_polarity { kLPSPI_ClockPolarityActiveHigh = 0U , kLPSPI_ClockPolarityActiveLow = 1U } |
LPSPI clock polarity configuration. More... | |
enum | _lpspi_clock_phase { kLPSPI_ClockPhaseFirstEdge = 0U , kLPSPI_ClockPhaseSecondEdge = 1U } |
LPSPI clock phase configuration. More... | |
enum | _lpspi_shift_direction { kLPSPI_MsbFirst = 0U , kLPSPI_LsbFirst = 1U } |
LPSPI data shifter direction options. More... | |
enum | _lpspi_host_request_select { kLPSPI_HostReqExtPin = 0U , kLPSPI_HostReqInternalTrigger = 1U } |
LPSPI Host Request select configuration. More... | |
enum | _lpspi_match_config { kLPSI_MatchDisabled = 0x0U , kLPSI_1stWordEqualsM0orM1 = 0x2U , kLPSI_AnyWordEqualsM0orM1 = 0x3U , kLPSI_1stWordEqualsM0and2ndWordEqualsM1 = 0x4U , kLPSI_AnyWordEqualsM0andNxtWordEqualsM1 = 0x5U , kLPSI_1stWordAndM1EqualsM0andM1 = 0x6U , kLPSI_AnyWordAndM1EqualsM0andM1 = 0x7U } |
LPSPI Match configuration options. More... | |
enum | _lpspi_pin_config { kLPSPI_SdiInSdoOut = 0U , kLPSPI_SdiInSdiOut = 1U , kLPSPI_SdoInSdoOut = 2U , kLPSPI_SdoInSdiOut = 3U } |
LPSPI pin (SDO and SDI) configuration. More... | |
enum | _lpspi_data_out_config { kLpspiDataOutRetained = 0U , kLpspiDataOutTristate = 1U } |
LPSPI data output configuration. More... | |
enum | _lpspi_transfer_width { kLPSPI_SingleBitXfer = 0U , kLPSPI_TwoBitXfer = 1U , kLPSPI_FourBitXfer = 2U } |
LPSPI transfer width configuration. More... | |
enum | _lpspi_delay_type { kLPSPI_PcsToSck = 1U , kLPSPI_LastSckToPcs , kLPSPI_BetweenTransfer } |
LPSPI delay type selection. More... | |
enum | _lpspi_transfer_config_flag_for_master { kLPSPI_MasterPcs0 = 0U << LPSPI_MASTER_PCS_SHIFT , kLPSPI_MasterPcs1 = 1U << LPSPI_MASTER_PCS_SHIFT , kLPSPI_MasterPcs2 = 2U << LPSPI_MASTER_PCS_SHIFT , kLPSPI_MasterPcs3 = 3U << LPSPI_MASTER_PCS_SHIFT , kLPSPI_MasterPcsContinuous = 1U << 20 , kLPSPI_MasterByteSwap } |
Use this enumeration for LPSPI master transfer configFlags. More... | |
enum | _lpspi_transfer_config_flag_for_slave { kLPSPI_SlavePcs0 = 0U << LPSPI_SLAVE_PCS_SHIFT , kLPSPI_SlavePcs1 = 1U << LPSPI_SLAVE_PCS_SHIFT , kLPSPI_SlavePcs2 = 2U << LPSPI_SLAVE_PCS_SHIFT , kLPSPI_SlavePcs3 = 3U << LPSPI_SLAVE_PCS_SHIFT , kLPSPI_SlaveByteSwap } |
Use this enumeration for LPSPI slave transfer configFlags. More... | |
enum | _lpspi_transfer_state { kLPSPI_Idle = 0x0U , kLPSPI_Busy , kLPSPI_Error } |
LPSPI transfer state, which is used for LPSPI transactional API state machine. More... | |
typedef enum _lpspi_master_slave_mode | lpspi_master_slave_mode_t |
LPSPI master or slave mode configuration. | |
typedef enum _lpspi_which_pcs_config | lpspi_which_pcs_t |
LPSPI Peripheral Chip Select (PCS) configuration (which PCS to configure). | |
typedef enum _lpspi_pcs_polarity_config | lpspi_pcs_polarity_config_t |
LPSPI Peripheral Chip Select (PCS) Polarity configuration. | |
typedef enum _lpspi_clock_polarity | lpspi_clock_polarity_t |
LPSPI clock polarity configuration. | |
typedef enum _lpspi_clock_phase | lpspi_clock_phase_t |
LPSPI clock phase configuration. | |
typedef enum _lpspi_shift_direction | lpspi_shift_direction_t |
LPSPI data shifter direction options. | |
typedef enum _lpspi_host_request_select | lpspi_host_request_select_t |
LPSPI Host Request select configuration. | |
typedef enum _lpspi_match_config | lpspi_match_config_t |
LPSPI Match configuration options. | |
typedef enum _lpspi_pin_config | lpspi_pin_config_t |
LPSPI pin (SDO and SDI) configuration. | |
typedef enum _lpspi_data_out_config | lpspi_data_out_config_t |
LPSPI data output configuration. | |
typedef enum _lpspi_transfer_width | lpspi_transfer_width_t |
LPSPI transfer width configuration. | |
typedef enum _lpspi_delay_type | lpspi_delay_type_t |
LPSPI delay type selection. | |
typedef struct _lpspi_master_config | lpspi_master_config_t |
LPSPI master configuration structure. | |
typedef struct _lpspi_slave_config | lpspi_slave_config_t |
LPSPI slave configuration structure. | |
typedef struct _lpspi_master_handle | lpspi_master_handle_t |
Forward declaration of the _lpspi_master_handle typedefs. | |
typedef struct _lpspi_slave_handle | lpspi_slave_handle_t |
Forward declaration of the _lpspi_slave_handle typedefs. | |
typedef void(* | lpspi_master_transfer_callback_t) (LPSPI_Type *base, lpspi_master_handle_t *handle, status_t status, void *userData) |
Master completion callback function pointer type. | |
typedef void(* | lpspi_slave_transfer_callback_t) (LPSPI_Type *base, lpspi_slave_handle_t *handle, status_t status, void *userData) |
Slave completion callback function pointer type. | |
typedef struct _lpspi_transfer | lpspi_transfer_t |
LPSPI master/slave transfer structure. | |
volatile uint8_t | g_lpspiDummyData [] |
Global variable for dummy data value setting. | |
#define LPSPI_DUMMY_DATA (0x00U) |
LPSPI dummy data if no Tx data.
Dummy data used for tx if there is not txData.
#define LPSPI_MASTER_PCS_MASK (0xF0U) |
LPSPI master PCS shift macro , internal used.
#define LPSPI_MASTER_PCS_SHIFT (4U) |
LPSPI master PCS shift macro , internal used.
#define LPSPI_SLAVE_PCS_MASK (0xF0U) |
LPSPI slave PCS shift macro , internal used.
#define LPSPI_SLAVE_PCS_SHIFT (4U) |
LPSPI slave PCS shift macro , internal used.
typedef void(* lpspi_master_transfer_callback_t) (LPSPI_Type *base, lpspi_master_handle_t *handle, status_t status, void *userData) |
Master completion callback function pointer type.
base | LPSPI peripheral address. |
handle | Pointer to the handle for the LPSPI master. |
status | Success or error code describing whether the transfer is completed. |
userData | Arbitrary pointer-dataSized value passed from the application. |
typedef void(* lpspi_slave_transfer_callback_t) (LPSPI_Type *base, lpspi_slave_handle_t *handle, status_t status, void *userData) |
Slave completion callback function pointer type.
base | LPSPI peripheral address. |
handle | Pointer to the handle for the LPSPI slave. |
status | Success or error code describing whether the transfer is completed. |
userData | Arbitrary pointer-dataSized value passed from the application. |
anonymous enum |
enum _lpspi_clock_phase |
enum _lpspi_delay_type |
enum _lpspi_dma_enable |
enum _lpspi_flags |
LPSPI status flags in SPIx_SR register.
LPSPI interrupt source.
enum _lpspi_match_config |
LPSPI Match configuration options.
enum _lpspi_pcs_polarity |
LPSPI Peripheral Chip Select (PCS) Polarity.
enum _lpspi_pin_config |
Use this enumeration for LPSPI master transfer configFlags.
Use this enumeration for LPSPI slave transfer configFlags.
bool LPSPI_CheckTransferArgument | ( | LPSPI_Type * | base, |
lpspi_transfer_t * | transfer, | ||
bool | isEdma ) |
Check the argument for transfer .
base | LPSPI peripheral address. |
transfer | the transfer struct to be used. |
isEdma | True to check for EDMA transfer, false to check interrupt non-blocking transfer |
void LPSPI_Deinit | ( | LPSPI_Type * | base | ) |
De-initializes the LPSPI peripheral. Call this API to disable the LPSPI clock.
base | LPSPI peripheral address. |
uint32_t LPSPI_GetInstance | ( | LPSPI_Type * | base | ) |
Get the LPSPI instance from peripheral base address.
base | LPSPI peripheral base address. |
void LPSPI_MasterGetDefaultConfig | ( | lpspi_master_config_t * | masterConfig | ) |
Sets the lpspi_master_config_t structure to default values.
This API initializes the configuration structure for LPSPI_MasterInit(). The initialized structure can remain unchanged in LPSPI_MasterInit(), or can be modified before calling the LPSPI_MasterInit(). Example:
masterConfig | pointer to lpspi_master_config_t structure |
void LPSPI_MasterInit | ( | LPSPI_Type * | base, |
const lpspi_master_config_t * | masterConfig, | ||
uint32_t | srcClock_Hz ) |
Initializes the LPSPI master.
base | LPSPI peripheral address. |
masterConfig | Pointer to structure lpspi_master_config_t. |
srcClock_Hz | Module source input clock in Hertz |
uint32_t LPSPI_MasterSetBaudRate | ( | LPSPI_Type * | base, |
uint32_t | baudRate_Bps, | ||
uint32_t | srcClock_Hz, | ||
uint32_t * | tcrPrescaleValue ) |
Sets the LPSPI baud rate in bits per second.
This function takes in the desired bitsPerSec (baud rate) and calculates the nearest possible baud rate without exceeding the desired baud rate and returns the calculated baud rate in bits-per-second. It requires the caller to provide the frequency of the module source clock (in Hertz). Note that the baud rate does not go into effect until the Transmit Control Register (TCR) is programmed with the prescale value. Hence, this function returns the prescale tcrPrescaleValue parameter for later programming in the TCR. The higher level peripheral driver should alert the user of an out of range baud rate input.
Note that the LPSPI module must first be disabled before configuring this. Note that the LPSPI module must be configured for master mode before configuring this.
base | LPSPI peripheral address. |
baudRate_Bps | The desired baud rate in bits per second. |
srcClock_Hz | Module source input clock in Hertz. |
tcrPrescaleValue | The TCR prescale value needed to program the TCR. |
void LPSPI_MasterSetDelayScaler | ( | LPSPI_Type * | base, |
uint32_t | scaler, | ||
lpspi_delay_type_t | whichDelay ) |
Manually configures a specific LPSPI delay parameter (module must be disabled to change the delay values).
This function configures the following: SCK to PCS delay, or PCS to SCK delay, or The configurations must occur between the transfer delay.
The delay names are available in type lpspi_delay_type_t.
The user passes the desired delay along with the delay value. This allows the user to directly set the delay values if they have pre-calculated them or if they simply wish to manually increment the value.
Note that the LPSPI module must first be disabled before configuring this. Note that the LPSPI module must be configured for master mode before configuring this.
base | LPSPI peripheral address. |
scaler | The 8-bit delay value 0x00 to 0xFF (255). |
whichDelay | The desired delay to configure, must be of type lpspi_delay_type_t. |
uint32_t LPSPI_MasterSetDelayTimes | ( | LPSPI_Type * | base, |
uint32_t | delayTimeInNanoSec, | ||
lpspi_delay_type_t | whichDelay, | ||
uint32_t | srcClock_Hz ) |
Calculates the delay based on the desired delay input in nanoseconds (module must be disabled to change the delay values).
This function calculates the values for the following: SCK to PCS delay, or PCS to SCK delay, or The configurations must occur between the transfer delay.
The delay names are available in type lpspi_delay_type_t.
The user passes the desired delay and the desired delay value in nano-seconds. The function calculates the value needed for the desired delay parameter and returns the actual calculated delay because an exact delay match may not be possible. In this case, the closest match is calculated without going below the desired delay value input. It is possible to input a very large delay value that exceeds the capability of the part, in which case the maximum supported delay is returned. It is up to the higher level peripheral driver to alert the user of an out of range delay input.
Note that the LPSPI module must be configured for master mode before configuring this. And note that the delayTime = LPSPI_clockSource / (PRESCALE * Delay_scaler).
base | LPSPI peripheral address. |
delayTimeInNanoSec | The desired delay value in nano-seconds. |
whichDelay | The desired delay to configuration, which must be of type lpspi_delay_type_t. |
srcClock_Hz | Module source input clock in Hertz. |
void LPSPI_MasterTransferAbort | ( | LPSPI_Type * | base, |
lpspi_master_handle_t * | handle ) |
LPSPI master abort transfer which uses an interrupt method.
This function aborts a transfer which uses an interrupt method.
base | LPSPI peripheral address. |
handle | pointer to lpspi_master_handle_t structure which stores the transfer state. |
status_t LPSPI_MasterTransferBlocking | ( | LPSPI_Type * | base, |
lpspi_transfer_t * | transfer ) |
LPSPI master transfer data using a polling method.
This function transfers data using a polling method. This is a blocking function, which does not return until all transfers have been completed.
Note: The transfer data size should be integer multiples of bytesPerFrame if bytesPerFrame is less than or equal to 4. For bytesPerFrame greater than 4: The transfer data size should be equal to bytesPerFrame if the bytesPerFrame is not integer multiples of 4. Otherwise, the transfer data size can be an integer multiple of bytesPerFrame.
base | LPSPI peripheral address. |
transfer | pointer to lpspi_transfer_t structure. |
void LPSPI_MasterTransferCreateHandle | ( | LPSPI_Type * | base, |
lpspi_master_handle_t * | handle, | ||
lpspi_master_transfer_callback_t | callback, | ||
void * | userData ) |
Initializes the LPSPI master handle.
This function initializes the LPSPI handle, which can be used for other LPSPI transactional APIs. Usually, for a specified LPSPI instance, call this API once to get the initialized handle.
base | LPSPI peripheral address. |
handle | LPSPI handle pointer to lpspi_master_handle_t. |
callback | DSPI callback. |
userData | callback function parameter. |
status_t LPSPI_MasterTransferGetCount | ( | LPSPI_Type * | base, |
lpspi_master_handle_t * | handle, | ||
size_t * | count ) |
Gets the master transfer remaining bytes.
This function gets the master transfer remaining bytes.
base | LPSPI peripheral address. |
handle | pointer to lpspi_master_handle_t structure which stores the transfer state. |
count | Number of bytes transferred so far by the non-blocking transaction. |
void LPSPI_MasterTransferHandleIRQ | ( | LPSPI_Type * | base, |
lpspi_master_handle_t * | handle ) |
LPSPI Master IRQ handler function.
This function processes the LPSPI transmit and receive IRQ.
base | LPSPI peripheral address. |
handle | pointer to lpspi_master_handle_t structure which stores the transfer state. |
status_t LPSPI_MasterTransferNonBlocking | ( | LPSPI_Type * | base, |
lpspi_master_handle_t * | handle, | ||
lpspi_transfer_t * | transfer ) |
LPSPI master transfer data using an interrupt method.
This function transfers data using an interrupt method. This is a non-blocking function, which returns right away. When all data is transferred, the callback function is called.
Note: The transfer data size should be integer multiples of bytesPerFrame if bytesPerFrame is less than or equal to 4. For bytesPerFrame greater than 4: The transfer data size should be equal to bytesPerFrame if the bytesPerFrame is not integer multiples of 4. Otherwise, the transfer data size can be an integer multiple of bytesPerFrame.
base | LPSPI peripheral address. |
handle | pointer to lpspi_master_handle_t structure which stores the transfer state. |
transfer | pointer to lpspi_transfer_t structure. |
void LPSPI_Reset | ( | LPSPI_Type * | base | ) |
Restores the LPSPI peripheral to reset state. Note that this function sets all registers to reset state. As a result, the LPSPI module can't work after calling this API.
base | LPSPI peripheral address. |
void LPSPI_SetDummyData | ( | LPSPI_Type * | base, |
uint8_t | dummyData ) |
Set up the dummy data.
base | LPSPI peripheral address. |
dummyData | Data to be transferred when tx buffer is NULL. Note: This API has no effect when LPSPI in slave interrupt mode, because driver will set the TXMSK bit to 1 if txData is NULL, no data is loaded from transmit FIFO and output pin is tristated. |
void LPSPI_SlaveGetDefaultConfig | ( | lpspi_slave_config_t * | slaveConfig | ) |
Sets the lpspi_slave_config_t structure to default values.
This API initializes the configuration structure for LPSPI_SlaveInit(). The initialized structure can remain unchanged in LPSPI_SlaveInit() or can be modified before calling the LPSPI_SlaveInit(). Example:
slaveConfig | pointer to lpspi_slave_config_t structure. |
void LPSPI_SlaveInit | ( | LPSPI_Type * | base, |
const lpspi_slave_config_t * | slaveConfig ) |
LPSPI slave configuration.
base | LPSPI peripheral address. |
slaveConfig | Pointer to a structure lpspi_slave_config_t. |
void LPSPI_SlaveTransferAbort | ( | LPSPI_Type * | base, |
lpspi_slave_handle_t * | handle ) |
LPSPI slave aborts a transfer which uses an interrupt method.
This function aborts a transfer which uses an interrupt method.
base | LPSPI peripheral address. |
handle | pointer to lpspi_slave_handle_t structure which stores the transfer state. |
void LPSPI_SlaveTransferCreateHandle | ( | LPSPI_Type * | base, |
lpspi_slave_handle_t * | handle, | ||
lpspi_slave_transfer_callback_t | callback, | ||
void * | userData ) |
Initializes the LPSPI slave handle.
This function initializes the LPSPI handle, which can be used for other LPSPI transactional APIs. Usually, for a specified LPSPI instance, call this API once to get the initialized handle.
base | LPSPI peripheral address. |
handle | LPSPI handle pointer to lpspi_slave_handle_t. |
callback | DSPI callback. |
userData | callback function parameter. |
status_t LPSPI_SlaveTransferGetCount | ( | LPSPI_Type * | base, |
lpspi_slave_handle_t * | handle, | ||
size_t * | count ) |
Gets the slave transfer remaining bytes.
This function gets the slave transfer remaining bytes.
base | LPSPI peripheral address. |
handle | pointer to lpspi_slave_handle_t structure which stores the transfer state. |
count | Number of bytes transferred so far by the non-blocking transaction. |
void LPSPI_SlaveTransferHandleIRQ | ( | LPSPI_Type * | base, |
lpspi_slave_handle_t * | handle ) |
LPSPI Slave IRQ handler function.
This function processes the LPSPI transmit and receives an IRQ.
base | LPSPI peripheral address. |
handle | pointer to lpspi_slave_handle_t structure which stores the transfer state. |
status_t LPSPI_SlaveTransferNonBlocking | ( | LPSPI_Type * | base, |
lpspi_slave_handle_t * | handle, | ||
lpspi_transfer_t * | transfer ) |
LPSPI slave transfer data using an interrupt method.
This function transfer data using an interrupt method. This is a non-blocking function, which returns right away. When all data is transferred, the callback function is called.
Note: The transfer data size should be integer multiples of bytesPerFrame if bytesPerFrame is less than or equal to 4. For bytesPerFrame greater than 4: The transfer data size should be equal to bytesPerFrame if the bytesPerFrame is not an integer multiple of 4. Otherwise, the transfer data size can be an integer multiple of bytesPerFrame.
base | LPSPI peripheral address. |
handle | pointer to lpspi_slave_handle_t structure which stores the transfer state. |
transfer | pointer to lpspi_transfer_t structure. |