ZHCSP98B February 2022 – March 2023 TAS2780
PRODUCTION DATA
TAS2780 提供灵活的串行音频端口。该端口可配置为支持多种格式,包括立体声 I2S、左对齐和 TDM。通过 SDIN 引脚提供单音频播放。SDOUT 引脚用于传输样本流,包括扬声器电压和电流检测、PVDD 电压、内核温度和通道增益。
TDM 串行音频端口支持多达 16 个采样率为 44.1/48kHz 的 32 位时隙或 8 个采样率为 88.2/96kHz 的 32 位时隙。有效的 SBCLK 与 FSYNC 之比为 16、24、32、48、64、96、128、192、256 和 512。器件可自动检测时隙数,无需编程。
默认情况下,TAS2780 会自动检测 PCM 播放采样率。这可以通过将 AUTO_RATE 寄存器位设为高电平来禁用此功能,以及手动配置该器件。
当 AUTO_RATE 寄存器位为高电平时(禁用 TDM 采样率自动检测),SAMP_RATE[2:0] 和 SAMP_RATIO[3:0] 寄存器位用于配置 PCM 音频采样率。TAS2780 采用强大的时钟故障检测引擎,如果 FSYNC 与配置的采样率不匹配(如果 AUTO_RATE= 1)或 SBCLK 与 FSYNC 之比不受支持,该引擎将自动降低播放路径的音量(最大限度地减少可闻失真)。一旦检测到时钟在频率和比率上均有效,器件会自动将播放路径的音量缓慢上升回配置的音量并恢复播放。
使用自动速率检测时,在 TDM 总线上检测到的采样率和 SBCLK 与 FSYNC 之比会报告给只读寄存器位 FS_RATE[2:0] 和 FS_RATIO[3:0]。
TAS2780 支持 12MHz SBCLK 运行。系统将针对 125 或 250 的比率进行检测或应进行手动配置。在此特定比率中,最后 32 位时隙不应用于通过 TDM (SDOUT) 或 ICC(节 8.4.2.10.1)传输数据,因为数据将被截断。
下面的图 8-1 和图 8-2 说明了配置播放端口所需的接收器帧参数。帧以 FSYNC 从高到低或从低到高的转换开始(由 FRAME_START 寄存器位设置)。FSYNC 和 SDIN 由 SBCLK 使用上升沿或下降沿(由 RX_EDGE 寄存器位设置)进行采样。RX_OFFSET[4:0] 寄存器位定义从 FSYNC 转换到时隙 0 开始的 SBCLK 周期数。这通常设置为值 0(对于左对齐)和 1(对于 I2S 格式)。
RX_SLEN[1:0] 寄存器位将 RX 时隙的长度设置为 16、24 或 32(默认)位。时隙内音频样本字的长度由 RX_WLEN[1:0] 寄存器位配置为 16、20、24(默认)或 32 位。默认情况下,RX 端口将使时隙内的音频样本左对齐,但这可以通过 RX_JUSTIFY 寄存器位更改为右对齐。TAS2780 支持单声道和立体声下混音播放 ([L+R]/2)。默认情况下,器件将从等于 I2C 基地址偏移量(由 ADDR 引脚设置)的时隙播放单声道。 RX_SCFG[1:0] 寄存器位可用于将播放源覆盖到左时隙、右时隙或由 RX_SLOT_L[3:0] 和 RX_SLOT_R[3:0] 寄存器位设置的立体声下混频。
如果时隙选择将接收部分或全部置于帧边界之外,则接收器将返回一个空样本,相当于一个数字静音样本。
TDM 端口可以在 SDOUT 引脚上传输多个样本流,包括扬声器电压感测、扬声器电流感测、中断和状态、PVDD 电压、内核温度和通道增益。下面的图 8-3 说明时隙与帧开始是对齐的,以及给定样本流如何映射到时隙。
SBCLK 的上升沿或下降沿均可用于在 SDOUT 引脚上传输数据。这可以通过设置 TX_EDGE 寄存器位来配置。TX_OFFSET[2:0] 寄存器位定义从帧开始到时隙 0 开始的 SBCLK 周期数。TDM 和 ICC TX 可以发送逻辑 0 或高阻态,具体取决于 TX_FILL 寄存器位的设置。当所有驱动总线的器件都是高阻态时,可选的总线保持器将弱保持 SDOUT 和 ICC 引脚的状态。SDOUT 上只需要一个总线保持器,因此可以通过 TX_KEEPEN 寄存器位禁用此功能。使用 TX_KEEPLN 寄存器位可以将总线保持器配置为仅将总线保持 1 1LSB 或始终保持。此外,可以使用 TX_KEEPCY 寄存器位将保持器 LSB 驱动一个完整周期或半个周期。
TX_FILL 寄存器位用于 I2S 总线上只有一个放大器的单声道系统。当 TX_FILL 寄存器位设置为低电平时,放大器未使用的所有时隙都将用零填充。
当多个器件位于同一 I2S 总线上时,页 0x01 的 SDOUT_HIZ 寄存器会非常有用。每个器件都不知道总线上其他器件的时隙配置。需要在系统级别对 SDOUT_HIZ 寄存器进行适当的编程,以确保正确完成设置并且不会在内部和外部产生任何争用。
每个样本流由一个或两个 8 位时隙组成。扬声器电压感测和扬声器电流感测样本流是 16 位精度的,因此它们将始终使用两个 TX 时隙。PVDD 和 VBAT1S 电压流为 10 位精度,可以在 16 位字中进行左对齐传输(使用两个时隙),也可以截断为 8 位(前 8 个 MSB)并在单个时隙中传输。这是通过设置 PVDD_SLEN 和 VBAT1S_SLEN 寄存器位来配置的。内核温度和增益均为 8 位精度,并在单个时隙中传输。
每个样本流的时隙寄存器定义了 MSB 传输开始的位置。默认情况下,VSNS_SLOT[5:0] 寄存器位设置为 2(十进制),上面的 8 个 MSB 将在时隙 2 中传输,下面的 8 个 LSB 将在时隙 3 中传输。此样本流可以使用 VSNS_TX 寄存器位单独启用或禁用。ISNS_SLOT[5:0] 寄存器位默认设置为 0(十进制),并且可以使用 ISNS_TX 寄存器位启用或禁用样本流。流的启用/禁用功能对于管理有限的 TDM 带宽会很有用,因为可能没有必要为总线上的所有器件传输所有流。
确保主动传输的样本流的时隙分配不产生冲突很重要。这将避免在冲突的位时隙中产生不可预测的传输结果(即未定义优先级)。
默认情况下,电流和电压值以完整的 16 位测量值传输。IVMON_LEN[1:0] 寄存器位可用于在一个时隙中仅传输 8 个 MSB 位或跨多个时隙传输 12 个 MSB 位值。当主机处理器只能处理 24 位 I2S/TDM 数据时,使用特殊的 12 位模式。该器件应配置为将电压感测时隙和电流感测时隙关闭 1 个时隙,并将消耗 3 个连续的 8 位时隙。在这种模式下,器件将发送前 12 个 MSB 位,然后发送由前一个时隙指定的接下来的 12 个 MSB 位。
如果时隙选择将传输置于帧边界之外,则发送器将在帧边界截断传输。
VBAT1S、PVDD 和温度测量使用 VBAT1S_SLOT[5:0]、PVDD_SLOT[5:0] 和 TEMP_SLOT[5:0] 寄存器位进行设置。若要启用每个样本流,寄存器位 VBAT1S_TX、PVDD_TX 和 TEMP_TX 必须设为高电平。时隙长度由 VBAT1S_SLEN 和 PVDD_SLEN 寄存器位进行选择。
对于 TDM 最终处理的音频时隙,使能和长度设置使用 AUDIO_SLOT[5:0]、AUDIO_TX 和 AUDIO_SLEN 寄存器位。
有关时隙状态的信息可以在 STATUS_SLOT[5:0] 寄存器位中找到。将 STATUS_TX 寄存器位设置为高电平会启用状态发送。
通过设置 GAIN_SLOT[5:0] 寄存器位,TX 限制器增益衰减的时隙配置可设置为 0(默认)至 63。 它用于 ICC(节 8.4.2.10),可以通过 TDM 总线或 ICC 总线。若要使用此功能,需要将寄存器位 GAIN_TX 设置为高电平。