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.

[参考译文] AM625SIP:如何配置 macsp0?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1495663/am625sip-how-to-config-the-macsp0

器件型号:AM625SIP

工具/软件:

您好的团队、

问题说明:
来自外部时钟的 BCLK 和 fclk、4条数据线接收数据。

如何修改设备树?   采样率=48K 字大小=32位2Ch/日期行

&McASP0{
pinctrl-names ="default";
pinctrl-0 =<&MAIN_McASP0_pins_default>;
OP-MODE =<0>;/* I2S 模式*/
serial-dir =</* 0:不活动、1:TX、2:Rx */
2 2 0 0
0 0 0 0
0 0 0 0
0 0 0 0
>;
TDM 时隙=<2>;
rx-num-evt =<0>;
tx-num-evt =<0>;
#sound-dai-cells =<0>;
状态="正常";
};

sound_master:pdm-to-I2S{
#sound-dai-cells =<0>;
Compatible ="Adi、adau7002";
};

codec_audio:声音{
compatible ="simple-audio-card";
简单音频卡、名称="AM62x-SKEVM ";
简单音频卡、格式="dsp_b";
simple-audio-card、bitclock-master =<&sound_master>;
simple-audio-card、frame-master =<&sound_master>;

简单音频卡、Dai-link@0{
CPU{
Sode-Dai =<&McASP0>;
};
编解码器{
sound-dai =<&sound_master>;
};
};

};

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

    Roy、您的问题刚刚重新分配给了相应的主题专家。 我们很快就会回来。

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

    Roy

    Device 树更改看起来正常。 您也可以共享  pincontrols 的 MAIN_MCASP0_PINS_DEFAULT {}以查看一切是否正确。

    您可以参阅我们的 DTS 文件: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi?h=ti-linux-6.6.y#n574 、其中我们使用的是 McASP1、且编解码器是时钟的启动器。

    此致、

    Suren

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

    你好 Suren、

    当我使用设备树、卡无法注册时、记录:
    [ 9.268032] DaVinci -McASP 2b00000.audio-controller: ASOC:2b00000.audio-controller:上 snd_soc_dai_set_fmt 处出现错误-
    22
    [9.284788] ASOC-simple-card:声音探测失败、错误为-22

    我 在 dailink 中添加"format ="I2S_":

    sound_master:pdm-to-I2S{
    #sound-dai-cells =<0>;
    Compatible ="Adi、adau7002";
    };

    codec_audio:声音{
    compatible ="simple-audio-card";
    简单音频卡、名称="AM62x-SKEVM25";
    简单音频卡、格式="dsp_b";
    simple-audio-card、bitclock-master =<&sound_master>;
    simple-audio-card、frame-master =<&sound_master>;

    简单音频卡、Dai-link@0{

    格式="I2S_"
    CPU{
    Sode-Dai =<&McASP0>;
    };
    编解码器{
    sound-dai =<&sound_master>;
    };
    };

    };

    可以注册声卡、但使用时:  

    root@am62xx-EVM:/proc/asound/AM62xSKEVM25/pcm0c # arecord -fS32_LE -c 8 -D HW:0、0 /tmp/test.wav

    日志:


    [ 310.624612] DaVinci -McASP 2b00000.audio-controller:过快参考时钟(96000000)
    [ 310.632672] DaVinci -McASP 2b00000.audio-controller:采样率降低400PPM
    记录波形'/tmp/test.wav ':有符号的32位小端字节序,速率48000 Hz
    A 记录:PCM_READ:2272:读取错误:输入/输出错误


    McASP0:
    MAIN_MCASP0_PINS_DEFAULT:MAIN-MCASP0-DEFAULT 引脚{
    pinctrl-single、pins =<
    AM62X_IOPAD (0x1B0、PIN_INPUT、0)/*(A20) MCASPO_ACLKR */
    AM62X_IOPAD (0x1AC、PIN_INPUT、0)/*(E19) McASP0_AFSR */
    AM62X_IOPAD (0x1A0、PIN_INPUT、0)/*(E18) McASP0_AXR0 */
    AM62X_IOPAD (0x19C、PIN_INPUT、0)/*(B18) McASP0_AXR1 */
    AM62X_IOPAD (0x198、PIN_INPUT、0)/*(A19) McASP0_AXR2 */
    AM62X_IOPAD (0x194、PIN_INPUT、0)/*(B19) McASP0_AXR3 */
    >;
    };

    McASP0:音频控制器@2b00000{
    兼容="ti、am33xx-McASP-AUDIO";
    REG =<0x00 0x02b00000 0x00 0x2000>、
    <0x00 0x02b08000 0x00 0x400>;
    reg-names ="MPU"、"dat";
    中断= 、
    ;
    中断名称="tx"、"rx";

    DMA =<&MAIN_bcdma 0 0xc500 0>、<&MAIN_bcdma 0 0x4500 0>;
    dma-names ="tx"、"rx";

    Clocks =<&K3_CLKS 190 0>;
    时钟名称="fck";
    Assigned-clocks =<&K3_CLKS 190 0>;
    assigned-clock-parter =<&k3_CLKS 190 2>;
    电源域=<&K3_PDS 190 TI_SCI_PD_EXCLUSTED>;
    STATUS ="已禁用";
    };




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

    尊敬的 Roy:

    您已配置为 I2S 和 tdm-slots=2。您是否可以使用-c 2选项运行 arecord 命令、看看它是否起作用

    此致、

    Suren

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

    顺便说一下、我们是否支持8通道 TMD 格式的4ADC/2通道收发器?  

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

    尊敬的 Roy:

    请更清楚地解释、我不理解您之前的问题。

    此外、您是否能够探测 McASP0引脚上的 MCLK、BCLK 和 FSYNC?

    此致、

    Suren

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

    您好、Suren、

    我们的客户希望获得8通道录像。 它们使用 McASP0的四条数据线连接到4ADC、每个 ADC 提供2通道数据。 ADC、BCLK、LRCK 均由同一个外部时钟生成。 BCLK 为3.07Mhz、FCLK 为48kHz。 我已配置设备树、但似乎无法正确记录、并提示前面提到的 PCM 读取错误2272。

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

    客户的芯片未连接 MCLK。 是否建议使用示波器检查 BCLK 和 FSYNC 对应的引脚上的波形?

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

    是的、Roy。  

    请连接逻辑分析仪以检查 BCLK 和 FSYNC。

    此外、如果要录制8通道录制、则必须在 RX 中使用4个串行器、这正是我在器件树中看到的操作。

    &mcasp0 {
    	status = "okay";
    	#sound-dai-cells = <0>;
    
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mcasp0_pins_default>;
    
    	op-mode = <0>;          /* MCASP_IIS_MODE */
    	//op-mode = <1>;          /* MCASP_DIT_MODE */
    
    	tdm-slots = <2>;
    	//auxclk-fs-ratio = <2177>;
    	ext-clk-provider;//这个配置项表示MCASP将作为外部时钟的接收者(consumer),而不是提供者(provider)
    	
    	serial-dir = <  // 0: INACTIVE, 1: TX, 2: RX 
    	       2 2 2 2
    	       0 0 0 0
    	       0 0 0 0
    	       0 0 0 0
    	>;

    您是否也尝试过更改麦克风偏置并查看它是否有助于您录制?

    此致、

    Suren

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

    您好、Suren、

    客户使用 图中所示的命令时、逻辑 分析仪上显示的波形 如前4个图中所示。

    从上到下的波形为 BCLK、FSYNC 和数据1-4。

    如果麦克风出现问题、录制命令不应失败、只会录制失真或质量较差的 WAV 文件。

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

    尊敬的 Roy:

     客户使用的是哪个 Linux SDK 版本?

    此致、

    Suren

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

    您好、Suren、

    Linux SDK 版本为  TI-PROCESSOR-SDK-LINUX-am62xxsip-EVM-09.02.01.10。

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

    尊敬的 Roy:

    正如今天所讨论的、请共享寄存器转储与2通道录音(工作)和8通道录音(非工作场景)、以便我们进行分析。

    此致、

    Suren

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

    您好、Suren、

    附件中的文件是来自客户测试的原始数据(包括寄存器、记录命令和声音 wav filese2e.ti.com/.../1050.test_5F00_data.zip)、因此、为了让您更轻松地查看寄存器、我已经组织了多种不同器件树配置模式的寄存器、异常寄存器值被标记为红色。

    测试1:
    TDM-SLOT=<2>
    serial-dir =<
    2 0 0 0
    0 0 0 0
    0 0 0 0
    0 0 0 0
    >

    McASP_RGNLCTL 0x1f
    McASP_RMASK 0xffffff
    McASP_RFMT 0x180f0
    McASP_RTDM 0x3
    McASP_RINTCTL 0x1
    McASP_RSTAT 0x154
    McASP_RSLOT 0x1
    MCASO_RCLKCHK 0x0

    测试2:
    TDM-SLOT=<2>
    serial-dir =<
    0 2 0
    0 0 0 0
    0 0 0 0
    0 0 0 0
    >

    McASP_RGNLCTL 0x1f
    McASP_RMASK 0xffffff
    McASP_RFMT 0x180f0
    McASP_RTDM 0x3
    McASP_RINTCTL 0x1
    McASP_RSTAT 0x154
    McASP_RSLOT 0x0
    MCASO_RCLKCHK 0x0

    测试3:
    TDM-SLOT=<2>
    serial-dir =<
    0 0 2 0
    0 0 0 0
    0 0 0 0
    0 0 0 0
    >

    McASP_RGNLCTL 0x1f
    McASP_RMASK 0xffffff
    McASP_RFMT 0x180f0
    McASP_RTDM 0x3
    McASP_RINTCTL 0x1
    McASP_RSTAT 0x154
    McASP_RSLOT 0x0
    MCASO_RCLKCHK 0x0

    测试4:
    TDM-SLOT=<2>
    serial-dir =<
    0 0 0 2
    0 0 0 0
    0 0 0 0
    0 0 0 0
    >

    McASP_RGNLCTL 0x1f
    McASP_RMASK 0xffffff
    McASP_RFMT 0x180f0
    McASP_RTDM 0x3
    McASP_RINTCTL 0x1
    McASP_RSTAT 0x15c
    McASP_RSLOT 0x0
    MCASO_RCLKCHK 0x0

    测试5:
    TDM-SLOT=<8>
    serial-dir =<
    2 2 2 2.
    0 0 0 0
    0 0 0 0
    0 0 0 0
    >

    McASP_RGNLCTL 0x1f
    McASP_RMASK 0xffffff
    McASP_RFMT 0x180f0
    McASP_RTDM 0xff
    McASP_RINTCTL 0x1
    McASP_RSTAT 0x15e
    McASP_RSLOT 0x5
    MCASO_RCLKCHK 0x0

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

    尊敬的 Roy:

    由于其模数转换器支持24位模拟输入、您能否尝试以 S24_LE 格式捕获并查看其是否正常工作?

    此致、

    Suren

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    MCASP_RGNLCTL 0x1f
    McASP_RMASK 0xffffff
    McASP_RFMT 0x180f0
    McASP_RTDM 0xff
    McASP_RINTCTL 0x1
    McASP_RSTAT 0x15e
    McASP_RSLOT 0x5
    MCASO_RCLKCHK 0x0

    Roy

    RSLOT 显示0x5、是因为您已将 tdm-s槽 配置为8、而不是2?  

    此致、

    Suren

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

    尊敬的 Roy:

    另外、客户是否可以尝试捕获4个通道而不是8个通道、看看它是否正常工作? 同样、在8kHz 或16kHz 下捕获是否会产生任何差异?

    在 DTS 中采用 tdm-slots=<2>。

    此致、

    Suren

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

    您好、Suren、

    客户测试了4ch、和8ch 一样、wav 文件是 L L R R、速度异常。 客户还测试了8kHz 或16kHz、如果使用16K 或8K、并且无法使用录制命令进行录制、则会指示采样率不正确。

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

    你好 Suren、

    是的、它是 tdm-slot = 8。 如果客户按如下方式配置器件树:
    TDM-SLOT=<2>
    serial-dir =<
    2 2 2 2.
    0 0 0 0
    0 0 0 0
    0 0 0 0
    >、

    寄存器:

    McASP_RGNLCTL 0x1f
    McASP_RMASK 0xffffff
    McASP_RFMT 0x180f0
    McASP_RTDM 0xff
    McASP_RINTCTL 0x1
    McASP_RSTAT 0x15c
    McASP_RSLOT 0x0
    MCASO_RCLKCHK 0x0