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:以不同的采样速率记录正弦波有问题

Guru**** 2430620 points
Other Parts Discussed in Thread: TLV320AIC3104

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1384805/tlv320aic3104-recording-sine-waves-at-different-sampling-rates-is-problematic

器件型号:TLV320AIC3104

工具与软件:

您好、我录制音频时出错。 我记录了如下所示的8k 采样率音频和16k 采样率波形。 为什么记录的波形不平滑、问题是什么?

这是 I recorded 命令、`arecord -D HW:0、0 -d 10 -f cd -r 48000 -c 2 -t wav 48y.wav`。

 

这是我记录时的寄存器值、我记录了16k 个样本。

i2cdump -y -f 0 0x18

未指定大小(使用字节数据访问)

     0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef    

00:00 00 00 44 91 60 00 0A 00 00 00 00 C1 00   00 00 00 26 .. D?`………………………………………………………………………………………………

10:14 0f f0 04 78 78 7c 78 78 78 06 00 FE 00 FE 00   ???xx|xx?...

20:00 00 00 cc 20 10 00 40 00 80 00 80 00   ...? @……………………………………………………

30: 00 00 00 0f 00 00 8c 00 00 8c 0c 00 80 00 00   ...?...

40:00 0f 00 8b 00 00 8c 0c 00 00 00 00 00 00 00 00   ………………………………………………………………

50:00 80 00 00 00 00 0b 00 88 00 88 00 88 08 16 00   ???????????????

60:00 00 00 00 00 00 A2 00 00 00 00 00 00 00 00 00 00 00   ...... ?..........

70:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

80:00 00 44 91 60 00 0A 00 00 00 00   00 00 01 00 00 00 26 .. D?`………………………………………………………………………………………………

90: 14 0f f0 04 78 78 7c 78 78 78 06 00 FE 00 FE 00   ???xx|xx?...

A0:00 00 00 cc 20 10 00 40 00 80 00 80 00   ...? @……………………………………………………

B0:00 00 00 0f 00 00 8c 00 8c 00 0c 00 80 00 00   ...?...

C0:00 0f 00 8b 00 00 8c 0c 00 00 00 00 00 00 00   ………………………………………………………………

D0:00 80 00 00 00 0b 00 00 88 00 88 88 08 16 00   ???????????????

E0:00 00 00 00 00 00 A2 00 00 00 00 00 00 00 00 00 00 00   ...... ?..........

F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

 

 

我的设备树:

声音{

Compatible ="简单音频卡";

simple-audio-card、name ="tlv320aic3104";

simple-audio-card、format ="I2S";

simple-audio-card、MCLK-FS =<256>;

simple-audio-card、bitclock-master =<&dailink0_MASTER>;

simple-audio-card、frame-master =<&dailink0_MASTER>;

simple-audio-card、widget =

"麦克风"、"麦克风插孔"、

"耳机"、"耳机插孔"、

"扬声器"、"外置扬声器"、

"线"、"线输出"、

"线路"、"线路输入";

、路由=

"MIC_IN"、"麦克风插孔"、

"耳机插孔"、"HP_OUT"、

"LINE1L"、"Line in"、

"LINE1R"、"LINE IN"、

"耳机插孔"、"RLOUT"、

"耳机插孔"、"LLUT";

 

dailink0_master:simple-audio-card、CPU {

Sound-Dai =<&said 1 0>;

};

 

简单音频卡、编解码器{

sound-Dai =<&codec 0>;

/*时钟=<&CLKS IMX6UL_CLK_SAI1>;*/

};

};

CLKS (&C){

分配的时钟=<&CLKS IMX6UL_CLK_PLL4_AUDIO_DIV>;

/* assigned-clock-rate =<1179648000>;*/

分配的时钟速率=<786432000>;

/* assigned-clock-rates =<705600000>;*/

/* assigned-clock-rates =<153600000>;*/

};

所述1 (&S){

#sound-Di-cells =<0>;

pinctrl-names ="默认值";

pinctrl-0 =<&pinctrl_sai1>;

分配的时钟=<&CLKS IMX6UL_CLK_SAI1_SEL>

  <&CLKS IMX6UL_CLK_SAI1>;

分配的时钟父级=<&CLKS IMX6UL_CLK_PLL4_AUDIO_DIV>;

/*分配的时钟速率=<2>、<12288000>;*/

分配的时钟速率=<2>、<24576000>;

//分配的时钟速率=<2>、<28224000>;

状态="正常";

};

