2411208_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2411208_zh-CN

2411208_zh-CN

在 Zephyr 系统中使用 FRDM-MCXW71 上的两个 LPSPI 端口?

你好,

我们希望在 Zephyr 应用中使用 FRDM-MCXW71 上的两个 LPSPI 端口。

但是当我在 Zephyr 4.4.0 中检查时,在下面

zephyrproject/zephyr/boards/nxp/frdm_mcxw71

我找到了以下文件:

  • frdm_mcxw_71.dts 文件。
    它只有 &lpspi1 的条目。(用于 SPI 闪存演示)
    &lpspi0 的条目不存在?
  • frdm_mcxw71-pinctrl.dtsi
    此外,只有 &lpspi1 的条目

是否有关于如何使用 lpspi0 的示例?

除了常规的 Zephyr 项目文件(.overlay 和 prj.conf)之外,还需要修改哪些文件?

谢谢。

Re: Using the two LPSPI ports on the FRDM-MCXW71 with Zephyr?

我注意到 zephyrproject/zephyr/drivers/spi/spi_nxp_lpspi 中有一个特定的驱动程序。

不过我不确定如何利用这个方法来同时处理两个 lpspi 端口。

Re: Using the two LPSPI ports on the FRDM-MCXW71 with Zephyr?

你好,希望你一切都好。

lpspi0 和 lpspi1 都已在 zephyr/dts/arm/nxp/mcx/nxp_mcxw7x_common.dtsi 中以 SoC 级别声明,并具有所有必需的硬件属性(寄存器、中断、时钟、FIFO 大小),但默认情况下状态设置为“已禁用”。板文件 frdm_mcxw71.dts 仅启用 lpspi1,但可以通过应用程序覆盖文件以相同的方式启用 lpspi0。

您可以参考现有的 lpspi1 配置。基本叠加层看起来大概是这样的,然后你可以用自定义的设备实现对其进行扩展:

&pinctrl {
    pinmux_lpspi0: pinmux_lpspi0 {
        group0 {
            pinmux = ,
                     ,
                     ,
                     ;
            slew-rate = "fast";
            drive-strength = "low";
        };
    };
};

&lpspi0 {
    status = "okay";
    pinctrl-0 = <&pinmux_lpspi0>;
    pinctrl-names = "default";
};

此致,
索菲亚。

Re: Using the two LPSPI ports on the FRDM-MCXW71 with Zephyr?

你好,索菲亚,

我按照建议创建了一个包含叠加层功能的最小应用程序。

应用程序已编译,但绑定 SPI 设备仍然失败。

只有在覆膜部分添加标签,装订才能生效。

在叠加层中:

&lpspi0 {
    ...
    label = "LPSPI_0";
}

&lpspi1 {
    ...
    label = "LPSPI_1";
}

在 main.c 中:

const struct device *lpspi0_dev; 
lpspi0_dev = device_get_binding("LPSPI_0"); 
printk("%p\n,lpspi0_dev);

现在对 lpspi0 和 lpspi1 都这样做似乎可以正常工作了。


是否需要为每个应用程序创建这些标签?


谢谢。

吉尔特


Tags (1)
No ratings
Version history
Last update:
yesterday
Updated by: