CI130X SDK API手册  2.2.0
本手册用于描述CI130X SDK各个组件和驱动API
结构体 | 类型定义 | 枚举 | 函数
ci130x_iisdma

CI130X芯片iisdma驱动 更多...

结构体

struct  iisdma_config_t
 IISDMA配置结构体 更多...
 

类型定义

typedef struct iisdma_config_tiisdma_config_p
 

枚举

enum  IISDMA_TXRX_ENx {
  IISxDMA_TX_EN =1,
  IISxDMA_RX_EN =0
}
 IISDMA TX或者RX选择 更多...
 
enum  IISDMA_Priorityx {
  IISDMA_Priority0 =0,
  IISDMA_Priority1,
  IISDMA_Priority2,
  IISDMA_Priority3,
  IISDMA_Priority4,
  IISDMA_Priority5,
  IISDMA_Priority6
}
 IISDMA中不同通道的优先级设置 更多...
 
enum  IISDMAChax {
  IISDMACha0 =0,
  IISDMACha1 =1,
  IISDMACha2 =2
}
 每个IISDMA对应的通道 更多...
 
enum  IISDMA_TXRXSingleSIZEx {
  IISDMA_TXRXSINGLESIZE16bytes =1,
  IISDMA_TXRXSINGLESIZE32bytes =2,
  IISDMA_TXRXSINGLESIZE48bytes =3,
  IISDMA_TXRXSINGLESIZE64bytes =4,
  IISDMA_TXRXSINGLESIZE80bytes =5,
  IISDMA_TXRXSINGLESIZE96bytes =6,
  IISDMA_TXRXSINGLESIZE128bytes =8,
  IISDMA_TXRXSINGLESIZE496bytes =31
}
 IISDMA单次搬运的数据大小,16*x个byte,x为1~31 更多...
 
enum  IISDMA_RXTXxRollbackADDR {
  IISDMA_RXTX1RollbackADDR =0,
  IISDMA_RXTX2RollbackADDR =1,
  IISDMA_RXTX3RollbackADDR =2,
  IISDMA_RXTX16RollbackADDR =15,
  IISDMA_RXTX32RollbackADDR =31,
  IISDMA_RXTX40RollbackADDR =39,
  IISDMA_RXTX64RollbackADDR =63,
  IISDMA_RXTX512RollbackADDR =511,
  IISDMA_RXTX1024RollbackADDR =1023
}
 IISDMA搬运了多少次(x+1次,x为0~1023)之后,若开启地址绕回中断,将产生地址绕回中断 更多...
 
enum  IISDMA_RXxInterrupt {
  IISDMA_RX1Interrupt =0,
  IISDMA_RX2Interrupt =1,
  IISDMA_RX3Interrupt =2,
  IISDMA_RX8Interrupt =7,
  IISDMA_RX16Interrupt =15,
  IISDMA_RX20Interrupt =19,
  IISDMA_RX32Interrupt =31
}
 IISDMA传输多少次(x+1次,x为0~31)之后,若开启传输完成中断,来传输完成中断 更多...
 
enum  IISDMA_TXADDR_Sel {
  IISDMA_TXAAD_Sel_ADDR0 =0,
  IISDMA_TXAAD_Sel_ADDR1 =1
}
 TADDR0或者TADDR1选择 更多...
 

函数

void IISDMA_ChannelENConfig (IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_TXRX_ENx iisdma_txrx_sel, FunctionalState cmd)
 IISDMA某个通道的发送或者接收使能 更多...
 
void IISDMA_ADDRRollBackINT (IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_TXRX_ENx iisdma_txrx_sel, FunctionalState cmd)
 IISDMA发送/接收传输完成,需要进行地址切换的中断使能 更多...
 
void IISDMA_ChannelIntENConfig (IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_TXRX_ENx iisdma_txrx_sel, FunctionalState cmd)
 IISDMA发送/接收通道数据传输完成一次中断使能 更多...
 
void IISDMA_EN (IISDMA_TypeDef *IISDMAx, FunctionalState cmd)
 IISDMA使能控制 更多...
 
void IISxDMA_RADDR (IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, unsigned int rxaddr)
 IISDMA接收地址配置 更多...
 
void IISxDMA_RNUM (IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_RXxInterrupt iisrxtointerrupt, IISDMA_RXTXxRollbackADDR rollbacktimes, IISDMA_TXRXSingleSIZEx rxsinglesize)
 IISDMA接收数据长度配置 更多...
 
void IISxDMA_TADDR0 (IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, unsigned int txaddr0)
 IISDMA TADDR0 发送地址寄存器配置 更多...
 
void IISxDMA_TNUM0 (IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_RXTXxRollbackADDR rollbackaddr, IISDMA_TXRXSingleSIZEx txsinglesize)
 配置发送通道传输多少次后产生地址切换中断,及每次发送的数据大小 更多...
 
void IISxDMA_TADDR1 (IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, unsigned int txaddr1)
 IISDMA TADDR1 发送地址寄存器配置 更多...
 
void IISxDMA_TNUM1 (IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_RXTXxRollbackADDR rollbackaddr, IISDMA_TXRXSingleSIZEx txsinglesize)
 配置发送通道传输多少次后产生地址切换中断,及每次发送的数据大小 更多...
 
void IISDMA_PriorityConfig (IISDMA_TypeDef *IISDMAx, IISDMA_Priorityx iisdma_priority)
 IISDMA优先级设置 更多...
 
void IISDMA_INT_All_Clear (IISDMA_TypeDef *IISDMAx)
 IISDMA所有中断状态清除 更多...
 
void IISDMA_INT_Clear (IISDMA_TypeDef *IISDMAx, unsigned int tmp)
 IISDMA单独清除某个通道的中断 更多...
 
int IISDMA_ADDRRollBackSTATE (IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_TXRX_ENx iisdma_txrx_sel)
 IISDMA发送/接收传输通道完成一次地址切换的状态 更多...
 
int CHECK_IISDMA_DATABUSBUSY (IISDMA_TypeDef *IISDMAx)
 IISDMA数据总线busy状态 更多...
 
void IISDMA_RXCompleteClear (IISDMA_TypeDef *IISDMAx, IISDMAChax iisx)
 清除IISDMA接收通道完成传输的计数 更多...
 
void IISxDMA_TXADDRRollbackInterruptClear (IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_TXADDR_Sel txrestart_addr)
 清除IISDMA发送内部的传输次数,并选择下一次传输开始的地址为TADDR0或者TADDR1 更多...
 
void IISDMA_RXTXClear (IISDMA_TypeDef *IISDMAx, IISDMAChax iisx, IISDMA_TXRX_ENx iisdmarxtx)
 清除IISDMA接收/发送的传输次数,清除之后,发送和接收的地址为当前配置的地址 更多...
 
unsigned int IISxDMA_RXADDR (IISDMA_TypeDef *IISDMAx, IISDMAChax iisx)
 返回IISDMA接收通道上次传输BM端最后一个数据的地址信息 更多...
 
int IISDMA_TX_ADDR_Get (IISDMA_TypeDef *IISDMAx, IISDMAChax iisx)
 返回当前TX正在传输的地址为TADDR0还是TADDR1 更多...
 
uint32_t Get_IISxDMA_RADDR (IISDMA_TypeDef *IISDMAx, IISDMAChax iisx)
 返回当前IISDMA数据接收,存储的首地址 更多...
 
void iisdma_config (iisdma_config_p config)
 IISDMA配置 更多...
 

详细描述

CI130X芯片iisdma驱动


结构体说明

◆ iisdma_config_t

struct iisdma_config_t

IISDMA配置结构体

成员变量
uint32_t block_size

音频数据大小

uint8_t iisdma_rx

RX通道配置开关

uint32_t iisdma_rx_block_num

RX接收block数量

uint32_t iisdma_rx_data_addr

RX接收起始地址

uint8_t iisdma_tx

TX通道配置开关

uint32_t iisdma_tx_block_num0

TX发送block数量0

uint32_t iisdma_tx_block_num1

TX发送block数量1

uint32_t iisdma_tx_data_addr0

TX发送地址0

uint32_t iisdma_tx_data_addr1

TX发送地址1

IISDMA_TypeDef * IISDMAx

IISDMA控制器

IISDMA_TXRXSingleSIZEx rx_single_size

RX单次搬运的数据大小

IISDMAChax RxChax

RX通道选择

IISDMA_TXRXSingleSIZEx tx_single_size

TX单次搬运的数据大小

IISDMAChax TxChax

TX通道选择

类型定义说明

◆ iisdma_config_p

枚举类型说明

◆ IISDMA_Priorityx

IISDMA中不同通道的优先级设置

枚举值
IISDMA_Priority0 

IIS0>IIS1>IIS2

IISDMA_Priority1 

IIS0>IIS2>IIS1

IISDMA_Priority2 

IIS1>IIS0>IIS2

IISDMA_Priority3 

IIS1>IIS2>IIS0

IISDMA_Priority4 

IIS2>IIS0>IIS1

IISDMA_Priority5 

IIS2>IIS1>IIS0

IISDMA_Priority6 

IIS0>IIS1>IIS2

◆ IISDMA_RXTXxRollbackADDR

IISDMA搬运了多少次(x+1次,x为0~1023)之后,若开启地址绕回中断,将产生地址绕回中断

枚举值
IISDMA_RXTX1RollbackADDR 

搬运1次之后,若开启地址绕回中断,将产生地址绕回中断

IISDMA_RXTX2RollbackADDR 

搬运2次之后,若开启地址绕回中断,将产生地址绕回中断

IISDMA_RXTX3RollbackADDR 

搬运3次之后,若开启地址绕回中断,将产生地址绕回中断

IISDMA_RXTX16RollbackADDR 

搬运16次之后,若开启地址绕回中断,将产生地址绕回中断

IISDMA_RXTX32RollbackADDR 

搬运32次之后,若开启地址绕回中断,将产生地址绕回中断

IISDMA_RXTX40RollbackADDR 

搬运40次之后,若开启地址绕回中断,将产生地址绕回中断

IISDMA_RXTX64RollbackADDR 

搬运64次之后,若开启地址绕回中断,将产生地址绕回中断

IISDMA_RXTX512RollbackADDR 

搬运512次之后,若开启地址绕回中断,将产生地址绕回中断

IISDMA_RXTX1024RollbackADDR 

搬运1024次之后,若开启地址绕回中断,将产生地址绕回中断

◆ IISDMA_RXxInterrupt

IISDMA传输多少次(x+1次,x为0~31)之后,若开启传输完成中断,来传输完成中断

枚举值
IISDMA_RX1Interrupt 

搬运1次之后,若开启传输完成中断,将产生传输完成中断

IISDMA_RX2Interrupt 

搬运2次之后,若开启传输完成中断,将产生传输完成中断

IISDMA_RX3Interrupt 

搬运3次之后,若开启传输完成中断,将产生传输完成中断

IISDMA_RX8Interrupt 

搬运8次之后,若开启传输完成中断,将产生传输完成中断

IISDMA_RX16Interrupt 

搬运16次之后,若开启传输完成中断,将产生传输完成中断

IISDMA_RX20Interrupt 

搬运20次之后,若开启传输完成中断,将产生传输完成中断

IISDMA_RX32Interrupt 

搬运32次之后,若开启传输完成中断,将产生传输完成中断

◆ IISDMA_TXADDR_Sel

TADDR0或者TADDR1选择

枚举值
IISDMA_TXAAD_Sel_ADDR0 

TXADDR0

IISDMA_TXAAD_Sel_ADDR1 

TXADDR1

◆ IISDMA_TXRX_ENx

IISDMA TX或者RX选择

枚举值
IISxDMA_TX_EN 

使能IISDMA TX

IISxDMA_RX_EN 

使能IISDMA RX

◆ IISDMA_TXRXSingleSIZEx

IISDMA单次搬运的数据大小,16*x个byte,x为1~31

枚举值
IISDMA_TXRXSINGLESIZE16bytes 

单次搬运16个byte的数据

IISDMA_TXRXSINGLESIZE32bytes 

单次搬运32个byte的数据

IISDMA_TXRXSINGLESIZE48bytes 

单次搬运48个byte的数据

IISDMA_TXRXSINGLESIZE64bytes 

单次搬运64个byte的数据

IISDMA_TXRXSINGLESIZE80bytes 

单次搬运80个byte的数据

IISDMA_TXRXSINGLESIZE96bytes 

单次搬运96个byte的数据

IISDMA_TXRXSINGLESIZE128bytes 

单次搬运128个byte的数据

IISDMA_TXRXSINGLESIZE496bytes 

单次搬运496个byte的数据

◆ IISDMAChax

每个IISDMA对应的通道

枚举值
IISDMACha0 

通道0

IISDMACha1 

通道1

IISDMACha2 

通道2

函数说明

◆ CHECK_IISDMA_DATABUSBUSY()

int CHECK_IISDMA_DATABUSBUSY ( IISDMA_TypeDef IISDMAx)

IISDMA数据总线busy状态

参数
IISDMAxIISDMA0
返回值
0空闲
1数据正在传输

◆ Get_IISxDMA_RADDR()

uint32_t Get_IISxDMA_RADDR ( IISDMA_TypeDef IISDMAx,
IISDMAChax  iisx 
)

返回当前IISDMA数据接收,存储的首地址

参数
IISDMAxIISDMA0
iisxIISDMACha0、IISDMACha1、IISDMACha2通道可选
返回值
uint32_t当前IISDMA数据接收,存储的首地址

