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.

[参考译文] TLV320DAC32:I2S DAC 配置问题

Guru**** 2557520 points


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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1569465/tlv320dac32-i2s-dac-configuration-problems

器件型号:TLV320DAC32


工具/软件:

这是此器件的 EVM、我尝试让一些小型扬声器可以正常工作。

我也有 USB 板,但我无法使软件工作(它冻结在 Windows 10 和 Windows 7 上),所以我试图手动控制它通过 I2C 总线. 在 I2C 总线上检测到该器件、似乎按预期响应。

问题是扬声器没有声音、数据表中也有一些我不清楚的东西、因此我想澄清一些事项、以确保我正确设置所有寄存器。

I2S 源可配置为 48kHz 或 96kHz 采样率。

MCLK = 24.576MHz(与所选的采样率无关)
右通道期间为 LRCLK = 1、左通道期间为 0
SCLK =位时钟、1.536MHz 以 48kHz 采样速率运行、3.072MHz 以 96kHz 采样速率运行
DATA =每通道 16 位

我确定了以下参数来使用 SCLK 作为时钟源并忽略 MCLK:

R=8
P= 1.
K= 8.0  J=8  D=0
DAC FS = Fsref/1  ??? (似乎使用了较高的值来消除低采样率下的噪声,那么这对于我的应用来说是正确的吗?)
使用 DAC_CLKIN 选择 PLLDIV_OUT

显然、 PLLCLK_IN/P 需要>=BCLK 2MHz 且<=BCLK、这样 20MHz 实际上无法在 48kHz 下完成、因为该值仅是 1.536MHz — 考虑到该采样率的受欢迎程度,似乎毫无意义,但 96kHz 在该范围内、因此我将最初使用该采样率。 还是我不正确地理解?

然后在寄存器映射中、我注意到了一个 PLL 时钟分频器 N 值寄存器 (寄存器 102)
数据表中的任何其他位置都没有提及、PLL 方框图中也没有提及。 这是什么? 这是否意味着/8 分频器不是固定的? 也许这应该设置为 8?

我已经得出了以下数据要写入

、 、h00、h80、h00、h81、 h20、h00、h00、h0a、h00、 h04、h00、h08、h00、h17、 hc0、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、hc0、h04、 h00、hc0、h00、h9c、h00、 h00、h00、h80、h00、h00、 H80、h0d、h00、h00、h80、 H00、h00、h00、h00、h0d、 h00、h00、h00、h00、h00、 H80、h0d、h00、h00、h00、 H80、h00、H80、h0d、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 H00、h00、h00、H28

由于这不起作用、我决定尝试改用 MCLK。

选项 2 - 48kHz 或 96kHz 采样速率下的 MCLK 分频器
可以禁用 PLL、因为 MCLK 只需要进行 8 分频
48kHz 时为 16 或 96kHz 时为 8 Q =
使用 DAC_CLKIN 选择 CLKDIV_OUT

、 、h00、h80、h00、h41、 h20、h00、h00、h0a、h00、 h04、h00、h08、h00、h17、 hc0、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、hc0、h04、 h00、hc0、h00、h9c、h00、 h00、h00、h80、h00、h00、 H80、h0d、h00、h00、h80、 H00、h00、h00、h00、h0d、 h00、h00、h00、h00、h00、 H80、h0d、h00、h00、h00、 H80、h00、H80、h0d、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 H00、h00、h01、H28

仍然没有声音

还有其他一些我不确定的事情。 应如何设置这些参数?:
路由到 HPRCOM?
输出共模电压?
DAC 旁路 — 已启用还是已禁用? 假定禁用

