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.

[参考译文] TLV320AIC3104:使用 TLV320AIC3104 音频编解码器在定制电路板上无法正常音频播放(与 EVM 配合使用)

Guru**** 2540720 points
Other Parts Discussed in Thread: TLV320AIC3104, TLV320AIC3104EVM-K

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1549530/tlv320aic3104-audio-playback-is-not-working-on-custom-board-using-tlv320aic3104-audio-codec-works-with-evm

器件型号:TLV320AIC3104


工具/软件:

大家好:

我们正在使用 TLV320AIC3104.  (TLV320AIC3104IRHBR) 音频编解码器 定制板 、我们目前正面临通过获得音频输出的问题 线路输出

问题:

  • 我们通常会遇到这种情况 定制板 是的 线路输出或耳机输出无输出

  • 在某些情况下、 我们听到的声音非常嘈杂/失真

  • 但是、在测试时 官方 EVM 上的音频设置相同 ( TLV320AIC3104EVM-K ) AIC310x EVM GUI 工具 、一切都按预期运行。

EVM 测试结果:

我们测试了  中的两种不同的预设配置(如屏幕截图所示)  AIC310x EVM GUI 工具 和能够根据设置在耳机上获得音频输出和线路输出。 为了在定制电路板上复制相同的行为、我们 从复制了 I2C 命令执行  命令行界面 AIC310x EVM GUI   工具。  

下面是每个预设配置 测试的执行日志。  

  • 预设配置 1:  无电容耳机输出的立体声播放、
    这些 I2C 命令在 EVM 上生成干净的音频输出:

    i i2cfast
    W 30 07 8A
    W 30 66 A0
    W 30 29 02
    W 30 2B 00
    W 30 0E C0
    W 30 25 E0
    W 30 26 10.
    W 30 2F 80
    W 30 40 80
    W 30 41 0D
    W 30 33 0D

  • 预设配置   2: 立体声播放 线路输出、
    也适用于具有以下配置的 EVM:

    i i2cfast
    W 30 07 8A
    W 30 66 A0
    W 30 25 C0
    W 30 29 02
    W 30 2B 00
    W30 52 80
    W30 5C 80
    W30 4B 80
    第 80 章
    W 30 56 09
    W30 5D 09
    W 30 4F 09

定制板上的问题:

  • 我们应用了 两组寄存器配置 定制硬件。

  • 遗憾的是、 两种配置都不提供干净的音频或任何线路输出信号 存在硬件问题。

  • 电源轨和 I2C 通信看起来正常。

  • MCLK 和其他时钟似乎存在且稳定。

我们的目标:

我们正在尝试通过获得干净的音频输出 线路输出通道 (LEFT_LOP+/RIGHT_LOP+) 、如屏幕截图所示、在我们的定制电路板上使用 TLV320AIC3104. 编解码器。


请求:

从 EVM 迁移到定制电路板时、是否有人遇到过同样的问题?
我们非常感谢您提供的任何帮助或建议、尤其是在缺少任何更改、设置丢失(如使用 amixer 或原始 I2C 命令)或我们可能错过的设置步骤时。

提前感谢您的支持!

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

    添加注释以提供有关此问题的更多信息。  

    下面是我们的编解码器原理图、以绿色突出显示了我们检查音频信号的位置。 请注意、在 EVM 上、我们能够在这两个音频输出(线路输出 L + R 和耳机 L + R)上获得清晰的音频输出。  

    这是我们应用于定制主机板上编解码器的寄存器表。 请注意、该寄存器表是从 AIC310X EVM GUI 软件复制的。  

    e2e.ti.com/.../2025_2D00_08_2D00_05-_2D00_-TI-3104-Codec-Register-Table.xlsx

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

    添加另一条关于寄存器 108 的注释。  

    根据我们的原理图、我们仅将音频路由到 LEFT_LOP 和 RIGHT_LOP(线路输出加)。 基于此、我们认为可能需要设置寄存器 108。 但是、寄存器名称意味着此设置仅在编解码器断电期间生效。  

    请注意、在 EVM 中启用这些功能似乎不会影响 EVM 线路输出端子线路输出的音频输出。  

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

    嗨、Nazar 和 Vidit、

    我们可以先尝试一些操作:

    我建议在脚本开头运行软件复位寄存器、这将是“w 30 01 80“。 然后可以知道我们从器件默认设置开始。 此后、从 GUI 运行脚本的工作方式应该与在 EVM 上运行脚本的工作方式相同。 我注意到的另一个问题是、您的耳机和 AUDIO_AMP 连接似乎是错误的 — 通常我们会将 hipan-L 放在“HPLOUT+"上“上、它以 HPLCOM 为基准、hipan-R 位于 HPROUT+上、以 HPRCOM 为基准。 因此、将耳机连接置于 HPLCOM 和 HPRCOM 上需要更多注意配置这些输出的寄存器。 这将与寄存器 68 (0x44)(从 DAC_L1 路由到 HPRCOM)和寄存器 57 (0x39)(从 DAC_R1 路由到 HPLCOM)配合使用。  

    对于线路输出寄存器、是的、您不需要共享的寄存器 108。 作为 DAC 输出启用线路输出的主要寄存器是寄存器 82 (0x52)、将 DAC_L1 发送到 LEFT_LOP/M、而寄存器 92 (0x5c) 将 DAC_R1 发送到 RIGHT_LOP/M  

    请告诉我进行软件重置是否有帮助、以及您是否按照我的建议更改耳机路由。 或者、如果您需要我的建议方面的更多帮助、

    此致、
    Mir

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

    您好、 Mir Jeffres 、  

    感谢您的关注和反馈。

    我们根据输入运行测试。 但是、结果是相同的。 在使用原始 I2C 写入时、我们无法在线路输出上听到音频。

    我们做了一些额外的测试,并能够使用 amixer 指令播放各种音频文件。 但是音频输出相对较低、噪音很大、信号质量很差。

    下面是我们在共享驱动程序文件夹中上传的最新测试的工件列表
    drive.google.com/.../1autTsDBfbtlFe8tXkaox2s7S1OVhypuo

    1. 用于行输出的 amixer 脚本 ( Line_out_audio_amixer.sh )
    2. 声音输出 (2025年08月07日-使用 Amixer.MOV 应用的设置进行音频播放)
    3.  信号质量 (2025年08月07日-使用 Amixer.MOV 应用设置的音频信号)


    我还附加了 amixer 可能的曲棍子 ( TLV320AIC3104_Codec_amixer_contents.txt ) 和 amixer 可能的控件 ( TLV320AIC3104_Codec_amixer_controls.txt )。  

    我们的目标是 通过实现干净的音频输出  线路输出通道 (LEFT_LOP+/RIGHT_LOP+) 、如屏幕截图所示、在我们的定制电路板上使用  TLV320AIC3104.  编解码器。  

    您能否仔细查看并帮助我们识别干扰或修改 我们当前使用的 amixer 控件?  

    此致、
    VIdit

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

    您好、

    能否分享 I2S 时钟的示波器屏幕截图? 您还能发送寄存器转储吗? 为了帮助降低输出音量、我的主要注意事项是将“线路 DAC 回放音量“增加到 100、因为这可能是 PCM 回放音量之前的阶段、因此从最大值降低任何增益级都会降低输出的增益级。 寄存器转储可在此处提供更大帮助。 我有一种感觉、驱动程序设置的东西与您预期的不同。

    此致、
    Mir

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

    您好、 Mir Jeffres 、

    感谢您的反馈。 播放音量按您建议的方式工作。  但是、我们在这里激活编解码器设置后、仍然会听到很多背景噪音(嘶嘶声)、即使我们没有播放音频也是如此。

    根据要求、我们根据 amixer 配置转储编解码器寄存器。  另外、我们还探测了 MCLK、看起来与预期一样正常。

    然而、在播放标准 440Hz 正弦 WAV 文件时、线路输出引脚会非常嘈杂和失真。 当我们使用 EVK 进行测试时、它提供清晰的正弦波。

    测试结果附加到一个驱动器 drive.google.com/.../1autTsDBfbtlFe8tXkaox2s7S1OVhypuo

    1. 2025年08月08日-寄存器转储线路 PCM 播放音量 70.txt
    2. 2025年08月08日-寄存器转储线路 PCM 播放音量 100.txt
    3. 2025年08月08日-音频线路上的噪音自定义 440Hz .jpeg
    4. 2025年08月08日- Line_out_EVK_440Hz.png

    请查看并提供您对驾驶员级别可能出现的错误配置的反馈。

    此致、
    VIdit

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

    您好、vidit、

    还有一点、如何连接到线路输出 M 引脚? 我看到未连接、但您的扬声器有什么差分输入? 您如何将其连接到 EVM?

    此外、我认为这些寄存器转储不是在信号播放时发生的、因此表明线路输出处于静音状态。 如果您可以在播放时获取寄存器转储、它将会更有帮助。

    此致、
    Mir

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

    您好、 Mir Jeffres 、  

    以下是对您的问题的内嵌式回答。

    还有一件事、您如何连接到您的 M 针线? 我看到未连接、但您的扬声器有什么差分输入? 您如何将其连接到 EVM?

     
    我们有一个使用 TPA3255TDDVRQ1 的单独放大器板、该放大器板具有自己的差分信号生成功能。 因此它仅使用 Line out P。请注意、我们已经测试了此音频放大器板、并且在不同的音频设置下工作正常。 因此、我们更专注于编解码器本身的直接输出。

    另外、我认为这些寄存器转储不是在信号播放时进行的、因此表明线路输出是静音的。 如果您可以在播放时获取寄存器转储、则会更有帮助。

    播放音频以及前后数据时附带的编解码器寄存器转储。
    docs.google.com/.../edit


    下方是 测试观察结果  用于音频信号探测、同时播放正弦波音频文件。

    1.如屏幕截图所示,我们在播放音频文件的同时在 TP81 和 TP85 上探测音频信号。


    这是定制电路板上线路输出的探测输出  




    在 EVK 线路输出 P+或 M-线路上、我们有干净的正弦波音频。
      



    注释 :在前面的测试中,我们在 EVK 和定制电路板上播放了相同的正弦波文件,我们使用 amixer 设置设置了定制电路板的音频代码 ( 2025年08月08日-注册转储线路 PCM 播放音量 70.txt )。  

    测试结论:   

    测试结果证明、音频编解码器线路和耳机线路上的信号输出非常差、但 EVK 线路输出上的音频信号清晰。 根据许多测试、我们坚信需要微调编解码器设置以提供出色的音频输出。

    我们会寻求您的输入来微调编解码器设置、以实现适当的音频质量。  

    此致、  
    VIdit  

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

    您好、vidit、  

    您能提供 MCLK 速率吗? 我认为这可能是时钟问题。 您是否也可以测量 BCLK 和 WCLK 时钟输出? 你打算做什么?  MCLK=MCLK 是 24.576MHz 吗? 另一个需要检查的是所有电源电压是否正确输入? 看起来您的输出可能不处于 1.35V 共模电压、因为它看起来比示例低。 这可能是由于电压不正确、电源时序可能不正确。 有关电源相关建议、请遵循数据表的第 12 节:  

    另一个需要注意的电源问题是、IOVDD 为 1.8V、因此所有数字信号都应为 1.8V。 确保中的 I2S 信号为 1.8V、而不是 3.3V。

    此致、
    Mir

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

    您好、 Mir Jeffres 、  

    感谢您的反馈。

    请查找您问题的内联回复。  

    您能提供您的 MCLK 速率吗?

     
    答案 — MCLK 速率为 24.576MHz。 以下是的一个快照 MCLK 使用示波器进行测量。 它符合预期。  




    您是否也能测量 BCLK 和 WCLK 时钟输出?

    答案:下面是示波器测量值

    BCLK

    WCLK

    要检查的另一件事是所有电源电压是否正确输入? [/报价]

    答:是的,所有的耗材都是正确的。 以下是来自不同引脚的测量读数。  

    编解码器引脚

    Name

    7.

    IOVDD

    1.8V

    32

    DVDD

    1.8V

    18

    DRVDD1

    3.3V

    24

    DRVDD2

    3.3V

    25

    AVDD/DAC

    3.3V

    4.

    DIN

    1.8V

    另外一个需要注意的是、IOVDD 为 1.8V、因此所有数字信号都应为 1.8V。 确保中的 I2S 信号为 1.8V 而不是 3.3V。

    答案:这里是上的测量值

    DIN


    如果我在这里遗漏了任何信息、请告诉我。  

    此致、  
    VIdit

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

    您好、vidit、

    还有一个问题供您回答、然后我将更深入地介绍您的寄存器转储、您如何配置 EVM? 运行相同的寄存器配置、还是您使用的是 GUI? 您还能从 EVM 中提供寄存器转储吗?

    -米尔

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

    您好、 Mir Jeffres 、  

    根据您的要求、这里提供了在没有音频播放和音频播放期间 EVM 的寄存器转储、

    https://docs.google.com/spreadsheets/d/1KJ9_VOe-mSZ9ZeeRIaz3VnAZPnJa-mOyfYLdT6xH3cU/edit?gid=0#gid=0

    通过 GUI 应用 EVM 设置的寄存器转储。

    https://docs.google.com/spreadsheets/d/1KJ9_VOe-mSZ9ZeeRIaz3VnAZPnJa-mOyfYLdT6xH3cU/edit?usp=sharing

    此致、  
    VIdit

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

    您好、vidit、

    新的 reg dump 看起来是相同的文件。

    我能够将此 EVM 转储与您之前提供的由 ALSA 控制的器件寄存器转储进行比较、我注意到的有关此处差异的主要内容与输出有关:

    通过查看寄存器 65、72、94 和 95、我们可以看到、在 EVM 上、耳机输出在未通电时静音、关闭、并设置为高阻抗;在您的电路板上、它们在静音但不设置为高阻抗、然后通电。 在 EVM 上、唯一上电的输出是 LEFT_LOP/M 和 RIGHT_LOP/M 需要注意的另一点是寄存器 82 和 92、设置 DAC_L1 和 R1 上的增益降低、我们可以在您的电路板上看到增益降低~24dB、EVM 降低 0dB。 因此、EVM 上任何输出上的信号将 比电路板上的输出响亮得多。  

    您似乎时钟也存在一些不一致之处、EVM 寄存器转储中缺少一两个寄存器、但 PLL 看起来在 EVM 上被禁用或设置为无效值、并且在 EVM 上处于从模式但在电路板上处于主模式。 我们能否在 EVM 上验证时钟的来源方向以及 PLL 设置是什么?

    如果这对我有帮助、请告诉我... 我建议您尝试从电路板上的 EVM 运行寄存器转储、然后从中查看您是否能够复制性能。 由于驱动程序还控制芯片上的 I2C 寄存器、因此您需要在 ALSA 完成设置更改后执行该操作。

    此致、
    Mir

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

    你好、Mir、

    在我们看来、即使是基于您的反馈、EVM 寄存器转储、甚至我们自己电路板中的寄存器转储也无法按预期持续工作。  

    第 1 部分:EVM 的寄存器设置

    下面以寄存器 82 为例、展示了这种不一致的分步示例。  

    步骤 1:使用 TI EVM GUI 为左 DAC 和左线路输出应用以下设置。  

    步骤 2. 请观察寄存器表。  正如预期的那样、寄存器 82 的值为我们在步骤 1 中应用的设置中的 0x80。  

    0x80 的值也与寄存器 82 的数据表说明相匹配。 到目前为止一切顺利。  

    步骤 3. 播放音频并刷新寄存器表、因为您之前提到了在播放音频时捕获寄存器设置。 不一致的地方就在这里。

    如果我们在播放音频时使用 EVM GUI 来“刷新“寄存器表、则寄存器 82 的值会更新为 0x00 。 这不符合设置和数据表中的预期。 请参阅下面的屏幕截图。

    第 2 部分: 使用我们的定制板测试寄存器设置。  

    现在、我们来看看我们的定制板及其工作原理。 我们执行了以下步骤。  

    步骤 1.  应用 我们的 AMIXER 命令进行配置以播放到线路输出。 2025年08月07日- Line_out_audio_amixer.sh

    步骤 2. 请手动将自定义寄存器值设置为寄存器 65、72、82、92、因为您提到这些值可疑。 我们复制了上面第 1 部分步骤 2 中捕获的 EVM 中的值。 以下是触发的命令。

    root@verdin-imx8mp-tF3-controller-15504931:~# i2cset -f -y 0x1 0x18 0x41 0x00
    root@verdin-imx8mp-tF3-controller-15504931:~# i2cset -f -y 0x1 0x18 0x48 0x00
    root@verdin-imx8mp-tF3-controller-15504931:~# i2cset -f -y 0x1 0x18 0x5C 0x80
    root@verdin-imx8mp-tF3-controller-15504931:~# i2cset -f -y 0x1 0x18 0x52 0x80

    步骤 3. 在播放、播放期间和播放音频之后读取寄存器设置。 请注意、它们意外变化。

    例如

    寄存器 82: 播放前= 0x80 (如预期)
    寄存器 82:播放期间= B0 (不是预期的,并且值与 0x00 不同、这是我们在 EVM 上观察到的情况)
    寄存器 72:播放后= 0x00  (不符合预期)

    我们还会探测出 Line Out L/R 的音频信号、并观察相同的不良信号。 以下是我们定制 PCB 上编解码器的完整寄存器转储文件:

    https://docs.google.com/spreadsheets/d/1xf1lmhw-J_cPw5t7mlN2rXDoOcbTMzNz6LI3HOt22Mg/edit?usp=sharing 

    步骤 4. 尝试设置从 EVM 上的工作设置复制到定制电路板上编解码器的所有寄存器值。 我们会观察到相同的问题。

    问题 1>播放之前、播放期间和播放音频之后的寄存器值意外变化
    问题 2>从线路输出 L/R 发出有噪声的信号

    谢谢、

    Nazar

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

    尊敬的 Nazar:

    很抱歉耽误我的回复。 我查看了您最近的寄存器转储、并评论了我认为问题所在。 抱歉、我们不使用 TI 的 Google Drive、因此必须以 Excel 格式下载。

     e2e.ti.com/.../2025_2D00_08_2D00_21-_2D00_-Codec-Dump-from-Custom-PCB-_5F00_-MIRNOTES.xlsx

    播放过程中或播放后发生的这些更改可能来自 ALSA/驱动程序、更新了诸如路由、卷和一些标志寄存器等寄存器。 我注意到的主要内容是在寄存器转储开始附近、器件在播放期间自行设置为 44.1kHz 模式、然后在播放后恢复为 48kHz 模式(和之前一样)。 它还从从器件模式更改为主模式(时钟从 BCLK 和 WCLK 输出,而不是输入,但仅在播放期间)。 在第一次播放期间也会发生数据偏移、但在第二次播放期间不会发生数据偏移、因为该偏移是在播放前设置的。 如果您能阅读我在 Excel 工作表中的注释、告诉我您的想法、我们就可以弄清楚如何通过 DAC 输出干净的信号。

    此致、
    Mir

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

    你好、Mir、

    感谢您详细查看寄存器转储。

    寄存器预期值(黄色单元格)

    我们已经查看了您的反馈、发现总共有 9 个单元格以黄色突出显示 — 这种颜色编码是否意味着这些寄存器设置不正确? 您能否向我们提供预期的寄存器值?

    寄存器 7 和 8

    我们同意寄存器 7 和寄存器 8 的意见、认为它们有问题。  我们理解对于寄存器 7、预期值应为 0x0A。 对于寄存器 8、我们不确定预期值应该是多少(主器件或从器件)? 我们也不确定如何在播放前将这些寄存器正确设置为正确的值、因为在执行播放时、这些寄存器在播放期间似乎随时会发生变化。  

    ALSA/Aplay

    我们使用以下命令  Aplay  执行播放的命令 (aplay -D sysdefault:card=tf3aic3104 440Hz_44100Hz_16bit_30sec.wav)。 我们是否应该使用不同的方法来执行播放、以便在播放期间更好地控制寄存器?

    ALSA / Amixer

    我们是否通过应用了错误的设置 Amixer ? 我附加了正在应用的 amixer 设置。 请注意、我们已尝试运行 amixer 设置脚本、然后根据之前该线程的反馈更新寄存器值、以尝试应用所需的确切寄存器设置。

    drive.google.com/.../view

    谢谢、

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

    您好、

    在播放期间、寄存器设置会发生变化、这来自器件的 Linux 驱动程序。 您可以使用 dts 文件对其进行一些控制、是的、您的 amixer 设置 — 尽管 amixer 设置主要用于输入/输出路由、而不是时钟。 黄色的亮点是我认为可以表明你的 问题。 所有突出显示的单元格都是在播放前和播放期间之间发生的变化、只是为了让我能更好地看到它。  

    主模式、从模式或采样率都是您需要在 DTS 文件中指定的全部内容。 主模式(有时称为控制器模式)意味着您提供一个时钟(通常为 MCLK)、并且编解码器输出 BCLK 和 WCLK。 从模式(有时称为目标模式)是指将所有 ASI 时钟提供给编解码器。

    如果您能提供 DTS 文件、可能会提供更多帮助。 现在您可以了解时钟的含义、接下来可以解释如何将时钟发送到芯片。

    此致、
    Mir

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

    您好、vidit、

    今天是美国假期。 请耐心等待、我们的团队明天会与您一起跟进。

    谢谢!
    Jeff McPherson

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

    您好、vidit、

    看起来您处于主模式-“bitclock-master"和“和“frame-master"都“都是编解码器。 因此、如果 MCLK 正确并且驱动器能够计算正确的时钟分频器、它们将提供输出时钟。 是否确实提供了 24.576MHz MCLK? 在录制/回放期间、从您的编解码器测得的 WCLK 和 BCLK 是多少?

    此致、
    Mir

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

    尊敬的 Mir:

    这是 MCLK 、它是 在播放过程中围绕 24.5MHz 测量的、因此符合预期:

    下面是 BCLK、在播放期间围绕 1.4MHz 测量(0.1 微秒每格、7.1 分度):  

    下面是 WCLK、 在播放期间测量结果约 为 43.4KHz (5 微秒/格、约为 4.6 div):

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

    您好、

    您的时钟似乎输出为 44.1kHz 模式 — 如果您打算播放 44.1kHz 文件、这一点很好。 您能否验证您正在播放的是 44.1KHz 文件、或者如果是 48kHz、您应该在 aplay 命令中包含“-r 48000“? 也许重新采样会使音频与您预期的不同?

    另外、我即将离开办公室几天、所以我们可能会有其他人在这里提供帮助。 为了清晰起见、您能否再次回顾一下您的问题、以及您尝试解决的问题?

    此致、
    Mir

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

    你好、Mir、

     问题概述:

    1.我们正在向其提供音频 DIN AIC3104 编解码器的内部版本。 所有其他输入未使用(并根据我们应用的设置静音)。

    2.当我们听到任何耳机输出或线路输出的输出时, 我们可以听到音频 但很吵。 在这里听。  

    3、如果我们分析模拟音频信号,我们可以确认它有噪音(见这张照片通过探测线输出) 。  

    4. 我们可以使用 EVM 播放相同的音频并输出清晰的音频(请参见这张通过探测线输出拍摄的照片) 。  

    5.下面是我们的 DTS(在此支持主题中)。  我们还尝试了各种 amixer 命令来设置输出和播放音频(例如,此处和其他地方)  。  

    6、如果我们尝试从 EVM 访问寄存器表并将这些寄存器写入主机上的编解码器、则不会改善音频输出。  

    谢谢、

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

    您好、

    您的音频示例不清楚、您是弹钢琴声还是正弦波? 我对什么是“噪声“仍然感到困惑 — 如果您可以在示波器或仅在原始文件上提供输入信号和输出信号,这将比示波器的视频更有帮助。 此外、您是否可以通过同一示波器屏幕截图提供来自 EVM 的输出信号、这对您也很有帮助。 根据您发送的内容、电路板上似乎没有信号、但 EVM 上有信号。 您能否展示在原理图上的探测位置以及在 EVM 原理图上的探测位置? 如果您确实在 EVM 和电路板上放置了相同的脚本、然后在电路板上发出了噪声、而不是在 EVM 上发出了噪声、那么这似乎是电路板问题(可能在通电,可能是时钟不相同等)。 因此、如果您可以健全检查两个芯片上的电源以及并排时钟、以及使其发送到芯片的 I2S 信号、这可能有助于解决您的问题。 如果您可以为我提供寄存器或您正在运行的脚本、也会提供帮助。 我更喜欢不要有这些文件通过谷歌驱动器,如果你可以将它们附加到你的帖子这里,这将是最好的。 插入->代码将允许您在 E2E 上执行行代码。

    此致、
    Mir

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

    您好:

    音频示例是播放钢琴 — 这是共享的,因为它是很容易听到的视频正在播放什么(与一个正弦波,这是很难告诉)。

    以下是请求的项目:

    1.输入信号 — 如前所述,我们将输入到编解码器上的 DIN。 今后、我们将仅使用正弦 440Hz 音频。 这是 音频文件。 它在 Google Drive 上、因为此支持网站不允许上传文件。  

    2.来自 LEFT_LOP(测试点 81)或 RIGHT_LOP(测试点 85)的输出信号、同时播放 440Hz 正弦。 如前所述、我们可以听到声音、 声音有点模糊、周围有很多噪音。 数字输入音频信号传入、我们听到的是正在播放音频。 这就是在下图中为这些测试点设置范围时看到的结果。

    3.播放 440Hz 正弦时 EVM 上的左侧 OUT +或右侧 OUT +输出信号。 音频很清晰、我们在探测这些输出时得到了一个很清晰的正弦波。  

    4.我们在 EVM 上放置的脚本与在电路板上放置的脚本不同。 此 EVM 通过在 Windows 上运行的 AIC 310x GUI 实用程序运行。 主机 PCB 上的编解码器 在 Yocto 上运行。  

    5、如前所述,编解码器的电源是正确的,没有噪音,时钟看起来也是正确的(除非您能发现错误)。 时钟输出在 8 月 18 日和 9 月 3 日共享、最近一次 在这里共享。   

    6.下面是 amixer 脚本:

    # ===== Volume and Digital Path Settings =====
    amixer -c 0 cset name='PCM Playback Volume' 100,100
    amixer -c 0 cset name='Line DAC Playback Volume' 70,70
    amixer -c 0 cset name='Line PGA Bypass Volume' 0,0
    amixer -c 0 cset name='Line Playback Volume' 5,5
    
    # ===== DAC to Line Path (Enable Only LOP/ROP) =====
    amixer -c 0 cset name='Left DAC Mux' 'DAC_L1'
    amixer -c 0 cset name='Right DAC Mux' 'DAC_R1'
    amixer -c 0 cset name='Left Line Mixer DACL1 Switch' on
    amixer -c 0 cset name='Right Line Mixer DACR1 Switch' on
    amixer -c 0 cset name='Line Playback Switch' on,on
    
    # ===== Disable All Other Outputs =====
    
    ## Headphone Outputs
    amixer -c 0 cset name='Left HP Mixer DACL1 Switch' off
    amixer -c 0 cset name='Right HP Mixer DACR1 Switch' off
    amixer -c 0 cset name='HP Playback Switch' off
    amixer -c 0 cset name='HP DAC Playback Volume' 0,0
    amixer -c 0 cset name='HP PGA Bypass Volume' 0,0
    amixer -c 0 cset name='HP Playback Volume' 0,0
    
    ## HPCOM Outputs
    amixer -c 0 cset name='Left HPCOM Mixer DACL1 Switch' off
    amixer -c 0 cset name='Right HPCOM Mixer DACR1 Switch' off
    amixer -c 0 cset name='HPCOM Playback Switch' off
    amixer -c 0 cset name='HPCOM DAC Playback Volume' 0,0
    amixer -c 0 cset name='HPCOM PGA Bypass Volume' 0,0
    amixer -c 0 cset name='HPCOM Playback Volume' 0,0
    
    ## Line Bypass Paths (PGAs to Line)
    amixer -c 0 cset name='Left Line Mixer PGAL Bypass Switch' off
    amixer -c 0 cset name='Left Line Mixer PGAR Bypass Switch' off
    amixer -c 0 cset name='Right Line Mixer PGAL Bypass Switch' off
    amixer -c 0 cset name='Right Line Mixer PGAR Bypass Switch' off
    amixer -c 0 cset name='Left Line Mixer DACR1 Switch' off
    amixer -c 0 cset name='Right Line Mixer DACL1 Switch' off
    
    ## HP Bypass Paths
    amixer -c 0 cset name='Left HP Mixer PGAL Bypass Switch' off
    amixer -c 0 cset name='Left HP Mixer PGAR Bypass Switch' off
    amixer -c 0 cset name='Right HP Mixer PGAL Bypass Switch' off
    amixer -c 0 cset name='Right HP Mixer PGAR Bypass Switch' off
    
    ## HPCOM Bypass Paths
    amixer -c 0 cset name='Left HPCOM Mixer PGAL Bypass Switch' off
    amixer -c 0 cset name='Left HPCOM Mixer PGAR Bypass Switch' off
    amixer -c 0 cset name='Right HPCOM Mixer PGAL Bypass Switch' off
    amixer -c 0 cset name='Right HPCOM Mixer PGAR Bypass Switch' off
    
    ## PGA / MIC Inputs
    amixer -c 0 cset name='Left PGA Mixer Mic2L Switch' off
    amixer -c 0 cset name='Left PGA Mixer Mic2R Switch' off
    amixer -c 0 cset name='Right PGA Mixer Mic2L Switch' off
    amixer -c 0 cset name='Right PGA Mixer Mic2R Switch' off
    amixer -c 0 cset name='Left PGA Mixer Line1L Switch' off
    amixer -c 0 cset name='Left PGA Mixer Line1R Switch' off
    amixer -c 0 cset name='Right PGA Mixer Line1L Switch' off
    amixer -c 0 cset name='Right PGA Mixer Line1R Switch' off
    amixer -c 0 cset name='PGA Capture Switch' off
    amixer -c 0 cset name='PGA Capture Volume' 0,0
    
    ## Miscellaneous Unused Features
    amixer -c 0 cset name='AGC Switch' off,off
    amixer -c 0 cset name='De-emphasis Switch' off,off
    

    7.下面是相关的 DTS 片段:

    / {
    
     /* Carrier Board Supply +V1.8 */
    
     reg_1p8v: regulator-1p8v {
    
     compatible = "regulator-fixed";
    
     regulator-max-microvolt = <1800000>;
    
     regulator-min-microvolt = <1800000>;
    
     regulator-name = "+V1.8_SW";
    
     };
    
    
    
     /* Carrier Board Supply +V3.3 */
    
     reg_3p3v: regulator-3p3v {
    
     compatible = "regulator-fixed";
    
     regulator-max-microvolt = <3300000>;
    
     regulator-min-microvolt = <3300000>;
    
     regulator-name = "+V3.3_SW";
    
     };
    
    
    
     sound_card: sound-card {
    
     compatible = "simple-audio-card";
    
     simple-audio-card,bitclock-master = <&dailink_master>;
    
     simple-audio-card,format = "i2s";
    
     simple-audio-card,frame-master = <&dailink_master>;
    
     simple-audio-card,name = "tf3-aic3104";
    
     simple-audio-card,widgets = "Line", "Line Out",
    
     "Line", "Line In";
    
     simple-audio-card,routing = "Line Out", "LLOUT",
    
     "Line Out", "RLOUT",
    
     "MIC2L", "Line In",
    
     "MIC2R", "Line In";
    
    
    
     dailink_master: simple-audio-card,codec {
    
     sound-dai = <&tlv320aic3104_18>;
    
     clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>;
    
     };
    
    
    
     simple-audio-card,cpu {
    
     sound-dai = <&sai1>;
    
     };
    
     };
    
    
    
    };
    
    
    
    /* Verdin I2C_2_DSI */
    
    &i2c2 {
    
     status = "okay";
    
    
    
     /* Audio Codec */
    
     tlv320aic3104_18: audio-codec@18 {
    
     compatible = "ti,tlv320aic3104";
    
     reg = <0x18>;
    
     #sound-dai-cells = <0>;
    
     clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>;
    
     clock-names = "mclk";
    
     DCVDD-supply = <&reg_1p8v>;
    
     DBVDD-supply = <&reg_1p8v>;
    
     AVDD-supply = <&reg_1p8v>;
    
     CPVDD-supply = <&reg_1p8v>;
    
     MICVDD-supply = <&reg_1p8v>;
    
     };
    
    };
    
    
    
    
    /* VERDIN I2S_1 */
    
    &sai1 {
    
     #sound-dai-cells = <0>;
    
     assigned-clocks = <&clk IMX8MP_CLK_SAI1>;
    
     assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
    
     assigned-clock-rates = <24576000>;
    
     clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI1_IPG>, <&clk IMX8MP_CLK_DUMMY>,
    
     <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>, <&clk IMX8MP_CLK_DUMMY>,
    
     <&clk IMX8MP_CLK_DUMMY>;
    
     clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
    
     fsl,sai-mclk-direction-output;
    
     pinctrl-names = "default";
    
     pinctrl-0 = <&pinctrl_sai1>;
    
    };

    谢谢

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

    您好、

    我们是否已验证您的寄存器转储存在所有潜在问题? 您能否在寄存器转储播放期间重新测量更改? 您还可以在 GUI 中检查 EVM 的寄存器转储、可以验证您在 GUI 中所做的更改是否与 Linux 系统中设置的寄存器一致。 通过 GUI 设置的任何设置实际上都会向芯片发送 I2C 命令、GUI 应将其保存在“Command Line Interface“页面中、如下所示:

    然后、您可以在“Register Table“选项卡中导出器件中设置的寄存器、如下所示:

    您可以使用定制电路板的寄存器转储来检查寄存器表、我也可以在发送它时进行检查。

    此致、
    Mir

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

    第一种使用定制板的方法:

    步骤 1. 应用我们的 AMIXER 脚本、用于配置编解码器以播放到线路输出。  

    步骤 2. 手动更新寄存器 65、72、82、92。 我们复制了使用 EVM GUI 命令缓冲区捕获的 EVM 中的值。 以下是触发的命令。

    root@verdin-imx8mp-tF3-controller-15504931:~# i2cset -f -y 0x1 0x18 0x41 0x00
    root@verdin-imx8mp-tF3-controller-15504931:~# i2cset -f -y 0x1 0x18 0x48 0x00
    root@verdin-imx8mp-tF3-controller-15504931:~# i2cset -f -y 0x1 0x18 0x5C 0x80
    root@verdin-imx8mp-tF3-controller-15504931:~# i2cset -f -y 0x1 0x18 0x52 0x80

    步骤 3. 在播放、播放期间和播放音频之后读取寄存器设置。

    2025年08月21日-来自定制 PCB.xlsx 的编解码器转储

    第二种使用定制板的方法:

    步骤 1. 请尝试设置 所有寄存器值  使用从 EVM 寄存器表复制到定制电路板上编解码器的值。 我们会观察到相同的问题。

    谢谢、

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

    您好、

    我想知道这是否是硬件问题。 我注意到您没有在 DRVDD 和 AVDD 上分离模拟和数字接地、因此输出端的任何模拟接地连接也不正确。 您可以分离模拟接地和数字接地并继续进行测试吗? 输出中的噪音可能是电源/隔离问题或连接问题。  

    此致、
    Mir

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

    您好、

    您是指 DVSS、DRVSS(连接到 GND)和 AVSS1、AVSS2、EP(连接到 A_GND1)吗? 如果没有、请告诉我您指的是哪些引脚。  

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

    是的、我们可以在器件的数据表中看到 A 和 D 接地的示例:  

    此外、测量单端输出的方式需要接地、确保也使用模拟接地。

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

    您好、

    是的、我们之前想过这一点、在我们的设计中、我们将 A_GND1 和 GND 短接在一起。  

    -这消除了背景嘶嘶声,而音频没有播放。  

    -但音频播放时的噪音保持不变。  

    请注意、除了示波器线路输出信号之外、我们还将单端输出输出到外部放大器、并且可以听到音频的所有噪声。  

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

    您好、

    我是指在您的 AVDD、DRVDD 和音频信号连接中添加 A_GND1 而不是 GND。 当然、模拟和数字接地需要组合在一起才能连接起来、但它们应该在芯片下方的中心位置聚集在一起。  

    另一个注意事项是、在未连接放大器的情况下、您仍然会看到噪声吗? 或者、当示波器未连接到线路输出时、您仍然会听到噪音吗? 这两个连接可能会出现一些阻抗/噪声问题。

    此致、
    Mir

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

    尊敬的 Mir:

    我们将详细了解这一点。 为了帮助我们解决这个问题、您能分享 EVM 电路板 (TLV320AIC3104EVM) 的 Gerbers、以便我们准确检查接地原理吗? 我们不知道数字和模拟接地是如何结合到编解码器下的。 将有助于在 EVM PCB 的光绘文件中进行查看。

    谢谢

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

    您好、

    附件是我拥有的板级配置文件、其中包含 Altium 文件。 您还可以在 EVM 用户指南 ( https://www.ti.com/lit/ug/slau218a/slau218a.pdf) 中找到 EVM 原理图/布局

    e2e.ti.com/.../6487966G.zip

    此致、
    Mir