tomzbj 发表于 2020-7-18 12:42:50

我也凑个热闹, diy个简易示波器

淘宝上有个示波器套件似乎很受欢迎,型号是DSO138,原理图如下(图片来自淘宝):

                              
基本指标:采样率1Msps,模拟带宽200kHz,垂直灵敏度从10mV/div到5V/div,水平时基从10us/div到50s/div,具有自动、普通和单次触发模式,自带1kHz/3.3V方波测试信号。是不是挺不错?
不过采样率1Msps还是低了点。以及切换耦合方式、垂直灵敏度都是用机械开关实现的,还需要用双联开关的另一联来告诉MCU开关状态。是不是有点傻?这两个地方看来可以改进一下。
首先MCU可以改用STM32F303CC,和STM32F103相比除了增加了4个片内运算放大器、7个比较器以外,最大的不同之处是它的ADC时钟可以运行在与主频相同的72MHz,12位采样时的最高采样率可以达到72/(12.5+1.5)=5.14Msps。如果把分辨率降到6位,再超点主频到80MHz,最高采样率就是80/(6.5+1.5)=10Msps了,是不是很美妙?
输入端的几个机械开关则可以用继电器或者模拟开关代替。然而用模拟开关的问题是输入电压不能超过模拟开关的耐压了。然而我拿到电路板才发现忘了这一点,算了,反正一般情况用示波器也不会测到太高的电压,就这样吧。
原理图如下,除了之前两处,再就是改成了电池供电,这样可以做成一个手持式设备了。按钮则只用了两个,操作起来稍微麻烦一点。


还有个bug是高压必须先上电,否则DG409很容易闩锁,但是两个DCDC的EN脚都忘了加下拉……只能下个版本改进了。
实物照片,果然还是搞gui最折腾,有句话怎么说的,凡是有gui的程序都得在gui上消耗80%的时间……


源代码和pdf原理图见github链接:

https://github.com/tomzbj/diy/tree/master/dso

林凡jeery 发表于 2020-7-18 13:53:23

非常佩服你们的动手能力,我就想搞个完整的,直接能用的

qjp1988113 发表于 2020-7-18 13:54:26

谢谢楼主分享~

leezee 发表于 2020-7-18 13:58:33

好贴,有空装台玩玩{:lol:}

qjp1988113 发表于 2020-7-18 14:15:40

楼主代码工程文件工程去掉了么?只留下一些.c ,.h文件?整个工程如何打开?自己新建一个??

tomzbj 发表于 2020-7-18 14:18:52

qjp1988113 发表于 2020-7-18 14:15
楼主代码工程文件工程去掉了么?只留下一些.c ,.h文件?整个工程如何打开?自己新建一个?? ...

Makefile足够了
我从来不用keil iar之类

amigenius 发表于 2020-7-18 15:37:53

再用长条形的OLED屏,缩小一点点,做成示波笔,那就实用性很好了,现场检修设备非常有用。

huangqi412 发表于 2020-7-18 16:29:17

单通道差评,怎么也得2个通道实用啊。F3系列记得有多个AD,可以同步采样的。

huangqi412 发表于 2020-7-18 16:37:52

用2个轮拨啊。轮拨一个顶3个按钮。秀珍的都是用轮拨。

gallle 发表于 2020-7-18 16:41:59

huangqi412 发表于 2020-7-18 16:29
单通道差评,怎么也得2个通道实用啊。F3系列记得有多个AD,可以同步采样的。 ...

我觉得恰恰单通道正好,如果需要多通道的用成品的就好了,单通道的便携 初测还是方便些

tomzbj 发表于 2020-7-18 16:46:13

huangqi412 发表于 2020-7-18 16:29
单通道差评,怎么也得2个通道实用啊。F3系列记得有多个AD,可以同步采样的。 ...

我是放在85*50的blaster盒里的,2个通道估计是放不下了。。。除非双面贴
f3交错采样的话速度可以不止10M吧,我没试

tomzbj 发表于 2020-7-18 16:48:47

huangqi412 发表于 2020-7-18 16:37
用2个轮拨啊。轮拨一个顶3个按钮。秀珍的都是用轮拨。

嗯,我也在考虑,有啥推荐的型号么?这东西似乎不太好买。。。
https://item.taobao.com/item.htm?spm=a1z0d.6639537.1997196601.450.1d1f7484KyJ0hN&id=543967456278
https://item.taobao.com/item.htm?spm=a1z0d.6639537.1997196601.460.1d1f7484KyJ0hN&id=539564061761
这俩如何?

liang_work 发表于 2020-7-18 16:51:27

不错,表示支持一下...

huangqi412 发表于 2020-7-18 16:58:25

tomzbj 发表于 2020-7-18 16:48
嗯,我也在考虑,有啥推荐的型号么?这东西似乎不太好买。。。
https://item.taobao.com/item.htm?spm=a1 ...

这个不知道,一般都LC打板顺带。

huangqi412 发表于 2020-7-18 17:09:34

tomzbj 发表于 2020-7-18 16:46
我是放在85*50的blaster盒里的,2个通道估计是放不下了。。。除非双面贴
f3交错采样的话速度可以不止10M ...

看用途定位,如果是便携看测试点,那确实单通道可能够,基本需要带USB直接手机屏看了,不用内置电池。如果作为DIY用的廉价示波器,体积可以再稍微大点,双通道是必须的(总有同时看个输入输出的需求吧)。稍微扩大体积也不影响便携性。记得F3是支持多个AD同步采,交错采还是等于单通道提高采样率啊,同步采才是多通道。

之前坛里有个貌似是开源的DS201还是什么的吧,用F1+FPGA做的,非常迷你,外挂AD做的貌似跟F3应该差不多性能,不知道是1还是2CH。

