2416787_ja-JP

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

2416787_ja-JP

2416787_ja-JP

i.MX8MP EVKのToFセンサー VL53L8CX SPI通信を有効にする

私たちは、Yocto Linuxを使用したNXP i.MX8MP LPDDR4 EVKにST VL53L8CX ToF(飛行時分)センサーをSPI経由で統合しようとしています。

最初の目的は、基本的なSPI通信を実現し、カスタムLinuxカーネルドライバからVL53L8CXデバイスを正常に検出することです。現段階では、完全な測距機能は必要ありません。

ハードウェア

  • ボード: NXP i.MX8MP LPDDR4 EVK
  • センサー: VL53L8CX ToFセンサー
  • インターフェース: SPI
  • EVKコネクタ: J21拡張コネクタ
  • SPIコントローラー: ECSPI2
  • チップセレクト: ECSPI2 SS0
  • CSに使用されるGPIO: GPIO5_IO13
  • SPIデバイス: spi1.0
  • SPI速度: 1MHz
  • SPIモード:モード0


    デバイスツリー構成は現在以下を使用しています。

     
    &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>;
            };
    };
    meta-vl53l8cx_8mp/
    ├── conf/
    │ └── layer.conf
    ├── レシピズカーネル/
    │ ├── Linux/
    │ │ ├── ファイル/
    │ │ │ └― 0001-add-vl53l8cx-spi-node.patch
    │ │ └── Linux-imx_%.bbappend
    │ │
    │ └── VL53L8CX/
    │ ├── ファイル/
    │ │ ├── メイクファイル
    │ │ └── driver.c
    │ └── vl53l8cx.bb


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上で正しく通信していることを確認するために何を検証すべきか、どなたかアドバイスをいただけませんか?

特に、以下の点を確認したいと思います。

  1. ECSPI2 / spi1.0はi.MX8MP LPDDR4 EVKのJ21拡張コネクターで正しいSPIコントローラー/デバイスでしょうか?
  2. GPIO5_IO13 / ECSPI2_SS0はJ21の正しいチップセレクトですか?
  3. このコネクタにおけるECSPI2のSCK、MOSI、MISO、およびCSピン多重化設定は正しいですか?
  4. VL53L8CXには、以下のような追加のデバイスツリー構成が必要ですか?
    • spi-cpol
    • spi-cpha
    • GPIO1/割り込み
    • LPn/リセット/電源GPIO
    • 電源/レギュレータの特性?
  5. VL53L8CXは、デバイスIDを読み取る前に、特定のSPIモード、タイミング、または初期化シーケンスを必要としますか?
  6. i.MX8MP ECSPIコントローラーでVL53L8CX向けに設定しなければならないことはありますか?
  7. spi_write()とspi_read()が0を返すため、 実際のMOSI/MISO電気通信 (例えばロジックアナライザーなど)を検証し、センサーが応答しているかどうかを判断する推奨方法はありますか?

また、参考用に カスタムのdriver.cドライバーとカーネルログ も添付しています。

i.MX8MP EVK + J21 + ECSPI2 + VL53L8CX の正しいSPI構成に関するご助言をいただければ幸いです。

カスタムドライバーファイルを添付しました driver.c
また、ログも添付しています

よろしくお願いします。


Re: Enable SPI Communication for VL53L8CX ToF Sensor on i.MX8MP EVK

こんにちは、 @Manuel_Salas さん

ご返信ありがとうございます。

さらなる設定作業を進める前に、デバイスIDの読み取りを試みました。しかし、デバイスIDを正常に読み取ることができませんでした。

SPIドライバーは正しくプローブしていますが、チップIDのレジスタ読み取りは期待値を返しません。そのため、VL53L8CXとの通信を確認できず、センサの初期化を進めることができません。

現在、問題の原因を特定するために、SPI構成、デバイスツリー、およびハードウェア接続を確認しています。

また 、ドライバ、ログ、モジュールイメージも添付 しますので、ご覧いただけます。VL53L8CXとの基本的なSPI通信に関して、他に確認すべき点があれば、ぜひご教示いただければ幸いです。

よろしくお願いします、
ヨギ96

Re: Enable SPI Communication for VL53L8CX ToF Sensor on i.MX8MP EVK

こんにちは、@yogi96さん

お元気でお過ごしのことと思います。


概して、あなたの手順はすべて問題ないようです。

次に試してみるのは、例えばプローブ()関数でチップのIDを読み取るなど、センサのレジスタを読み取ることです。

IDが正しく読み取れた場合は、設定処理を続行します。


また、ドライバが取り付けられているのも見えませんでした。

可能であれば添付してください。


よろしくお願いいたします。

サラス。

Tags (1)
No ratings
Version history
Last update:
2 weeks ago
Updated by: