WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
i2s.h
浏览该文件的文档.
1
10#ifndef I2S_H
11#define I2S_H
12
13#include <stdint.h>
14#include <stdbool.h>
15#include "errcode.h"
16#include "sio_porting.h"
17
18#ifdef __cplusplus
19#if __cplusplus
20extern "C" {
21#endif /* __cplusplus */
22#endif /* __cplusplus */
23
45
53typedef struct i2s_tx_data {
54 uint32_t *left_buff;
56 uint32_t *right_buff;
58 uint32_t length;
61
69typedef struct i2s_config {
70 uint8_t drive_mode;
77 uint8_t transfer_mode;
84 uint8_t data_width;
99 uint8_t channels_num;
110 uint8_t timing;
117 uint8_t clk_edge;
124 uint8_t div_number;
129
143typedef void (*i2s_callback_t)(uint32_t *left_buff, uint32_t *right_buff, uint32_t length);
144
161
176
193
210
227
242
259
276
277#if defined(CONFIG_I2S_SUPPORT_LOOPBACK) && (CONFIG_I2S_SUPPORT_LOOPBACK == 1)
293errcode_t uapi_i2s_loopback(sio_bus_t bus, bool en);
294#endif /* CONFIG_I2S_SUPPORT_LOOPBACK */
295
296#if defined(CONFIG_I2S_SUPPORT_DMA)
304typedef struct i2s_dma_config {
305 uint8_t src_width;
314 uint8_t dest_width;
323 uint8_t burst_length;
336 uint8_t priority;
338} i2s_dma_config_t;
339
347typedef struct i2s_dma_attr {
348 bool tx_dma_enable;
352 uint8_t tx_int_threshold;
354 bool rx_dma_enable;
358 uint8_t rx_int_threshold;
360} i2s_dma_attr_t;
361
377int32_t uapi_i2s_dma_config(sio_bus_t bus, i2s_dma_attr_t *i2s_dma_cfg);
378
402int32_t uapi_i2s_merge_write_by_dma(sio_bus_t bus, const void *buffer, uint32_t length,
403 i2s_dma_config_t *dma_cfg, uintptr_t arg, bool block);
404
428int32_t uapi_i2s_merge_read_by_dma(sio_bus_t bus, const void *buffer, uint32_t length,
429 i2s_dma_config_t *dma_cfg, uintptr_t arg, bool block);
430#endif
431
436#ifdef __cplusplus
437#if __cplusplus
438}
439#endif /* __cplusplus */
440#endif /* __cplusplus */
441
442#endif
sio_bus_t
SIO(I2S/PCM) Bus.
Definition platform_core.h:254
uint32_t errcode_t
Definition of error code.
Definition errcode.h:30
struct i2s_rx_data i2s_rx_data_t
I2S RX 传输结构体。
errcode_t uapi_i2s_init(sio_bus_t bus, i2s_callback_t callback)
初始化I2S。
Definition i2s.c:51
struct i2s_tx_data i2s_tx_data_t
I2S TX 传输结构体。
errcode_t uapi_i2s_write_data(sio_bus_t bus, i2s_tx_data_t *data)
轮询模式下写入数据。
Definition i2s.c:163
errcode_t uapi_i2s_deinit(sio_bus_t bus)
去初始化I2S。
Definition i2s.c:75
struct i2s_config i2s_config_t
I2S 配置定义。
errcode_t uapi_i2s_get_config(sio_bus_t bus, i2s_config_t *config)
获取I2S设备配置信息。
Definition i2s.c:120
errcode_t uapi_i2s_get_data(sio_bus_t bus, i2s_rx_data_t *data)
获取中断模式下I2S设备接收的数据。
Definition i2s.c:143
errcode_t uapi_i2s_loop_trans(sio_bus_t bus, i2s_tx_data_t *data)
I2S回路自测。
Definition i2s.c:195
errcode_t uapi_i2s_read_start(sio_bus_t bus)
中断模式下读取数据。
Definition i2s.c:181
errcode_t uapi_i2s_set_config(sio_bus_t bus, const i2s_config_t *config)
设置I2S设备的配置信息。
Definition i2s.c:97
void(* i2s_callback_t)(uint32_t *left_buff, uint32_t *right_buff, uint32_t length)
I2S设备的回调函数。
Definition i2s.h:143
#define CONFIG_DATA_LEN_MAX
Definition sio_porting.h:59
I2S 配置定义。
Definition i2s.h:69
uint8_t data_width
Definition i2s.h:84
uint8_t number_of_channels
Definition i2s.h:126
uint8_t transfer_mode
Definition i2s.h:77
uint8_t clk_edge
Definition i2s.h:117
uint8_t channels_num
Definition i2s.h:99
uint8_t drive_mode
Definition i2s.h:70
uint8_t timing
Definition i2s.h:110
uint8_t div_number
Definition i2s.h:124
I2S RX 传输结构体。
Definition i2s.h:37
uint32_t left_buff[CONFIG_DATA_LEN_MAX]
Definition i2s.h:38
uint32_t length
Definition i2s.h:42
uint32_t right_buff[CONFIG_DATA_LEN_MAX]
Definition i2s.h:40
I2S TX 传输结构体。
Definition i2s.h:53
uint32_t length
Definition i2s.h:58
uint32_t * right_buff
Definition i2s.h:56
uint32_t * left_buff
Definition i2s.h:54
unsigned int uintptr_t
Definition td_type.h:65
Definition hal_uart_v151_regs_def.h:38