大家好,
我们正在使用基于 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时是否需要任何额外的配置。感谢您事先的指导。
你好 ,
请查看附件中的 dts 文件。
请分享一下您关于 ECSPI1 的 dts 文件。
B.R
我检查了您的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
嗨@pengyong_zhang ,
请看以下观察结果。
1. 使用建议的更改后,逻辑分析器的结果
SWETHA1_1-1786532293061.pngSWETHA1_1-1786532293061.pngSWETHA1_1-1786532293061.png
2. 当在之前附加的 dts 文件之上使用以下补丁时,还有另一个观察结果。
SWETHA1_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
>;
};
根据建议的修改,我们可以看出时钟运行情况与预期不符。
1. 请分享您最新的dts文件。
2. 你是如何测试SPI设备的?您可以使用 `spidev_test` 工具运行 SPI 测试。请分享一下您的 `ls /dev/` 命令的输出结果。
B.R
你好
请查看附件中与共享观测值 1 和 2 对应的 dts 文件。
ls /dev 的输出显示/dev/spidev1.0
至于测试 spidevice,我使用了附件中的 c 文件,该文件已验证可在 evk 板上工作,其中 spi 连接到 ecspi2 并使用了现有的 pinctrl 组。
现在,验证结果已在基于 evk 的定制板上获取并共享,其中 spi 连接到 ecspi1。