私たちは、Yocto Linuxを使用したNXP i.MX8MP LPDDR4 EVKにST VL53L8CX ToF(飛行時分)センサーをSPI経由で統合しようとしています。
最初の目的は、基本的なSPI通信を実現し、カスタムLinuxカーネルドライバからVL53L8CXデバイスを正常に検出することです。現段階では、完全な測距機能は必要ありません。
デバイスツリー構成は現在以下を使用しています。
&ecspi2 {
pinctrl-0 = <&pinctrl_ecspi2 &pinctrl_ecspi2_cs>;
cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
status = "okay";
stmvl53l8cx: spi@0 {
reg = <0>;
compatible = "st,stmvl53l8cx";
spi-max-frequency = <1000000>;
};
};SPIデバイスが正常に作成されました。
root@imx8mp-lpddr4-evk:~# ls -l /sys/bus/spi/devices/
spi0.0
spi1.0カスタムドライバーは以下も登録されています:
root@imx8mp-lpddr4-evk:~# ls -l /sys/bus/spi/drivers/
stmvl53l8cxドライバープローブ()関数は正常に呼び出されています。
i.MX8MP EVK ECSPI2/J21ハードウェアとデバイスツリーの設定で、VL53L8CXがSPI上で正しく通信していることを確認するために何を検証すべきか、どなたかアドバイスをいただけませんか?
特に、以下の点を確認したいと思います。
また、参考用に カスタムのdriver.cドライバーとカーネルログ も添付しています。
i.MX8MP EVK + J21 + ECSPI2 + VL53L8CX の正しいSPI構成に関するご助言をいただければ幸いです。
カスタムドライバーファイルを添付しました driver.c
また、ログも添付しています
よろしくお願いします。
こんにちは、 @Manuel_Salas さん
ご返信ありがとうございます。
さらなる設定作業を進める前に、デバイスIDの読み取りを試みました。しかし、デバイスIDを正常に読み取ることができませんでした。
SPIドライバーは正しくプローブしていますが、チップIDのレジスタ読み取りは期待値を返しません。そのため、VL53L8CXとの通信を確認できず、センサの初期化を進めることができません。
現在、問題の原因を特定するために、SPI構成、デバイスツリー、およびハードウェア接続を確認しています。
また 、ドライバ、ログ、モジュールイメージも添付 しますので、ご覧いただけます。VL53L8CXとの基本的なSPI通信に関して、他に確認すべき点があれば、ぜひご教示いただければ幸いです。
よろしくお願いします、
ヨギ96
こんにちは、@yogi96さん
お元気でお過ごしのことと思います。
概して、あなたの手順はすべて問題ないようです。
次に試してみるのは、例えばプローブ()関数でチップのIDを読み取るなど、センサのレジスタを読み取ることです。
IDが正しく読み取れた場合は、設定処理を続行します。
また、ドライバが取り付けられているのも見えませんでした。
可能であれば添付してください。
よろしくお願いいたします。
サラス。