祝你好运

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

    您好!

    我认为这里存在采样率不匹配问题。 您的命令需要48000采样、但在8k、16k 和32k 采样中会记录您的波形。 这种不匹配可导致产生的信号出现异常和失真。

    此致、
    Jeff McPherson

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

    您好!

    感谢您的答复。 我的命令使用48K 作为示例、我的命令使用以下三个波形、分别以8,000,16000和32000的采样率记录下来。 我发现这三个波形非常相似、因为几乎相邻的采样点成对出现。 48K 采样率波形太糟糕了、我甚至没有将其插入。

    此致。

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

    您好!

    让我尝试在测试板上重新创建它。 我对器件树设置不是很熟悉、您能否帮我弄清楚您的时钟频率是多少以及您是处于从模式还是主模式?

    谢谢!
    Jeff McPherson

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

    您好!

    我将页0寄存器102设置为0xA2、即位时钟。

    我的 CPU 的主要频率是786432000 Hz、而 I2S 的相应 SAI 接口使用24576000Hz。 我也不太了解所需的主从模式、我使用 Linux 4.19.35_1.1.0内核、设置音频通道后、我需要使用 i2c 将寄存器102设置为0xA2。 想知道为什么它没有自动设置。

    此致。

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

    您好!

    经过一些测试、我相信这是时钟树设置的问题。 我可以提供设置、但 需要一些信息:

    首先重新阅读数据表中的第10.3.3.1节

    确认您希望 BCLK = 24.576MHz、FSYNC = 48kHz?

    由于您希望寄存器102 = 0xA2、您希望 BCLK 作为 CLKDIV 和 PLL 输入?

    您是否尝试使用 PLL? 鉴于 CLKDIV/48kHz = 256、最简单的设置是使用24.576MHz 路径而不是 PLL。

    此致、
    Jeff McPherson

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

    尊敬的 Jeff:

    感谢你的帮助。

    是、我确实需要 BCLK = 24.576MHz 和 FSYNC = 48kHz。

    是的、我要使用 BCLK 作为 CLKDIV 和 PLL 输入。

    我曾尝试使用 PLL、但无法录制音频。

    我尝试了以不同的模式设置寄存器102、但未能实现所需的效果:

    10100010:可以记录波形、但波形不符合标准。
    10000010:可以记录波形、但波形不符合标准。
    00100010:无法录制音频。
    00000010:无法录制音频。
    此外、我想知道正确记录的波形的外观以及与当前得到的波形有何差异。

    此致、

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

    您好!

    我找到了正确的时钟设置。 主要问题在于 Q 值。 但是、要做到这一点、您必须将格式更改为 DSP。 由于 BCLK 如此高(支持32位的16个通道)、编解码器无法以 I2S 格式正确处理它(预计只有2个通道)。 在 DSP 格式下、它可以很好地工作。 我已在下面附上使用以下设置后正确信号应该是什么样子的图片。

    w 30 01 80 #software reset
    w 30 07 00 #set fsref to 48k
    w 30 18 F8 #MIC1LP/M is differential, not connected to right ADC
    w 30 13 F8 #MIC1LP/M is differential
    w 30 13 C0 #MIC1LP/M is connected to left ADC
    w 30 13 80 #MIC1LP/M is 0dB
    w 30 13 84 #MIC1LP/M ADC is powered up
    w 30 09 40 #Audio Serial Format is DSP mode
    w 30 09 70 #Audio Serial Format is 32 bits
    w 30 03 22 #Q = 4
    w 30 65 01 #CODEC_CLKIN = CLKDIV_OUT
    w 30 66 A2 #CLKDIV and PLL use BCLK Input
    w 30 0F 00 #Unmute PGA

    此致、
    Jeff McPherson

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

    你(们)好

    在过去的几天里、我一直致力于以32kHz 采样率和16位深度录制音频。 虽然波形有所改进、但我注意到每对相邻采样点都是相同的、从而产生了非线性表示。 我想了解采样点为什么会被复制。

    使用逻辑分析仪、我观察到大多数传入采样点成对显示。 您能帮助我确定导致此问题的原因吗?

    此外、我担心电路设计可能会影响 I2S 音频录制的质量。 能否就这种情况提供一些见解?

    感谢您的帮助。

    此致、

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

    您好!

    这些数据是使用我在上面提供的脚本测量的吗?

    您是否进行了调整以适应新的32kHz 采样率?

    我认为您的电路设计极不可能会产生这样的示例问题。  

    此致、
    Jeff McPherson