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.

[参考译文] J722SXH01EVM:J722S EVM:音频采样率不正确

Guru**** 2964790 points

Other Parts Discussed in Thread: J722SXH01EVM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1648469/j722sxh01evm-j722s-evm-audio-sampling-rate-incorrect

器件型号: J722SXH01EVM

我们将 J722S EVM 与 Linux SDK 版本 11.01 搭配使用。 对于我们的应用、我们希望通过 3.5mm 音频插孔接收音频。
对于基本接口测试、我们尝试运行 avplay 和 avrecord 来播放/录制一些 wav 文件。 我们在此观察到以下问题:
1.使用 aplay 回放 wav 文件时,回放持续时间比实际的 wav 文件持续时间长很多,因此音高降低。 (30 秒音频回放 45 秒)
2.在尝试使用录制音频时,录制所需的时间比指定的时间要多得多,回放录制的音频时,音高(15 秒的音频样本存储在一个持续时间为 10 秒的 WAV 文件中)

控制采样率的时钟似乎没有正确配置。 您能否告诉我们这种情况的根本原因以及如何修复?

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

    您好、

    该专家目前在办公室外。 请预计响应会延迟。

    此致、
    Tanmay

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

    尊敬的 Aparna Dutta:

    是否可以使用-r 或--rate 测试指定速率?

    此致、
    Jared

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

    您好 Jared、

    我尝试使用-r 选项同时使用 aplay 和 arecord、但问题仍然存在。

    1.角色扮演:

    root@j722s-evm:/home/weston/aparna# aplay -r 44100 dream_stereo.wav 
    Playing WAVE 'dream_stereo.wav': Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

    观察结果:音频播放的时间比预期的时间长、音高较低。

    2.记录

    root@j722s-evm:/home/weston/aparna# arecord -d 10 -f S16_LE -t wav -c 2 -r 16000 myrecording.wav
    Recording WAVE 'myrecording.wav': Signed 16 bit Little Endian, Rate 16000 Hz, Stereo

    观察结果:音频录制的持续时间较长、主机上的回放持续时间较短(10 秒)、 导致音高

    3.环回:

    root@j722s-evm:/home/weston/aparna# aplay myrecording.wav 
    Playing WAVE 'myrecording.wav ': Signed 16 bit Little Endian, Rate 16000 Hz, Stereo

    观察:如果我  在 EVM 上播放相同录制的音频 myrecording.wav、它会在正确的持续时间和间距内播放。

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

    尊敬的 Aparna:

    Jared 正在度假直到下周结束。 因此、请预计该主题的响应会延迟。

    此致

    Suman

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

    尊敬的 Aparna Dutta:

    root@j722s-evm:/home/weston/aparna avplay -r 44100 dream_stereo.wav  
    播放 wave 'ream_sensored.wav:有符号 16 位小端字节序、速率 44100Hz、立体声

    这个问题可能是 44100Hz 时钟速率没有均匀地分频到中  96000000。  

    当我以 48000Hz 的采样率播放 1000Hz 正弦波的音频文件时、不存在问题。 当以 44100Hz 的采样速率播放 1000Hz 正弦波时、音频的音调低于本应的音调。

    观察:录制的音频持续时间较长、主机上的回放持续时间较短、持续时间为 10s、 导致音距较高

    您使用什么设置播放音频? 这是否意味着在设备或其他机器上播放音频?

    此致、
    Jared

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    问题可能是 44100Hz 时钟速率没有均匀地分为  96000000。 

    即使在设备上播放 48kHz 音频剪辑、我也会观察到不正确的低音调
    root@j722s-evm:/home/weston/aparna avplay -r 48000 dream_48k.wav
    播放 wave 'ream_48k.wav ':有符号 16 位小端字节序,速率 48000 Hz,立体声

    您使用什么设置播放音频? 这是否意味着在设备上或在其他机器上播放音频?

    在这里、我回放了笔记本电脑上的音频。  

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

    尊敬的 Aparna Dutta:

    您能否测试以下两个音频文件?

    我没有观察到失真播放两个文件:

    root@j722s-evm:~# aplay piano-48khz-sample.wav 
    Playing WAVE 'piano-48khz-sample.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
    root@j722s-evm:~# aplay 1khz-sine-48khz-sample.wav 
    Playing WAVE '1khz-sine-48khz-sample.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono

    您使用的是哪个 SDK 版本(我使用的是 11.02)? 您是否使用 了 J722SXH01EVM?

    此致、
    Jared

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

    是的、我使用的是 J722SXH01EVM、并且 SDK 版本是  11.0.00.03.

    我尝试在设备上播放 2 个音频文件。 但我听到一个较低的音调和播放持续时间较长。

    1. root@j722s-evm:/home/weston/aparna# date; aplay piano-48khz-sample.wav; date
    Wed Jun 10 10:16:44 UTC 2026
    Playing WAVE 'piano-48khz-sample.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
    Wed Jun 10 10:16:56 UTC 2026

    此音频播放 11 秒而不是 7 秒。

    2. root@j722s-evm:/home/weston/aparna# date; aplay 1khz-sine-48khz-sample.wav; date
    Wed Jun 10 10:21:59 UTC 2026
    Playing WAVE '1khz-sine-48khz-sample.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono
    Wed Jun 10 10:22:16 UTC 2026

    此音频播放 17 秒而不是 10 秒。

    但是、当我在 Ubuntu 笔记本电脑上播放相同的音频文件时、它们会按预期分别播放 7 秒和 10 秒。

    aparna@aparna-HP-EliteBook-745-G6:~/work/tisdk/TDA4AEN/linux_sdk/ti-processor-sdk-linux-adas-j722s-evm-11_01_00_03/targetNFS/home/weston/aparna$ date; aplay piano-48khz-sample.wav ; date
    Friday 12 June 2026 03:47:05 PM IST
    Playing WAVE 'piano-48khz-sample.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
    Friday 12 June 2026 03:47:12 PM IST


    aparna@aparna-HP-EliteBook-745-G6:~/work/tisdk/TDA4AEN/linux_sdk/ti-processor-sdk-linux-adas-j722s-evm-11_01_00_03/targetNFS/home/weston/aparna$ date; aplay 1khz-sine-48khz-sample.wav ; date
    Friday 12 June 2026 03:47:50 PM IST
    Playing WAVE '1khz-sine-48khz-sample.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono
    Friday 12 June 2026 03:48:00 PM IST

    此致、

    Aparna

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

    尊敬的 Aparna Dutta:

    我无法在 SDK 11.00 上重新创建您的问题。 我正在使用 TI.com 上发布的默认 PROCESSOR-SDK-LINUX:https://www.ti.com/tool/download/SDK-J722S/11.00.00.08 

    root@j722s-evm:~# date; aplay piano-48khz-sample.wav; date
    Fri Jun 12 18:25:22 UTC 2026
    Playing WAVE 'piano-48khz-sample.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
    Fri Jun 12 18:25:29 UTC 2026
    root@j722s-evm:~# date; aplay 1khz-sine-48khz-sample.wav; date
    Fri Jun 12 18:25:40 UTC 2026
    Playing WAVE '1khz-sine-48khz-sample.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono
    Fri Jun 12 18:25:50 UTC 2026
    

    您是否对图像进行了任何更改?

    此致、
    Jared

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

    您好 Jared、

    是否可以使用 EVM 上的 sysfs 接口检查任何音频时钟、或更改内核源以打印时钟值? 我们没有示波器。 因此、我们无法进行探测。

    此致、

    Somnath

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

    您好 Somnath、

    Linux 中的工具-> k3conf

    software-dl.ti.com/.../devices.html

    “k3conf dump clock 190“应给出 J722S_DEV_McASP0 的所有频率值。

    这应该会提供时钟值。

    - Keerthy

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

    尊敬的 Somnath Mukherjee:

    我在播放 1kHz 音调时附加了 k3conf 的输出。

    $ aplay 1khz-sine-48khz-sample.wav &
    $ k3conf dump clock > clock.log

    e2e.ti.com/.../clock.log

    此致、
    Jared

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

    你好 Jared McArthur ,

    我无法下载您共享的 clock.log。 请您再次分享一下。

    同时、我已在 AVAY 在后台运行时从我的 EVM 附加了时钟转储。

    e2e.ti.com/.../clocks_5F00_Aparna_5F00_25jun.log

    如果有任何时钟看起来不正确、请告诉我。

    谢谢。此致、

    Aparna

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

    您好 Jared、

    我没有对图像进行任何有意的更改。 实际上、我使用的是来自 SDcard 的预编译映像或通过 NFS 引导。

    此致、

    Aparna

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

    尊敬的 Aparna Dutta:

    出于某种原因,您的 k3conf 工具看起来与我的不同。 它具有 DIE ID 和固件功能。

    您是否可以按照以下步骤操作:

    # install J722S Linux 10.01 SDK
    # www.ti.com/.../10.01.00.04
    
    $ sudo ./bin/create-sdcard.sh
    # install the ADAS image from within the SDK to the card
    
    # copy audio files to SD card
    $ sudo cp 1khz-sine-48khz-sample.wav /media/`whoami`/root/root
    $ sudo cp piano-48khz-sample.wav /media/`whoami`/root/root
    
    # boot the board with SD boot
    # login
    $ aplay 1khz-sine-48khz-sample.wav
    $ aplay piano-48khz-sample.wav
    
    # when testing the audio, place an earbud from the computer
    # and the board in separate ears to see if they sound the same

    此致、
    Jared

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

    您好 Jared、

    我将 从头开始重复整个 SD 卡引导安装过程、然后返回给您。 但在此之前,我只是想确认,如果你想我尝试在较旧的 SDK 版本 10.01 而不是最新的?

    此致、

    Aparna

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

    尊敬的 Aparna Dutta:

    现在、是 10.01。 我测试过 10.01 和 11.02、没有发现音频的行为有差异。

    此致、
    Jared

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

    您好 Jared、

    即使使用 10.01 SDK、我仍然看到相同的问题。 附加我的日志以供您参考:
    e2e.ti.com/.../sdk10.01_5F00_sdboot.log

    此致、

    Aparna

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

    您好 Jared、

    我没有发现时钟转储有任何差异。 dmesg 也基本与我的目视检查相同(我们无法进行直接比较,因为两个文件中的日志顺序不同)、但我的日志中显示的此消息除外:

    [ 8.204822] RTC-ti-K3 2b1f0000.RTC:将系统时钟设置为 1970-01-01T00:00:18 UTC (18)
    [ 8.205757] platform 78000000.r5f:R5F 内核可能已由不同的主机上电、编程状态 (0)!=实际状态 (1)
    [8.221385] systemd-journald[123]:时间向后跳,旋转。

    我不确定这是否指与时间有关的任何问题。

    此致、

    Aparna

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

    你好 Jared McArthur ,

    我还想分享一些其他意见:

    当我尝试录制或播放 wav 文件 10 秒时,实际上需要更多的时间 — 大约 17 秒。

    root@j722s-evm:~# date; arecord -d 10 -f S16_LE -t wav -c 2 -r 48000 myrecording.wav;date
    UTC 1970 年 1 月 1 日星期四 00:22:07
    录音波“myrecording.wav “:有符号 16 位小端字节序,速率 48000 Hz,立体声
    UTC 1970 年 1 月 1 日星期四 00:22:24

    root@j722s-eval:~# date; aplay myrecording.wav ; date.
    UTC 1970 年 1 月 1 日星期四 00:25:08
    Playing wave 'myrecording.wav ':有符号 16 位小端字节序,速率 48000 Hz,立体声
    UTC 1970 年 1 月 1 日星期四 00:25:26

    但录制的音频文件仅包含 10 秒的样本(2 个通道 x 2 字节/样本 x 48000 Hz x 10s = 1,920,000 字节)、在 17 秒的时间间隔内捕获。

    -rw-r--r-1 Aparna Aparna 1920044 Jul 1 11:35 myrecording.wav

    因此、EVM 上似乎存在一些问题会减慢样本的处理速度。

    此致、

    Aparna

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

    尊敬的 Aparna Dutta:

    硬件中的某个位置似乎存在问题。

    在测试 PRO170E3 (PROC170E3A (002) 和 PROC170E3B (002)) 时、我观察到音频变慢。 我将继续研究硬件、看看是否能找到问题的根源。

    您的电路板是哪个版本?

    此致、
    Jared

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

    尊敬的 Aparna Dutta:

    两个版本的原理图存在差异。

     PROC170E3A 版本使用外部振荡器来提供编解码器的 MCLK。 此时钟为 12.288MHz。

     PRO170E1 版本使用来自 SoC 的 AUDIO_ext_refclk1。 此时钟为 96MHz。

    您能否尝试创建固定时钟并将该时钟添加到器件树中的编解码器?

    diff --git a/arch/arm64/boot/dts/ti/k3-j722s-evm.dts b/arch/arm64/boot/dts/ti/k3-j722s-evm.dts
    index 50fde45f231f..51c4dbfc67b1 100644
    --- a/arch/arm64/boot/dts/ti/k3-j722s-evm.dts
    +++ b/arch/arm64/boot/dts/ti/k3-j722s-evm.dts
    @@ -203,6 +203,12 @@ vsys_io_1v2: regulator-vsys-io-1v2 {
     		regulator-boot-on;
     	};
     
    +	lmk6x_clk: lmk6x-clk {
    +		compatible = "fixed-clock";
    +		#clock-cells = <0>;
    +		clock-frequency = <12288000>;
    +	}
    +
     	codec_audio: sound {
     		compatible = "simple-audio-card";
     		simple-audio-card,name = "J722S-EVM";
    @@ -228,7 +234,7 @@ simple-audio-card,cpu {
     
     		sound_master: simple-audio-card,codec {
     			sound-dai = <&tlv320aic3106>;
    -			clocks = <&audio_refclk1>;
    +			clocks = <&lmk6x_clk>;
     		};
     	};
     
    

    请让我知道补丁程序是否能解决您的问题

    此致、
    Jared

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

    你好 Jared McArthur ,

    此修补程序解决了 aplay 和 arecord 的问题。 我在 10.01 和 11.0 版 SDK 上使用 SD 卡引导和 NFS 引导测试了各种采样率。

    非常感谢您的支持!

    此致、

    Aparna