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 配合使用

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1002324/pcm1865-use-with-raspberry-pi

器件型号:PCM1865
主题中讨论的其他器件: PCM1862

您好!  

我想使用 PCM1865和 Raspberry PI4.I 录制多麦克风音频。我在 Linux 内核中找到编解码器驱动程序(pcm186x.c、pcm186x-i2c.c)并创建电路。 下一步、我应该怎么做?

请帮帮我!

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

    Kenji-San、

    将我们的任何 Linux 驱动程序添加到系统中需要:

    • 要映射的 DTS 更改:
      • I2C 处理器引脚至 PCM1862 I2C 引脚
        • 例如:
        • i2c0 {
                #address-cells = <1>;
                #size-cells = <0>;
                pcm1865: pcm1865@4a {
                  compatible = "ti,pcm1865";
                  #sound-dai-cells = <0>;
                      reg = <0x4a>;
                      avdd-supply = <&reg_3v3_analog>;
                      dvdd-supply = <&reg_3v3>;
                      iovdd-supply = <&reg_1v8>;
              };
          };
      • 音频编解码器器件添加到支持的器件列表中
        • 例如:
        • sound {
              compatible = "simple-audio-card";
              simple-audio-card,name = "TI BeagleBone Black";
              /*
               * you might need to add:
               * simple-audio-card,widgets
               * simple-audio-card,routing
               */
           
               simple-audio-card,dai-link@0{
                  format = "dsp_a";
                  bitclock-master = <&sound0_0_master>;
                  frame-master = <&sound0_0_master>;
                  sound0_0_master: cpu {
                      sound-dai = <&mcasp0>;
                      clocks = <&clk_mcasp0>;
                      dai-tdm-slot-num = <8>;
                      dai-tdm-slot-width = <32>;
                      dai-tdm-slot-tx-mask = <1111>;
                      dai-tdm-slot-rx-mask = <1111>;
                  };
           
                  codec {
                      sound-dai = <&ti,pcm1865 0>;
                      dai-tdm-slot-num = <8>;
                      dai-tdm-slot-width = <32>;
                      dai-tdm-slot-tx-mask = <1111>;
                      dai-tdm-slot-rx-mask = <1111>;
                  };
              };
          };
    • 使用添加的驱动程序编译内核
    • 使用一组命令来配置器件或记录
      • AMixer
      • A 记录

    这些更改在很大程度上取决于您的嵌入式 Linux、可用引脚和您想要包含的功能。 因此、我们只能提供一般准则。  以下应用手册将指导您设置这些参数并提供更详细的信息:

    此页面包含用于调试和测试的所有 Linux 驱动程序、文档和常规命令的链接:

    e2e.ti.com/.../2859004

    此致、
    佩德罗

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

    您好、Pedro 先生

    感谢你的答复。

     我参考了您的回答、执行了以下操作。

    1) 1)写入"DTS"文件并转换为"dtbo"文件。

    2) 2)在/boot/config.txt.中添加"dtoverlay=DTSNAME"

    3) 3)在/etc/modules 中添加"snd_SoC_pcm186x-i2c"和"snd_soc_pcm186x-i2c"、执行了"depmod -a "命令。

    4) 4)重新引导。

    我运行了"arecord -l "、但没有看到任何内容。

    你能告诉我该怎么办吗?

    此致、

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

    Kenji-San、

    接下来的调试步骤为:

    • 验证是否已加载驱动程序。 检查信息日志中有关 PCM 设备的错误:
      • dmesg | grep PCM
      • 此处的错误表示将 I2C 引脚映射到 PCM186x 时出现问题。 确保 DTS 中使用了正确的映射
    • 如果加载了驱动程序、
      • 验证 I2C 是否与器件通信:
        • i2cdetect  r 2 =>显示了在 I2C 总线2上连接的器件
      • 转储寄存器内容:
        • i2cdump -y -f 2 0x4a =>显示 I2C 总线2器件0x4a 的所有寄存器
      • 使用 amixer 控件配置设备以进行录制:
        • amixer controls =>列出所有控件
        • amixer contents =>列出所有控件和内容
    • 正确加载和配置驱动程序后,发出相应的 arecord 命令:
      • arecord -c 2 -f S16_LE -r 48000 --device="HW:0、1"

    此致、
    佩德罗