ZHDU116G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
表 25-2 列出了 I2S 寄存器的存储器映射寄存器。表 25-2中未列出的所有寄存器偏移地址都应视为保留的位置,并且不应修改寄存器内容。
复杂的位访问类型经过编码可适应小型表单元。表 25-3 展示了适用于此部分中访问类型的代码。
| 访问类型 | 代码 | 说明 |
|---|---|---|
| 读取类型 | ||
| R | R | 读取 |
| 写入类型 | ||
| W | W | 写入 |
| 复位或默认值 | ||
| -n | 复位后的值或默认值 | |
图 25-12 展示了 AIFWCLKSRC,表 25-4 中对此进行了介绍。
返回到汇总表。
WCLK 源选择
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | WCLK_INV | WCLK_SRC | |||||
| R-0h | R/W-0h | R/W-0h | |||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-3 | RESERVED | R | 0h | 保留 |
| 2 | WCLK_INV | R/W | 0h | 设置时反转 WCLK 源(焊盘或内部)。 0:不反转 1:反转 |
| 1-0 | WCLK_SRC | R/W | 0h | 为 AIF 选择 WCLK 源(应与 BCLK 源相同)。BCLK 源在 PRCM:I2SBCLKSEL.SRC 中定义 0h = 无 ('0') 1h = 外部 WCLK 发生器,来自焊盘 2h = 内部 WCLK 发生器,来自 PRCM 模块 3h = 不支持。将产生与 'NONE' ('00') 相同的 WCLK |
图 25-13 展示了 AIFDMACFG,表 25-5 中对此进行了介绍。
返回到汇总表。
DMA 缓冲区大小配置
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||||||||||
| R-0h | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | END_FRAME_IDX | ||||||||||||||
| R-0h | R/W-0h | ||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-8 | RESERVED | R | 0h | 保留 |
| 7-0 | END_FRAME_IDX | R/W | 0h | 定义 DMA 缓冲区的长度。向该寄存器字段写入非零值将使能和初始化 AIF。请注意,执行此操作之前,必须已完成所有其他配置,并且必须已加载 AIFINPTRNEXT/AIFOUTPTRNEXT。 |
图 25-14 展示了 AIFDIRCFG,表 25-6 中对此进行了介绍。
返回到汇总表。
引脚方向
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | AD1 | RESERVED | AD0 | ||||
| R-0h | R/W-0h | R-0h | R/W-0h | ||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-6 | RESERVED | R | 0h | 保留 |
| 5-4 | AD1 | R/W | 0h | 配置 AD1 音频数据引脚用途: 0x3:保留 0h = 未使用(禁用) 1h = 输入模式 2h = 输出模式 |
| 3-2 | RESERVED | R | 0h | 保留 |
| 1-0 | AD0 | R/W | 0h | 配置 AD0 音频数据引脚用途: 0x3:保留 0h = 未使用(禁用) 1h = 输入模式 2h = 输出模式 |
图 25-15 展示了 AIFFMTCFG,表 25-7 中对此进行了介绍。
返回到汇总表。
串行接口格式配置
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| DATA_DELAY | |||||||
| R/W-1h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MEM_LEN_24 | SMPL_EDGE | DUAL_PHASE | WORD_LEN | ||||
| R/W-0h | R/W-1h | R/W-1h | R/W-10h | ||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | RESERVED | R | 0h | 保留 |
| 15-8 | DATA_DELAY | R/W | 1h | WCLK 边沿与一个相位中第一个字的 MSB 之间的 BCLK 周期数: 0x00:LJF 和 DSP 格式 0x01:I2S 和 DSP 格式 0x02:RJF 格式 ... 0xFF:RJF 格式 注意:当设置为 0 时,下一个字的 MSB 将在前一个字的 LSB 和下一个字开始之间的空闲周期内输出。否则将输出逻辑 0,直到数据延迟到期。 |
| 7 | MEM_LEN_24 | R/W | 0h | 存储到存储器或从存储器加载的每个字的大小: 0h = 16BIT:16 位(每个样本一次 16 位访问) 1h = 24BIT:24 位(每个样本一次 8 位和一次 16 位锁定访问) |
| 6 | SMPL_EDGE | R/W | 1h | 在串行音频接口上,数据(和 wclk)在 BCLK 的相反边沿上进行采样和时钟输出。 0h = 数据在负边沿采样,在正边沿时钟输出。 1h = 数据在正边沿采样,在负边沿时钟输出。 |
| 5 | DUAL_PHASE | R/W | 1h | 选择双相或单相格式。 0:单相:DSP 格式 1:双相:I2S、LJF 和 RJF 格式 |
| 4-0 | WORD_LEN | R/W | 10h | 每个字的位数 (8-24): 在单相格式中,这是每个字的确切位数。 在双相格式中,这是每个字的最大位数。 低于 8 和高于 24 的值会产生未定义的行为。写入存储器的数据始终与 MEM_LEN_24 定义的 16 或 24 位对齐。与此对齐方式不同的位宽将被截断或补零。 |
图 25-16 展示了 AIFWMASK0,表 25-8 对其进行了介绍。
返回到汇总表。
引脚 0 的字选择位掩码
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | MASK | ||||||||||||||||||||||||||||||
| R-0h | R/W-3h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-8 | RESERVED | R | 0h | 保留 |
| 7-0 | MASK | R/W | 3h | 位掩码,表示 AD0 上的一个帧中的有效通道。 在单相模式下,每个位代表一个通道,从 LSB 开始对应帧中的第一个字。一个帧最多可以包含 8 个通道。未包含在掩码中的通道将不会被采样或存储到存储器中,并且时钟输出时为“0”。 在双相模式下,仅考虑两个 LSB。对于立体声配置,请设置两个位。对于单声道配置,请仅设置位 0。在单声道模式下,仅通道 0 会被采样并存储到存储器中,并且在时钟输出时,通道 0 的内容会重复。 仅通道 0 会被采样并存储到存储器中,并且在时钟输出时,通道 0 的内容会在第二相中重复。 如果所有位都为零,则不会将任何输入字存储到存储器中,并且输出数据线将保持为常量“0”。当需要在没有任何实际使用的输出引脚的情况下输出 PWM 调试信号时,可以利用此功能。 |
图 25-17 展示了 AIFWMASK1,表 25-9 对其进行了介绍。
返回到汇总表。
引脚 1 的字选择位掩码
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | MASK | ||||||||||||||||||||||||||||||
| R-0h | R/W-3h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-8 | RESERVED | R | 0h | 保留 |
| 7-0 | MASK | R/W | 3h | 位掩码,表示 AD1 上的一个帧中的有效通道。 在单相模式下,每个位代表一个通道,从 LSB 开始对应帧中的第一个字。一个帧最多可以包含 8 个通道。未包含在掩码中的通道将不会被采样或存储到存储器中,并且时钟输出时为“0”。 在双相模式下,仅考虑两个 LSB。对于立体声配置,请设置两个位。对于单声道配置,请仅设置位 0。在单声道模式下,仅通道 0 会被采样并存储到存储器中,并且在时钟输出时,通道 0 的内容会重复。 仅通道 0 会被采样并存储到存储器中,并且在时钟输出时,通道 0 的内容会在第二相中重复。 如果所有位都为零,则不会将任何输入字存储到存储器中,并且输出数据线将保持为常量“0”。当需要在没有任何实际使用的输出引脚的情况下输出 PWM 调试信号时,可以利用此功能。 |
图 25-18 展示了 AIFPWMVALUE,表 25-10 中对此进行了介绍。
返回到汇总表。
音频接口 PWM 调试值
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | PULSE_WIDTH | ||||||||||||||||||||||||||||||
| R-0h | R/W-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | RESERVED | R | 0h | 保留 |
| 15-0 | PULSE_WIDTH | R/W | 0h | 写入此寄存器的值决定了高电平有效 PWM 脉冲 (pwm_debug) 的宽度,从 DMA 缓冲器区中第一个输出字的 MSB 同时开始: 0x0000:恒定低电平 0x0001:脉冲宽度(BCLK 周期数,此处为 1)。 ... 0xFFFE:脉冲宽度(BCLK 周期数,处为 65534)。 0xFFFF:恒定高电平 |
图 25-19 展示了 AIFINPTRNEXT,表 25-11 中对此进行了介绍。
返回到汇总表。
DMA 输入缓冲区下一个指针
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PTR | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | PTR | R/W | 0h | 指向下一个 DMA 输入缓冲区中第一个字节的指针。 读取的值等于在当前使用的 DMA 输入缓冲区完成之前最后写入的值,然后在最后写入的值传输到 DMA 控制器以在下一个缓冲区上开始时变为空。此事件由 IRQFLAGS.AIF_DMA_IN 标志指示。 启动时,必须在 AIFDMACFG 中配置 DMA 缓冲区大小之前和之后分别写入一次该值。 在 DMA 功能使用先前写入的指针时,必须将下一个指针写入该寄存器。如果未及时写入,则将产生 IRQFLAGS.PTR_ERR,并将禁用所有输入引脚。 |
图 25-20 展示了 AIFINPTR,表 25-12 中对此进行了介绍。
返回到汇总表。
DMA 输入缓冲区当前指针
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PTR | |||||||||||||||||||||||||||||||
| R-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | PTR | R | 0h | DMA 控制器当前使用的 DMA 输入缓冲区指针的值。对于每次 AHB 访问,递增 1(字节)或 2(字)。 |
图 25-21 展示了 AIFOUTPTRNEXT,表 25-13 中对此进行了介绍。
返回到汇总表。
DMA 输出缓冲区下一个指针
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PTR | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | PTR | R/W | 0h | 指向下一个 DMA 输出缓冲区中第一个字节的指针。 读取的值等于在当前使用的 DMA 输出缓冲区完成之前最后写入的值,然后在最后写入的值传输到 DMA 控制器以在下一个缓冲区上开始时变为空。此事件由 IRQFLAGS.AIF_DMA_OUT 标志指示。 启动时,必须在 AIFDMACFG 中配置 DMA 缓冲区大小之前和之后分别写入一次该值。此时将从存储器中获取前两个样本。 在 DMA 功能使用先前写入的指针时,必须将下一个指针写入该寄存器。如果未及时写入,则将产生 IRQFLAGS.PTR_ERR,并将禁用所有输出引脚。 |
图 25-22 展示了 AIFOUTPTR,表 25-14 中对此进行了介绍。
返回到汇总表。
DMA 输出缓冲区当前指针
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PTR | |||||||||||||||||||||||||||||||
| R-0h | |||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-0 | PTR | R | 0h | 对于每次 AHB 访问,DMA 控制器当前使用的 DMA 输出缓冲区指针的值递增 1(字节)或 2(字)。 |
图 25-23 展示了 STMPCTL,表 25-15 中对此进行了介绍。
返回到汇总表。
采样戳发生器控制寄存器
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | OUT_RDY | IN_RDY | STMP_EN | ||||
| R-0h | R-0h | R-0h | R/W-0h | ||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-3 | RESERVED | R | 0h | 保留 |
| 2 | OUT_RDY | R | 0h | 保持低电平,直到输出引脚准备好由采样戳发生器启动。当启动时(即 STMPOUTTRIG 等于 WCLK 计数器),该位恢复为低电平。 |
| 1 | IN_RDY | R | 0h | 保持低电平,直到输入引脚准备好由采样戳发生器启动。当启动时(即 STMPINTRIG 等于 WCLK 计数器),该位恢复为低电平。 |
| 0 | STMP_EN | R/W | 0h | 使能采样戳发生器。采样戳发生器必须在正确配置后才能使能。 清除后,所有采样戳发生器计数器和捕获值都会被清除。 |
图 25-24 展示了 STMPXCNTCAPT0,表 25-16 对其进行了介绍。
返回到汇总表。
捕获的 XOSC 计数器值捕获通道 0
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | CAPT_VALUE | ||||||||||||||||||||||||||||||
| R-0h | R-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | RESERVED | R | 0h | 保留 |
| 15-0 | CAPT_VALUE | R | 0h | 上次事件脉冲发生时采样戳 XOSC 计数器 (STMPXCNT.CURR_VALUE) 的值(事件源在通道 0 的 [EVENT.I2SSTMPSEL0.EV] 中选择)。该数字对应于自所选 WCLK 最后一个正边沿以来的 24MHz 时钟周期数。 当 STMPCTL.STMP_EN = 0 时,该值被清除。 注意:由于缓冲和同步,WCLK 会延迟少量 BCLK 周期和 clk 周期。 注意:在计算采样时间戳的小数部分时,STMPXPER 可能小于该位字段。 |
图 25-25 展示了 STMPXPER,表 25-17 中对此进行了介绍。
返回到汇总表。
XOSC 周期值
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | 值 | ||||||||||||||||||||||||||||||
| R-0h | R-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | RESERVED | R | 0h | 保留 |
| 15-0 | 值 | R | 0h | 在上一个 WCLK 周期内的 24MHz 时钟周期数(即:XOSC 计数器在 WCLK 正边沿的下一个值 — 假设它未复位为 0)。 当 STMPCTL.STMP_EN = 0 时,该值被清除。 |
图 25-26 展示了 STMPWCNTCAPT0,表 25-18 对其进行了介绍。
返回到汇总表。
捕获的 WCLK 计数器值捕获通道 0
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | CAPT_VALUE | ||||||||||||||||||||||||||||||
| R-0h | R-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | RESERVED | R | 0h | 保留 |
| 15-0 | CAPT_VALUE | R | 0h | 上次事件脉冲发生时采样戳 WCLK 计数器 (STMPWCNT.CURR_VALUE) 的值(事件源在通道 0 的 EVENT:I2SSTMPSEL0.EV 中选择)。该数字对应于自采样戳发生器使能以来的正 WCLK 边沿数(不考虑通过 STMPWADD/STMPWSET 进行的修改)。 当 STMPCTL.STMP_EN = 0 时,该值被清除。 |
图 25-27 展示了 STMPWPER,表 25-19 中对此进行了介绍。
返回到汇总表。
WCLK 计数器周期值
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | 值 | ||||||||||||||||||||||||||||||
| R-0h | R/W-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | RESERVED | R | 0h | 保留 |
| 15-0 | 值 | R/W | 0h | 用于定义何时复位 STMPWCNT,以便找到适合采样缓冲区大小的 WCLK 边沿数。因此,这是 WCLK 计数器的模数值。该数字必须与系统使用的样本缓冲区的大小相对应(即最后一个样本的索引加 1)。 |
图 25-28 展示了 STMPINTRIG,表 25-20 中对此进行了介绍。
返回到汇总表。
输入引脚的 WCLK 计数器触发值
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | IN_START_WCNT | ||||||||||||||||||||||||||||||
| R-0h | R/W-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | RESERVED | R | 0h | 保留 |
| 15-0 | IN_START_WCNT | R/W | 0h | 用于启动传入音频流的比较值。 该位字段应等于在第一个输入字被采样并存储到存储器(即第一个 DMA 输入缓冲区起始处的采样)所在 WCLK 周期内的 WCLK 计数器值。 当满足以下条件时,该寄存器的值将生效: - 一个或多个引脚配置为 AIFDIRCFG 中的输入。 - AIFDMACFG 已配置为正确的缓冲区大小,并且至少发生了 32 个 BCLK 周期节拍。 注意:为了避免误触发,该位字段应设置为高于 STMPWPER.VALUE。 |
图 25-29 展示了 STMPOUTTRIG,表 25-21 中对此进行了介绍。
返回到汇总表。
输出引脚的 WCLK 计数器触发值
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | OUT_START_WCNT | ||||||||||||||||||||||||||||||
| R-0h | R/W-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | RESERVED | R | 0h | 保留 |
| 15-0 | OUT_START_WCNT | R/W | 0h | 用于启动传出音频流的比较值。 该位字段必须等于从存储器读取的第一个输出字被时钟输出(即第一个 DMA 输出缓冲区起始处的采样)所在 WCLK 周期内的 WCLK 计数器值。 当满足以下条件时,该寄存器的值将生效: - 一个或多个引脚配置为 AIFDIRCFG 中的输出。 - AIFDMACFG 已配置为正确的缓冲区大小,并且发生了 32 个 BCLK 周期节拍。 - 已从存储器中预加载 2 个样本(如有必要,请检查 AIFOUTPTR 寄存器)。 注意:仅在需要时才会执行存储器读取访问,即必须在 AIFWMASK0/AIFWMASK1 中选择通道 0/1。 注意:为了避免误触发,该位字段应设置为高于 STMPWPER.VALUE。 |
图 25-30 展示了 STMPWSET,表 25-22 中对此进行了介绍。
返回到汇总表。
WCLK 计数器设置操作
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | 值 | ||||||||||||||||||||||||||||||
| R-0h | R/W-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | RESERVED | R | 0h | 保留 |
| 15-0 | 值 | R/W | 0h | WCLK 计数器修改:将正在运行的 WCLK 计数器设置为等于写入的值。 |
图 25-31 展示了 STMPWADD,表 25-23 中对此进行了介绍。
返回到汇总表。
WCLK 计数器加法操作
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | VALUE_INC | ||||||||||||||||||||||||||||||
| R-0h | R/W-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | RESERVED | R | 0h | 保留 |
| 15-0 | VALUE_INC | R/W | 0h | WCLK 计数器修改:将写入的值加到正在运行的 WCLK 计数器上。如果在执行此操作的同时发生 WCLK 正边沿,则此边沿会被考虑在内。 如需加上一个负值,请写入“STMPWPER.VALUE - 所需减去的值”。 |
图 25-32 展示了 STMPXPERMIN,表 25-24 中对此进行了介绍。
返回到汇总表。
XOSC 最小周期值
STMPXPER 的最小值
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | 值 | ||||||||||||||||||||||||||||||
| R-0h | R/W-FFFFh | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | RESERVED | R | 0h | 保留 |
| 15-0 | 值 | R/W | FFFFh | 每次更新 STMPXPER 时,只要其值小于该寄存器中的当前值,也将加载到该寄存器中。 写入时,无论写入的值如何,该寄存器都会复位为 0xFFFF (65535)。 最小值可用于检测额外的 WCLK 脉冲(该寄存器值将显著小于 STMPXPER.VALUE)。 |
图 25-33 展示了 STMPWCNT,表 25-25 中对此进行了介绍。
返回到汇总表。
WCNT 的当前值
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | CURR_VALUE | ||||||||||||||||||||||||||||||
| R-0h | R-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | RESERVED | R | 0h | 保留 |
| 15-0 | CURR_VALUE | R | 0h | WCLK 计数器的当前值 |
图 25-34 展示了 STMPXCNT,表 25-26 中对此进行了介绍。
返回到汇总表。
XCNT 的当前值
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | CURR_VALUE | ||||||||||||||||||||||||||||||
| R-0h | R-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | RESERVED | R | 0h | 保留 |
| 15-0 | CURR_VALUE | R | 0h | XOSC 计数器的当前值,读取 STMPWCNT 时锁存。 |
图 25-35 展示了 STMPXCNTCAPT1,表 25-27 对其进行了介绍。
返回到汇总表。
内部。仅可通过 TI 提供的 API 使用。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | CAPT_VALUE | ||||||||||||||||||||||||||||||
| R-0h | R-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | RESERVED | R | 0h | 保留 |
| 15-0 | CAPT_VALUE | R | 0h | 内部。仅可通过 TI 提供的 API 使用。 |
图 25-36 展示了 STMPWCNTCAPT1,表 25-28 对其进行了介绍。
返回到汇总表。
内部。仅可通过 TI 提供的 API 使用。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | CAPT_VALUE | ||||||||||||||||||||||||||||||
| R-0h | R-0h | ||||||||||||||||||||||||||||||
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-16 | RESERVED | R | 0h | 保留 |
| 15-0 | CAPT_VALUE | R | 0h | 内部。仅可通过 TI 提供的 API 使用。 |
图 25-37 展示了 IRQMASK,表 25-29 中对此进行了介绍。
返回到汇总表。
中断屏蔽寄存器
选择 IRQFLAGS 中参与生成 I2S_IRQ 事件的标志的屏蔽状态。
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | AIF_DMA_IN | AIF_DMA_OUT | WCLK_TIMEOUT | BUS_ERR | WCLK_ERR | PTR_ERR | |
| R-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-6 | RESERVED | R | 0h | 保留 |
| 5 | AIF_DMA_IN | R/W | 0h | IRQFLAGS.AIF_DMA_IN 中断屏蔽 0:禁用 1:启用 |
| 4 | AIF_DMA_OUT | R/W | 0h | IRQFLAGS.AIF_DMA_OUT 中断屏蔽 0:禁用 1:启用 |
| 3 | WCLK_TIMEOUT | R/W | 0h | IRQFLAGS.WCLK_TIMEOUT 中断屏蔽 0:禁用 1:启用 |
| 2 | BUS_ERR | R/W | 0h | IRQFLAGS.BUS_ERR 中断屏蔽 0:禁用 1:启用 |
| 1 | WCLK_ERR | R/W | 0h | IRQFLAGS.WCLK_ERR 中断屏蔽 0:禁用 1:启用 |
| 0 | PTR_ERR | R/W | 0h | IRQFLAGS.PTR_ERR 中断屏蔽。 0:禁用 1:启用 |
图 25-38 展示了 IRQFLAGS,表 25-30 中对此进行了介绍。
返回到汇总表。
原始中断状态寄存器
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | AIF_DMA_IN | AIF_DMA_OUT | WCLK_TIMEOUT | BUS_ERR | WCLK_ERR | PTR_ERR | |
| R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-6 | RESERVED | R | 0h | 保留 |
| 5 | AIF_DMA_IN | R | 0h | 当该位字段事件的条件发生时设置(更新输入指针时自动清除 — AIFINPTRNEXT),有关详细信息,请参阅 AIFINPTRNEXT 寄存器的说明。 |
| 4 | AIF_DMA_OUT | R | 0h | 当该位字段事件的条件发生时设置(更新输出指针时自动清除 — AIFOUTPTRNEXT),有关详细信息,请参阅 AIFOUTPTRNEXT 寄存器的说明 |
| 3 | WCLK_TIMEOUT | R | 0h | 当采样时间戳发生器在 65535 个 clk 周期内未检测到正 WCLK 边沿时设置。这表示内部或外部 BCLK 和 WCLK 发生器源已禁用。 该位为粘滞位,只能通过软件清除(通过向 IRQCLR.WCLK_TIMEOUT 写入“1”)。 |
| 2 | BUS_ERR | R | 0h | 当 DMA 操作未及时完成(即音频输出缓冲区下溢或音频输入缓冲区上溢)时设置。 由于字同步已丢失,此错误需要完全重新启动。该位为粘滞位,只能通过软件清除(通过向 IRQCLR.BUS_ERR 写入“1”)。 请注意,DMA 发起的对非法地址的事务不会触发中断。对此类事务的响应未定义。 |
| 1 | WCLK_ERR | R | 0h | 在以下情况下置 1: - 在相位的数据延迟期间发生意外的 WCLK 边沿。请注意,在相位的字和空闲期间,不会检测到意外的 WCLK 边沿。 - 在双相模式下,当两个 WCLK 边沿相距小于 4 个 BCLK 周期时。 - 在单相模式下,当一个 WCLK 脉冲发生在最后一个通道之前。 由于字同步已丢失,此错误需要完全重新启动。该位为粘滞位,只能通过软件清除(通过向 IRQCLR.WCLK_ERR 写入“1”)。 |
| 0 | PTR_ERR | R | 0h | 当 AIFINPTRNEXT 或 AIFOUTPTRNEXT 未及时加载下一个块地址时设置。 由于字同步已丢失,此错误需要完全重新启动。该位为粘滞位,只能通过软件清除(通过向 IRQCLR.PTR_ERR 写入“1”)。 |
图 25-39 展示了 IRQSET,表 25-31 中对此进行了介绍。
返回到汇总表。
中断集寄存器
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | AIF_DMA_IN | AIF_DMA_OUT | WCLK_TIMEOUT | BUS_ERR | WCLK_ERR | PTR_ERR | |
| R-0h | W-0h | W-0h | W-0h | W-0h | W-0h | W-0h | |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-6 | RESERVED | R | 0h | 保留 |
| 5 | AIF_DMA_IN | W | 0h | 1:设置 IRQFLAGS.AIF_DMA_IN 的中断(除非同时满足了自动清除条件,在这种情况下该设置将被忽略) |
| 4 | AIF_DMA_OUT | W | 0h | 1:设置 IRQFLAGS.AIF_DMA_OUT 的中断(除非同时满足了自动清除条件,在这种情况下该设置将被忽略) |
| 3 | WCLK_TIMEOUT | W | 0h | 1:设置 IRQFLAGS.WCLK_TIMEOUT 的中断 |
| 2 | BUS_ERR | W | 0h | 1:设置 IRQFLAGS.BUS_ERR 的中断 |
| 1 | WCLK_ERR | W | 0h | 1:设置 IRQFLAGS.WCLK_ERR 的中断 |
| 0 | PTR_ERR | W | 0h | 1:设置 IRQFLAGS.PTR_ERR 的中断 |
图 25-40 展示了 IRQCLR,表 25-32 中对此进行了介绍。
返回到汇总表。
中断清除寄存器
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | AIF_DMA_IN | AIF_DMA_OUT | WCLK_TIMEOUT | BUS_ERR | WCLK_ERR | PTR_ERR | |
| R-0h | W-0h | W-0h | W-0h | W-0h | W-0h | W-0h | |
| 位 | 字段 | 类型 | 复位 | 说明 |
|---|---|---|---|---|
| 31-6 | RESERVED | R | 0h | 保留 |
| 5 | AIF_DMA_IN | W | 0h | 1:清除 IRQFLAGS.AIF_DMA_IN 的中断(除非同时满足了设置条件,在这种情况下该清除将被忽略) |
| 4 | AIF_DMA_OUT | W | 0h | 1:清除 IRQFLAGS.AIF_DMA_OUT 的中断(除非同时满足了设置条件,在这种情况下该清除将被忽略) |
| 3 | WCLK_TIMEOUT | W | 0h | 1:清除 IRQFLAGS.WCLK_TIMEOUT 的中断(除非同时满足了设置条件,在这种情况下该清除将被忽略) |
| 2 | BUS_ERR | W | 0h | 1:清除 IRQFLAGS.BUS_ERR 的中断(除非同时满足了设置条件,在这种情况下该清除将被忽略) |
| 1 | WCLK_ERR | W | 0h | 1:清除 IRQFLAGS.WCLK_ERR 的中断(除非同时满足了设置条件,在这种情况下该清除将被忽略) |
| 0 | PTR_ERR | W | 0h | 1:清除 IRQFLAGS.PTR_ERR 的中断(除非同时满足了设置条件,在这种情况下该清除将被忽略) |