Skip to content

Latest commit

 

History

History
98 lines (61 loc) · 5.19 KB

README.md

File metadata and controls

98 lines (61 loc) · 5.19 KB

PowerFin 接口测试系统

本项目用于验证两块 PowerFin Linux 开发板之间的接口。发送板运行网页和测试后端;待测试板运行 UART 回传及 I2C/SPI 检测程序。用户可在浏览器中分别启动五路 UART、I2C1 和 SPI1 测试,并查看结果。

目录

  • sender-board/:发送板网页、Python HTTP 后端和开机启动脚本。
  • dut-board/:待测试板 UART1~UART5 回传程序、开机启动脚本,以及更新 SPI/I2C 测试程序的安装脚本。
  • tools/:独立检查 SPL06 SPI 片选/芯片 ID 的诊断工具。

功能

五路 UART 回传

网页通过发送板的 UART1~UART5(/dev/ttyS1~/dev/ttyS5)依次发送测试帧。待测试板收到后经同一 UART 原样回传;发送板逐路比较收发内容,并在网页上分别显示正常、超时、数据不一致或端口错误。

I2C1 检测

网页点击 I2C1 测试后,发送板通过 UART1 向待测试板发送 I2C1_TEST\r\n。待测试板通过 /dev/i2c-1 查询 ICM-20602 的 WHO_AM_I 寄存器(0x75),地址尝试 0x68 和 0x69,期望值为 0x12。检测结果经 UART1 返回,成功帧格式为:

I2C1_OK addr=0x68 whoami=0x12\r\n

实际地址由传感器的 AD0 接线决定。网页显示检测结果、设备地址和芯片标识。

SPI1 检测

网页点击 SPI1 测试后,发送板通过 UART1 发送 SPI1_TEST\r\n。待测试板通过 /dev/spidev1.0、SPI mode 3、8 bit、100 kHz 读取 SPL06-001 的芯片 ID 寄存器 0x0D;连续读数稳定为 0x10 时判定成功。成功返回帧为:

SPI1_OK device=/dev/spidev1.0 whoami=0x10\r\n

建议按模块标识连接 SPI 信号:SCK→SCK,SDI→MOSI,SDO→MISO,CSB→对应片选(CS),并连接共地。供电电压应以实际传感器模块规格为准,不要仅根据接口名称推定可接 5 V。

通信与运行要求

  • UART 参数:115200 baud、8 data bits、无校验、1 stop bit(8N1),无硬件流控。
  • UART1 同时承载普通回传、I2C 测试命令和 SPI 测试命令。
  • 待测试板上的服务会解析 UART1 控制帧;其他普通 UART1 数据仍原样回传。
  • 两块板均需正确配置 UART/I2C/SPI 引脚复用、设备树和对应 /dev 节点,并确保运行用户有设备访问权限。
  • 本仓库不包含 PX4。不要在运行本测试服务时让其他程序同时占用这些 UART 或总线设备。

部署

以下路径与启动脚本中的默认路径一致。首次部署时,将对应程序目录复制到各自板卡的 /root 下,并把随仓库提供的 S98* 启动脚本安装到板卡的 /etc/init.d/。该脚本由系统开机启动流程调用;安装并启用后,日常使用不需要登录板卡或手动运行命令:给发送板上电,等待 Linux 和网络启动完成,再从电脑打开网页即可。待测试板的回传服务也会在其上电后自动启动。

发送板

首次部署发送板时,将网页文件放到 /root/powerfin-uart-web,并将仓库中的 sender-board/S98powerfin-uart-web 复制到 /etc/init.d/S98powerfin-uart-web。然后在发送板执行一次:

chmod +x /etc/init.d/S98powerfin-uart-web
/etc/init.d/S98powerfin-uart-web start

之后每次只需给发送板上电并等待启动完成,不需要再次执行上面的命令。启动脚本会在开机时后台运行网页服务,日志写入 /var/log/powerfin-uart-web.log。

网页监听 0.0.0.0:5000,在电脑与发送板网络连通时访问:

http://192.168.123.100:5000

也可在板上直接运行 python3 -u /root/powerfin-uart-web/app.py 查看前台日志。

待测试板

首次部署待测试板时,将程序放到 /root/powerfin-uart1-5-echo,并将仓库中的 dut-board/S98powerfin-uart1-5-echo 复制到 /etc/init.d/S98powerfin-uart1-5-echo。然后在待测试板执行一次:

chmod +x /etc/init.d/S98powerfin-uart1-5-echo
/etc/init.d/S98powerfin-uart1-5-echo start

安装并启用后,待测试板每次上电都会自动启动 UART 回传服务,不需要每次手动登录运行。

若系统尚未安装或更新本程序的启动服务,先确认待测试板上的目标目录和现有启动脚本,再将 dut-board/S98powerfin-uart1-5-echo 安装为 /etc/init.d/S98powerfin-uart1-5-echo。dut-board/install_spi_service.sh 是用于更新现有待测试板服务的脚本:它要求 /root/echo_uart1_5.py.new 已准备好,并会在替换前保留 .before_spi 备份;不要在未按脚本要求准备文件时运行它。

独立 SPI 诊断

在待测试板上运行:

python3 /root/tools/spi_probe_spl06.py

脚本分别检查 /dev/spidev1.0 和 /dev/spidev1.1,并显示多次读取结果。只有恰好一个片选连续读到预期 ID 0x10 时才报告候选设备。

GitHub 上传后验证

git clone https://github.com/HumpbackLab/Powerfin-test.git
cd Powerfin-test

请先根据两块板的实际网络连接方式确认 IP 地址;如果待测试板和发送板都通过同一个 USB RNDIS 网络连接电脑,可能出现地址冲突或无法同时访问。建议先单独连接并验证发送板网页,再接入待测试板并运行接口测试。