◆ IISDMA_ADDRRollBackINT()

void IISDMA_ADDRRollBackINT ( IISDMA_TypeDef IISDMAx,
IISDMAChax  iisx,
IISDMA_TXRX_ENx  iisdma_txrx_sel,
FunctionalState  cmd 
)

IISDMA发送/接收传输完成,需要进行地址切换的中断使能

参数
IISDMAxIISDMA0
iisxIISDMACha0、IISDMACha1、IISDMACha2通道可选
iisdma_txrx_selRX或者TX选择
cmd使能或者禁止

◆ IISDMA_ADDRRollBackSTATE()

int IISDMA_ADDRRollBackSTATE ( IISDMA_TypeDef IISDMAx,
IISDMAChax  iisx,
IISDMA_TXRX_ENx  iisdma_txrx_sel 
)

IISDMA发送/接收传输通道完成一次地址切换的状态

参数
IISDMAxIISDMA0
iisxIISDMACha0、IISDMACha1、IISDMACha2通道可选
iisdma_txrx_selRX或者TX选择
返回值
0通道传输未完成一次地址切换
1通道传输完成一次地址切换

◆ IISDMA_ChannelENConfig()

void IISDMA_ChannelENConfig ( IISDMA_TypeDef IISDMAx,
IISDMAChax  iisx,
IISDMA_TXRX_ENx  iisdma_txrx_sel,
FunctionalState  cmd 
)

IISDMA某个通道的发送或者接收使能

参数
IISDMAxIISDMA0
iisxIISDMACha0、IISDMACha1、IISDMACha2通道可选
iisdma_txrx_selRX或者TX选择
cmd使能或者禁止

◆ IISDMA_ChannelIntENConfig()

void IISDMA_ChannelIntENConfig ( IISDMA_TypeDef IISDMAx,
IISDMAChax  iisx,
IISDMA_TXRX_ENx  iisdma_txrx_sel,
FunctionalState  cmd 
)

IISDMA发送/接收通道数据传输完成一次中断使能

参数
IISDMAxIISDMA0
iisxIISDMACha0、IISDMACha1、IISDMACha2通道可选
iisdma_txrx_selRX或者TX选择
cmd使能或者禁止

◆ iisdma_config()

void iisdma_config ( iisdma_config_p  config)

IISDMA配置

参数
config配置结构体

◆ IISDMA_EN()

void IISDMA_EN ( IISDMA_TypeDef IISDMAx,
FunctionalState  cmd 
)

IISDMA使能控制

参数
IISDMAxIISDMAx IISDMA0
cmd使能或者禁止

◆ IISDMA_INT_All_Clear()

void IISDMA_INT_All_Clear ( IISDMA_TypeDef IISDMAx)

IISDMA所有中断状态清除

参数
IISDMAxIISDMAx IISDMA0

◆ IISDMA_INT_Clear()

void IISDMA_INT_Clear ( IISDMA_TypeDef IISDMAx,
unsigned int  tmp 
)

IISDMA单独清除某个通道的中断

参数
IISDMAxIISDMAx IISDMA0
tmp需要清除的中断位

◆ IISDMA_PriorityConfig()

void IISDMA_PriorityConfig ( IISDMA_TypeDef IISDMAx,
IISDMA_Priorityx  iisdma_priority 
)

IISDMA优先级设置

参数
IISDMAxIISDMAx IISDMA0
iisdma_priority配置优先级响应顺序

◆ IISDMA_RXCompleteClear()

void IISDMA_RXCompleteClear ( IISDMA_TypeDef IISDMAx,
IISDMAChax  iisx 
)

清除IISDMA接收通道完成传输的计数

参数
IISDMAxIISDMA0
iisxIISDMACha0、IISDMACha1、IISDMACha2通道可选

◆ IISDMA_RXTXClear()

void IISDMA_RXTXClear ( IISDMA_TypeDef IISDMAx,
IISDMAChax  iisx,
IISDMA_TXRX_ENx  iisdmarxtx 
)

清除IISDMA接收/发送的传输次数,清除之后,发送和接收的地址为当前配置的地址

参数
IISDMAxIISDMA0
iisxIISDMACha0、IISDMACha1、IISDMACha2通道可选
iisdmarxtxRX或者TX选择

◆ IISDMA_TX_ADDR_Get()

int IISDMA_TX_ADDR_Get ( IISDMA_TypeDef IISDMAx,
IISDMAChax  iisx 
)

返回当前TX正在传输的地址为TADDR0还是TADDR1

