找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1007

积分

0

好友

145

主题
发表于 前天 01:33 | 查看: 7| 回复: 0

本文基于硬禾学堂使用RP2040开发的“十二指神探”模块,对网上开源的逻辑分析仪项目进行了复现与测试。项目可成功运行,若想自行编译配置,也可基于开源代码重新构建。以下是完整的尝试过程记录。

主要内容框架

  • 快速使用:介绍如何将RP2040板卡变为逻辑分析仪、如何让PulseView识别设备及PulseView的基本功能(针对直接使用的用户)。
  • 环境准备:在Windows系统下搭建RP2040编译环境的主要步骤(针对后续希望开发的用户)。
  • 编译项目:编译pico-codersigrok-pico项目的主要步骤。
  • 小结:使用体会与遇到的注意事项。

快速使用

附上pico-coder开源项目的GitHub地址:https://github.com/pico-coder/sigrok-pico 。项目包含了逻辑分析仪固件源码、PulseView获取地址、使用文档以及详细参数。下载项目到本地后,如果仅想使用,只需关注pico_sdk_sigrokpulseview两个文件夹。

FhYq2bk09hOZUsWa6Hj4q6-hlsPt

第一步:打开pico_sdk_sigrok文件夹,其下的build文件夹内包含最终的.uf2文件。将此文件拖入RP2040的U盘盘符,即可完成固件烧录,将其变为逻辑分析仪。

FkWv-1ipDdGRkhCr1fFoTjdLkOWB

第二步:打开pulseview文件夹,按照README中的第一条链接(建议在GitHub页面直接操作,可能需要科学上网)下载非官方版本的PulseView,无需注册。

FsJx8xuEK2oADZoQAcrG8fLiSBZKFmY_yPlJrDbgrRgBz3czS0h--2Sx

安装完成后,从开始菜单打开PulseView应用。
FplVXHtycJpxhnR7KoWqyyXfgYqh

软件界面主要功能区域如图所示。在选择设备后,采样率和采样数设置会出现在设备选择按钮旁边。
Fn17iUKMXJ6en_mwL10JxBMeqjw3

第三步:识别设备。点击设备选择按钮,按照下图步骤操作。
FqsoUxAKhQ0lrHbsEEDD1EGNEcTI

成功识别后,界面如下图所示。
FipxA97PzNZyy833sKXwWJeEGICZ

至此,设备已可正常工作。用户可以从24个数字通道中选择一个或多个进行数据采集与波形观测。

“十二指神探”的原理图可在硬禾学堂页面找到:https://www.eetree.cn/project/detail/748。本次测试连接的是CH0、CH1、CH2通道,对应RP2040的GPIO20、21、22
FnJKPXYNVgjsiUb2xDImQXIifUxa

使用ADALM2000产生一个SPI通信信号,发送数据0xAA,通信速率拉满至50MHz。
Fp5v6VYVf22r8xwc7oIRiNYFHv4d

在PulseView中接收信号,通过协议选择按钮添加SPI协议解码器。
FuXB8D0qIJ8zxvF0Qfr76yP-r6XY

将GPIO20、21、22(PulseView中显示为D20、21、22)分别配置为SPI的CLK、MOSI、MISO通道。配置完成后,既能看到波形,也能看到解码出的数据正是0xAA。注意,需将界面上的模拟通道全部关闭,才能将采样率提升至最高的120MHz。
FjtBrMb6zffMuRsksgPHPVOuASCk

该设备的更多特性与限制在开源项目文档中均有详细说明,并附有详细的参数表,可供进一步研究。
Fu8ENW8T9NsXtbHzRcUZh6wmm6sf

环境准备

如果希望自行编译开源项目,需要搭建Windows下的C语言开发环境。虽然已有Arduino、PlatformIO等平台支持RP2040开发,但本项目基于官方的Pico-SDK,因此需按照官方指引配置环境。官方配置过程可能存在一些坑点,本文整理出一条相对快捷的配置路径。

参考文章链接:

主要配置步骤:

  1. 安装必要的软件工具
  2. 获取Pico-SDK等工程包
  3. 配置VSCode
  4. 进行编译

1. 安装需要的软件工具
所需工具如下图所示,图片来源于官方pico-setup-windows仓库的README。重点是下载最新版本的.exe安装文件。运行安装程序后,下列工具将自动安装完毕。用户也可选择自行下载各工具的最新版本。
Fj_q8boJiyLypktrafJhv54H8BRv

安装结束后通常会提示重启电脑,按要求重启即可。
FgXfEdy0wQ5CMAvgj7EG6Yc4aUZ7

有时可能会弹出下图窗口,这可能是因为非首次安装。若弹出此窗口,可跳过,直接进行下一部分“获取工程包”的操作。
FrHz3O88QAErem4_dAz9gEgorDPk

2. 获取pico-sdk等工程包
获取方法有多种,原理都是通过Git命令行克隆官方仓库。若网络不佳可能导致失败。

注意:如果之前已获取过,可能会报版本错误,需要将相关文件夹内的文件全部删除后重新获取,因为已有文件不会被自动覆盖。
FjObk9v7WEEOi1r2E4Fe4JFl1cWY

