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.

[参考译文] PCM1865:Raspberry Pi CM4

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1328087/pcm1865-raspberry-pi-cm4

器件型号:PCM1865

在我尝试使用 Raspberry Pi 计算模块4调试 PCM1865 ADC 的过程中、我已经在这些论坛探索了几周。

这是我当前的.dts 文件

/dts-v1/;
/插件/;

/{
  兼容="BRCM、bcm2711";

  片段@0{
    Target =<&i2c1>;

    _覆盖__{
      #address-Cells =<1>;
      #size-cells =<0>;

      pcm1865:pcm1865@4a {
        兼容="ti、pcm1865";
        寄存器=<0x4a>;
        #sound-Da-cells =<0>;
        Clocks =<&external_clock>;
        时钟名称="MCLK";
      };
    };
  };

  片段@1{
    target-path ="/";
    _覆盖__{
      external_clock:clock{
        #clock-cells =<0>;
        兼容="固定时钟";
        时钟频率=<24000000>;// 24MHz 时钟频率
      };
    };
  };

  片段@2{
    Target =<&I2S>;

    _覆盖__{
      状态="可以";
    };
  };

  片段@3{
    target-path ="/";

    _覆盖__{
      声音{
        兼容="简单音频卡";
        simple-audio-card、name ="pcm1865";
        simple-audio 卡、格式="I2S";
        simple-audio 卡、小工具=
        "线路"、"立体声线路输入";
        简单音频卡、路由=
        "立体声线路输入"、"VINL1"、
        "立体声线路输入"、"VINR1";
        简单音频卡、CPU{
          Sound-Dai =<&I2S>;
        };

        简单音频卡、编解码器{
          sound-Dai =<&pcm1865>;
          simple-audio-card、bitclock-master =<&sound>;
          simple-audio-card、frame-master =<&sound>;
        };
      };
    };
  };
};

一些额外的上下文-我正在使用一个外部时钟、被绑定到适当的引脚以及为 AVDD、IVDD 和 IOVDD 提供外部电源-在编译这些之后、它们会在 dmesg 中显示为虚拟稳压器。

`并加载 dtoverlay 后,我确认声卡存在`arecord -l`并且使用` amixer 设定了适当的增益水平。

启动/录制时、我的 dtoverlay 中没有显示任何错误、并且我确认 i2c 地址正确-但没有获得任何音频输入。

希望经验丰富的 TI 工程师能够注意到我的代码或原理图中明显的缺陷。

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

    请在记录期间转储寄存器和摄像机。 还可以使用示波器测量 bitclk 和 ws clk。 谢谢

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

    尊敬的 Cyril:

    原理图看起来没有问题。 根据盛豪的要求、请提供寄存器/ amixer 转储。 此外、再次检查包括数据输出在内的所有 I2S 时钟、以查看问题是否在软件或硬件方面。

    此致、
    J·麦克弗森

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

    下面链接的是 amixer 转储
    https://gist.github.com/NickEngmann/73ebe70b0187278f96aeee27a8271576

    寄存器转储
    gist.github.com/.../ffd536d87100b220a8e7bbc243932d00

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

    示波器的屏幕截图功能不配合、但此处是所需信息的图片

    LCLK/PCM_FS

     

    BCK/PCM_CLK


    数据输出

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

    bck 和 ws clk 的频率是多少?

    MICBIAS 引脚的电压是多少?

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

    LCLK/WS 时钟为48kHz 并且 BCK 为1.53MHz。 使用一个24 MHz 晶体振荡器  

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

    MICBIAS 引脚的电压是多少?

     page0reg0x74是0x7、它告诉我 bck_ratio 超出范围且 SCK 比率无效。

     page0reg0x75也异常。

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

    Micbias 是浮动的、但读取它后、我将获得0.562V 交流电压

    根据您对 bck_ratio/SCK 比率的评论-我目前使用一个晶体振荡器作为主时钟、如原理图所示、它与 XO 和 XI 相连-所以没有任何东西直接与 SCKI 线路相连。 我的电路目前有24 MHz 晶体、这个问题是否与我选择的振荡器有关? 我的晶体是否应该更改为建议的24.576 MHz?

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

    在我看来、MICBIAS 不能悬空。

    在您的系统中、您的 pcm1865是主器件还是从器件? 在你的 DTS 设置, 随后的设置告诉我 pcm1865 似乎是主人,因为声音是 pcm1865

    simple-audio-card、bitclock-master =<&sound>;
    simple-audio-card、frame-master =<&sound>;
    因此,我想知道 bck 和 ws clk 是由 pcm1865产生的还是其他的?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    on micbias -我正在使用线路电平源的立体声音频。 源代码是行级的、来自智能手机/计算机-因此我假设我不需要 micbias、因为文档中涉及的是用于麦克风应用的。 您是建议将 I 接地或上拉 MICBIAS 引脚以不使其保持悬空?

    pcm1865是主设备。 感谢在我的 DTS 文件中发现该错误;我将配置更改为如下:

           简单音频卡、编解码器
              sound-Dai =<&pcm1865>;
              Clocks =<&external_clock>;
              时钟名称="MCLK";
              simple-audio-card、bitclock-master =<&pcm1865>;
              simple-audio-card、frame-master =<&pcm1865>;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。


    更新后的逻辑分析仪时钟捕获结果大致相同。 对于  BCK/PCM_FS、~48kHz;对于 BCK/PCM_CLK、为1.55MHz

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

    由于 pcm1865是主器件、因此您必须使用示波器测量 MCLK、BCK 和 WS 时钟以检查其频率和占空比。
    0x74告知 SCK 比率异常。
    pcm186x_priv 中的 pcm186x_priv:SYSCLK 的值在 pcm186x_SET_DAI_SYSCLK 中有何作用?
    还有一件重要的事情、在主控模式下、P0R0x20bit4必须为1、作为主器件。 似乎 pcm186x_set_fmt 向驱动程序传递了错误格式、因此将其设置为从器件。 可能是你的 devicetree 中的响应树设置出错了。
    您能否确认 bck 和 WS clk 是由平台还是 pcm1865生成。