CI13LC SDK API手册  2.1.1
本手册用于描述CI13LC SDK各个组件和驱动API
ci13lc_iisdma.h
浏览该文件的文档.
1 
10 #ifndef __CI13LC_IISDMA_H
11 #define __CI13LC_IISDMA_H
12 
13 
14 #include "ci_system.h"
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 #define IIS_DMA_TEST 1
21 
33 typedef enum
34 {
40 
41 
46 typedef enum
47 {
63 
64 
69 typedef enum
70 {
75 }IISDMAChax;
76 
77 
82 typedef enum
83 {
96  /*...*/
102 
103 
108 typedef enum
109 {
116  /*...*/
130 
131 
136 typedef enum
137 {
150 
151  /*.........*/
155 
156 
157 
162 typedef enum
163 {
169 
170 
171 
172 //void IISDMA_DMICModeConfig(IISDMA_TypeDef* IISDMAx, FunctionalState cmd);
173 void IISDMA_ChannelENConfig(IISDMA_TypeDef* IISDMAx, IISDMAChax iisx, \
174  IISDMA_TXRX_ENx iisdma_txrx_sel, FunctionalState cmd);
176  IISDMA_TXRX_ENx iisdma_txrx_sel,FunctionalState cmd);
178  IISDMA_TXRX_ENx iisdma_txrx_sel,FunctionalState cmd);
179 void IISDMA_EN(IISDMA_TypeDef* IISDMAx, FunctionalState cmd);
180 void IISxDMA_RADDR(IISDMA_TypeDef* IISDMAx, IISDMAChax iisx, unsigned int rxaddr);
181 void IISxDMA_RNUM(IISDMA_TypeDef* IISDMAx, IISDMAChax iisx, IISDMA_RXxInterrupt iisrxtointerrupt ,\
182  IISDMA_RXTXxRollbackADDR rollbacktimes,IISDMA_TXRXSingleSIZEx rxsinglesize);
183 void IISxDMA_TADDR0(IISDMA_TypeDef* IISDMAx, IISDMAChax iisx, unsigned int txaddr0);
184 void IISxDMA_TNUM0(IISDMA_TypeDef* IISDMAx, IISDMAChax iisx, IISDMA_RXTXxRollbackADDR rollbackaddr,\
185  IISDMA_TXRXSingleSIZEx txsinglesize);
186 void IISxDMA_TADDR1(IISDMA_TypeDef* IISDMAx, IISDMAChax iisx, unsigned int txaddr1);
187 void IISxDMA_TNUM1(IISDMA_TypeDef* IISDMAx, IISDMAChax iisx, IISDMA_RXTXxRollbackADDR rollbackaddr,\
188  IISDMA_TXRXSingleSIZEx txsinglesize);
189 void IISDMA_PriorityConfig(IISDMA_TypeDef* IISDMAx, IISDMA_Priorityx iisdma_priority);
190 void IISDMA_INT_All_Clear(IISDMA_TypeDef* IISDMAx);
191 void IISDMA_INT_Clear(IISDMA_TypeDef* IISDMAx,unsigned int tmp);
192 int IISDMA_ADDRRollBackSTATE(IISDMA_TypeDef* IISDMAx, IISDMAChax iisx, IISDMA_TXRX_ENx iisdma_txrx_sel);
196  IISDMA_TXADDR_Sel txrestart_addr);
197 void IISDMA_RXTXClear(IISDMA_TypeDef* IISDMAx, IISDMAChax iisx, IISDMA_TXRX_ENx iisdmarxtx);
198 unsigned int IISxDMA_RXADDR(IISDMA_TypeDef* IISDMAx, IISDMAChax iisx);
199 int IISDMA_TX_ADDR_Get(IISDMA_TypeDef* IISDMAx, IISDMAChax iisx);
200 uint32_t Get_IISxDMA_RADDR(IISDMA_TypeDef* IISDMAx, IISDMAChax iisx);
201 //void i2s_dma_straight_to_vad(uint32_t,uint32_t block_times,uint32_t endroll_addr);
202 
203 #if 1//IIS_DMA_TEST
204 typedef struct
205 {
207  uint32_t block_size;
208  /*---------------------------------*/
211  uint8_t iisdma_tx;
216  /*---------------------------------*/
219  uint8_t iisdma_rx;
223 
224 void iisdma_config(iisdma_config_p config);
225 
226 #endif
227 
232 typedef struct
233 {
235  uint32_t addr;
236 }iis_data_t;
237 
238 
239 #ifdef __cplusplus
240 }
241 #endif
242 
243 #endif /*__IISDMA_H*/
244 /***************** (C) COPYRIGHT Chipintelli Technology Co., Ltd. *****END OF FILE****/
使能IISDMA RX
Definition: ci13lc_iisdma.h:38
TXADDR0
Definition: ci13lc_iisdma.h:165
IIS0>IIS2>IIS1
Definition: ci13lc_iisdma.h:51
搬运1024次之后,若开启地址绕回中断,将产生地址绕回中断
Definition: ci13lc_iisdma.h:128
uint32_t block_size
Definition: ci13lc_iisdma.h:207
搬运2次之后,若开启传输完成中断,将产生传输完成中断
Definition: ci13lc_iisdma.h:141
搬运3次之后,若开启地址绕回中断,将产生地址绕回中断
Definition: ci13lc_iisdma.h:115
void iisdma_config(iisdma_config_p config)
IISDMA配置
Definition: ci13lc_iisdma.c:466
int IISDMA_ADDRRollBackSTATE(IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_TXRX_ENx iisdma_txrx_sel)
IISDMA发送/接收传输通道完成一次地址切换的状态
Definition: ci13lc_iisdma.c:370
IISDMA_Priorityx
IISDMA中不同通道的优先级设置
Definition: ci13lc_iisdma.h:46
IISDMA_TXRXSingleSIZEx tx_single_size
Definition: ci13lc_iisdma.h:209
uint32_t iisdma_tx_block_num0
Definition: ci13lc_iisdma.h:213
void IISDMA_ChannelENConfig(IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_TXRX_ENx iisdma_txrx_sel, FunctionalState cmd)
IISDMA某个通道的发送或者接收使能
Definition: ci13lc_iisdma.c:52
void IISDMA_ADDRRollBackINT(IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_TXRX_ENx iisdma_txrx_sel, FunctionalState cmd)
IISDMA发送/接收传输完成,需要进行地址切换的中断使能
Definition: ci13lc_iisdma.c:80
uint32_t iisdma_tx_block_num1
Definition: ci13lc_iisdma.h:215
单次搬运64个byte的数据
Definition: ci13lc_iisdma.h:91
搬运8次之后,若开启传输完成中断,将产生传输完成中断
Definition: ci13lc_iisdma.h:145
int IISDMA_TX_ADDR_Get(IISDMA_TypeDef *IISDMAx, IISDMAChax iisx)
返回当前TX正在传输的地址为TADDR0还是TADDR1
Definition: ci13lc_iisdma.c:343
搬运1次之后,若开启地址绕回中断,将产生地址绕回中断
Definition: ci13lc_iisdma.h:111
Definition: ci13lc_iisdma.h:204
IISDMA_TXRXSingleSIZEx
IISDMA单次搬运的数据大小,16*x个byte,x为1~31
Definition: ci13lc_iisdma.h:82
struct iisdma_config_t * iisdma_config_p
IISDMA_TXADDR_Sel
TADDR0或者TADDR1选择
Definition: ci13lc_iisdma.h:162
int CHECK_IISDMA_DATABUSBUSY(IISDMA_TypeDef *IISDMAx)
IISDMA数据总线busy状态
Definition: ci13lc_iisdma.c:384
void IISxDMA_TXADDRRollbackInterruptClear(IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_TXADDR_Sel txrestart_addr)
清除IISDMA发送内部的传输次数,并选择下一次传输开始的地址为TADDR0或者TADDR1
Definition: ci13lc_iisdma.c:300
IIS0>IIS1>IIS2
Definition: ci13lc_iisdma.h:49
通道1
Definition: ci13lc_iisdma.h:74
uint32_t Get_IISxDMA_RADDR(IISDMA_TypeDef *IISDMAx, IISDMAChax iisx)
返回当前IISDMA数据接收,存储的首地址
Definition: ci13lc_iisdma.c:427
IISDMAChax RxChax
Definition: ci13lc_iisdma.h:218
TXADDR1
Definition: ci13lc_iisdma.h:167
搬运2次之后,若开启地址绕回中断,将产生地址绕回中断
Definition: ci13lc_iisdma.h:113
void IISxDMA_TNUM1(IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_RXTXxRollbackADDR rollbackaddr, IISDMA_TXRXSingleSIZEx txsinglesize)
配置发送通道传输多少次后产生地址切换中断,及每次发送的数据大小
Definition: ci13lc_iisdma.c:254
IISDMA_RXTXxRollbackADDR
IISDMA搬运了多少次(x+1次,x为0~1023)之后,若开启地址绕回中断,将产生地址绕回中断 ...
Definition: ci13lc_iisdma.h:108
Definition: ci13lc.h:355
搬运16次之后,若开启传输完成中断,将产生传输完成中断
Definition: ci13lc_iisdma.h:147
单次搬运96个byte的数据
Definition: ci13lc_iisdma.h:95
搬运32次之后,若开启地址绕回中断,将产生地址绕回中断
Definition: ci13lc_iisdma.h:120
uint32_t iisdma_rx_data_addr
Definition: ci13lc_iisdma.h:220
搬运512次之后,若开启地址绕回中断,将产生地址绕回中断
Definition: ci13lc_iisdma.h:126
uint8_t iisdma_tx
Definition: ci13lc_iisdma.h:211
IISDMA_TXRX_ENx
IISDMA TX或者RX选择
Definition: ci13lc_iisdma.h:33
单次搬运80个byte的数据
Definition: ci13lc_iisdma.h:93
搬运64次之后,若开启地址绕回中断,将产生地址绕回中断
Definition: ci13lc_iisdma.h:124
搬运3次之后,若开启传输完成中断,将产生传输完成中断
Definition: ci13lc_iisdma.h:143
通道0
Definition: ci13lc_iisdma.h:72
搬运16次之后,若开启地址绕回中断,将产生地址绕回中断
Definition: ci13lc_iisdma.h:118
unsigned int IISxDMA_RXADDR(IISDMA_TypeDef *IISDMAx, IISDMAChax iisx)
返回IISDMA接收通道上次传输BM端最后一个数据的地址信息
Definition: ci13lc_iisdma.c:414
IISDMA_RXxInterrupt
IISDMA传输多少次(x+1次,x为0~31)之后,若开启传输完成中断,来传输完成中断
Definition: ci13lc_iisdma.h:136
IIS2>IIS0>IIS1
Definition: ci13lc_iisdma.h:57
IISDMA_TypeDef * IISDMAx
Definition: ci13lc_iisdma.h:206
IISDMAChax TxChax
Definition: ci13lc_iisdma.h:210
IIS0>IIS1>IIS2
Definition: ci13lc_iisdma.h:61
chip级定义
IISDMAChax
每个IISDMA对应的通道
Definition: ci13lc_iisdma.h:69
搬运20次之后,若开启传输完成中断,将产生传输完成中断
Definition: ci13lc_iisdma.h:149
单次搬运48个byte的数据
Definition: ci13lc_iisdma.h:89
Definition: ci13lc_iisdma.h:232
IIS2>IIS1>IIS0
Definition: ci13lc_iisdma.h:59
IIS1>IIS0>IIS2
Definition: ci13lc_iisdma.h:53
void IISDMA_INT_Clear(IISDMA_TypeDef *IISDMAx, unsigned int tmp)
IISDMA单独清除某个通道的中断
Definition: ci13lc_iisdma.c:285
搬运32次之后,若开启传输完成中断,将产生传输完成中断
Definition: ci13lc_iisdma.h:153
使能IISDMA TX
Definition: ci13lc_iisdma.h:36
uint32_t iisdma_tx_data_addr0
Definition: ci13lc_iisdma.h:212
uint8_t iisdma_rx
Definition: ci13lc_iisdma.h:219
单次搬运128个byte的数据
Definition: ci13lc_iisdma.h:98
void IISDMA_RXTXClear(IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_TXRX_ENx iisdmarxtx)
清除IISDMA接收/发送的传输次数,清除之后,发送和接收的地址为当前配置的地址
Definition: ci13lc_iisdma.c:324
搬运40次之后,若开启地址绕回中断,将产生地址绕回中断
Definition: ci13lc_iisdma.h:122
搬运1次之后,若开启传输完成中断,将产生传输完成中断
Definition: ci13lc_iisdma.h:139
void IISxDMA_RADDR(IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, unsigned int rxaddr)
IISDMA接收地址配置
Definition: ci13lc_iisdma.c:156
单次搬运16个byte的数据
Definition: ci13lc_iisdma.h:85
void IISDMA_PriorityConfig(IISDMA_TypeDef *IISDMAx, IISDMA_Priorityx iisdma_priority)
IISDMA优先级设置
Definition: ci13lc_iisdma.c:355
void IISxDMA_RNUM(IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_RXxInterrupt iisrxtointerrupt, IISDMA_RXTXxRollbackADDR rollbacktimes, IISDMA_TXRXSingleSIZEx rxsinglesize)
IISDMA接收数据长度配置
Definition: ci13lc_iisdma.c:176
IIS1>IIS2>IIS0
Definition: ci13lc_iisdma.h:55
void IISxDMA_TNUM0(IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_RXTXxRollbackADDR rollbackaddr, IISDMA_TXRXSingleSIZEx txsinglesize)
配置发送通道传输多少次后产生地址切换中断,及每次发送的数据大小
Definition: ci13lc_iisdma.c:215
单次搬运32个byte的数据
Definition: ci13lc_iisdma.h:87
FunctionalState
Definition: ci_system.h:46
IISDMA_TXRXSingleSIZEx rx_single_size
Definition: ci13lc_iisdma.h:217
单次搬运496个byte的数据
Definition: ci13lc_iisdma.h:100
uint32_t iisdma_tx_data_addr1
Definition: ci13lc_iisdma.h:214
IISDMAChax cha
Definition: ci13lc_iisdma.h:234
uint32_t addr
Definition: ci13lc_iisdma.h:235
void IISxDMA_TADDR1(IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, unsigned int txaddr1)
IISDMA TADDR1 发送地址寄存器配置
Definition: ci13lc_iisdma.c:235
void IISDMA_ChannelIntENConfig(IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_TXRX_ENx iisdma_txrx_sel, FunctionalState cmd)
IISDMA发送/接收通道数据传输完成一次中断使能
Definition: ci13lc_iisdma.c:108
void IISDMA_INT_All_Clear(IISDMA_TypeDef *IISDMAx)
IISDMA所有中断状态清除
Definition: ci13lc_iisdma.c:272
void IISDMA_RXCompleteClear(IISDMA_TypeDef *IISDMAx, IISDMAChax iisx)
清除IISDMA接收通道完成传输的计数
Definition: ci13lc_iisdma.c:397
void IISxDMA_TADDR0(IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, unsigned int txaddr0)
IISDMA TADDR0 发送地址寄存器配置
Definition: ci13lc_iisdma.c:196
void IISDMA_EN(IISDMA_TypeDef *IISDMAx, FunctionalState cmd)
IISDMA使能控制
Definition: ci13lc_iisdma.c:132
uint32_t iisdma_rx_block_num
Definition: ci13lc_iisdma.h:221