WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
spi.c 文件参考
#include "soc_osal.h"
#include "common_def.h"
#include "spi_porting.h"
#include "spi.h"
#include "dma_porting.h"
#include "dma.h"
#include "hal_dma.h"
#include "securec.h"
spi.c 的引用(Include)关系图:

结构体

struct  spi_dma_trans_inf
 
struct  spi_tx_fragment
 A fragment of data that is to be transmitted. 更多...
 
struct  spi_tx_state
 The SPI Transmission configuration parameters. 更多...
 
struct  spi_rx_state
 The SPI Reception configuration parameters. 更多...
 

宏定义

#define DMA_SPI_TRANSFER_WIDTH_WORD   4
 
#define DMA_SPI_TRANSFER_WIDTH_HALF_WORD   2
 
#define SPI_MAX_NUMBER_OF_FRAGMENTS   4
 
#define SPI_TX_FIFO_BUSY_TIMEOUT   3200000
 
#define hal_spi_frame_size_trans_to_frame_bytes(x)   (((x) + 1) >> 0x03)
 

类型定义

typedef struct spi_dma_trans_inf spi_dma_trans_inf_t
 
typedef struct spi_tx_fragment spi_tx_fragment_t
 A fragment of data that is to be transmitted.
 
typedef struct spi_tx_state spi_tx_state_t
 The SPI Transmission configuration parameters.
 
typedef struct spi_rx_state spi_rx_state_t
 The SPI Reception configuration parameters.
 

函数

errcode_t uapi_spi_init (spi_bus_t bus, spi_attr_t *attr, spi_extra_attr_t *extra_attr)
 初始化 SPI。
 
errcode_t uapi_spi_deinit (spi_bus_t bus)
 去初始化 SPI。
 
errcode_t uapi_spi_set_dma_mode (spi_bus_t bus, bool en, const spi_dma_config_t *dma_cfg)
 使能/去使能DMA模式下SPI传输。
 
errcode_t uapi_spi_set_tmod (spi_bus_t bus, hal_spi_trans_mode_t tmod, uint8_t data_frame_num)
 设置SPI的传输模式。
 
errcode_t uapi_spi_set_attr (spi_bus_t bus, spi_attr_t *attr)
 设置SPI的基础配置参数。
 
errcode_t uapi_spi_get_attr (spi_bus_t bus, spi_attr_t *attr)
 读取SPI的基础配置参数。
 
errcode_t uapi_spi_set_extra_attr (spi_bus_t bus, spi_extra_attr_t *extra_attr)
 设置SPI的高级配置参数。
 
errcode_t uapi_spi_get_extra_attr (spi_bus_t bus, spi_extra_attr_t *extra_attr)
 读取SPI的高级配置参数。
 
errcode_t uapi_spi_set_irq_mode (spi_bus_t bus, bool irq_en, spi_rx_callback_t rx_callback, spi_tx_callback_t tx_callback)
 设置是否使用中断模式在主机模式下传输数据。
 
errcode_t uapi_spi_select_slave (spi_bus_t bus, spi_slave_t cs)
 Master模式下选择需要对通的Slave设备。
 
errcode_t uapi_spi_master_write (spi_bus_t bus, const spi_xfer_data_t *data, uint32_t timeout)
 将数据从主机写入到从机。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。
 
errcode_t uapi_spi_master_read (spi_bus_t bus, const spi_xfer_data_t *data, uint32_t timeout)
 从slave读取数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。
 
errcode_t uapi_spi_master_writeread (spi_bus_t bus, const spi_xfer_data_t *data, uint32_t timeout)
 主机写入和读取数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下两种种传输模式,但是不能在同一bus中同时使用。
 
errcode_t uapi_spi_slave_write (spi_bus_t bus, const spi_xfer_data_t *data, uint32_t timeout)
 从机向主机写入数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。
 
errcode_t uapi_spi_slave_read (spi_bus_t bus, const spi_xfer_data_t *data, uint32_t timeout)
 从主机读取数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。
 
errcode_t uapi_spi_slave_writeread (spi_bus_t bus, const spi_xfer_data_t *data, uint32_t timeout)
 从机写入和读取数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下两种种传输模式,但是不能在同一bus中同时使用。
 

宏定义说明

◆ DMA_SPI_TRANSFER_WIDTH_HALF_WORD

#define DMA_SPI_TRANSFER_WIDTH_HALF_WORD   2

◆ DMA_SPI_TRANSFER_WIDTH_WORD

#define DMA_SPI_TRANSFER_WIDTH_WORD   4

Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2022-2022. All rights reserved.

Description: Provides spi driver source
History:
2022-09-16, Create file.

◆ hal_spi_frame_size_trans_to_frame_bytes

#define hal_spi_frame_size_trans_to_frame_bytes (   x)    (((x) + 1) >> 0x03)

◆ SPI_MAX_NUMBER_OF_FRAGMENTS

#define SPI_MAX_NUMBER_OF_FRAGMENTS   4

◆ SPI_TX_FIFO_BUSY_TIMEOUT

#define SPI_TX_FIFO_BUSY_TIMEOUT   3200000

类型定义说明

◆ spi_dma_trans_inf_t

◆ spi_rx_state_t

typedef struct spi_rx_state spi_rx_state_t

The SPI Reception configuration parameters.

◆ spi_tx_fragment_t

A fragment of data that is to be transmitted.

◆ spi_tx_state_t

typedef struct spi_tx_state spi_tx_state_t

The SPI Transmission configuration parameters.