打印
[STM8]

8pin STM8能干啥?+简易峰值记录器

[复制链接]
1391|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 纪国圣 于 2019-1-6 17:53 编辑

平常峰值记录通过使用模拟电路搭建。这种方法不仅对使用者要求较高,物料成本也较高。可以使用STM8S001做一个简易的峰值记录器,用于信号频率不高的场合。具体想法见下图所示:

以上是使用STM8S001J3。
不过更推荐使用STM8L050J3,因为其AD为12bit,采样率可达1 Msps,而且带有DMA,方便使用。具体如下:



沙发
labasi| | 2019-1-7 12:45 | 只看该作者
峰峰值能达到多少  如果超过了怎么分压呢

使用特权

评论回复
板凳
paotangsan| | 2019-1-7 12:53 | 只看该作者
滤波也要考虑到啊

使用特权

评论回复
地板
renzheshengui| | 2019-1-7 12:56 | 只看该作者
是不是应该加一个隔离啊

使用特权

评论回复
5
wangjiahao88| | 2019-1-7 14:15 | 只看该作者
峰值 如何检测啊
这段程序有没有呢?

使用特权

评论回复
6
纪国圣|  楼主 | 2019-1-7 23:49 | 只看该作者
本帖最后由 纪国圣 于 2019-1-8 00:12 编辑

补充一下,简单画出ADC前的信号处理电路:

使用特权

评论回复
7
纪国圣|  楼主 | 2019-1-8 00:00 | 只看该作者
labasi 发表于 2019-1-7 12:45
峰峰值能达到多少  如果超过了怎么分压呢

这个取决于你的输入范围和要求的精度。比如用如下的分压电路:
可以达到输入-10~+10V,输出为0~3.3V(视选取的电阻比例决定)。



使用STM8L050J3的12bit的ADC,ADC参考电压即电源电压为3.3V时,分辨率为(V这一端)0.0049V。
如果V超过-10~+10V,则可以在u端加上下拉二极管限幅。之后加一个跟随器和RC电路连接至单片机的AD即可。


使用特权

评论回复
8
纪国圣|  楼主 | 2019-1-8 00:14 | 只看该作者
paotangsan 发表于 2019-1-7 12:53
滤波也要考虑到啊

这款单片机内存太小,做简单的滤波算法很容易RAM不够用。在这个方案上只能不滤波。

使用特权

评论回复
9
纪国圣|  楼主 | 2019-1-8 00:18 | 只看该作者
renzheshengui 发表于 2019-1-7 12:56
是不是应该加一个隔离啊

看情况,如果直接接在同一个板子上的放大电路,加个跟随器和RC电路就可以了。大信号的话分压和保护是要做的。如果外接信号(不同地),隔离肯定是要加的。

使用特权

评论回复
10
纪国圣|  楼主 | 2019-1-8 00:27 | 只看该作者
本帖最后由 纪国圣 于 2019-1-8 00:31 编辑
wangjiahao88 发表于 2019-1-7 14:15
峰值 如何检测啊
这段程序有没有呢?

现成的程序没有。简单的讲个思路:先通过PB5的状态决定是否开启ADC采集。在PB5引脚被触发后先将峰值变量清零,然后开启ADC和DMA。单片机在等到DMA送来的数据后,判断是否大于现有的峰值变量并决定是否改变峰值变量。在PB5引脚恢复原先的状态后通过UART+DMA将峰值数据发送出去。程序还是比较好写的,关键是内存使用的把握。还有为了省内存和程序运行时间,在寻找峰值时直接用ADC输出的数据而不用转换,在发送数据时决定是否转换为电压值。

使用特权

评论回复
11
labasi| | 2019-1-8 11:36 | 只看该作者
纪国圣 发表于 2019-1-8 00:00
这个取决于你的输入范围和要求的精度。比如用如下的分压电路:
可以达到输入-10~+10V,输出为0~3.3V(视 ...

阻值的取舍还要考虑匹配的问题吗

使用特权

评论回复
12
labasi| | 2019-1-8 11:36 | 只看该作者
纪国圣 发表于 2019-1-7 23:49
补充一下,简单画出ADC前的信号处理电路:

好的 已经非常详细了 谢谢

使用特权

评论回复
13
paotangsan| | 2019-1-8 11:43 | 只看该作者
纪国圣 发表于 2019-1-8 00:14
这款单片机内存太小,做简单的滤波算法很容易RAM不够用。在这个方案上只能不滤波。 ...

考虑硬件滤波可以不

使用特权

评论回复
14
renzheshengui| | 2019-1-8 11:49 | 只看该作者
纪国圣 发表于 2019-1-8 00:27
现成的程序没有。简单的讲个思路:先通过PB5的状态决定是否开启ADC采集。在PB5引脚被触发后先将峰值变量清 ...

好的 太感谢了

使用特权

评论回复
15
6688hyc| | 2019-1-8 14:24 | 只看该作者
你这个是很不错的

使用特权

评论回复
16
纪国圣|  楼主 | 2019-1-10 18:20 | 只看该作者
paotangsan 发表于 2019-1-8 11:43
考虑硬件滤波可以不

硬件滤波当然很好。在信号放大电路部分增加低通或带通滤波器以滤除噪声,可以提高精确度。感谢补充

使用特权

评论回复
17
windows100| | 2019-1-12 17:29 | 只看该作者
楼主打算做出来不,我想说上面的峰值保持电路根本不能用。用仿真软件的波形,在实际中根本没有

使用特权

评论回复
18
纪国圣|  楼主 | 2019-1-13 12:34 | 只看该作者
windows100 发表于 2019-1-12 17:29
楼主打算做出来不,我想说上面的峰值保持电路根本不能用。用仿真软件的波形,在实际中根本没有 ...

这个方案的局限在于AD采集速率和处理速度上,结果肯定是有误差的,被采集波形的频率也要受到限制。但是对于硬件搭建的峰值保持电路,受限于开关管的泄漏电流,电容的损耗角、运放的建立时间等因素,输出也不可能完全准确,而且随时间推移输出必然会下降。最重要温飘会很麻烦。
这个方案适用于低成本,对精度和信号速率要求不高的场合。对于高速信号,网络上已经有相关的数字处理电路的**。
对于波形的问题,我想示波器都可以采集出最大值(虽然受到AD精度影响并不太准确),那么这个方案有何不可?欢迎探讨

使用特权

评论回复
19
windows100| | 2019-1-14 11:29 | 只看该作者
纪国圣 发表于 2019-1-13 12:34
这个方案的局限在于AD采集速率和处理速度上,结果肯定是有误差的,被采集波形的频率也要受到限制。但是对 ...

我经验和理论都没你扎实,但是这个电路我实际焊出来,做过,都是没有对应波形。如果你做出来了,请告诉我怎么实现,适用范围是怎样。

使用特权

评论回复
20
paotangsan| | 2019-2-1 15:53 | 只看该作者
纪国圣 发表于 2019-1-10 18:20
硬件滤波当然很好。在信号放大电路部分增加低通或带通滤波器以滤除噪声,可以提高精确度。感谢补充{:lol: ...

非常感谢您的肯定

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

405

帖子

5

粉丝