【树莓派Pico 2 RP2350开发板】 测评 六 树莓派RP2350逻辑分析仪固件和上位机调试
[复制链接]
本帖最后由 御坂10032号 于 2025-3-15 01:08 编辑
简介
在前几篇文章中我们尝试了使用RP2350来烧录逻辑分析仪的固件,然后使用上位机来读取时序信息。但是由于上位机的软件环境问题导致并没有成功。 今天我又突发奇想想再次尝试一下,于是在Github仓库给作者提了一个issue。幸运的的是作者几乎在十分钟之内就已经回复了我,并且详细的讲述了解决的步骤。如下为我提的Issue链接
作者回复我: 让我不要使用Windows应用商店里的Python,然后手动安装Python3.13
作者还详细的告诉我了上位机的使用手册。
于是我首先在本地把我本地安装的Python给卸载掉了。 同时修改了环境变量。 把应用商店的环境变量优先级下移。 这样就不会出现在命令行里输入python就直接进入应用商店的情况。
然后配置本地新安装的python环境变量在环境变量目录的最上方。 这样的话系统每次查找路径的时候,第一个Python的环境是最先被查找的。
之后我们便可以没有错误的打开逻辑分析仪的上位机软件。
在左上角选择设备之后,我们便可以配置开始捕获信号。因此我写了一个简单的Io toggle的程序用来测试捕获的信号。
- #include <stdio.h>
- #include "driver/gpio.h"
- #include "freertos/FreeRTOS.h"
- #include "freertos/task.h"
-
- #define LED_GPIO_PIN 4
-
- void app_main(void)
- {
-
- gpio_config_t io_conf;
- io_conf.intr_type = GPIO_INTR_DISABLE;
- io_conf.mode = GPIO_MODE_OUTPUT;
- io_conf.pin_bit_mask = (1ULL << LED_GPIO_PIN);
- io_conf.pull_down_en = 0;
- io_conf.pull_up_en = 0;
- gpio_config(&io_conf);
-
- while (1)
- {
-
- gpio_set_level(LED_GPIO_PIN, 1);
- vTaskDelay(5 / portTICK_PERIOD_MS);
- gpio_set_level(LED_GPIO_PIN, 0);
- vTaskDelay(5 / portTICK_PERIOD_MS);
- }
- }
很简单,每次5ms切换IO的状态。之后打开逻辑分析仪左上角的capture按钮, 配置捕获的参数。
如上图所示, 可以配置逻辑分析仪的频率、前采样点、后采样点、和对应的通道等。 这里需要注意的一点是如果不配置触发的方式的话,它并不会向其他的逻辑分析仪上位机一样直接采集,而是一定要等待触发信号。我这里配置的是通道六。 之后上位机会稍微卡顿进行数据的计算,然后便会出现下图所示。
上图屏幕的最中间是信号信息。 右上角是解码器。 右下角则是当前的配置参数。 当我们将鼠标放到左下角的时候可以看到所有的采集数据预览。如下图所示。
而屏幕右侧中间的滑块则是可以切换当前的显示的样本数。
我们可以在我的代码中看到,我每次的toggle时间是5ms (由于RTOS的定时器频率不同所以并不会很精确,梦源DSlogic测量出来的保持时间是5us)。两者对比实际的测量结果非常正确!
下图为梦源的时序保持时间。
总结
虽然说作者声明这个逻辑分析仪好像能跑到400M,软件上也能设置。 实际上当超过100M的时候软件就会提示结果可能具有偏差。 因此不建议在超过100M的情况下使用。而且介于实际的采样的样本数。如果频率过高的话采样的时间也会少很多。 因此建议大家如果有需求的话还是使用专业的比较好一点, 这个拿来应急一下还是不错的!
|