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.

[参考译文] TLV320AIC3254:音频"单击"每1.3s 从该器件录制的文件

Guru**** 2478765 points
Other Parts Discussed in Thread: TLV320AIC3254

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1192512/tlv320aic3254-audible-clicking-every-1-3s-in-recorded-files-from-this-device

器件型号:TLV320AIC3254

大家好!

我遇到了 TLV320AIC3254音频编解码器的一个特殊问题、它通过我们设计的载板上的 I2C 和 I2S 与 Raspberry Pi CM4连接。  我们分别使用以差分方式连接到 IN1_L/R 和 IN2_L/R 的两个麦克风来录制音频。  我们已经广泛地测试了这个单元,录音工作可靠和良好。  但是、我们的最终用户抱怨在整个录制过程中大约每1.3秒出现一次咔嗒声。  他们使用麦克风进行了测试记录、而频率发生器通过扬声器输出正弦波并通过一系列频率。  为了重现此问题、 我们使用任意波形发生器执行了类似的测试、将振幅为100mV 的正弦波直接作为线路输入信号输出到编解码器的次级输入中。  在此测试过程中、我以1KHz 为起点、以100Hz 的间隔升高频率、直至达到2KHz;然后再将频率跃升至3KHz、最后达到4kHz。   从随附的光谱图中可以看出、无论使用的频率是多少、每1.3秒我们都会获得一致的咔嗒声。

奇怪的是、在进一步的测试中、点击的时序似乎受延迟或块大小的影响、但仅受44.1kHz 采样率的影响。 通常我们以48kHz 的采样率运行、调整延迟或块大小似乎没有改变时序。

非常感谢您对如何缓解这一问题的任何想法。

