基于RP2040的Pico可用作PIO的逻辑分析仪

基于rp2040的pico可用作pio的逻辑分析仪。扩展示例以将结果导出到sigrock和pulseview。
背景
raspberry pi pico上的新rp2040工艺带有可编程io(pio)模块。该模块有许多用途,可以直接直接高速控制板的gpio。pico随附的示例显示了如何使用pio捕获引脚上的输入作为逻辑分析仪。包含的示例打印出数据的简单ascii显示,并且有趣的是,很难详细检查ascii打印输出。
有一个名为sigrok的开源项目可以进行信号分析。(si gnal神交)。与sigrok一起,有一个名为pulseview的配套项目,可让您直观地检查信号数据。这两个程序使您可以更轻松地分析捕获的数据,添加协议解码器以查看捕获的数据意味着什么。
该项目旨在扩展示例逻辑分析仪程序,以生成可以在pulseview中显示的数据,并允许以交互方式配置分析仪。
整体架构
迄今为止,该项目背后的想法是在三个方面:
• 将pico连接到要测量的设备上的引脚
• 使用修改后的示例代码来配置逻辑分析仪设置,并记录信号并将其以csv格式输出到串行设备
• 使用pulseview导入csv文件并显示数据
注意:sigrok内置了许多硬件驱动程序,可读取各种可用的分析仪和示波器。该项目不会添加新的驱动程序,而只是通过csv文件导入数据。
代码
以下内容假设您知道如何构建项目并将其安装在pico上。如果您不满意,请参阅随pico一起发布的优秀文档。
pico随附的示例代码用于演示具有dma传输的pio程序。为了改进此功能以用作逻辑分析仪,进行了几处更改:
• 该程序首先处于交互模式,允许用户配置设置,例如要捕获的引脚数,采样率,频率等。初始化后,pio将布防并等待触发信号,然后捕获数据并将其写入以csv格式转换为串行输出(通过usb)。可以在函数中找到read_user_input()。
• 创建了一个新的打印缓冲区功能,以csv格式写出数据。可在中找到print_capture_buf_csv()。
• 内置led设置为在布防和等待期间保持稳定,并在传输数据时闪烁。
功能logic_analyser_init()和与原始示例中的功能相同,logic_analyser_arm()负责初始化pio程序并将其武装为触发值。
随附的github存储库包含代码。
一个示例
此示例将显示我在第二个pico上捕获i2c总线所采取的步骤。第二个pico使用gpio12作为sda和gpio13作为scl连接到bme280传感器。circuitpython安装在pico上,并通过i2c连接bme280以连续打印传感器值。
顶部的pico通过i2c连接到bme280。底部的pico是逻辑分析仪。
逻辑分析仪pico加载了代码。我使用putty连接到逻辑分析仪并对其进行配置。将putty连接到您的pico所连接的com端口,波特率为921,600波特。在此示例中,我使用了以下设置:
• 第一个引脚:gpio17(用于scl,因此gpio18是sda)
• 针数:2
• 频率:1 mhz
• 样本数:200,000(大约50kb的ram)
• 在scl的第一个低点触发
分析仪设置正在配置
然后,我将gpio13连接到gpio17,将gpio12连接到gpio18并接地。当scl线变低时,pico将收集200,000个样本。在1 mhz时,这意味着约0.2秒的捕获时间。
当板载led呈绿色常亮时,您将知道pico已准备就绪。
为了保存来自pico的所有csv数据,我使用了一个名为plink的程序,该程序是putty安装的一部分。任何可以将串行输入定向到文件的程序都可以使用。要使用plink,我使用以下命令:
plink -serial \。com3 -sercfg 921600,8,1,n,n 》 i2c.csv
com端口应设置为您的pico连接到的com端口。一旦运行,您就可以开始捕获了。
为了开始捕获,我打开了连接到bme的pico的电源,几乎立即内置的led开始闪烁,表明数据正在通过串行连接写入并由plink保存。发生这种情况时,我停止了连接到bme280的pico。
当pico的led稳定亮起时,传输已完成,我停止了plink命令。并启动了pulseview。有关pulseview的所有详细信息,请参阅其文档。
在pulseview中,我选择导入csv文件,并且在此示例中,指定了2个逻辑通道和1000000的采样率,并关闭了“从第一行获取通道名称”。其余的导入设置保持不变。加载后,您可以为i2c添加协议解码器,将scl分配给输出0,将sda分配给输出1并查看结果。这就是全部。
将输出加载到pulseview并添加i2c解码器
原理图:


联网家庭技术不尽如人意,但未来一片光明
国家开通法律法规数据库 网页及微信小程序访问方式公布
2019年物联网发展状况预测
华为轮值董事长郭平:华为不会放弃手机业务,也明确不会造车
人工智能机器人开发新材料 提高太阳能电池的导电性
基于RP2040的Pico可用作PIO的逻辑分析仪
E载波,E载波是什么意思
一周概念股:缺芯致多家手机模组厂交付难
51单片机最小系统
电动葫芦中编码器的安装与使用方法解析
曝RTX2080TiSuper实为云游戏显卡
激光雷达如何助力森林“调查”,提高管理效率?
一文读懂螺旋板式热交换器的防腐蚀与保护
电路中VCC,VDD,VEE,VSS的区别
人工智能技术助力智慧医疗发展
光纤传感器的应用前景,它将有着广泛的应用
大电流发生器的工作方法、运行规范及安全预防措施
方法论包含哪些部分
配电箱的作用是什么
雷曼光电董事长畅谈超高清