2416787_zh-CN

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

2416787_zh-CN

2416787_zh-CN

在 i.MX8MP EVK 上启用 VL53L8CX ToF 传感器的 SPI 通信

我们正在尝试使用 Yocto Linux 将ST VL53L8CX ToF(飞行时间)传感器通过SPI集成到NXP i.MX8MP LPDDR4 EVK上。

最初的目标是实现基本的 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速度: 1 MHz
  • 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/
    │ └── 层.conf
    ├── recipes-kernel/
    │ ├── linux/
    │ │ ├── 文件/
    │ │ │ └── 0001-add-vl53l8cx-spi-node.patch
    │ │ └── linux-imx_%.bbappend
    │ │
    │ └── vl53l8cx/
    │ ├── 文件/
    │ │ ├── Makefile
    │ │ └── 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
 

驱动程序 probe() 函数已成功调用。

请问有人可以指导一下,为了确保 VL53L8CX 通过 SPI 正确通信,我们应该检查i.MX8MP EVK ECSPI2/J21 硬件和设备树配置中的哪些内容吗?

我们尤其想确认以下几点:

  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/RESET/电源 GPIO
    • 电源/稳压器的特性?
  5. VL53L8CX 在读取其设备 ID 之前是否需要特定的SPI 模式、时序或初始化序列?
  6. 对于 VL53L8CX,i.MX8MP ECSPI 控制器是否需要进行任何特殊配置?
  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 通信的哪些方面有任何建议,我们将非常感谢您的指导。

此致,
yogi96

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

你好@yogi96

希望你一切都好。


总的来说,你采取的所有步骤看起来都不错。

下一步你可以尝试读取传感器的任何寄存器,例如,在你的 probe() 函数中,读取芯片的 ID。

如果读取的 ID 正确,则继续配置。


另外,我没能看到连接的驱动器。

如果可以,请附上附件。


顺祝商祺!

萨拉斯。

Tags (1)
No ratings
Version history
Last update:
a week ago
Updated by: