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 驱动程序。 音频播放始终从弹出开始。 驾驶员中是否有用于抑制砰砰声的控件?
谢谢。
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.
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 驱动程序。 音频播放始终从弹出开始。 驾驶员中是否有用于抑制砰砰声的控件?
谢谢。
尊敬的 Andy:
消除砰砰声的最基本方法是、在 I2S 时钟 (SCLK/BCLK) 稳定之前、不得释放放大器的静音状态、方法是利用 SDZ(静音)引脚控制、如下所示:
在原理图中、引脚 21 为 SDZ(关断/静音控制,低电平有效)。 它应连接到 MCU GPIO 或编解码器 GPIO。
需要在驱动程序中实施运行逻辑、以执行以下步骤:
1.当系统准备播放音频时、先将 SDZ 拉至低电平(保持放大器静音)。
开始 I2S 数据传输(确保 BCLK和 LRCLK已经能够稳定地输出)。
等待一小段时间(例如 50ms–200ms)、让输出端的直流偏置稳定下来。
4.最后、将 SDZ 拉至高电平(释放静音并启动正常声音输出)。
尊敬的 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)。 这将保留所有寄存器值。)