|
树莓派PICO rp2040开发板做的200M 16通道逻辑分析仪。
电子技术是我初中开始的爱好,大学读的也是电子技术,工作后接触的计算机多一些,电子全部放下了。近几个月,我通过努力的学习和向论坛大佬的指导,把20多年前的爱好重新拾起一些,不容易啊。
这几个月,试用了10多个MCU开发板,STM32、ESP32、各类Arduino,还有1块Mini2440是朋友10年前送我的。
最后我折服于rp2040:
树莓派官方定制的MCU,树莓派官方在它上面用了不少黑科技,使其有别于其他MCU。
rp2040 双核M0+,264KB 片内RAM,内部6个独立的RAM块, 在总线中心进行交换,可以让内核和DMA并行运行而无冲突。
主频133MHz,可以轻松超频到400MHz。
DMA可以做到每个系统时钟周期做一次32bit的DMA传输。
8个可编程I/O (PIO)状态机用于定制化外设支持。
说回正题,本固件用github开源的代码修改而来(原固件只实现50M)。我修改为最大采样频率200M,目前近乎完美支持PulseView了。
代码在picoprobe基础上修改,所以原probe 都还能用,增加了逻辑分析仪功能。
原probe功能大家自己找资料。
板上管脚接口说明:
UART0: GP0-TX,GP1-RX ,115200bps。接上可以显示逻辑分析仪输出的调试信息。
UART1 : GP3-TX,GP4-RX。一个USB虚拟串口可以用。但最好不要和逻辑分析仪同时用哦。
硬件插上电脑后会有3个设备,其中一个是probe,两个是串口,逻辑分析仪使用其中一个(串口顺利我还搞不清楚,大家两个串口都试试)。
PulseView启动后,驱动 SUMP compatibles ,选择串口,波特率可以不选。
点击scan....如果显示设备 Picoprobe Logic Analyzer v1 ,表示选对了串口,找到设备了。
下面几个使用截图。
选择采样频率 200MhHz ,成功抓到s3c2440引脚输出的100Mhz时钟。
趁机试了一下s3c2440 GPIO翻转速度只有150ns(还是PCK 100MHz时)。晕了,s3c2440可是CPU工作频率 400MHz ,这玩意和MCU还是有区别的。
注意应该不是代码的问题了,我已经用了汇编。这个我是开了触发器抓到了。
fast_blink_gpf0:ldr r0, =0x56000054
ldr r1, =0x0
ldr r2, =0x1
str r1, [r0]
str r2, [r0]
str r1, [r0]
str r2, [r0]
str r1, [r0]
str r2, [r0]
str r1, [r0]
str r2, [r0]
str r1, [r0]
str r2, [r0]
str r1, [r0]
str r2, [r0]
str r1, [r0]
mov pc, lr
触发器使用:
点击通道的数字 上 ,选择 低电平 或高电平触发,如果在多个通道设置触发器,需要条件同时满足才触发采集。
如果需要触发前的数据。如下设置下,再采集。
建议采集如果采样频率超过20MHz,并且信号没有超过8通道的话,进行如下设置,只开8通道,这样会让高频率的触发更可靠写。
在看几个采样图
这是采样esp32c3 接 st7735显示屏信号。SCL 40MHz。 触发器设置SDA高电平触发。多采几次,总会采到SDA变动较多的数据
设置SCL 80MHz,esp32c3 SPI支持的最高频率,试一试采样情况。
勉强能工作。
目前存在的问题:
1.MacOS下PulseView完美运行。windows使用有问题,16通道5K以下采样数,8通道10K以下采样数,单次可用,重新选择一下设备,又可以采集一下,这是目前我能发现的不改pulseview源代码凑合可以用一下的一个方法。修改PulseView的事情还是论坛高手先试试,我最近有点忙,不想搞,我是用MacOS的。
2.触发功能是8通道20MHz采样频率下,可以完整工作,比较每次采样值。超过这个速度,触发功能会按比例跳过部分采样值(只能这样,处理速度跟不上)。
其他功能: GP22脚会输出10MHz方波,可以接到采样引脚用于测试。
2023.4.22 最新修改:开发了PIO触发功能,在只设置单通道触发 并且 采样频率>20MHz(8通道)或 采样频率>10MHz(16通道)时会启用。
固件已上传,可以在 附件中下载,请大家先测试,源代码等程序稳定了再开放。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|