主要内容框架
- 快速使用——如何使rp2040板卡成为逻辑分析仪、如何使Pulseview识别设备以及Pulseview简单功能介绍(针对只在意如何使用的伙伴)
- 环境准备——安装windows环境下的rp2040编译环境的主要步骤(针对想进行后续开发的伙伴)
- 编译项目——编译pico-coder的项目sigrok-pico的主要步骤
- 小结——使用体会和遇到的bug
一、快速使用
附上pico-coder开源项目github的地址https://github.com/pico-coder/sigrok-pico。项目里主要包含了逻辑分析仪的源码、pulseview获取的地址、如何使用的一些文档和逻辑分析仪的详细参数信息。首先下载项目到本地,如果伙伴们只是单纯使用的话,那么只需要关注两个文件夹——pico_sdk_sigrok和pulseview。
第一步打开pico_sdk_sigrok文件夹,里面的build文件夹包含了项目的最终结晶——uf2文件。将uf2文件烧入rp2040U盘即可得到一个逻辑分析仪。
第二步打开pulseview文件夹,打开readme里的第一条链接(建议github上直接操作,且需要换网)。无需注册直接下载。
之后正常安装,可以从开始菜单找到如图应用直接打开。
打开后的界面原本是白色主题,被我改了,布局大都一样,主要功能如图所示,另外还有个采样率和采样数会在选择过设备后出现在设备选择旁边。
最后一步,识别设备。点击上图设备选择按钮后弹出弹窗后的步骤如下图所示。
正常打开后如下图。
至此设备已经能工作了,大伙可以自行选择24个通道中的某个或几个来接收数据看看波形。
12指神探的原理图在硬禾的界面可以找到https://www.eetree.cn/project/detail/748。我这里接的是CH0、1、2通道即IO20、21、22。
接着使用m2000产生的一个SPI协议通信,发送AA,速率50Mhz拉满。
使用pulseview接收后,通过协议选择按钮找到自己需要的协议。
IO20、21、22分别对应pulseview里的D20、21、22,配置好SPI的通道后可以看到波形的同时也可以看到解析后的数据也是AA。pulseview界面右上角采样频率拉满到了120M,能使用这么高频率的条件是需要将analog几个通道关掉。
其它更多特点和限制在大佬的项目文档里都有介绍,以及提供了一张参数表,水平有限,大伙自行研究。
二、环境准备
可能伙伴们想知道怎么编译这个开源项目,因为这是个c语言工程,rp2040对windows下的c开发不是很友好。虽然现在已经有很多平台譬如arduino、platformio等支持rp2040的c开发,但大佬的项目用的官方pico-sdk,所以按照官方文档配置好windows下的编译环境基本也就结束了。但是哪怕是按照官方文档配置也有一堆坑,包括但不仅限于不识别命令行。我自行总结了安装相对快捷方便的一条路。
这里分享下几篇文章链接:
- 外网某个详细正确的教程
- 树莓派官方文档9.2章(P38)的 building in windows(包含了官方pico-setup-windows的链接)
- 同上外网某个基于pico-sdk创建新工程的教程(已验证过可行)
这里说明配置的主要步骤:
- 安装需要的软件工具
- 获取pico-sdk等工程包
- 配置vscode
- 编译
1、安装需要的软件工具
需要的工具如下图,图来源于官方pico-setup-windows开源github库的下方readme,重点是点击Download the latest release后最新版的.exe文件,图中箭头也指出了官方安装的文档教程链接。下载后正常安装,下列工具就会自动安装完毕。或者可能大伙有人嫌它工具版本低了也可以自行上网下载,上面给出的几篇教程类文章链接里面包含了一步步下载配置的操作。
安装结束后会弹出提示重启电脑的窗口,没什么事重启就行了。
经测试也有可能会出现下面的窗口,可能是因为第二次安装了。如果弹出下图窗口,请看文章下一部分获取工程包的内容。
2、获取pico-sdk等工程包
获取的方法有好几种,原理都是使用命令行git官方github的工程包,所以可能会获取失败(我的建议是换网)。
如果是以前自己获取过很有可能报版本低的错误,需要将文件夹里的文件全部删除之后再开始获取!主要原因是某些文件名检测到已经存在所以不会自动覆盖。
第一种是在上述安装结束后的最后一步界面中,Clone and build Pico repos选中即可自动获取工程包。
第二种是上述安装结束之后的文件夹中有一个pico-setup.cmd,双击就完事了。
第三种就是开个cmd直接自己写,当然地址得改成你安装时所在的文件夹目录,例如上图。
C:\Users\pico\Downloads> git clone -b master https://github.com/raspberrypi/pico-sdk.git
C:\Users\pico\Downloads> cd pico-sdk
C:\Users\pico\Downloads\pico-sdk> git submodule update --init
C:\Users\pico\Downloads\pico-sdk> cd ..
C:\Users\pico\Downloads> git clone -b master https://github.com/raspberrypi/pico-examples.git
总之效果如下图所示 ,文件夹里多出了pico-sdk等等文件夹,获取正常就正常,不正常大概率需要换网。至于它获取之后的编译如果有问题那我就不清楚了,毕竟我安装好几次也没啥问题,可能是因为电脑没有360。
3、配置vscode
主要分以下几步:
- 安装Cmake Tools 、C/C++扩展
- 配置Cmake Tools 扩展设置
3.1安装扩展
首先打开vscode,最保险的方法就是双击文件夹里的Visual Studio Code for Pico(它会配置环境的同时顺便检查一下工具有没有安装),如下图,其它高端操作不细说。
打开之后左侧工具栏有个扩展点开,直接搜Cmake Tools和C/C++,直接安装。之后如图打开扩展配置。
3.2Cmake Tools 扩展设置
两个地方需要设置,以下两张图分别说明。
第一张,往下找,Cmake: Configure Environment,如图添加项和值。点击添加项后输入项:PICO_SDK_PATH。值可以如图设置:..\..\pico-sdk,也可填入绝对路径,如我的是D:\Raspberry\Pico\pico-sdk。
第二张,往下找,Cmake: Generator,如图填入NMake Makefiles。
4、编译
首先打开vscode,同前面说明过的步骤,双击文件夹中的Visual Studio Code for Pico。
vscode打开pico-example文件夹(可以快捷键Ctrl+K,Ctrl+O),可能右下角会弹出是否configure,是就完事了。
如果单纯双击vscode应用打开后再打开文件夹是无法正常config的,也就是界面底部未出现CMake、GCC选择之类的,如下图。
之后界面最下角点击后选择kit,再点击build就可进行编译,如图所示操作。
如下图,正常编译中。
如下图,正常编译完成。并在pico-examples的build文件夹中生成uf2等文件,自行查看。
使用vscode的时候可能有如下弹窗,目前没有影响到开发,伙伴们也可以自行搜索解决办法(试过一两个更改权限的方法,没什么用)。
上述过程是全局编译,意思是整个pico-examples工程全都给编译了,如果想要单独编译某个,比如【blink】,则可以在界面最下面build旁边选择,如图。
vscode的其它功能这里不过多介绍,如果有伙伴想知道更多使用方法可以在官方文档的7、8、9等章查看详情。
三、编译项目
最重要的环境搭建结束了,虽然我编译成功之前溜了个老大的弯......主要是太菜了不知道大佬在说些什么,cmake涉及到知识盲区,不知道cmakelist怎么写,于是重点放在了想参透例程cmakelist的规律。先是跟官方文档的test示例自己建了一遍结果给我cmakelist报错,直接让我产生人生怀疑。后来还好外网找到一篇教程(前面分享的某个链接),虽然有些不一样但build成功了,并且也明白了大佬的工程该放在哪里,还要添加什么东西之类的。
言归正传,编译只需要三步。
第一步,复制工程文件夹到pico-sdk同目录下,如图。
第二步,复制pico-examples里的pico_sdk_import.cmake文件到刚才复制的pico-coder的文件夹里,如图。
第三步,打开vscode和该文件夹,选择好工具后直接build,成功界面如图。
打开build文件夹可以看到刚编译好的uf2文件。
注意,本章的移植编译方法只适用于本开源项目,其它项目的移植原理一样但是具体操作不同,主要都是需要将文件夹复制到pico-sdk同目录下,以及复制pico_sdk_import.cmake,具体情况需具体分析,基本上github上开源了项目的大佬们都会有个readme之类的移植说明,请各位仔细阅读。
四、小结
pico-coder除了写了rp2040的固件,还给sigrok的官方库里添加了pico的api和协议等,都是伙伴们可以参考学习的。因为官方还没将pico的协议啥的加入,所以只能使用pico-coder自己编译的非官方版本的pulseview。由于使用时间还不长,所以使用经验没啥好说的。不过pulseview在我使用的时候有一点bug,即关闭那21个digital的某个或某些之后再run直接软件无响应,目前不太清楚是我电脑的问题还是软件的bug,大伙可以自己试试。另外还有一点要注意的就是不用analog的通道时一定要关掉,否则速率提不上去,具体原因大伙可参考pico-coder的文档。另外我所使用的12指神探step_prober的CH3和CH4按照原项目的uf2文件是没有使用到的,各位伙伴们可以一起交流开发,如果对本文有什么疑问和意见,欢迎各位提出指正。