|
| enum | hal_spi_ctrl_id {
SPI_CTRL_SET_ATTR
, SPI_CTRL_GET_ATTR
, SPI_CTRL_SET_EXTRA_ATTR
, SPI_CTRL_GET_EXTRA_ATTR
,
SPI_CTRL_SELECT_SLAVE
, SPI_CTRL_CHECK_FIFO_BUSY
, SPI_CTRL_SET_DMA_CFG
, SPI_CTRL_GET_DMA_DATA_ADDR
,
SPI_CTRL_EN_RXFI_INT
, SPI_CTRL_CHECK_RX_FIFO_EMPTY
, SPI_CTRL_EN_TXEI_INT
, SPI_CTRL_CHECK_TX_FIFO_FULL
,
SPI_CTRL_EN_MULTI_MASTER_ERR_INT
, SPI_CTRL_SET_TMOD
, SPI_CTRL_MAX
, SPI_CTRL_ID_INVALID = 0xFF
} |
| | SPI控制ID定义。 更多...
|
| |
| enum | hal_spi_cfg_frame_format { SPI_CFG_FRAME_FORMAT_MOTOROLA_SPI
, SPI_CFG_FRAME_FORMAT_TEXAS_SSP
, SPI_CFG_FRAME_FORMAT_NS_MICROWIRE
, SPI_CFG_FRAME_FORMAT_MAX
} |
| | 帧格式。 更多...
|
| |
| enum | hal_spi_cfg_clk_cpol { SPI_CFG_CLK_CPOL_0
, SPI_CFG_CLK_CPOL_1
, SPI_CFG_CLK_CPOL_MAX
} |
| | 时钟极性。 更多...
|
| |
| enum | hal_spi_cfg_clk_cpha { SPI_CFG_CLK_CPHA_0
, SPI_CFG_CLK_CPHA_1
, SPI_CFG_CLK_CPHA_MAX
} |
| | 时钟相位。 更多...
|
| |
| enum | hal_spi_cfg_sste { SPI_CFG_SSTE_DISABLE
, SPI_CFG_SSTE_ENABLE
, SPI_CFG_SSTE_MAX
} |
| | SPI 从机选择切换使能 更多...
|
| |
| enum | hal_spi_trans_mode {
HAL_SPI_TRANS_MODE_TXRX = 0
, HAL_SPI_TRANS_MODE_TX
, HAL_SPI_TRANS_MODE_RX
, HAL_SPI_TRANS_MODE_EEPROM
,
HAL_SPI_TRANS_MODE_MAX
} |
| | 传输模式。 更多...
|
| |
| enum | hal_spi_frame_size { HAL_SPI_FRAME_SIZE_8 = 0x07
, HAL_SPI_FRAME_SIZE_16 = 0x0F
, HAL_SPI_FRAME_SIZE_24 = 0x17
, HAL_SPI_FRAME_SIZE_32 = 0x1F
} |
| | 数据帧长度。 更多...
|
| |
| enum | hal_spi_frame_format {
HAL_SPI_FRAME_FORMAT_STANDARD = 0
, HAL_SPI_FRAME_FORMAT_DUAL
, HAL_SPI_FRAME_FORMAT_QUAD
, HAL_SPI_FRAME_FORMAT_OCTAL
,
HAL_SPI_FRAME_FORMAT_DOUBLE_OCTAL
, HAL_SPI_FRAME_FORMAT_SIXT
, HAL_SPI_FRAME_FORMAT_MAX_NUM
, HAL_SPI_FRAME_FORMAT_NONE = HAL_SPI_FRAME_FORMAT_MAX_NUM
} |
| | SPI数据帧格式。 更多...
|
| |
| enum | hal_spi_trans_type { HAL_SPI_TRANS_TYPE_INST_S_ADDR_S = 0
, HAL_SPI_TRANS_TYPE_INST_S_ADDR_Q
, HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q
, HAL_SPI_TRANS_TYPE_MAX = HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q
} |
| | SPI传输类型。 更多...
|
| |
| enum | hal_spi_inst_len {
HAL_SPI_INST_LEN_0 = 0
, HAL_SPI_INST_LEN_4
, HAL_SPI_INST_LEN_8
, HAL_SPI_INST_LEN_16
,
HAL_SPI_INST_LEN_MAX = HAL_SPI_INST_LEN_16
} |
| | SPI指令长度定义。 更多...
|
| |
| enum | hal_spi_addr_len {
HAL_SPI_ADDR_LEN_0 = 0
, HAL_SPI_ADDR_LEN_4
, HAL_SPI_ADDR_LEN_8
, HAL_SPI_ADDR_LEN_12
,
HAL_SPI_ADDR_LEN_16
, HAL_SPI_ADDR_LEN_20
, HAL_SPI_ADDR_LEN_24
, HAL_SPI_ADDR_LEN_28
,
HAL_SPI_ADDR_LEN_32
, HAL_SPI_ADDR_LEN_36
, HAL_SPI_ADDR_LEN_40
, HAL_SPI_ADDR_LEN_44
,
HAL_SPI_ADDR_LEN_48
, HAL_SPI_ADDR_LEN_52
, HAL_SPI_ADDR_LEN_56
, HAL_SPI_ADDR_LEN_60
,
HAL_SPI_ADDR_LEN_MAX = HAL_SPI_ADDR_LEN_60
} |
| | SPI地址长度定义。 更多...
|
| |
| enum | hal_spi_evt_id {
SPI_EVT_RX_FULL_ISR
, SPI_EVT_RX_OVERFLOW_ISR
, SPI_EVT_RX_UNDERFLOW_ISR
, SPI_EVT_TX_EMPTY_ISR
,
SPI_EVT_TX_OVERFLOW_ISR
, SPI_EVT_MULTI_MASTER_ISR
} |
| | HAL层SPI事件ID的定义 更多...
|
| |
Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2022-2022. All rights reserved.
Description: Provides HAL SPI
History:
2022-08-08, Create file.
◆ hal_spi_addr_len_t
◆ hal_spi_attr_t
◆ hal_spi_callback_t
◆ hal_spi_cfg_clk_cpha_t
◆ hal_spi_cfg_clk_cpol_t
◆ hal_spi_cfg_frame_format_t
◆ hal_spi_cfg_sste_t
◆ hal_spi_ctrl_id_t
◆ hal_spi_ctrl_t
◆ hal_spi_dma_cfg_param_t
◆ hal_spi_evt_id_t
◆ hal_spi_extra_attr_t
◆ hal_spi_frame_format_t
◆ hal_spi_frame_size_t
◆ hal_spi_inst_len_t
◆ hal_spi_trans_mode_t
◆ hal_spi_trans_type_t
◆ hal_spi_xfer_data_t
◆ hal_spi_xfer_qspi_param_t
◆ hal_spi_xfer_sspi_param_t
◆ hal_spi_addr_len
SPI地址长度定义。
| 枚举值 |
|---|
| HAL_SPI_ADDR_LEN_0 | 0-位地址长度。
|
| HAL_SPI_ADDR_LEN_4 | 4-位地址长度。
|
| HAL_SPI_ADDR_LEN_8 | 8-位地址长度。
|
| HAL_SPI_ADDR_LEN_12 | 12-位地址长度。
|
| HAL_SPI_ADDR_LEN_16 | 16-位地址长度。
|
| HAL_SPI_ADDR_LEN_20 | 20-位地址长度。
|
| HAL_SPI_ADDR_LEN_24 | 24-位地址长度。
|
| HAL_SPI_ADDR_LEN_28 | 28-位地址长度。
|
| HAL_SPI_ADDR_LEN_32 | 32-位地址长度。
|
| HAL_SPI_ADDR_LEN_36 | 36-位地址长度。
|
| HAL_SPI_ADDR_LEN_40 | 40-位地址长度。
|
| HAL_SPI_ADDR_LEN_44 | 44-位地址长度。
|
| HAL_SPI_ADDR_LEN_48 | 48-位地址长度。
|
| HAL_SPI_ADDR_LEN_52 | 52-位地址长度。
|
| HAL_SPI_ADDR_LEN_56 | 56-位地址长度。
|
| HAL_SPI_ADDR_LEN_60 | 60-位地址长度。
|
| HAL_SPI_ADDR_LEN_MAX | |
◆ hal_spi_cfg_clk_cpha
时钟相位。
| 枚举值 |
|---|
| SPI_CFG_CLK_CPHA_0 | SPI时钟在第一个数据位中间切换。
|
| SPI_CFG_CLK_CPHA_1 | SPI时钟在第一个数据位开始时切换。
|
| SPI_CFG_CLK_CPHA_MAX | |
◆ hal_spi_cfg_clk_cpol
时钟极性。
| 枚举值 |
|---|
| SPI_CFG_CLK_CPOL_0 | SPI的非激活状态为低电平。
|
| SPI_CFG_CLK_CPOL_1 | SPI的非激活状态为高电平。
|
| SPI_CFG_CLK_CPOL_MAX | |
◆ hal_spi_cfg_frame_format
帧格式。
| 枚举值 |
|---|
| SPI_CFG_FRAME_FORMAT_MOTOROLA_SPI | 摩托罗拉SPI帧格式。
|
| SPI_CFG_FRAME_FORMAT_TEXAS_SSP | 德州仪器SSP帧格式。
|
| SPI_CFG_FRAME_FORMAT_NS_MICROWIRE | 国家微线帧格式。
|
| SPI_CFG_FRAME_FORMAT_MAX | |
◆ hal_spi_cfg_sste
SPI 从机选择切换使能
| 枚举值 |
|---|
| SPI_CFG_SSTE_DISABLE | SPI 从机选择切换不使能。 当此配置不使能,主机从从机读取数据时,需要一次性将从机发送 队列中的数据读完,否则会出现丢失数据问题。
|
| SPI_CFG_SSTE_ENABLE | SPI 从机选择切换使能
|
| SPI_CFG_SSTE_MAX | |
◆ hal_spi_ctrl_id
SPI控制ID定义。
| 枚举值 |
|---|
| SPI_CTRL_SET_ATTR | 设置基础参数。
|
| SPI_CTRL_GET_ATTR | 获取基础参数。
|
| SPI_CTRL_SET_EXTRA_ATTR | 设置高级参数。
|
| SPI_CTRL_GET_EXTRA_ATTR | 获取高级参数。
|
| SPI_CTRL_SELECT_SLAVE | 选择指定的设备。
|
| SPI_CTRL_CHECK_FIFO_BUSY | 检查SPI是否忙碌状态。
|
| SPI_CTRL_SET_DMA_CFG | 设置DMA的传输使能和数据level。
|
| SPI_CTRL_GET_DMA_DATA_ADDR | 获取DMA的传输数据地址。
|
| SPI_CTRL_EN_RXFI_INT | 使能RX FIFO是否已满中断。
|
| SPI_CTRL_CHECK_RX_FIFO_EMPTY | 判断RX FIFO是否为空。
|
| SPI_CTRL_EN_TXEI_INT | 使能TX FIFO是否为空中断。
|
| SPI_CTRL_CHECK_TX_FIFO_FULL | 判断RX FIFO是否已满。
|
| SPI_CTRL_EN_MULTI_MASTER_ERR_INT | 使能双主机竞争中断。
|
| SPI_CTRL_SET_TMOD | 设置SPI传输模式。
|
| SPI_CTRL_MAX | |
| SPI_CTRL_ID_INVALID | |
◆ hal_spi_evt_id
HAL层SPI事件ID的定义
| 枚举值 |
|---|
| SPI_EVT_RX_FULL_ISR | 接收满中断触发
|
| SPI_EVT_RX_OVERFLOW_ISR | 接收溢出中断触发
|
| SPI_EVT_RX_UNDERFLOW_ISR | 接收空读中断触发
|
| SPI_EVT_TX_EMPTY_ISR | TX空中断被触发
|
| SPI_EVT_TX_OVERFLOW_ISR | TX溢出中断被触发
|
| SPI_EVT_MULTI_MASTER_ISR | 双主机竞争中断被触发
|
◆ hal_spi_frame_format
SPI数据帧格式。
| 枚举值 |
|---|
| HAL_SPI_FRAME_FORMAT_STANDARD | 标准的单线SPI帧格式。
|
| HAL_SPI_FRAME_FORMAT_DUAL | 双线SPI帧格式。
|
| HAL_SPI_FRAME_FORMAT_QUAD | 4线SPI帧格式。
|
| HAL_SPI_FRAME_FORMAT_OCTAL | 8线SPI帧格式。
|
| HAL_SPI_FRAME_FORMAT_DOUBLE_OCTAL | 16线SPI帧格式。
|
| HAL_SPI_FRAME_FORMAT_SIXT | |
| HAL_SPI_FRAME_FORMAT_MAX_NUM | |
| HAL_SPI_FRAME_FORMAT_NONE | |
◆ hal_spi_frame_size
数据帧长度。
| 枚举值 |
|---|
| HAL_SPI_FRAME_SIZE_8 | 8-位串行数据传输。
|
| HAL_SPI_FRAME_SIZE_16 | 16-位串行数据传输(暂不支持)。
|
| HAL_SPI_FRAME_SIZE_24 | 24-位串行数据传输(暂不支持)。
|
| HAL_SPI_FRAME_SIZE_32 | 32-位串行数据传输。
|
◆ hal_spi_inst_len
SPI指令长度定义。
| 枚举值 |
|---|
| HAL_SPI_INST_LEN_0 | 不携带指令。
|
| HAL_SPI_INST_LEN_4 | 4-位指令。
|
| HAL_SPI_INST_LEN_8 | 8-位指令。
|
| HAL_SPI_INST_LEN_16 | 16-位指令。
|
| HAL_SPI_INST_LEN_MAX | |
◆ hal_spi_trans_mode
传输模式。
| 枚举值 |
|---|
| HAL_SPI_TRANS_MODE_TXRX | 收发模式。
|
| HAL_SPI_TRANS_MODE_TX | 发送模式。
|
| HAL_SPI_TRANS_MODE_RX | 接收模式。
|
| HAL_SPI_TRANS_MODE_EEPROM | EEPROM模式。
|
| HAL_SPI_TRANS_MODE_MAX | |
◆ hal_spi_trans_type
SPI传输类型。
| 枚举值 |
|---|
| HAL_SPI_TRANS_TYPE_INST_S_ADDR_S | 指令和地址使用单线SPI传输。
|
| HAL_SPI_TRANS_TYPE_INST_S_ADDR_Q | 指令使用单线SPI传输, 地址按照帧格式寄存器的配置传输。
|
| HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q | 指令和地址都按照帧格式寄存器的配置传输。
|
| HAL_SPI_TRANS_TYPE_MAX | |
◆ hal_spi_ctrl()
◆ hal_spi_deinit()
◆ hal_spi_init()
◆ hal_spi_read()
HAL层SPI读取数据接口(当timeout为0时会在数据读满或者fifo中没有数据的时候结束)。
◆ hal_spi_regs_init()
◆ hal_spi_write()