先来个人生碎碎念,越狱第三次失败了,而且第四次也可能失败,没错就是这么尴尬,绝对越狱的事件还有917天,其实比较麻木了,越狱成功与否都无所谓了,其实现在出去,外头的疫情,日子也不会好过。趁着还在里面养精蓄锐,也不失为好选择。
再来说说mpy采集电压的事儿,很多人有电压采集的需要,现在已经给三个模块写了mpy驱动,分别是ads1256 ads8688 ad7606,选模块的时候就注意这么几个参数,通道数、精度、采样速率就可以了。
以前我说过mpy不适合高速项目,所以这里就涉及到较真的采样速率问题了,比如ad7606,官方给的最大采样率,8通道200k,这个速度对于mpy来说已经很吃力了,然后有的详情里面也有写,单片机实际达不到,具体是多少也没说。。
这里我就较真一下,速率到底可以到多少,网上只会给个例程,速度是200hz。。。根本不能说明问题,互联网就是这样,想找点真正的资料很费劲,都是哪几片浅一些的文章抄来抄去。
挑战一下mpy的极限速率,下面是我的发现:
1.pico比esp32快,原因未知,我猜想可能是pico的mpy更科学
2.mcu是可以超频的,超频了之后速度也会上去,esp32最大超频240mhz,pico可以到270mhz
3.spi的读取极限速度测试,测试硬件pico,频率270mhz,跑spi.read(2) 5万次循环,平均速度是90k,也就是一秒读9万次
4.实际不可能这么理想,因为需要拉低点评,还要存储数据或者发送数据,拉低电平这里也很有学问,如果用最普通的方式写:
pin.value(1)
pin.value(0)
出乎意料,有点慢其实,远大于cpu周期
但是pico如果用pio写,会快近一倍!
5.最终的工程是这样的逻辑:
拉低电平
spi读2bytes
串口马上发送
这里串口也是火力全开,波特率921600
最终实际速率,大约40k左右,是我能做到的极限了。
然后简单自学了QT,做了个pc上位机,可以直接将读的数据存txt,并且画图。
大致这个样子:
因为是有悬空电压的,所以读书在3200左右,正常。