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.

[参考译文] Linux/LM4.935万:PCM无声音。请帮助检查

Guru**** 2455360 points


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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/739623/linux-lm49350-pcm-no-sounds-please-help-to-check

部件号:LM4.935万

工具/软件:Linux

我有一个连接到LM4.935万的环回PCM模块。 当我测试没有声音 时,当我通过   左/右 MIC输入测试AUX OUT方向时,没有问题。  我认为可能是相同的ADC/DAC配置错误。请帮助检查。

LM4.935万从属  MCLK 2M,左/右帧速率128K。  

lm4.935万基本设置。

Snd_SOC_WRITE (编解码器,0x00,0x00);
      Snd_SOC_WRITE (编解码器,0x01,0x00);
      Snd_SOC_WRITE (CODEC,0x02,0x0c); //从2.048M到300kHz (6.5 * 2-1=12=0xc)
   
      Snd_SOC_WRITE (编解码器,0x03,0x00);
      snd_so_write(codec, 0x10, 0x00);  //spk,全部关闭
      Snd_SOC_WRITE (编解码器,0x11,0x03);  // DAC至耳机L
      Snd_SOC_WRITE (编解码器,0x12,0x03);  // DAC至耳机R
      Snd_SOC_WRITE (CODEC,0x13,0x03);  // DAC 至辅助输出
      Snd_SOC_WRITE (编解码器,0x15,0x0c);  //ADC输入选择,MIC
   Snd_SOC_WRITE (CODEC,0x16,0x0F);  //麦克风级别l 36DB
   Snd_SOC_WRITE (CODEC,0x17,0x0F);  //麦克风级别r 36DB
   
      Snd_SOC_WRITE (CODEC,0x20,0x03);  //ADC_BASIC单色,默认为128 OSR,MCLK
      Snd_SOC_WRITE (CODEC,0x21,0x01);  //ADC_CLOCK   2048 /[2*128 (OSR)*8 (8K样本)]
      
      Snd_SOC_WRITE (编解码器,0x30,0x01);  //128 OSR 和 MCLK源
      Snd_SOC_WRITE (编解码器,0x31,0x01);  //已调平1
   snd_so_write (codec,0x40,0x12);  //端口级别 port1&&端口2 0dB
   Snd_SOC_WRITE (CODEC,0x41,0x00);  // ADC电平全部为0dB
   Snd_SOC_WRITE (编解码器,0x42,0x25);  //来自ADC的单声道
      Snd_SOC_WRITE (CODEC,0x44,0x09); //请 选择DAC的1 l ,需要重新检查,单声道模式是否需要删除R??
   //snd_so_write(codec, 0x45, 0x09); //????
      Snd_SOC_WRITE (编解码器,0x50,0x3e); //AUDIO_Port1_BASIC
      snd_so_write (codec,0x51,0x1f);  
      snd_soc_write(codec, 0x53, 0x0a); //mono 16bits&& sync width 1时钟 看起来像msm01接收只有32位数据 37或0A?
      Snd_SOC_WRITE (CODEC,0x54,0x1b);//TX Rx两个16位
      Snd_SOC_WRITE (编解码器,0x55,0x02);//Rx模式,MSB, PCM短路
      Snd_SOC_WRITE (编解码器,0x56,0x02);//TX模式,MSB, PCM短路
     // snd_so_write(codec, 0x23, 0x0F); //adc_mixer   ??
      Snd_SOC_WRITE (CODEC,0x80,0x00); //ADC_Effects _HPF
      Snd_SOC_WRITE (编解码器,0x84,0x0a);
      Snd_SOC_WRITE (编解码器,0x85,0x0a);
      Snd_SOC_WRITE (编解码器,0x86,0x0a);
      Snd_SOC_WRITE (编解码器,0x87,0x1f);
      Snd_SOC_WRITE (编解码器,0x89,0x33);
      Snd_SOC_WRITE (编解码器,0x8A,0x33);
      Snd_SOC_WRITE (编解码器,0xA0,0x02);
      Snd_SOC_WRITE (编解码器,0xA0,0x0a);
      snd_so_write (codec,0xa4,0x0a);
      Snd_SOC_WRITE (编解码器,0xA5,0x0a);
      snd_so_write (codec,0xa6,0x33);
      Snd_SOC_WRITE (CODEC,0xa8,0x1f); // 左侧DAC级别
      Snd_SOC_WRITE (CODEC,0xa9,0x1f);  //右DAC级别     
   snd_so_write (codec,0xf0,0x00);
   Snd_SOC_WRITE (编解码器,0x00,0x01);
  
      pMC_clk_d=snd_so_read (编码解码器,0x02);
   PR_ERR ("I2C读取PMC_CLK_DIV:%d\n",PMC_clk_d);