whuer 发表于 2020-7-18 19:47:28

成品套件是为了节约成本,想方设法的降低成本

tomzbj 发表于 2020-7-18 20:53:24

huangqi412 发表于 2020-7-18 17:09
看用途定位,如果是便携看测试点,那确实单通道可能够,基本需要带USB直接手机屏看了,不用内置电池。   ...

adc是ad928x或者ads830之类吧,其实不用fpga,有个fifo就行,但是idt720x都停产了。。。

waymcu 发表于 2020-7-18 21:54:02

不错不错

adda 发表于 2020-7-19 07:40:01

tomzbj 发表于 2020-7-18 14:18
Makefile足够了
我从来不用keil iar之类

能否把你的工具链分享出来,这个更感兴趣{:lol:}

tomzbj 发表于 2020-7-19 07:41:34

adda 发表于 2020-7-19 07:40
能否把你的工具链分享出来,这个更感兴趣

就是gcc啊

鲜衣怒马 发表于 2020-7-19 08:25:04

amigenius 发表于 2020-7-18 15:37
再用长条形的OLED屏,缩小一点点,做成示波笔,那就实用性很好了,现场检修设备非常有用。 ...

MARK,一直想DIY个示波笔。。。

adda 发表于 2020-7-19 16:36:26

tomzbj 发表于 2020-7-19 07:41
就是gcc啊

能不能打包一个,看看你的命令行编译是怎么配置的

tomzbj 发表于 2020-7-19 16:42:16

全部编译make -Bsj平时make -sj

niu14789 发表于 2020-7-20 09:22:02

不错不错,这个示波器挺好

ifus 发表于 2020-7-20 12:37:45

有创意,能搞个套件就好了

frank_88888 发表于 2020-7-22 17:21:53

不错,这个示波器要是有套件就好了。

fxue231 发表于 2020-7-22 19:55:58

支持一下,不过如果没有人做套件的话个人做成本太高了

fengyunyu 发表于 2020-8-24 16:30:17

tomzbj 发表于 2020-7-19 16:42
全部编译make -Bsj平时make -sj

大牛,makefile

yinian 发表于 2020-8-31 22:25:36

谢谢。学习了,了解下

TINXPST 发表于 2020-9-1 06:08:38

有套件出的话,支持一下。

xofun 发表于 2020-9-7 22:42:09

都很厉害 学习了

osbill 发表于 2020-9-15 09:11:22

谢谢分享

Sunshine66 发表于 2020-9-24 14:37:27

哪里可以买嘞,想搞一个玩玩

zmh169 发表于 2020-9-30 11:48:30

挺好,入门级

四叶草35 发表于 2020-12-10 13:55:49

很牛逼的,支持

zxq_9781 发表于 2021-1-1 22:38:06

很牛逼的,支持 有套件吗 这个可以满足基本DIY需求了

menglongfc 发表于 2021-2-25 08:55:21

请教下楼主,不用ide的话,调试该怎么解决?

ZL_electric 发表于 2021-2-25 09:55:30

本帖最后由 ZL_electric 于 2021-2-25 09:57 编辑

tomzbj 发表于 2020-7-18 14:18
Makefile足够了
我从来不用keil iar之类

大神能不能大概讲一下怎么只用makefile编译?怎么建工程、设置

tomzbj 发表于 2021-2-25 10:16:16

本帖最后由 tomzbj 于 2021-2-25 10:18 编辑

menglongfc 发表于 2021-2-25 08:55
请教下楼主,不用ide的话,调试该怎么解决?

用stlink就差不多了, 对着map文件检查地址, 再不行在适当的地方插printf输出呗
我是用eclipse, 但不用它的工程, 用"新建Makefile工程并导入现有代码"

好处是不管stm32, stm8, avr, 还是51, 都用同一套流程搞定, 省得换个平台还得换ide了.

tomzbj 发表于 2021-2-25 10:17:50

ZL_electric 发表于 2021-2-25 09:55
大神能不能大概讲一下怎么只用makefile编译?怎么建工程、设置

找个Makefile教程自己动手写一次, 之后每次就不用从头写了, 把之前的改改就行.
我上面有源码, 里面有Makefile啊

menglongfc 发表于 2021-2-25 10:57:17

tomzbj 发表于 2021-2-25 10:16
用stlink就差不多了, 对着map文件检查地址, 再不行在适当的地方插printf输出呗
我是用eclipse, 但不用它 ...

谢了,总觉得gdb不太好用,打断点啥的还是得回到常用的ide,所以makefile的方式没坚持下来,看你用的这么溜也只有羡慕的份了,膜拜大神

ZL_electric 发表于 2021-3-1 10:55:58

tomzbj 发表于 2021-2-25 10:17
找个Makefile教程自己动手写一次, 之后每次就不用从头写了, 把之前的改改就行.
我上面有源码, 里面有Make ...

这种情况怎么仿真?

tomzbj 发表于 2021-3-1 11:09:26

ZL_electric 发表于 2021-3-1 10:55
这种情况怎么仿真?

有啥好仿真的, 直接板上调试
需要看寄存器的话用stlink可以看, 就是得到reference manual里查寄存器地址, 麻烦一点.

fengyunyu 发表于 2021-3-1 20:11:27

大神就是牛。还是习惯在IDE环境仿真调试

ZL_electric 发表于 2021-3-2 09:59:50

tomzbj 发表于 2021-3-1 11:09
有啥好仿真的, 直接板上调试
需要看寄存器的话用stlink可以看, 就是得到reference manual里查寄存器地址, ...

明白了,JLINK其实也只是在查寄存器地址来实现仿真的,谢谢大哥!
页: [1]
查看完整版本: 我也凑个热闹, diy个简易示波器