目前、扬声器连接到评估套件的 J12 和 J13 的+和 — 端子。 最终需要有一个耳机插孔、那么我需要什么样的配置?

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

    您好、Nick、

    尝试将从器件地址更改为 H30 进行写入、这会将写入位 0 附加到 7 位 I2C 地址 0011000。  如果需要进一步的帮助、我已将此主题介绍给我们的 DAC 专家。  

    此致、

    Garret

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

    尊敬的 Garret:

    感谢您的建议。

    H18 对于我用于写入数据的系统是正确的(Digilent Digital Discovery + Waveforms 软件);输出控制台显示读/写位自动附加(“Start、H30 [ H18 | WR ]“)、并且整个数据传输被从设备接受。 更改地址框中的地址会产生 NACK。

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

    我仔细查看了寄存器映射、发现其中一个通道的配置存在错误、因此选项 1 (96kHz、使用 BCLK) 的更新配置数据现在为:

    H00、H80、h00、H81、H20、 h00、h00、h0a、h00、h04、 h00、h08、h00、h17、hc0、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、hc0、h04、h00、 hc0、h00、h9c、h00、h00、 h00、h00、h80、h00、h00、 H00、h0d、h00、h00、h80、 H00、h00、h00、h0d、h00、 h00、h00、h00、h00、h80、 h0d、h00、h00、h00、h80、 H00、H80、h0d、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 H00、H00、H28

    在任何情况下、另一个通道应该仍然有效、但这没有解决问题。

    我读回所有字节以验证数据、这是我读回的内容:

    H00、h00、h00、H81、H20、 h00、h00、h0A、h00、h04、 H00、H08、h00、H17、hC0、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h02、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、hC0、h04、h00、 hC0、h00、h9C、h00、h00、 h00、h00、h80、h00、h00、 H00、h0F、h00、h00、h80、 h00、h00、h00、h0F、h00、 h00、h00、h00、h00、h80、 h0F、h00、h00、h00、h80、 H00、H80、h0F、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、h00、 h00、h00、h00、h00、hC6、 h0C、h00、h00、h00、h00、 H00、H00、H28、  

    最值得注意的是 寄存器 51、58、65、72 中的以下位 — 尚未应用 HPLOUT/HPLCOM/HPROUT/HPRCOM 的所有编程增益

    我没有看到我必须写入一个字节才能应用编程的增益、那么该位是否意味着 PLL/DAC 时钟配置不正确或同步? 似乎没有任何 PLL 状态寄存器、这会有所帮助。

    从地址十进制 94 开始的状态字节为: hC6、h0C、h00、h00

    编辑:根据上面显示的寄存器映射、我目前正在从左扬声器中获得严重失真的音频、从右扬声器中获得合理的良好音频。

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

    您好、Nick、

    I2S clk 和 PLL 系数的值是可以的、我没有看到任何问题。 右声道工作正常但左扬声器失真的事实可能表明左声道的增益较大。 因此、您既可以调试自己的代码、也可以从工作代码开始进行修改。 我个人更喜欢在已知状态下工作并修改工作脚本、而不是发现脚本存在问题。

    此处是指向此器件的一些不同工作脚本的链接。

    示例脚本 (FAQ) :

     https://e2e.ti.com/support/audio-group/audio/f/audio-forum/826372/faq-tlv320dac32-example-scripts-and-unused-i-o-pins-connection-tips 

    您可以找到以下链接及其脚本也很有用。

    https://e2e.ti.com/support/audio-group/audio/f/audio-forum/735306/tlv320dac32-tlv320dac32-gui/2714588#2714588

    如果不让我知道、我希望这将帮助您解决问题。

    此致、

    Arash

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

    尊敬的 Arash:

    感谢您的链接。 第二个链接中的立体声单端示例对于重新配置耳机输出芯片很有用。 差分示例看起来与我已经使用的示例相同。

    我调低了增益(数字音量控制和输出级)、但噪声没有改善。 此外,耳机可以比扬声器更清晰地听到音频,这表明从右声道发出的音频实际上不好,只是它是比从左声道发出的音频噪音要少得多。 在源音频的静音部分没有噪音、但一旦有任何声音、甚至安静的声音、就会有噪音。

    我尝试了不同的寄存器 2 值(只进行单字节写入)、音频进入静音状态。 无论如何、即使在下电上电并写入之前有效但具有噪声输出的寄存器映射后、电路板也不会生成音频。 DSO 上的信号完整性看起来并不理想、因此如果 DAC 板明天恢复正常、我将尝试使用更短的布线。

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

    您好、Nick、

    Arash 今天已下班、  明天可以查看您的回复。

    此致、

    Garret

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

    电路板再次工作、因此我能够继续进行测试。 我认为、昨天 IT 似乎已经崩溃的原因是数字发现需要重新启动。

    I2S 接线就是问题所在。 WCLK 的上升时间太慢、可能会弄乱数据位的顺序。 这种解决方案消除了噪音、扬声器和耳机的音质都非常出色。

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

    好极了。 感谢您的更新。

    此致、

    Arash