lm4.935万路由设置。
  Snd_SOC_WRITE (编解码器,0x11,0x00);
  Snd_SOC_WRITE (编解码器,0x12,0x00);
  Snd_SOC_WRITE (编解码器,0x13,0x03);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我还会在进行测试时粘贴最终寄存器设置

    msm8953_64:/sys/kernel/debug/regmap/2-001A# cat寄存器
    00:01
    01:00
    02:0C
    03:00
    04:00
    05:00
    06:00
    07:00
    08:00
    09:00
    0A:00
    0B:00
    0C:00
    0D:00
    0E:00
    0f:00
    10:00
    11:00
    12:00
    13:03
    14:00
    15:08
    16:0f
    17:0f
    18:00
    19:00
    1A:00
    1B:00
    1C:00
    一维:00
    1E: 00
    1F:00
    20:03
    21:01
    22:00
    23:00
    24:00
    25:00
    26:00
    27:00
    28:00
    29:00
    2A:00
    2B:00
    2C:00
    2D:00
    2E:00
    2F:00
    30:01
    31:01
    32:00
    33:00
    34:00
    35:00
    36:00
    37:00
    38:00
    39:00
    3A:00
    3B:00
    3c:00
    3D:00
    3e:00
    3楼:00
    40:12
    41:00
    42:25
    43:00
    44:09
    45:00
    46:00
    47:00
    48:00
    49:00
    4A:00
    4B:00
    4C:00
    4D:00
    4e:00
    4f:00
    50:3e
    51:1F
    52:00
    53:0a
    54:1B
    55:02
    56:02
    57:00
    58:00
    59:00
    5A:00
    5b:00
    5C:00
    5D:00
    5e:00
    5F:00
    60:01
    61:00
    62:00
    63:00
    64:00
    65:00
    66:00
    67:01
    68:01
    69:00
    6a:01
    6b:00
    6c:00
    6D:00
    6e:00
    6F:02
    70:02
    71:00
    72:00
    73:00
    74:00
    75:00
    76:00
    77:00
    78:00
    79:80
    7A:BB
    7b:80
    7C:BB
    7D:00
    7E:00
    7F:00
    80:00
    81:00
    82:00
    83:00
    84:0A
    85:0A
    86:0A
    87:1F
    88:0f
    89:33
    8A:33
    8B:33
    8C:73
    8D:33
    8e:73
    8F:33
    90:73
    91:33
    92:73
    93:33
    94:73
    95:33
    96:73
    97:33
    98:00
    99:00
    9A:00
    9B:00
    9C:00
    9D:00
    9E:00
    9F:00
    A0:0a
    A1:00
    A2:00
    A3:00
    A4:0a
    解答5:0a
    解答6:33
    A7:00
    A8:1F
    A9:1F
    AA:00
    阿瑟:00
    AC:00
    广告:00
    AE:00
    AF:00
    B0:00
    B1:00
    B2:00
    B3:00
    B4:00
    B5:00
    B6:00
    B7:00
    B8:00
    B9:00
    BA:00
    BB:00
    BC:00
    BD:00
    地址:00
    BF:00
    C0:00
    C1:00
    C2:00
    C3:00
    C4:00
    C5:00
    C6:00
    C7:00
    C8:00
    C9:00
    CA: 00
    CB:00
    抄送:00
    光盘:00
    CE:00
    CF:00
    D0:06
    D1:00
    D2:08
    D3:54
    D4:14.
    D5:0D.
    D6:0D.
    D7:14.
    D8:60
    D9:00
    DA:00
    DB:00
    DC:00
    DD:00
    德国(DE):00
    Df:00
    E0:00
    E1:00
    E2:00
    E3:00
    E4:00
    E5:00
    E6:00
    E7:00
    E8:00
    E9:00
    EA:00
    EB:00
    欧盟:00
    ED:00
    EE:00
    EF:00
    F0:00
    F1:00
    F2:00
    F3:00
    F4:00
    F5:00
    F6:00
    F7:00
    F8:00
    F9:00
    FA:00
    FB:00
    FC:00
    Fd:00
    FE:00
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    宣传页,

    您能否澄清您的第一个帖子?

    您说L/R帧速率是128k? 这对我来说似乎不对,尤其是因为您似乎在脚本中引用8k的帧速率。

    此外,您似乎将OSR设置为128,但在0x21和ox31中,您似乎将其设置为256 (假设为2.048Mhz MCLK)

    请说明您正在尝试做什么。我们可以从这里开始。

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

    我想我现在看到了。 您的Port1_CLK是128K,同步时钟是8k,对吗?

    我将查看您的配置并立即回复给您
    -Steve
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 ,Steve-Wilson:

    Steve-Wilson 说:
    Flyer,

    我想我现在看到了。 您的Port1_CLK是128K,同步时钟是8k,对吗?

    我将查看您的配置并立即回复给您
    -Steve

    [/引述]

     是的,我没有清楚地描述 LM4.835万 MCLK 2.048M PCM:SCLK 128k, SYNC 8k。 输入/输出约 ~24K, 所有这些数据均由示波器测量。  

    我想问一个问题,如果我 将PCM 输入/输出数据缩短(意味着将它们分开连接,并从我的PCM环回设备断开),并且只提供这三个MCLK、SCLK,从PCM环回设备同步CLK,  LM4.935万是否 可以提供ADC/DAC?  因此我可以确认我的PCM环回设备是否正常?

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

    是的,您可以将SDO路由到SDI,并且应该能够将ADC音频传递到DAC。

    此致,
    -Steve
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    整个路线是
    1个麦克风到ADC --- 0x15寄存器位[3:2]
    2 ADC到端口1 TX --- 0x42寄存器位[3:0]== b0101
    3端口1 TX到端口1 RX ---通过硬件连接端口1 SDO&SDI
    4端口1 RX --ADC ---通过设置0x44位0和位3
    5 ADC --至HPL/AUX,通过设置0x11/0x12/0x13选择DAC_HPL/DAC_*位[1:0]

    这是我的理解。

    "您可以将SDO路由到SDI,并且应该能够将ADC音频传递到DAC "
    我无法清楚地理解这一点。您的意思是将0x15[1:0]修改为B11?

    ADC/DAC(0x20,0x30,0x50)基本设置,我不确认,我的配置是否正确?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我连接了SDO/SDI,都很好。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    宣传页,

    您是否在SDO行上看到数据? 即位是否切换?

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

    Steve Wilson:

     是的,SDO和SDI上都有信号  

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

    噪声的幅度是多少?
    此致,
    -Steve Wilson
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Steve Wilson,
    只有噪音,而且非常大