こんにちは、
FRDM-MCXW71の2つのLPSPIポートをZephyrアプリケーションで使いたいと考えています。
しかし、Zephyr 4.4.0で確認すると、下
Zephyrproject/Zephyr/ボード/NXP/frdm_mcxw71
以下のファイルが見つかりました。
lpspi0の使い方に関する例はありますか?
通常のZephyrプロジェクトファイル(.overlayやprj.conf)以外で、どのファイルを変更する必要がありますか?
ありがとうございます。
zephyrproject/zephyr/drivers/spi/spi_nxp_lpspiで特定のドライバーを見つけました。
ただ、両方のLPSPIポートにどう使えるのかはよくわかりません。
こんにちは、お元気でお過ごしでしょうか。
lpspi0とlpspi1は、すでにzephyr/dts/arm/nxp/mcx/nxp_mcxw7x_common.dtsiでSoCレベルで宣言されており、必要なハードウェアプロパティ(レジスタ、割り込み、クロック、FIFOサイズ)がすべて含まれていますが、デフォルトではstatus = "disabled"に設定されています。ボードファイルfrdm_mcxw71.dtsはlpspi1だけを有効にしますが、lpspi0もアプリケーションのオーバーレイファイルを通じて同様に有効化できます。
既存のLPPspy1構成を参考にしてください。基本的なオーバーレイはこんな感じで、カスタムデバイス実装で拡張できます:
&pinctrl {
pinmux_lpspi0: pinmux_lpspi0 {
group0 {
pinmux = ,
,
,
;
slew-rate = "fast";
drive-strength = "low";
};
};
};
&lpspi0 {
status = "okay";
pinctrl-0 = <&pinmux_lpspi0>;
pinctrl-names = "default";
};
よろしくお願いします、
ソフィア。
こんにちは、ソフィアさん。
提案通り、オーバーレイの追加を加えた最小限のアプリケーションを作成しました。
アプリケーションはコンパイルされましたが、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の両方でこの操作を行うと、現在は正常に動作するようです。
各アプリケーションごとにラベルを作成することが期待されているのでしょうか?
よろしくお願いします。
ヘールト