ZHCSPL7 December 2023 TAC5212
ADVANCE INFORMATION
数字音频数据通过数字音频串行接口 (ASI) 或音频总线,在主机处理器和 TAC5212 之间流动。这个高度灵活的 ASI 总线包括用于多通道运行的 TDM 模式、I2S 或左平衡协议格式支持、可编程数据长度选项、各总线时钟线路的控制器-目标灵活配置,以及直接与系统中多个器件进行通信的能力。
TAC5212 支持最多两个 ASI 接口。辅助 ASI 时钟和数据引脚可通过设置 GPIO 来进行配置。两个 ASI 的帧同步必须保持同步。有关辅助 ASI 的更多详细信息,请参阅 。
通过使用 PASI_FORMAT[1:0]、P0_R26_D[7:6] 寄存器位,可为主要 ASI 选择总线协议 TDM、I2S 或左平衡 (LJ) 格式。如表 7-1 和表 7-2 所示,这些模式都是最高有效字节 (MSB) 优先的脉冲编码调制 (PCM) 数据格式,输出通道数据字长可以通过配置 PASI_WLEN[1:0]、P0_R26_D[5:4] 寄存器位编程为 16、20、24 或 32 位。
P0_R26_D[7:6]:PASI_FORMAT[1:0] | 主要音频串行接口格式 |
---|---|
00(默认值) | 时分多路复用 (TDM) 模式 |
01 | IC 间音频 (I2S) 模式 |
10 | 左对齐 (LJ) 模式 |
11 | 保留(不使用此设置) |
P0_R7_D[5:4]:PASI_WLEN[1:0] | 主要音频输出通道数据字长 |
---|---|
00 | 数据字长设置为 16 位 |
01 | 数据字长设置为 20 位 |
10 | 数据字长设置为 24 位 |
11(默认值) | 数据字长设置为 32 位 |
帧同步引脚 FSYNC 在该音频总线协议中用于定义帧的起始,并具有与输出数据采样速率相同的频率。位时钟引脚 BCLK 用于通过串行总线在时钟沿输出数字音频数据。一个帧中的位时钟周期数必须能够容纳具有编程数据字长的多个器件活动输出通道。
一个帧包含多个时分通道时隙(最多 32 个),以允许一个器件或共享同一音频总线的多个器件在音频总线上完成所有输入/输出通道音频数据传输。该器件支持多达八个输入通道和八个输出通道,这些通道可在主要 ASI 总线上进行配置,以便将其音频数据放在总线时隙 0 至时隙 31 上。表 7-3 列出了输出通道 1 时隙配置设置。在 I2S 和 LJ 模式下,时隙分为两组,即左通道时隙和右通道时隙,如节 7.3.1.2.2 和节 7.3.1.2.3 部分所述。
P0_R30_D[4:0]:PASI_TX_CH1_SLOT[4:0] | 输出通道 1 时隙分配 |
---|---|
0 0000 = 0d(默认值) | 时隙 0 用于 TDM,或左侧时隙 0 用于 I2S、LJ。 |
0 0001 = 1d | 时隙 1 用于 TDM,或左侧时隙 1 用于 LJ。 |
… | … |
0 1111 = 15d | 时隙 15 用于 TDM,或左侧时隙 15 用于 LJ。 |
1 0000 = 32d | 时隙 16 用于 TDM,或右侧时隙 0 用于 I2S、LJ。 |
… | … |
1 1110 = 30d | 时隙 30 用于 TDM,或右侧时隙 14 用于 LJ。 |
1 1111 = 31d | 时隙 31 用于 TDM,或右侧时隙 15 用于 LJ。 |
同样,可分别使用 PASI_TX_CH2_SLOT (P0_R31) 至 PASI_TX_CH8_SLOT (P0_R37) 寄存器完成输出通道 2 至通道 8 的时隙分配设置,以及使用 PASI_RX_CH1_SLOT(P0_R40) 至 PAS_RX_CH8_SLOT(P0_R47) 完成输入通道 1 至通道 8 的时隙分配设置。
时隙字长与为器件设置的主要 ASI 通道字长相同。如果所有 TAC5212 器件在系统中共用同一 ASI 总线,则必须将所有器件的输出通道数据字长设置为相同的值。系统中 ASI 总线可能的最大时隙数受限于可用总线带宽,该带宽取决于 BCLK 频率、使用的输出数据采样速率以及配置的通道数据字长。
该器件还包括一项功能,可将关于帧同步的时隙数据传输开始时间偏移多达 31 个位时钟周期。可以为输入和输出数据路径单独配置偏移量。表 7-4 和表 7-5 分别列出了发送路径和接收路径的可编程偏移配置设置。
P0_R28_D[4:0]:PASI_TX_OFFSET[4:0] | 时隙数据传输开始的可编程偏移设置 |
---|---|
0 0000 = 0d(默认值) | 该器件遵循标准协议时序,没有任何偏移。 |
0 0001 = 1d | 与标准协议时序相比,时隙开始会偏移一个 BCLK 周期。 对于 I2S 或 LJ,与标准协议时序相比,左侧和右侧时隙开始会偏移一个 BCLK 周期。 |
...... | ...... |
1 1110 = 30d | 与标准协议时序相比,时隙开始会偏移 30 个 BCLK 周期。 对于 I2S 或 LJ,与标准协议时序相比,左侧和右侧时隙开始会偏移 30 个 BCLK 周期。 |
1 1111 = 31d | 与标准协议时序相比,时隙开始会偏移 31 个 BCLK 周期。 对于 I2S 或 LJ,与标准协议时序相比,左侧和右侧时隙开始会偏移 31 个 BCLK 周期。 |
P0_R38_D[4:0]:PASI_RX_OFFSET[4:0] | 时隙数据接收开始时的可编程偏移设置 |
---|---|
0 0000 = 0d(默认值) | 该器件遵循标准协议时序,没有任何偏移。 |
0 0001 = 1d | 与标准协议时序相比,时隙开始会偏移一个 BCLK 周期。 对于 I2S 或 LJ,与标准协议时序相比,左侧和右侧时隙开始会偏移一个 BCLK 周期。 |
...... | ...... |
1 1110 = 30d | 与标准协议时序相比,时隙开始会偏移 30 个 BCLK 周期。 对于 I2S 或 LJ,与标准协议时序相比,左侧和右侧时隙开始会偏移 30 个 BCLK 周期。 |
1 1111 = 31d | 与标准协议时序相比,时隙开始会偏移 31 个 BCLK 周期。 对于 I2S 或 LJ,与标准协议时序相比,左侧和右侧时隙开始会偏移 31 个 BCLK 周期。 |
与标准协议时序中使用的默认 FSYNC 极性相比,该器件还能够反转帧同步引脚 FSYNC 的极性,用于传输音频数据。该功能可以使用 PASI_FSYNC_POL、P0_R26_D3 寄存器位来设置。同样,该器件可以反转位时钟引脚 BCLK 的极性,而这可以使用 PASI_BCLK_POL、P0_R26_D2 寄存器位来设置。
此外,字时钟和位时钟还可以独立配置为控制器模式或目标模式,以便灵活地连接各种处理器。字时钟用于定义帧的起始,可编程为脉冲或方波信号。该时钟的频率对应于所选 ADC 和 DAC 采样频率的最大值。