基于RP2040的多通道逻辑分析仪的使用方法分享
使用pico-coder提供的开源项目sigrok-pico和他自己编译的Pulseview软件版本识别到设备和显示波形。本文主要分享一下使用心得以及如何在windows环境下编译此项目,以方便伙伴们进行后续开发。
标签
PICO
RP2040
逻辑分析仪
sigrok
Pulseview
litter47
更新2022-05-19
11129

主要内容框架

  • 快速使用——如何使rp2040板卡成为逻辑分析仪、如何使Pulseview识别设备以及Pulseview简单功能介绍(针对只在意如何使用的伙伴)
  • 环境准备——安装windows环境下的rp2040编译环境的主要步骤(针对想进行后续开发的伙伴)
  • 编译项目——编译pico-coder的项目sigrok-pico的主要步骤
  • 小结——使用体会和遇到的bug

一、快速使用

      附上pico-coder开源项目github的地址https://github.com/pico-coder/sigrok-pico。项目里主要包含了逻辑分析仪的源码、pulseview获取的地址、如何使用的一些文档和逻辑分析仪的详细参数信息。首先下载项目到本地,如果伙伴们只是单纯使用的话,那么只需要关注两个文件夹——pico_sdk_sigrokpulseviewFhYq2bk09hOZUsWa6Hj4q6-hlsPt

      第一步打开pico_sdk_sigrok文件夹,里面的build文件夹包含了项目的最终结晶——uf2文件。将uf2文件烧入rp2040U盘即可得到一个逻辑分析仪。

FkWv-1ipDdGRkhCr1fFoTjdLkOWB

      第二步打开pulseview文件夹,打开readme里的第一条链接(建议github上直接操作,且需要换网)。无需注册直接下载。

FsJx8xuEK2oADZoQAcrG8fLiSBZKFmY_yPlJrDbgrRgBz3czS0h--2Sx

      之后正常安装,可以从开始菜单找到如图应用直接打开。
FplVXHtycJpxhnR7KoWqyyXfgYqh

      打开后的界面原本是白色主题,被我改了,布局大都一样,主要功能如图所示,另外还有个采样率和采样数会在选择过设备后出现在设备选择旁边。

Fn17iUKMXJ6en_mwL10JxBMeqjw3

      最后一步,识别设备。点击上图设备选择按钮后弹出弹窗后的步骤如下图所示。

FqsoUxAKhQ0lrHbsEEDD1EGNEcTI

      正常打开后如下图。

FipxA97PzNZyy833sKXwWJeEGICZ

      至此设备已经能工作了,大伙可以自行选择24个通道中的某个或几个来接收数据看看波形。

      12指神探的原理图在硬禾的界面可以找到https://www.eetree.cn/project/detail/748。我这里接的是CH0、1、2通道即IO20、21、22。FnJKPXYNVgjsiUb2xDImQXIifUxa

      接着使用m2000产生的一个SPI协议通信,发送AA,速率50Mhz拉满。Fp5v6VYVf22r8xwc7oIRiNYFHv4d

      使用pulseview接收后,通过协议选择按钮找到自己需要的协议。FuXB8D0qIJ8zxvF0Qfr76yP-r6XY

      IO20、21、22分别对应pulseview里的D20、21、22,配置好SPI的通道后可以看到波形的同时也可以看到解析后的数据也是AA。pulseview界面右上角采样频率拉满到了120M,能使用这么高频率的条件是需要将analog几个通道关掉FjtBrMb6zffMuRsksgPHPVOuASCk

      其它更多特点和限制在大佬的项目文档里都有介绍,以及提供了一张参数表,水平有限,大伙自行研究。Fu8ENW8T9NsXtbHzRcUZh6wmm6sf

二、环境准备

      可能伙伴们想知道怎么编译这个开源项目,因为这是个c语言工程,rp2040对windows下的c开发不是很友好。虽然现在已经有很多平台譬如arduino、platformio等支持rp2040的c开发,但大佬的项目用的官方pico-sdk,所以按照官方文档配置好windows下的编译环境基本也就结束了。但是哪怕是按照官方文档配置也有一堆坑,包括但不仅限于不识别命令行。我自行总结了安装相对快捷方便的一条路。

      这里分享下几篇文章链接:

      这里说明配置的主要步骤:

  • 安装需要的软件工具
  • 获取pico-sdk等工程包
  • 配置vscode
  • 编译

1、安装需要的软件工具

      需要的工具如下图,图来源于官方pico-setup-windows开源github库的下方readme,重点是点击Download the latest release后最新版的.exe文件,图中箭头也指出了官方安装的文档教程链接。下载后正常安装,下列工具就会自动安装完毕。或者可能大伙有人嫌它工具版本低了也可以自行上网下载,上面给出的几篇教程类文章链接里面包含了一步步下载配置的操作。

Fj_q8boJiyLypktrafJhv54H8BRv

      安装结束后会弹出提示重启电脑的窗口,没什么事重启就行了。

FgXfEdy0wQ5CMAvgj7EG6Yc4aUZ7

      经测试也有可能会出现下面的窗口,可能是因为第二次安装了。如果弹出下图窗口,请看文章下一部分获取工程包的内容。
FrHz3O88QAErem4_dAz9gEgorDPk

2、获取pico-sdk等工程包

      获取的方法有好几种,原理都是使用命令行git官方github的工程包,所以可能会获取失败(我的建议是换网)。

      如果是以前自己获取过很有可能报版本低的错误,需要将文件夹里的文件全部删除之后再开始获取!主要原因是某些文件名检测到已经存在所以不会自动覆盖

FjObk9v7WEEOi1r2E4Fe4JFl1cWY

      第一种是在上述安装结束后的最后一步界面中,Clone and build Pico repos选中即可自动获取工程包。

FrHz3O88QAErem4_dAz9gEgorDPk

      第二种是上述安装结束之后的文件夹中有一个pico-setup.cmd,双击就完事了。Fi1G-viLbC7uhuf8RrS9zHLIAEMc

      第三种就是开个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。

Fl5c2SZUACwXY1vRguEK5JDNQgEN

3、配置vscode

      主要分以下几步:

  • 安装Cmake Tools C/C++扩展
  • 配置Cmake Tools 扩展设置

3.1安装扩展

      首先打开vscode,最保险的方法就是双击文件夹里的Visual Studio Code for Pico(它会配置环境的同时顺便检查一下工具有没有安装),如下图,其它高端操作不细说。Fl-d9U5LHEwnzz6kc0G1VPTmArzU

      打开之后左侧工具栏有个扩展点开,直接搜Cmake Tools和C/C++,直接安装。之后如图打开扩展配置。FnPZTZ0C9aG7WtfFLOq74sa3Iqkl

3.2Cmake Tools 扩展设置

      两个地方需要设置,以下两张图分别说明。

      第一张,往下找,Cmake: Configure Environment,如图添加。点击添加项后输入项:PICO_SDK_PATH。值可以如图设置:..\..\pico-sdk,也可填入绝对路径,如我的是D:\Raspberry\Pico\pico-sdkFiIOLxko8f51IKkMtJKwKMy-3d8z

      第二张,往下找,Cmake: Generator,如图填入NMake MakefilesFqRqf5dFZNJhAb5GVHKU9oZI25me

4、编译

      首先打开vscode,同前面说明过的步骤,双击文件夹中的Visual Studio Code for PicoFl-d9U5LHEwnzz6kc0G1VPTmArzU

      vscode打开pico-example文件夹(可以快捷键Ctrl+K,Ctrl+O),可能右下角会弹出是否configure就完事了。FsuW5Xw8ySxbdInyobwJCrvFDD8q

      如果单纯双击vscode应用打开后再打开文件夹是无法正常config的,也就是界面底部未出现CMake、GCC选择之类的,如下图。FqpLqZXpsL7LJ920HufMICPQrxV6

      之后界面最下角点击后选择kit,再点击build就可进行编译,如图所示操作。Fs61iGV3YpRdfDP3yGbVuaikIT9m

      如下图,正常编译中。Fn0HKBD4OoTUBFTYkAyFEVEwu0eZ

      如下图,正常编译完成。并在pico-examplesbuild文件夹中生成uf2等文件,自行查看。FjzTthKAVHjmZkenNoxQY4i1334z

 

FqovcjAY6ly2JtCp9t4N8I4B_xg1      使用vscode的时候可能有如下弹窗,目前没有影响到开发,伙伴们也可以自行搜索解决办法(试过一两个更改权限的方法,没什么用)。Fl9zW9s41LFdYGjbg5FNudVajaJK

      上述过程是全局编译,意思是整个pico-examples工程全都给编译了,如果想要单独编译某个,比如【blink】,则可以在界面最下面build旁边选择,如图。Fo_RbMPm2Dc5ivOYbMcQGOHNtDpj

      vscode的其它功能这里不过多介绍,如果有伙伴想知道更多使用方法可以在官方文档的7、8、9等章查看详情。

三、编译项目

      最重要的环境搭建结束了,虽然我编译成功之前溜了个老大的弯......主要是太菜了不知道大佬在说些什么,cmake涉及到知识盲区,不知道cmakelist怎么写,于是重点放在了想参透例程cmakelist的规律。先是跟官方文档的test示例自己建了一遍结果给我cmakelist报错,直接让我产生人生怀疑。后来还好外网找到一篇教程(前面分享的某个链接),虽然有些不一样但build成功了,并且也明白了大佬的工程该放在哪里,还要添加什么东西之类的。

      言归正传,编译只需要三步。

      第一步,复制工程文件夹到pico-sdk同目录下,如图。

Fg3ETTUkHISuesieZO92HyqEOriS

      第二步,复制pico-examples里的pico_sdk_import.cmake文件到刚才复制的pico-coder的文件夹里,如图。FtVzdsl4TR7X6Sl5vzSH390TCaws

      第三步,打开vscode和该文件夹,选择好工具后直接build,成功界面如图。FkAQyPkY9AseQatGgopIObkmwGMv

      打开build文件夹可以看到刚编译好的uf2文件。FqrTrnhaPFGQex3p1TXUmV0M4jpV

      注意,本章的移植编译方法只适用于本开源项目,其它项目的移植原理一样但是具体操作不同,主要都是需要将文件夹复制到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文件是没有使用到的,各位伙伴们可以一起交流开发,如果对本文有什么疑问和意见,欢迎各位提出指正。

团队介绍
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号