IIS¶
功能介绍¶
芯片内置多路IIS,外部可使用的为IIS0,该接口可以用来对接外部16/24/32位立体声数字音频信号编解码电路,可用于芯片内部CODEC无法满足应用需求的场合。
- 接收端特征如下:
- 支持AHB总线进行数据传输和APB总线进行寄存器配置;
- 支持对LRCK、SCK和接收数据后对DMA请求信号的异常检测,并产生中断信号,可通过软件写1清除;
- 支持连续与不连续传输;
- 软件可配收发数据格式:IIS、左对齐和右对齐;
- 软件可配收发数据的位宽:16bit、20bit、24bit、32bit;
- LRCK与SCK比例软件可配:1:32、1:64;
- 声道数据合并可配(单、双声道独立配置):接收时两个16bit的数据合并成32bit,发送时两个16bit的数据压缩成一个32bit数据发送,合并使能可以通过软件配置;
- 软件可配接收或发送时左右声道数据对调;
- 软件可配发送FIFO将空触发阈值:半空和四分之一空;
- 软件可配接收FIFO将满触发阈值:¼满,⅛满,1/16满和1/32满;
- 收发通道开关使能可通过软件配置;
- 收发数据通道支持静音功能(数据发送时左右声道可独立静音)、单声道和双声道立体声功能;
- 发送FIFO深度为32,宽度为32,接收FIFO深度为128,宽度为32;
- 支持DMA方式数据传输;
- 支持FIFO溢出中断;
- 接收和发送通道完全独立,分别使用一套IIS SCK和LRCK时钟。
IIS传输有专用的DMA通道,此处不进行详细描述,芯片配套SDK开发包中已有完整的功能示例和驱动代码,用户可直接调用。
寄存器映射¶
IIS0寄存器映射的基地址为0x40025000,详细的寄存器映射见表IIS-1。
表IIS-1 IIS0寄存器映射
偏移量 | 名称 | 位宽 | 类型 | 复位值 | 描述 |
---|---|---|---|---|---|
0x00 | IISINT | 32 | R/W | 0x00000000 | IIS中断查询寄存器 |
0x10 | IISTX0CTRL | 32 | R/W | 0x00000000 | IIS0发送控制寄存器 |
0x20 | IISRX0CTRL | 32 | R/W | 0x00000000 | IIS0接收控制寄存器 |
0x30 | IISLOADCTRL | 32 | R/W | 0x00000000 | IIS装载使能控制寄存器 |
0x34 | IISCHKEN_DMA_RX0 | 32 | R/W | 0x00000000 | IIS0接收DMA请求检测寄存器 |
0x40 | IISCHKEN_RX0 | 32 | R/W | 0x00000000 | IIS0接收时钟检测寄存器 |
0x50 | IISCHKEN_TX0 | 32 | R/W | 0x00000000 | IIS0发送时钟检测寄存器 |
IIS中断查询寄存器(IISINT)¶
偏移量:0x00
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:27 | Reserved | 0x0000 | R/W | 保留 |
26 | tt0_err_int | 0 | R/W | 发送通道0数据使能信号产生太快中断标志位,写1清除 |
25:24 | Reserved | 0 | R/W | 保留 |
23 | tt0_err_int | 0 | R/W | 接收通道0数据使能信号产生太快中断标志位,写1清除 |
22:9 | Reserved | 0 | R/W | 保留 |
8 | rx0_fifo_down_int | 0 | R/W | rx0_fifo下溢出中断标志位,写1清除 |
7 | rx0_fifo_over_int | 0 | R/W | rx0_fifo上溢出中断标志位,写1清除 |
6 | tx0_fifo_down_int | 0 | R/W | tx0_fifo下溢出中断标志位,写1清除 |
5 | tx0_fifo_over_int | 0 | R/W | tx0_fifo上溢出中断标志位,写1清除 |
4 | lrck_tx0_int | 0 | R/W | 发送通道0 LRCK时钟CHK中断标志位,写1清除 |
3 | sck_tx0_int | 0 | R/W | 发送通道0 LRCK时钟CHK中断标志位,写1清除 |
2 | dma_rx0_int | 0 | R/W | dma_rx0_req检测的中断标志位,写1清除 |
1 | lrck_rx0_int | 0 | R/W | 接收通道0 LRCK时钟CHK中断标志位,写1清除 |
0 | sck_rx0_int | 0 | R/W | 接收通道0 SCK时钟CHK中断标志位,写1清除 |
IIS0发送控制寄存器(IISTX0CTRL)¶
偏移量:0x10
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:17 | Reserved | 0 | R/W | 保留 |
16 | tx_swap | 0 | R/W | 发送时左右声道数据对调(单声道下左声道发送变为右声道),设置为1有效 |
15 | tx_merge_mono | 0 | R/W | 单声道merge在一起(只有tx_mono为1时才能配置,且必须为16bit),设置为1有效 |
14 | tx_merge | 0 | R/W | 双声道merge在一起(只有tx_mono为0时才能配置,且必须为16bit),设置为1有效 |
13 | tx_mono | 0 | R/W | 单双声道选择: 1:单声道 0:双声道 |
12:11 | tx_df | 0 | R/W | 数据传输格式: 0:IIS 1:左对齐 2:右对齐 |
10 | tx_sck_lrck | 0 | R/W | IIS总线上SCK与LRCK的比例关系(master和slave都有效): 1:SCK = 64*LRCK 0:SCK = 32*LRCK(只有16bit才能配) |
9 | txch_copy | 0 | R/W | 发送通道复制功能,单通道数据复制到双通道送出(只有tx_mono为1时才能配置),设置为1有效 |
8 | txch_r_mute | 0 | R/W | 发送右声道数据静音,设置为1有效 |
7 | txch_l_mute | 0 | R/W | 发送左声道数据静音,设置为1有效 |
6:4 | txch_dw | 0 | R/W | 发送数据宽度: 0:16bit 1:24bit 2:32bit 3:20bit |
3 | txfifo_trig | 0 | R/W | 发送FIFO触发等级配置: 0:半空 1:¼空 |
2:1 | Reserved | 0 | R/W | 保留 |
0 | tx_en | 0 | R/W | 发送通道使能,设置为1有效 |
IIS0接收控制寄存器(IISRX0CTRL)¶
偏移量:0x20
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31 | Reserved | 0 | R/W | 保留 |
30 | rx_ch_merge | 0 | R/W | 是否参与merge(不能只配置一路ch_merge有效),设置为1有效 |
29:28 | rx_df | 0 | R/W | 数据传输格式: 0:IIS 1:左对齐 2:右对齐 |
27 | rx_sck_lrck | 0 | R/W | IIS总线上SCK与LRCK的比例关系(master和slave都有效): 1:SCK = 64*LRCK 0:SCK = 32*LRCK(只有16bit才能配) |
26 | rx_mute | 0 | R/W | 接收通道静音使能: 1:静音,接收为0 0:正常模式 |
25 | rx_merge_mono | 0 | R/W | 单声道的两个16bit的数据合并在一起(rx_mono 必须为1才能配置,且必须为16bit),设置为1有效 |
24 | rx_merge | 0 | R/W | 双通道的两个16bit的数据合并在一起(rx_mono 必须为0才能配置,且必须为16bit),设置为1有效 |
23:18 | Reserved | 0 | R/W | 保留 |
17 | rx_swap | 0 | R/W | 数据对调使能,设置为1有效 |
16 | rx_mono | 0 | R/W | 接收声道设置: 0:立体声 1:单声道 |
15:9 | Reserved | 0 | R/W | 保留 |
8:6 | rxch_dw | 0 | R/W | 接收数据宽度: 0:16bit 1:24bit 2:32bit 3:20bit |
5:4 | rxfifo_trig | 0 | R/W | 接收FIFO触发等级配置: 0:¼满 1:⅛满 2:1/16满 3:1/32满 |
3:1 | Reserved | 0 | R/W | 保留 |
0 | rx_en | 0 | R/W | 接收通道使能,设置为1有效 |
IIS装载使能控制寄存器(IISLOADCTRL)¶
偏移量:0x30
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:11 | Reserved | 0 | R/W | 保留 |
10 | tx_load_en | 0 | R/W | 数据发送通道配置信息装载使能信号,,设置为1有效(先读取该寄存器全部为0才能配置);即使配置发送通道开启或者关闭,该位没有配置也不会生效 |
9:1 | Reserved | 0 | R/W | 保留 |
0 | rx_load_en | 0 | R/W | 数据接收通道配置信息装载使能信号,,设置为1有效(先读取该寄存器全部为0才能配置);即使配置接收通道开启或者关闭,该位没有配置也不会生效 |
IIS0接收DMA请求检测寄存器(IISCHKEN_DMA_RX0)¶
偏移量:0x34
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:17 | Reserved | 0 | R/W | 保留 |
16 | chk_dma_en | 0 | R/W | RX1_DMA_REQ请求检测使能,设置为1有效 |
15:0 | chk_dma_num | 0 | R/W | DMA计数值的阈值 |
IIS0接收时钟检测寄存器(IISCHKEN_RX0)¶
偏移量:0x40
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:21 | Reserved | 0 | R/W | 保留 |
20:1 | chk_rx_num | 0 | R/W | IIS的接收时钟(LRCK与SCK共用)检测计数值的阈值 |
0 | chk_rx_en | 0 | R/W | IIS的接收时钟(LRCK与SCK共用)检测使能,设置为1有效 |
IIS0发送时钟检测寄存器(IISCHKEN_TX0)¶
偏移量:0x50
复位值:0x00000000
位域 | 名称 | 复位值 | 类型 | 描述 |
---|---|---|---|---|
31:21 | Reserved | 0 | R/W | 保留 |
20:1 | chk_tx_num | 0 | R/W | IIS的发送时钟(LRCK与SCK共用)检测计数值的阈值 |
0 | chk_tx_en | 0 | R/W | IIS的发送时钟(LRCK与SCK共用)检测使能,设置为1有效 |