方法一:在安装程序最后一步的界面中,勾选“Clone and build Pico repos”选项。
方法二:在安装目录中找到并双击pico-setup.cmd脚本文件。
Fi1G-viLbC7uhuf8RrS9zHLIAEMc
方法三:手动在命令行中执行Git命令(需替换为你的实际目录):

git clone -b master https://github.com/raspberrypi/pico-sdk.git
cd pico-sdk
git submodule update --init
cd ..
git clone -b master https://github.com/raspberrypi/pico-examples.git

成功获取后,目录中会出现pico-sdkpico-examples等文件夹。
Fl5c2SZUACwXY1vRguEK5JDNQgEN

3. 配置vscode
主要分为安装扩展和配置CMake Tools两步。

3.1 安装扩展
最稳妥的方式是双击安装目录中的“Visual Studio Code for Pico”快捷方式启动VSCode,它会自动检查环境。
Fl-d9U5LHEwnzz6kc0G1VPTmArzU

启动后,在扩展商店中搜索并安装“CMake Tools”和“C/C++”扩展。然后进入CMake Tools扩展的设置界面。
FnPZTZ0C9aG7WtfFLOq74sa3Iqkl

3.2 配置CMake Tools扩展
需要修改两处设置:

  1. Cmake: Configure Environment:添加一个环境变量。项为PICO_SDK_PATH,值可以设置为相对路径..\..\pico-sdk或绝对路径(例如D:\Raspberry\Pico\pico-sdk)。
    FiIOLxko8f51IKkMtJKwKMy-3d8z
  2. Cmake: Generator:填入NMake Makefiles
    FqRqf5dFZNJhAb5GVHKU9oZI25me

4. 编译测试
通过“Visual Studio Code for Pico”快捷方式启动VSCode,并打开pico-examples文件夹(可使用Ctrl+K, Ctrl+O快捷键)。右下角可能会弹出配置提示,点击“是”即可。
FsuW5Xw8ySxbdInyobwJCrvFDD8q

注意:如果直接打开VSCode应用再加载文件夹,可能无法正常配置,即底部不会出现CMake、GCC等工具链选择栏。
FqpLqZXpsL7LJ920HufMICPQrxV6

随后,在界面底部选择Kit(编译工具链),点击“Build”按钮开始编译。
Fs61iGV3YpRdfDP3yGbVuaikIT9m

正常编译过程与完成界面如下图所示。编译生成的.uf2等文件位于pico-examples\build目录下。
Fn0HKBD4OoTUBFTYkAyFEVEwu0eZ
FjzTthKAVHjmZkenNoxQY4i1334z
FqovcjAY6ly2JtCp9t4N8I4B_xg1

如果想单独编译某个例子(如blink),可以在底部的Build按钮旁选择对应的目标。
Fo_RbMPm2Dc5ivOYbMcQGOHNtDpj

编译项目

完成上述环境搭建后,即可编译sigrok-pico项目。在理解项目结构时遇到了困难,主要是对CMake不够熟悉。后来参考了一篇外部教程,成功编译并理解了项目组织方式。

编译pico-codersigrok-pico项目仅需三步:

第一步:将sigrok-pico项目文件夹复制到与pico-sdk同级的目录下。
Fg3ETTUkHISuesieZO92HyqEOriS

第二步:从pico-examples文件夹中复制pico_sdk_import.cmake文件到刚才复制的sigrok-pico项目根目录下。
FtVzdsl4TR7X6Sl5vzSH390TCaws

第三步:在VSCode中打开该项目文件夹,选择好工具链后直接点击“Build”。成功编译界面如下。
FkAQyPkY9AseQatGgopIObkmwGMv

在项目的build文件夹中即可找到新编译生成的.uf2固件文件。
FqrTrnhaPFGQex3p1TXUmV0M4jpV

注意:此移植方法主要针对此特定开源项目。其他RP2040项目的移植原理类似(需要与Pico-SDK同级目录并引入CMake文件),但具体操作可能不同,请仔细阅读项目的README说明。对于嵌入式开发中的环境配置与项目移植,扎实的运维/DevOps基础知识和工具链理解非常关键。

小结

pico-coder不仅编写了RP2040固件,还为sigrok官方库贡献了Pico的驱动与协议代码,具有很高的学习参考价值。由于相关代码尚未被sigrok主分支采纳,因此目前需使用其自定义编译的PulseView版本。

在使用过程中发现一个软件问题:在运行采集后,如果关闭任意一个数字通道,再次点击“Run”会导致PulseView无响应。此问题尚不确定是软件Bug还是本地环境导致。另外,务必在不需要时关闭所有模拟通道,否则无法达到最高采样率,具体原因可参阅项目文档。

所使用的“十二指神探”板卡上,CH3和CH4通道在原项目提供的预编译固件中并未启用,开发者可以基于此进行进一步的软件测试与功能开发。




上一篇:SpringBoot单次HTTP请求内存开销实测与JVM调优分析
下一篇:CMake项目强制静态库链接原理剖析:实现C++程序独立部署
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-17 20:13 , Processed in 0.134388 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表