谢谢!

 

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

    你好、Caleb、

    我在查看您的光谱图时遇到了问题、但更重要的是、您能否分享您的注册图和原理图? 在进行调试之前、我们需要详细了解您的设置。

    谢谢!

    Jeff McPherson

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

    尊敬的 Jeff:

    感谢您的快速响应。  我在原帖上重新上传了分光光度图图像、点击后应该会显示更大的预览。

    这是音频编解码器的原理图。  黄色端口表示与 Pi 的连接、位于不同页面、但如果您需要、请告知我。  

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

    你好、Caleb。

    感谢您更新光谱图和原理图。 我还需要来自器件/您要用来配置器件以检查软件方面情况的任何脚本的寄存器转储。

    谢谢!

    Jeff McPherson

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

    e2e.ti.com/.../c2resgisters.txt

    尊敬的 Jeff:

    请参见随附的。  如果我还能提供其他信息、请告诉我。

    谢谢!

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

    你好、Caleb、

    感谢您提供寄存器映射。 由于我不正确、没有任何东西跳出、因此我想尝试重现问题、然后将我的设置与您的设置进行比较。 仅使用模拟输入时、耳机输出出现咔嗒声吗? 点击是出现在数字音频(DOUT)上、还是仅出现在数字输入(DIN)上?

    谢谢!

    Jeff

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

    您更正了在使用模拟输入(麦克风或线路)时出现的咔嗒声;但是、可以在数字录音(在本例中为.wav 文件)中以及通过连接的耳机听到它。

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

    感谢您的澄清。 我将开始测试、看看我是否可以复制它。 很抱歉询问其他问题:如果您有用于配置设备的 i2c 脚本,则会大大加快速度。

    谢谢!

    Jeff

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

    e2e.ti.com/.../i2cscript.txt

    没问题。  这是我们的软件开发人员发送给我的脚本。  如果需要、我总是愿意提供更多信息。

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

    感谢您的脚本。 我将在美国达拉斯时间星期五之前为您提供最新情况。 为了保存记录、请不要回复、除非我没有及时向您提供更新。

    谢谢!

    Jeff

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

    你好、Caleb、

    几个问题。 我在 EVM 上运行了您的脚本、并注意到输入尚未配置。 很显然、您是以某种方式获得输出、但您的团队是否正在采取任何额外步骤来配置器件? 我还看到您的 PLL 设置不同于默认值、所以您能告诉我您使用的时钟频率(LRCLK、BCLK、MCLK 等)

    下面是一个示例脚本、它可以让录制(ADC)正常运行。 如果可能、您可能必须更改时钟才能使其正常运行、但这至少应该会让您有一些了解。

    ###############################################
    # High Performance Stereo Recording
    # ---------------------------------------------
    # PowerTune mode PTM_R4 is used for high
    # performance 16-bit audio. 
    #
    # For normal USB Audio, no hardware change
    # is required.
    #
    # If using an external interface, SW2.4 and
    # SW2.5 of the USB-ModEVM must be set to
    # HI and clocks can be connected to J14 of
    # the USB-ModEVM.
    #
    # IN1L/R is routed to the LADC/RADC in a
    # single-ended manner.
    ###############################################
    
    
    
    ###############################################
    # Software Reset
    ###############################################
    #
    # Select Page 0
    w 30 00 00
    #
    # Initialize the device through software reset
    w 30 01 01
    #
    ###############################################
    
    
    
    ###############################################
    # Clock Settings
    # ---------------------------------------------
    # The codec receives: MCLK = 11.2896 MHz,
    # BLCK = 2.8224 MHz, WCLK = 44.1 kHz
    ###############################################
    #
    # Select Page 0
    w 30 00 00
    #
    # NADC = 1, MADC = 2
    w 30 12 81 82
    #
    ###############################################
    
    
    
    ###############################################
    # Signal Processing Settings
    ###############################################
    #
    # Select Page 0
    w 30 00 00
    #
    # Set the ADC Mode to PRB_P1
    w 30 3d 01
    #
    ###############################################
    
    
    
    ###############################################
    # Initialize Codec
    ###############################################
    #
    # Select Page 1
    w 30 00 01
    #
    # Disable weak AVDD in presence of external
    # AVDD supply
    w 30 01 08
    #
    # Enable Master Analog Power Control
    w 30 02 00
    #
    # Select ADC PTM_R4
    w 30 3d 00
    #
    # Set the input powerup time to 3.1ms (for ADC)
    w 30 47 32
    #
    # Set the REF charging time to 40ms
    w 30 7b 01
    #
    ###############################################
    
    
    
    ###############################################
    # Recording Setup
    ###############################################
    #
    # Select Page 1
    w 30 00 01
    #
    # Route IN1L to LEFT_P with 20K input impedance
    w 30 34 80
    #
    # Route Common Mode to LEFT_M with impedance of 20K
    w 30 36 80
    #
    # Route IN1R to RIGHT_P with input impedance of 20K
    w 30 37 80
    #
    # Route Common Mode to RIGHT_M with impedance of 20K
    w 30 39 80
    #
    # Unmute Left MICPGA, Gain selection of 6dB to make channel gain 0dB
    # Register of 6dB with input impedance of 20K => Channel Gain of 0dB
    w 30 3b 0c
    #
    # Unmute Right MICPGA, Gain selection of 6dB to make channel gain 0dB
    # Register of 6dB with input impedance of 20K => Channel Gain of 0dB
    w 30 3c 0c
    #
    # Select Page 0
    w 30 00 00
    #
    # Power up LADC/RADC
    w 30 51 c0
    #
    # Unmute LADC/RADC
    w 30 52 00
    #
    ###############################################
    

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

    我与我们的软件开发人员进行了交谈。  他正在使用32x4系列的常用 Linux 驱动程序:

    https://www.ti.com/tool/TLV320AIC32X4SW-LINUX

    上面的脚本是他从股票驱动程序重建的寄存器值,但点击问题仍然存在,无论是我们尝试使用他的 Python 脚本还是通过 ALSA Mixer 使用股票驱动程序。  我目前正在与他合作、看看他是否可以检索我们正在使用的确切时钟设置、但如果它有所帮助、我们的硬件将由用于 MCLK 的12 MHz 晶体振荡器驱动。  Linux 驱动程序是否以某种方式使用与 Windows 驱动程序不同的 PLL 设置?  此外、评估模块上使用了什么晶体振荡器?

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

    你好、Caleb、

    该评估模块没有板载振荡器。 我之前是在从机模式下运行器件、不过好像是在主机模式下运行器件、并使用 PLL 来生成其他时钟。 仍希望您的开发人员知道预期的时钟树是什么样的。 我还将在我们的软件团队中循环评论驱动程序问题、看看他是否有任何评论。

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

    这是很好的信息。  我们的开发人员可以查看该线程、使他处于循环中。  他确认了我们的器件在主模式下运行、而12MHz 振荡器生成了我们的 MCLK、因此表面上是通过驱动程序为采样率<= 48000设置 BCLK 和 WCLK、可能正如您所指出的那样来自 PLL。  当我收到有关现有时钟树的信息时、我将进行跟进。

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

    好的。   您是否有任何理由相信驾驶员造成了问题或客户可以进行的任何检查?

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

    嗨、大家好

    我想知道的是44.1kHz 记录期间的采样率和 bitclk 是多少? 在44.1kHz 记录期间,系统内部重新采样是否工作?   我想知道在44.1kHz 记录期间尝试的延迟或块大小是多少?

    您可以尝试一次测试吗? 首先在 RAM 中写入所有记录的数据、在录制后写入文件、然后检查点击是否仍然打开? 此问题似乎是写文件问题。 我想检查一次将有多大的缓冲区写入文件。

    您可以尝试另一种将记录的数据直接回送到输出的方法、并侦听和检查单击是否打开、而不是存储到文件中。

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

    您好!

    在先前的测试中、我们确实将记录模式更改为44.1kHz、并使用数据块大小44100/4 = 11025作为我们的延迟。  采样率为44100、但是使用这个设置会给我们带来很多问题。  BCLK 频率由驱动器设置;如果我们的编解码器根据下图和我们的原理图处于主模式、则 BCLK 应为1.536MHz 、支持48kHz WCLK。  将 BCLK/WCLK 除以32、将44.1K 乘以32可在44.1kHz 下为 BCLK 产生1.4112MHz 的频率。  不过、我不知道这是否真的正确。

    目前、我们的器件设置为将所有记录的数据写入 RAM、直至达到时限、此时该器件会将所有数据写入文件。

    在我们的现有设置中、我们具有通过耳机输出音频的编解码器。  除了耳机插孔发出的噪音外、仍可听到这种方式的周期性咔嗒声。  依靠录制的文件、可以更轻松地倾听和视觉化它们。

    下面的配置与我们编解码器的配置完全相同、只是我们使用一个12MHz 晶体振荡器来替代一个24MHz。

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

    您是否可以使用示波器在44.1kHz 记录期间测量 BCK 和 WS CLK?

    请将波形张贴出来、我会进行检查。 谢谢。

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

    您好!

    很抱歉回复的延迟;上周我出去度假了。

    遗憾的是、我们无法使记录在44.1kHz 下可靠地工作、因此我们一直使用48kHz。  这里是以48kHz 频率相互叠加的 WCLK 和 BCLK 波形。  根据我们迄今发布的文档、也许你们都知道为什么44.1kHz 不能为我们工作?

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

    您好!

    要使44.1kHz 采样能够用于12MHz MCLK、请用下面显示的值配置 PLL 和分频器:

    从上面显示的脚本中我在下面添加了注释、看起来您要将其设置为从模式、并且分频器不正确、给出了23.4KHz 采样率、并且输入 ADC 路径配置不正确。

    e2e.ti.com/.../5822.settings.txt

    请尝试使用上述 PLL 设置、配置您的输入路径并提供最新的寄存器转储。

    此致。

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

    我们的开发人员已经告诉我、将我们的整个系统切换到44.1kHz 会使故障排除过程变得非常复杂。  除了我在最初的帖子中描述的点击问题外、我们对48kHz 没有任何问题、我担心这次对话会带来非常昂贵的回报。  因此、请将48kHz 记录作为后续的要求。

    对于48kHz 录制、我们的 PLL 设置应该是什么样的?

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

    这是12MHz MCLK 下48kHz 的一个设置。

    此致。

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

    您好!

    这是来自寄存器转储的时钟值。  我们的开发人员已通知我、我们的时钟和 PLL 系数与所示图表相同。  P = 1、R = 1、J = 8、D = 1920 (在寄存器文档中没有提到 K)。

    页0/寄存器4:0x03 时钟设置寄存器1 00000011  

    0:保留、只写默认值 0:低 PLL 时钟范围00: 保留、只写默认值 00:MCLK 引脚是 PLL 的输入 11:PLL 时钟为 CODEC_CLKIN

    页0/寄存器5:时钟设置寄存器2、PLL P 和 R 值- 0x00/0x05 1001000001

     001:PLL 上电 001:P = 1 001:R = 1

    页0/寄存器6:时钟设置寄存器3、PLL J 的值00001000

    00保留。 仅写入默认值001000:8

    页0/寄存器7:时钟设置寄存器4、PLL D 值(MSB) 00000111

    00保留。 仅写入默认值000111:0007

    页0/寄存器8:时钟设置寄存器5、PLL D 值(LSB) 10000000

    7 + 8:  0000011110000000 = 1920

    页0/寄存器11:时钟设置寄存器6、NDAC 值 10001000

    1:NDAC 分频器上电 0001000:NDAC = 8

    页0/寄存器12:时钟设置寄存器7、MDAC 值 10000010

    1:MDAC 分频器上电 0000010:MDAC = 2

    页0/寄存器18:时钟设置寄存器8、NADC 值10001000

    1:NADC 分频器上电0001000:NADC = 8

    页0/寄存器19:时钟设置寄存器9、MADC 值10000010

    1:MADC 分频器上电0000010:MADC = 2

    页0/寄存器25:时钟设置寄存器10、多路复用器00000000

    0000 0保留。 仅写入默认值 000:CDIV_CLKIN= MCLK

    页0/寄存器26:时钟设置寄存器11、CLKOUT M 分频器值00000001

    0:CLKOUT M 分频器断电 000 0001:CLKOUT M 分频器= 1

    页0/寄存器30:时钟设置寄存器12、BCLK N 分频器10000010

    1:BCLK N 分频器上电 0000010:BLCK N 分频器= 2

    页0/寄存器32:音频接口设置寄存器5 - 0x00 00000000

    0000保留。 仅写入默认值  0:主位时钟(BCLK)用于音频接口和计时 0:主字时钟(WCLK)用于音频接口 0:ADC 字时钟与 DAC 字时钟相同 0:DIN 用于中的音频数据

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

    我在 EVM 上使用48kHz 采样率进行了测试、然后使用44.1kHz 的音频精度来记录、以100Hz 的阶跃从1kHz 扫描到2kHz 的音频精度、并且在音频发生变化时没有听到任何咔嗒声。 请参阅随附的文件。

    e2e.ti.com/.../EVM-recorded-slave-mode-sweep-frequency-1K_2D00_2K.wav

    上述从模式设置看起来没问题。

    此致。

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

    我们的配置与您的评估套件有很大不同。  根据 EVK 电路原理图、MCLK 完全不由12MHz 晶体振荡器驱动。  我们正在嵌入式应用中使用该编解码器、其中 MCLK 以12MHz 振荡器为时钟源、因为 Raspberry Pi CM4仅提供四条 I2S 线、即 BCLK、WCLK、DIN 和 DOUT。  目前、我们在从模式下运行此程序、因为我们已验证 BCLK 和 WCLK 信号来自 Pi、而不是编解码器。   在具有此配置的从模式下运行编解码器、在技术上是否正确?

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

    你好、Caleb、

    为了解决 K 值、K 只是 J.D 的浮点、即 J 是整数、D 是小数部分。

    我相信 Peter 根据您的设置在从模式下测试了它、但是我们将专门针对12MHz 的 MCLK 进行仔细检查。 我们从的 PLL 值和 Peter 最近推荐的 PLL 值发生了一些变化。 您能否与开发人员分享最新的配置脚本?

    谢谢。

    Jeff McPherson

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

    尊敬的 Jeff:

    感谢您澄清 K 值。  现在、我们的 PLL 和时钟系数似乎已设置为默认值。

    重申一下、我们的编解码器已由 Linux 驱动程序配置、并且我们不会将 PLL 值更改为任何不同的值。  不过、我们的开发人员调整了几个寄存器值、只是为了解决我们遇到的可闻砰声。  即使没有这些更改、单击也会保持不变。

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

    作为一个软件专家、我有一个工作解决方案、它在音频框架中使用从44、1kHz 到48kHz 的软件重采样。 编解码器仍然能够在48kHz 下工作。 在所有手机和平板电脑项目中、48kHz 是标准设置、任何其他采样率音频片段都会在音频框架中重新采样到48kHz。

    至于问题、 请 转储寄存器?  

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

    你(们)好!

    这是最新的寄存器转储。  至于重新采样、我们是否必须在 Linux 中从44.1kHz 重新采样至48kHz?

    谢谢!

    e2e.ti.com/.../c2registersMar6.txt

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

    有许多开源重采样代码。 实际上、 ALSA 包含重采样功能、您也可以利用它。

    请按如下所示样片

    Linux - ALSA 重新采样- Unix 和 Linux Stack Exchange

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

    所以,我们现在感到困惑。  尽管编解码器支持48kHz 录音、但驱动程序本机是否不支持48kHz 录音?  我们应该在44.1kHz 下使用 ALSA 和 Linux 驱动程序吗?  据我们所知、驱动程序支持、所以推44.1K 的感觉不是很好。  我也看不到这将如何解决咔嗒声问题、因为我们之前尝试 在44.1kHz 下记录( 使用48K 绕过所有其他定制后端)、并且咔嗒声从未消失。

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

    你好、Caleb、

    驱动器仅设置采样率寄存器、不会进行任何重采样。 内核主要专注于控制而不是数据处理。  如果将寄存器采样率设置为44.1kHz、则在传输到芯片之前、所有的音频数据都必须重新采样到44.1kHz。  等等。 音频剪辑为48kHz、芯片设置为44.1kHz、请在传输到芯片之前从48kHz 重新采样至44.1kHz。

    Br

    丁圣浩