2403199_zh-CN

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2403199_zh-CN

2403199_zh-CN

在定制板上,ECSPI1 未生成预期的 SPI 时钟。


大家好,

我们正在使用基于 i.MX8MP EVK 配置的 i.MX8MP 定制板。

在 i.MX8MP EVK 上,我们有一个通过 ECSPI2 连接的 SPI 设备。使用现有的 EVK 设备树配置,SPI 通信工作正常,我们可以在示波器上观察到预期的 SCLK 波形。

在我们的定制板上,SPI 接口连接到 ECSPI1 而不是 ECSPI2。

因此,我们修改了设备树配置,使其使用 ECSPI1。但是,使用 ECSPI1 时,我们无法在 SCLK 引脚上观察到预期的/正确的 SPI 时钟脉冲。

我们尝试了几种不同的设备树配置,但问题仍然存在。

1. ECSPI1 配置与现有 ECSPI2 配置类似
我们将控制器从 ECSPI2 改为 ECSPI1,并创建了相应的 ECSPI1 引脚控制组,包括 SCLK、MOSI、MISO 和 CS。

2. 分离 CS 引脚控制组
我们还尝试定义一个单独的 pinctrl_ecspi1_cs,并将其与 ECSPI1 pinctrl 组一起使用。

3. 显式 ECSPI1 引脚复用配置
我们也尝试过显式定义 ECSPI1 引脚。

然而,使用 ECSPI1,我们仍然无法观察到预期的 SPI 时钟脉冲。

我们想知道在 i.MX8MP 上配置 ECSPI1 时,除了启用 &ecspi1 和配置 ECSPI1 SCLK/MOSI/MISO/CS 引脚之外,是否还需要对设备树或 pinctrl 进行任何更改?

具体来说,ECSPI1 是否需要添加任何 ECSPI1 特有的引脚控制、时钟、IOMUX 或其他设备树配置才能正常工作?

同样的SPI配置在ECSPI2上也能正常工作,所以我们想了解将接口从ECSPI2迁移到ECSPI1时是否需要任何额外的配置。感谢您事先的指导。



Re: ECSPI1 does not generate expected SPI clock on custom board

你好 ,
请查看附件中的 dts 文件。

Re: ECSPI1 does not generate expected SPI clock on custom board

@SWETHA1

请分享一下您关于 ECSPI1 的 dts 文件。

B.R

Re: ECSPI1 does not generate expected SPI clock on custom board

@SWETHA1

我检查了您的dts文件,发现以下错误:

1. ECSPI 引脚被重复使用,导致引脚使用冲突。请移除此部件或使用其他引脚重复使用。

    pinctrl_ecspi1: ecspi1grp {
        fsl,pins = <
            MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK       0x48
            MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI       0x48
            MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO       0x48
        >;
    };
    pinctrl_uart3: uart3grp {
        fsl,pins = <
            MX8MP_IOMUXC_ECSPI1_SCLK__UART3_DCE_RX      0x140
            MX8MP_IOMUXC_ECSPI1_MOSI__UART3_DCE_TX      0x140
            MX8MP_IOMUXC_ECSPI1_SS0__UART3_DCE_RTS      0x140
            MX8MP_IOMUXC_ECSPI1_MISO__UART3_DCE_CTS     0x140
        >;
    };

2. ECSPI1 片选 (CS) 配置相互矛盾。请将其更改为以下代码。

    pinctrl_ecspi1_cs: ecspi1cs {
        fsl,pins = <
            MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09     0x40000
        >;
    };

B.R

Re: ECSPI1 does not generate expected SPI clock on custom board

@pengyong_zhang
请看以下观察结果。
1. 使用建议的更改后,逻辑分析器的结果

SWETHA1_1-1786532293061.pngSWETHA1_1-1786532293061.pngSWETHA1_1-1786532293061.pngSWETHA1_1-1786532293061.png


2. 当在之前附加的 dts 文件之上使用以下补丁时,还有另一个观察结果。

SWETHA1_0-1786532274946.pngSWETHA1_0-1786532274946.pngSWETHA1_0-1786532274946.pngSWETHA1_0-1786532274946.png

上述图表显示了这些变化
pinctrl_ecspi1:ecspi1grp {
fsl,pins = <
MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK 0x80
MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI 0x80
MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO 0x80
>;
};

根据建议的修改,我们可以看出时钟运行情况与预期不符。

Re: ECSPI1 does not generate expected SPI clock on custom board补充一些关于上次回复的细节
观察 1:应用建议的 DTS 更改后获得的结果。然而,SPI时钟波形仍然不符合预期,整体SPI信号行为与预期结果不符。

观察 2:当 MISO 浮空时,CS 出现两个不必要的尖峰,这不是预期的行为。CS 最初被推低。即使将 CS 配置为通过 DTS 驱动为高电平,它最初也会按预期驱动为高电平;但是,在交易之后,CS 似乎又会变低。

能否请您分享一下您对此的见解,并指导我如何继续进行?
Re: ECSPI1 does not generate expected SPI clock on custom board

@SWETHA1

1. 请分享您最新的dts文件。

2. 你是如何测试SPI设备的?您可以使用 `spidev_test` 工具运行 SPI 测试。请分享一下您的 `ls /dev/` 命令的输出结果。

B.R

Re: ECSPI1 does not generate expected SPI clock on custom board

你好
请查看附件中与共享观测值 1 和 2 对应的 dts 文件。
ls /dev 的输出显示/dev/spidev1.0

至于测试 spidevice,我使用了附件中的 c 文件,该文件已验证可在 evk 板上工作,其中 spi 连接到 ecspi2 并使用了现有的 pinctrl 组。
现在,验证结果已在基于 evk 的定制板上获取并共享,其中 spi 连接到 ecspi1。


标记 (1)
无评分
版本历史
最后更新:
星期三
更新人: