This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TAC5112:在去交错期间右移音频样本时具有响亮的静态噪声 (TDM、TAC5112)

Guru**** 2928560 points

Other Parts Discussed in Thread: TAC5112

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1638986/tac5112-loud-static-when-right-shifting-audio-samples-during-deinterleave-tdm-tac5112

器件型号: TAC5112

我使用的是通过 STM32U5 与 TAC5112 编解码器连接的 TDM 音频。 信号链为:

TDM 输入→DEINTERLEAVE→DSP 处理→releaved→CODEC 输出

只要 I 传递样本保持不变、音频输出就是干净的。 但是、当我在去交错阶段应用简单的音量减小时、我会遇到一个重大问题。

具体而言、右移音频样本(例如,,)>>1>>2>>4以降低振幅。 这不是减小音量、而是在输出中引入非常响亮的静态噪声。

详细信息:

  • MCU:STM32U5
  • 编解码器:TAC5112
  • 数据类型: int32_t
  • TDM 配置:4 个时隙、每个时隙 32 位、无偏移

音频格式(不确定):

  • 我不确定数据是真正的 32 位音频还是 32 位时隙中的 24 位左对齐。

观察结果:

  • 不换档:音频干净
  • 右移:输出变得非常嘈杂/静态和响亮

问题:

  1. 这是否是由于对有符号数据的错误处理(例如算术与逻辑移位)引起的?
  2. 在 32 位插槽内、音频可能是 24 位左对齐的、>>如果不对齐、则直接无效吗?
  3. 每个时隙中的所有 32 位是否对 TAC5112 都有意义、或者是否有一些位填充?
  4. 使用此编解码器时、TDM 音频的建议数据格式/对齐方式是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../codec1.txt
    这是 codec1、codec2 的完整配置代码、除了不同的 tdm 时隙外、都是相同的

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Quoc-Anh:

     由于 TDM 数据是左对齐的、因此右移数据会导致位错位。

    为了降低音量、TAC5112 在 DAC_CHxA_CFG0 寄存器 (CH1 为 0x67) 中的播放路径上提供数字音量控制。

    此致、

    Garret

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Garret:

    感谢您的回答—我有一个快速的跟进,以确保我正确理解。

    您提到 TDM 数据在 32 位字中是左对齐的。 在这种情况下、该 32 位字有多少位实际携带有效数据? 此外、对于其余位、它们是以定义的方式填充(例如全零)、还是应该将它们视为未定义/无关值?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Quoc-Anh:

    如果数据是 24 位(例如,在 32 位时隙长度中)、前 24 位将承载数据、其余 8 位将为零。 但是、您也可以将 TAC5112 上的时隙长度编程为 24 位。

    此致、

    Garret

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢、这证实了我的理解—32 位插槽中的 24 个有效位 MSB 对齐。

    跟进问题:当 MCU 在数字静音 ADC 通道 (ADC_CH1_DVOL = 0x00) 上从 TAC5112 接收到 DOUT0x00000000 时、该值主要会跳转到0x00004000 (int32_t)。 由于数据是 24 位 MSB 对齐的、0x00004000因此对应于 24 位标度上的 64 个 LSB。

    我的设置:目标模式下的 TDM、32 位时隙长度、48kHz、TAC5112。

    这种间歇性0x4000的预期行为(例如残余噪声或 HPF/DSP 状态达到数字静音后)、还是表示配置有误?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    数字静音应完全衰减输出。