WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
hal_spi.h
浏览该文件的文档.
1
9#ifndef HAL_SPI_H
10#define HAL_SPI_H
11
12#include <stdint.h>
13#include <stdbool.h>
14#include "errcode.h"
15#include "common_def.h"
16#include "spi_porting.h"
17
18#ifdef __cplusplus
19#if __cplusplus
20extern "C" {
21#endif /* __cplusplus */
22#endif /* __cplusplus */
23
37typedef enum hal_spi_ctrl_id {
55#if defined(CONFIG_SPI_SUPPORT_DMA) && (CONFIG_SPI_SUPPORT_DMA == 1)
61#endif /* CONFIG_SPI_SUPPORT_DMA */
62
63#if defined(CONFIG_SPI_SUPPORT_INTERRUPT) && (CONFIG_SPI_SUPPORT_INTERRUPT == 1)
78#endif /* CONFIG_SPI_SUPPORT_INTERRUPT */
79
80#if defined(CONFIG_SPI_SUPPORT_LPM) && (CONFIG_SPI_SUPPORT_LPM == 1)
81 SPI_CTRL_SUSPEND,
83 SPI_CTRL_RESUME,
85#endif /* CONFIG_SPI_SUPPORT_LPM */
91
110
126
142
162
184
205
232
254
276
334
356
377
389
397typedef struct hal_spi_attr {
398 bool is_slave;
401 uint32_t slave_num;
413 uint32_t bus_clk;
416 uint32_t freq_mhz;
419 uint32_t clk_polarity;
423 uint32_t clk_phase;
427 uint32_t frame_format;
435 uint32_t frame_size;
439 uint32_t tmod;
443 uint32_t ndf;
446 uint32_t sste;
456
477
485typedef struct hal_spi_xfer_data {
486 uint8_t *tx_buff;
488 uint32_t tx_bytes;
499 uint8_t *rx_buff;
501 uint32_t rx_bytes;
512 uint8_t cmd;
514 uint8_t reserved[3];
516 uint32_t addr;
519
520#if defined(CONFIG_SPI_SUPPORT_DMA) && (CONFIG_SPI_SUPPORT_DMA == 1)
536#endif /* CONFIG_SPI_SUPPORT_DMA */
537
556
575
596 const hal_spi_extra_attr_t *extra_attr, hal_spi_callback_t callback);
597
612
631
650
669
682
687#ifdef __cplusplus
688#if __cplusplus
689}
690#endif /* __cplusplus */
691#endif /* __cplusplus */
692
693#endif
spi_bus_t
Definition of SPI bus index.
Definition platform_core.h:238
uint32_t errcode_t
Definition of error code.
Definition errcode.h:30
hal_spi_trans_mode
传输模式。
Definition hal_spi.h:170
hal_spi_trans_type
SPI传输类型。
Definition hal_spi.h:240
hal_spi_cfg_sste
SPI 从机选择切换使能
Definition hal_spi.h:150
hal_spi_ctrl_id
SPI控制ID定义。
Definition hal_spi.h:37
errcode_t hal_spi_deinit(spi_bus_t bus)
HAL层SPI的去初始化接口。
hal_spi_evt_id
HAL层SPI事件ID的定义
Definition hal_spi.h:342
hal_spi_frame_format
SPI数据帧格式。
Definition hal_spi.h:213
hal_spi_cfg_frame_format
帧格式。
Definition hal_spi.h:99
enum hal_spi_cfg_frame_format hal_spi_cfg_frame_format_t
帧格式。
struct hal_spi_xfer_qspi_param hal_spi_xfer_qspi_param_t
SPI传输中QSPI的参数。
errcode_t hal_spi_regs_init(void)
初始化寄存器基地址列表。
Definition hal_spi.c:14
errcode_t hal_spi_init(spi_bus_t bus, const hal_spi_attr_t *attr, const hal_spi_extra_attr_t *extra_attr, hal_spi_callback_t callback)
HAL层SPI的初始化接口。
errcode_t hal_spi_read(spi_bus_t bus, hal_spi_xfer_data_t *data, uint32_t timeout)
HAL层SPI读取数据接口(当timeout为0时会在数据读满或者fifo中没有数据的时候结束)。
enum hal_spi_addr_len hal_spi_addr_len_t
SPI地址长度定义。
struct hal_spi_xfer_data hal_spi_xfer_data_t
SPI传输结构体。
enum hal_spi_ctrl_id hal_spi_ctrl_id_t
SPI控制ID定义。
enum hal_spi_cfg_sste hal_spi_cfg_sste_t
SPI 从机选择切换使能
enum hal_spi_cfg_clk_cpol hal_spi_cfg_clk_cpol_t
时钟极性。
struct hal_spi_attr hal_spi_attr_t
SPI基础配置参数定义。
hal_spi_addr_len
SPI地址长度定义。
Definition hal_spi.h:284
hal_spi_cfg_clk_cpha
时钟相位。
Definition hal_spi.h:134
enum hal_spi_frame_size hal_spi_frame_size_t
数据帧长度。
hal_spi_frame_size
数据帧长度。
Definition hal_spi.h:192
hal_spi_cfg_clk_cpol
时钟极性。
Definition hal_spi.h:118
struct hal_spi_dma_cfg_param hal_spi_dma_cfg_param_t
SPI传输中DMA SPI的参数。
errcode_t(* hal_spi_callback_t)(spi_bus_t bus, hal_spi_evt_id_t evt, uintptr_t param)
SPI的回调函数
Definition hal_spi.h:555
errcode_t hal_spi_ctrl(spi_bus_t bus, hal_spi_ctrl_id_t id, uintptr_t param)
HAL层SPI控制接口。
enum hal_spi_frame_format hal_spi_frame_format_t
SPI数据帧格式。
enum hal_spi_evt_id hal_spi_evt_id_t
HAL层SPI事件ID的定义
errcode_t(* hal_spi_ctrl_t)(spi_bus_t bus, hal_spi_ctrl_id_t id, uintptr_t param)
HAL层SPI控制接口。
Definition hal_spi.h:574
hal_spi_inst_len
SPI指令长度定义。
Definition hal_spi.h:262
enum hal_spi_trans_mode hal_spi_trans_mode_t
传输模式。
enum hal_spi_inst_len hal_spi_inst_len_t
SPI指令长度定义。
errcode_t hal_spi_write(spi_bus_t bus, hal_spi_xfer_data_t *data, uint32_t timeout)
HAL层SPI发送数据接口。
struct hal_spi_extra_attr hal_spi_extra_attr_t
SPI扩展配置参数定义。
enum hal_spi_trans_type hal_spi_trans_type_t
SPI传输类型。
struct hal_spi_xfer_sspi_param hal_spi_xfer_sspi_param_t
SPI传输中Single SPI的参数。
enum hal_spi_cfg_clk_cpha hal_spi_cfg_clk_cpha_t
时钟相位。
@ HAL_SPI_TRANS_MODE_MAX
Definition hal_spi.h:182
@ HAL_SPI_TRANS_MODE_EEPROM
Definition hal_spi.h:180
@ HAL_SPI_TRANS_MODE_TXRX
Definition hal_spi.h:171
@ HAL_SPI_TRANS_MODE_RX
Definition hal_spi.h:177
@ HAL_SPI_TRANS_MODE_TX
Definition hal_spi.h:174
@ HAL_SPI_TRANS_TYPE_INST_S_ADDR_Q
Definition hal_spi.h:244
@ HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q
Definition hal_spi.h:249
@ HAL_SPI_TRANS_TYPE_MAX
Definition hal_spi.h:252
@ HAL_SPI_TRANS_TYPE_INST_S_ADDR_S
Definition hal_spi.h:241
@ SPI_CFG_SSTE_MAX
Definition hal_spi.h:160
@ SPI_CFG_SSTE_DISABLE
Definition hal_spi.h:151
@ SPI_CFG_SSTE_ENABLE
Definition hal_spi.h:158
@ SPI_CTRL_EN_TXEI_INT
Definition hal_spi.h:70
@ SPI_CTRL_EN_RXFI_INT
Definition hal_spi.h:64
@ SPI_CTRL_GET_DMA_DATA_ADDR
Definition hal_spi.h:59
@ SPI_CTRL_SELECT_SLAVE
Definition hal_spi.h:50
@ SPI_CTRL_SET_DMA_CFG
Definition hal_spi.h:56
@ SPI_CTRL_EN_MULTI_MASTER_ERR_INT
Definition hal_spi.h:76
@ SPI_CTRL_GET_EXTRA_ATTR
Definition hal_spi.h:47
@ SPI_CTRL_SET_EXTRA_ATTR
Definition hal_spi.h:44
@ SPI_CTRL_MAX
Definition hal_spi.h:88
@ SPI_CTRL_CHECK_FIFO_BUSY
Definition hal_spi.h:53
@ SPI_CTRL_CHECK_TX_FIFO_FULL
Definition hal_spi.h:73
@ SPI_CTRL_SET_TMOD
Definition hal_spi.h:86
@ SPI_CTRL_ID_INVALID
Definition hal_spi.h:89
@ SPI_CTRL_CHECK_RX_FIFO_EMPTY
Definition hal_spi.h:67
@ SPI_CTRL_GET_ATTR
Definition hal_spi.h:41
@ SPI_CTRL_SET_ATTR
Definition hal_spi.h:38
@ SPI_EVT_MULTI_MASTER_ISR
Definition hal_spi.h:353
@ SPI_EVT_RX_OVERFLOW_ISR
Definition hal_spi.h:345
@ SPI_EVT_TX_EMPTY_ISR
Definition hal_spi.h:349
@ SPI_EVT_RX_FULL_ISR
Definition hal_spi.h:343
@ SPI_EVT_RX_UNDERFLOW_ISR
Definition hal_spi.h:347
@ SPI_EVT_TX_OVERFLOW_ISR
Definition hal_spi.h:351
@ HAL_SPI_FRAME_FORMAT_STANDARD
Definition hal_spi.h:214
@ HAL_SPI_FRAME_FORMAT_NONE
Definition hal_spi.h:230
@ HAL_SPI_FRAME_FORMAT_DOUBLE_OCTAL
Definition hal_spi.h:226
@ HAL_SPI_FRAME_FORMAT_QUAD
Definition hal_spi.h:220
@ HAL_SPI_FRAME_FORMAT_OCTAL
Definition hal_spi.h:223
@ HAL_SPI_FRAME_FORMAT_SIXT
Definition hal_spi.h:228
@ HAL_SPI_FRAME_FORMAT_MAX_NUM
Definition hal_spi.h:229
@ HAL_SPI_FRAME_FORMAT_DUAL
Definition hal_spi.h:217
@ SPI_CFG_FRAME_FORMAT_TEXAS_SSP
Definition hal_spi.h:103
@ SPI_CFG_FRAME_FORMAT_NS_MICROWIRE
Definition hal_spi.h:106
@ SPI_CFG_FRAME_FORMAT_MOTOROLA_SPI
Definition hal_spi.h:100
@ SPI_CFG_FRAME_FORMAT_MAX
Definition hal_spi.h:108
@ HAL_SPI_ADDR_LEN_4
Definition hal_spi.h:288
@ HAL_SPI_ADDR_LEN_8
Definition hal_spi.h:291
@ HAL_SPI_ADDR_LEN_40
Definition hal_spi.h:315
@ HAL_SPI_ADDR_LEN_0
Definition hal_spi.h:285
@ HAL_SPI_ADDR_LEN_16
Definition hal_spi.h:297
@ HAL_SPI_ADDR_LEN_44
Definition hal_spi.h:318
@ HAL_SPI_ADDR_LEN_52
Definition hal_spi.h:324
@ HAL_SPI_ADDR_LEN_32
Definition hal_spi.h:309
@ HAL_SPI_ADDR_LEN_20
Definition hal_spi.h:300
@ HAL_SPI_ADDR_LEN_56
Definition hal_spi.h:327
@ HAL_SPI_ADDR_LEN_48
Definition hal_spi.h:321
@ HAL_SPI_ADDR_LEN_MAX
Definition hal_spi.h:332
@ HAL_SPI_ADDR_LEN_28
Definition hal_spi.h:306
@ HAL_SPI_ADDR_LEN_12
Definition hal_spi.h:294
@ HAL_SPI_ADDR_LEN_36
Definition hal_spi.h:312
@ HAL_SPI_ADDR_LEN_24
Definition hal_spi.h:303
@ HAL_SPI_ADDR_LEN_60
Definition hal_spi.h:330
@ SPI_CFG_CLK_CPHA_0
Definition hal_spi.h:135
@ SPI_CFG_CLK_CPHA_1
Definition hal_spi.h:138
@ SPI_CFG_CLK_CPHA_MAX
Definition hal_spi.h:140
@ HAL_SPI_FRAME_SIZE_8
Definition hal_spi.h:193
@ HAL_SPI_FRAME_SIZE_24
Definition hal_spi.h:199
@ HAL_SPI_FRAME_SIZE_32
Definition hal_spi.h:202
@ HAL_SPI_FRAME_SIZE_16
Definition hal_spi.h:196
@ SPI_CFG_CLK_CPOL_1
Definition hal_spi.h:122
@ SPI_CFG_CLK_CPOL_0
Definition hal_spi.h:119
@ SPI_CFG_CLK_CPOL_MAX
Definition hal_spi.h:124
@ HAL_SPI_INST_LEN_16
Definition hal_spi.h:272
@ HAL_SPI_INST_LEN_MAX
Definition hal_spi.h:274
@ HAL_SPI_INST_LEN_0
Definition hal_spi.h:263
@ HAL_SPI_INST_LEN_8
Definition hal_spi.h:269
@ HAL_SPI_INST_LEN_4
Definition hal_spi.h:266
SPI基础配置参数定义。
Definition hal_spi.h:397
uint32_t tmod
Definition hal_spi.h:439
uint32_t spi_frame_format
Definition hal_spi.h:431
uint32_t freq_mhz
Definition hal_spi.h:416
uint32_t ndf
Definition hal_spi.h:443
uint32_t slave_num
Definition hal_spi.h:401
uint32_t bus_clk
Definition hal_spi.h:413
uint32_t clk_phase
Definition hal_spi.h:423
bool is_slave
Definition hal_spi.h:398
uint32_t sste
Definition hal_spi.h:446
uint32_t frame_format
Definition hal_spi.h:427
uint32_t frame_size
Definition hal_spi.h:435
uint32_t clk_polarity
Definition hal_spi.h:419
SPI传输中DMA SPI的参数。
Definition hal_spi.h:528
uint8_t dma_tx_level
Definition hal_spi.h:533
uint8_t dma_rx_level
Definition hal_spi.h:531
bool is_enable
Definition hal_spi.h:529
SPI扩展配置参数定义。
Definition hal_spi.h:464
bool rx_use_dma
Definition hal_spi.h:468
bool tx_use_dma
Definition hal_spi.h:465
hal_spi_xfer_sspi_param_t sspi_param
Definition hal_spi.h:474
hal_spi_xfer_qspi_param_t qspi_param
Definition hal_spi.h:471
SPI传输结构体。
Definition hal_spi.h:485
uint8_t reserved[3]
Definition hal_spi.h:514
uint8_t * tx_buff
Definition hal_spi.h:486
uint32_t addr
Definition hal_spi.h:516
uint32_t tx_bytes
Definition hal_spi.h:488
uint32_t rx_bytes
Definition hal_spi.h:501
uint8_t * rx_buff
Definition hal_spi.h:499
uint8_t cmd
Definition hal_spi.h:512
SPI传输中QSPI的参数。
Definition hal_spi.h:364
hal_spi_inst_len_t inst_len
Definition hal_spi.h:368
hal_spi_addr_len_t addr_len
Definition hal_spi.h:371
uint32_t wait_cycles
Definition hal_spi.h:374
hal_spi_trans_type_t trans_type
Definition hal_spi.h:365
SPI传输中Single SPI的参数。
Definition hal_spi.h:385
uint32_t wait_cycles
Definition hal_spi.h:386
unsigned int uintptr_t
Definition td_type.h:65
Definition hal_uart_v151_regs_def.h:38