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.

[参考译文] TAS2770:咔嗒声和砰砰声抑制

Guru**** 2914580 points

Other Parts Discussed in Thread: TAS2770

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1647834/tas2770-click-and-pop-suppression

器件型号: TAS2770

你好。
我们将使用 Linux 内核 6.6.101 附带的 TAS2770 驱动程序。 音频播放始终从弹出开始。 驾驶员中是否有用于抑制砰砰声的控件?
谢谢。TAS2770 Circuit.png

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

    尊敬的 Andy:

    消除砰砰声的最基本方法是、在 I2S 时钟 (SCLK/BCLK) 稳定之前、不得释放放大器的静音状态、方法是利用 SDZ(静音)引脚控制、如下所示:

    在原理图中、引脚 21 为 SDZ​(关断/静音控制,低电平有效)。 它应连接到 MCU GPIO 或编解码器 GPIO。

    需要在驱动程序中实施运行逻辑、以执行以下步骤:

    1.当系统准备播放音频时、先将 SDZ 拉至低电平​(保持放大器静音)。

    开始 I2S 数据传输(确保 BCLK​和 LRCLK​已经能够稳定地输出)。

    等待一小段时间​(例如 50ms–200ms)、让输出端的直流偏置稳定下来。

    4.最后、将 SDZ 拉至高电平​(释放静音并启动正常声音输出)。

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

    您好、Peter:

    感谢您的快速答复。

    从数据表中:
    如果 SDZ 引脚为低电平有效、则器件会进入硬件关断模式。 在硬件关断模式下、器件会消耗来自 AVDD 和 VBAT 电源的最小静态电流。 在此模式下所有寄存器会丢失状态、且禁用通信(通过 I2C)。

    每次回放时重新编程设备会很麻烦。 还有其他方法吗?

    Andy

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

    尊敬的 Andy:

    我理解您的担忧。  您只需在启动 I2S 时钟之前写入 I2C 寄存器以数字方式使输出静音、而不是切断电源或将 SDZ 引脚拉至低电平。 请参阅 TAS2770 数据表第 8.4.7.3 节(静音)​和第 9.3.6/9.3.7 节:

    要静音:​将 MODE[1:0]位(在寄存器 0x02 中)设置为 2'b01 (0x01)。

    要取消静音:​将 MODE[1:0]位设置为 2'b00 (0x00)。 (注意:确保您的数字音量斜坡速率设置正确,以便静音/取消静音平稳斜坡)。

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

    尊敬的 Andy:

    以下是建议的运行逻辑。

    1.准备:​确保 I2S 时钟 (BCLK/LRCLK) 关闭​(或空闲)。

    2.软件静音:​写入 PWR_CTL 寄存器 (0x02) 以将器件设置为静音​(0x01)。 这可以确保即使出现杂散时钟、D 类输出也会被静音。

    3.启动​I2S:启用 SoC 的 I2S 控制器以生成稳定的 BCLK 和 LRCLK。

    4.等待:​添加一个小延迟(例如 50ms 至 200ms)、以便 TAS2770 的内部直流失调电压完全稳定。

    5.软件取消静音:​写入 PWR_CTL 寄存器 (0x02) 以将器件设置为运行​(0x00)。 音频将根据您的斜坡速率设置平稳衰减。

    6.播放音频:​开始发送实际音频数据。 (可选:如果您想在空闲时省电,可以在静音和停止​I2S 时钟后将芯片置于软件关断模式 (0x02)、并在取消静音之前将其唤醒 (0x01)。 这将保留所有寄存器值。)

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

    Peter、
     TAS2770 Linux 驱动程序是否提供了实现此目的的方法?
    Andy

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

    我不确定、如果我们的 tas2770 不支持、您可以在代码中设置它们。

    您可以执行 tas2781-i2c.c 代码、所有寄存器设置都存储在 BIN 文件中、不会更改任何代码。