ADAU7118音频转换器支持I²S和TDM串行输出格式。最多可使用16个TDM时隙。支持16位、24位和32位的TDM时隙宽度。任何内部通道都可以通过SPT_Cx_slot位路由到任何输出插槽。
默认情况下,每个通道都路由到其相同的编号插槽。例如,通道1进入插槽1,通道6进入插槽6。每个通道都可以通过其各自的SPT_Cx_DRV位设置为在插槽期间驱动或不驱动(三态高阻抗模式)。I²S模式或TDM模式的选择是通过SPT_CTRL1寄存器中的SPT_SAI_mode位(位0)进行的。SDATA引脚处于三态高阻抗模式,默认情况下数据驱动串行数据时除外。可以将两个或多个信道设置到同一TDM时隙。在这种情况下,最低的通道号获胜,并将其数据驱动到插槽中。其他通道的数据从不出现在任何地方。没有对寄存器设置进行交叉检查来防止用户这样做,但设备没有损坏,只是输出中缺少数据。
SPT_CTRL1寄存器SPT_SAI_MODE位(位0)设置串行端口音频接口模式。这两种模式是立体声和TDM。这两种模式之间的主要区别在于预期的帧同步时钟的格式和时钟有效沿的极性。
SPT_SAI_MODE位设置为0,SPT_LRCLK_POL位(位1,寄存器SPT_CTRL2)设置为0时,串行端口处于立体声模式,时钟极性设置为正常。在这种模式下,预计只会发送两个通道的数据。帧从帧同步的下降沿开始,预期的占空比为50%高和50%低。当时钟为低时,信道0发送其数据,一旦帧同步变高,信道0的数据就停止,信道1开始发送。使用帧同步时钟的两个边缘。如果占空比不是50/50,则结果数据中可能存在错误。在这种I²S操作模式下,ADAU7118不期望每个通道都有32位时钟转换。支持所有位时钟与帧同步比。
SPT_SAI_MODE位设置为1,SPT_LRCLK_POL位设置为0,串行端口处于TDM模式,时钟极性设置为正常。在这种模式下,TDM-16格式的16个数据时隙上可以传输少至一个信道,也可以传输多达8个信道。
ADAU7118可以支持64×、128×、192×、256×、384×或512×输出采样率的六种不同位时钟速率。这些位时钟速率与SPT_CTRL1寄存器Bits[5:4](SPT_slot_WIDTH)中选择的16位、24位或32位三种不同的TDM时隙大小相结合,得到支持的18种TDM格式组合。请注意,其中一些格式没有偶数个全宽插槽(见下图)。

请注意,一旦检测到下一帧同步边缘,ADAU7118就会从插槽0重新启动,并且上一帧中从未到达的任何数据都会丢失。这个过程就是如何实现TDM-5或TDM-10等不寻常的TDM格式。此外,仅支持TDM-16或更低版本将数据放入TDM时隙。数据不能放置在16以上的插槽中。ADAU7118可以配置为对所有未使用的TDM时隙进行三态化,其中包括前16个时隙以上的所有时隙,用于具有超过16个时隙的模式。
在TDM模式下,帧同步预计是至少一个比特时钟周期宽的正向脉冲。下降沿并不重要,只要它足够低,在回到高之前满足读取为低的时序规范,就不会被考虑。帧从该脉冲的上升沿开始。数据根据SPT_CTRL1寄存器寄存器0x07中指定的槽宽和数据格式进行时钟输出。ADAU7118继续发送数据,直到发送了所有活动信道,然后设备等待下一帧同步时钟沿开始发送下一组帧样本。如果使用TDM-16,并且ADAU7118设置为将通道0到通道7输出到插槽0到插槽7,则ADAU71118可以在帧的其余部分进行三态,允许另一个ADAU7117将其8个通道输出到插槽8到插槽15。这些插槽不必是连续的。如果设置得当,这两个设备可以交织各自的数据。串行端口可以设置为仅在有数据要驱动到数据插槽时驱动。如果八个信道中的一个或多个未被使用,则可以在TDM数据流中的该数据时隙期间分配该信道来驱动时隙或三态,这是使用SPT_Cx寄存器中的位0完成的。
SPT_LRCLK_POL位,左/右时钟极性,可以设置为1,该位反转预期的帧时钟。在SPT_LRCLK_POL位设置为1的立体声模式下,当帧同步为高时,会发出通道0,因此帧的开始是从低到高的过渡。
在TDM模式下,SPT_LRCLK_POL位设置为1,预期的帧同步脉冲为负,因此帧以高到低的转换开始。
SPT_CTRL1寄存器中的SPT_DATA_FORMAT位(位[3:1])允许对32位数据槽内的数据进行对齐。支持延迟一位时钟周期的左对齐模式,以及24位、20位和16位数据字大小的右对齐模式。