参数
IISDMAxIISDMA0
iisxIISDMACha0、IISDMACha1、IISDMACha2通道可选
返回值
0当前正在传输TADDR0
1当前正在传输TADDR1

◆ IISxDMA_RADDR()

void IISxDMA_RADDR ( IISDMA_TypeDef IISDMAx,
IISDMAChax  iisx,
unsigned int  rxaddr 
)

IISDMA接收地址配置

参数
IISDMAxIISDMA0
iisxIISDMACha0、IISDMACha1、IISDMACha2通道可选
rxaddr接收地址

◆ IISxDMA_RNUM()

void IISxDMA_RNUM ( IISDMA_TypeDef IISDMAx,
IISDMAChax  iisx,
IISDMA_RXxInterrupt  iisrxtointerrupt,
IISDMA_RXTXxRollbackADDR  rollbacktimes,
IISDMA_TXRXSingleSIZEx  rxsinglesize 
)

IISDMA接收数据长度配置

参数
IISDMAxIISDMA0
iisxIISDMACha0、IISDMACha1、IISDMACha2通道可选
iisrxtointerrupt接收通道完成(iisrxtointerrupt+1)次请求,产生传输完成中断
rollbacktimes接收通道完成(rollbacktimes +1)次传输后,传输地址跳转到RADDR,并产生地址切换中断
rxsinglesize接收通道每次请求发送的数据大小 (16*rxsinglesize)字节

◆ IISxDMA_RXADDR()

unsigned int IISxDMA_RXADDR ( IISDMA_TypeDef IISDMAx,
IISDMAChax  iisx 
)

返回IISDMA接收通道上次传输BM端最后一个数据的地址信息

参数
IISDMAxIISDMA0
iisxIISDMACha0、IISDMACha1、IISDMACha2通道可选
返回值
unsignedint 地址

◆ IISxDMA_TADDR0()

void IISxDMA_TADDR0 ( IISDMA_TypeDef IISDMAx,
IISDMAChax  iisx,
unsigned int  txaddr0 
)

IISDMA TADDR0 发送地址寄存器配置

参数
IISDMAxIISDMA0
iisxIISDMACha0、IISDMACha1、IISDMACha2通道可选
txaddr0TADDR0地址

◆ IISxDMA_TADDR1()

void IISxDMA_TADDR1 ( IISDMA_TypeDef IISDMAx,
IISDMAChax  iisx,
unsigned int  txaddr1 
)

IISDMA TADDR1 发送地址寄存器配置

参数
IISDMAxIISDMA0
iisxIISDMACha0、IISDMACha1、IISDMACha2通道可选
txaddr1TADDR1地址

◆ IISxDMA_TNUM0()

void IISxDMA_TNUM0 ( IISDMA_TypeDef IISDMAx,
IISDMAChax  iisx,
IISDMA_RXTXxRollbackADDR  rollbackaddr,
IISDMA_TXRXSingleSIZEx  txsinglesize 
)

配置发送通道传输多少次后产生地址切换中断,及每次发送的数据大小

参数
IISDMAxIISDMA0
iisxIISDMACha0、IISDMACha1、IISDMACha2通道可选
rollbackaddr发送通道完成(rollbackaddr +1)次传输后,传输地址跳转到TADDR1,并产生传输地址切换中断
txsinglesize发送通道每次请求发送的数据大小 (16*txsinglesize)字节

◆ IISxDMA_TNUM1()

void IISxDMA_TNUM1 ( IISDMA_TypeDef IISDMAx,
IISDMAChax  iisx,
IISDMA_RXTXxRollbackADDR  rollbackaddr,
IISDMA_TXRXSingleSIZEx  txsinglesize 
)

配置发送通道传输多少次后产生地址切换中断,及每次发送的数据大小

参数
IISDMAxIISDMA0
iisxIISDMACha0、IISDMACha1、IISDMACha2通道可选
rollbackaddr发送通道完成(rollbackaddr +1)次传输后,传输地址跳转到TADDR0,并产生地址切换中断
txsinglesize发送通道每次请求发送的数据大小 (16*txsinglesize)字节

◆ IISxDMA_TXADDRRollbackInterruptClear()

void IISxDMA_TXADDRRollbackInterruptClear ( IISDMA_TypeDef IISDMAx,
IISDMAChax  iisx,
IISDMA_TXADDR_Sel  txrestart_addr 
)

清除IISDMA发送内部的传输次数,并选择下一次传输开始的地址为TADDR0或者TADDR1

参数
IISDMAxIISDMA0
iisxIISDMACha0、IISDMACha1、IISDMACha2通道可选
txrestart_addr下一次传输的起始地址TADDR0或者TADDR1