单片机/MCU论坛
直播中

王萍

7年用户 1269经验值
私信 关注
[问答]

设计了一个简单高效的零点采集电路,大家给点意见

从业多年一直都有用到零点采集功能,一直的做法都是低要求的直接将交流信号限流引入IO;要求高点的就用三极管;要求再高的用运发做0V比较。最近想到了一个电路,突然发现零点采集要求再高原来都可以如此简单。办法就是根据IO的输入施密特特性,用两个IO分别偏置到施密特的上下两个门限电压(STM8S单片机是0.7Vcc和0.3Vcc),再将输入交流信号叠加即可在0V附近触发IO电平跳变。具体电路见下图:
6.png
IO_H接上升沿采集IO,IO_L接下降沿采集IO,采用外部中断方式触发采集。

回帖(10)

贾熹

2019-4-22 09:37:11
这跳变的时刻应该还不是真正的过零“点”了吧,输出的是一个区间了,这看你具体应用对过零时间的准确度要求了。
举报

王萍

2019-4-22 09:37:29
不对吧,何来输出是一个区间之说?IO_H只取上升沿触发中断,IO_L只取下降沿触发中断,而这两个触发点都是交流在0V时处于临界状态。
举报

贾熹

2019-4-22 09:37:50
你的交流电信号幅度是固定的吗?
举报

王萍

2019-4-22 09:38:03
幅值基本稳定
举报

王萍

2019-4-22 09:38:18
0.7Vcc和0.3Vcc的设置本身就是一种迟滞作用,假设你两个口状态不一致又如何处理呢
举报

王萍

2019-4-22 09:38:30
0.7Vcc偏置的那个口只检测上升沿,0.3Vcc偏置的那个口只检测下降沿。在零点附近两个口状态是不一样的,上升沿时0.7Vcc口先检测到上升沿,0.3Vcc口后检测到上升沿(此口忽略上升沿);下降沿时0.3Vcc口先检测到下降沿,0.7Vcc口后检测下降沿(此口忽略下降沿)。
举报

王秀珍

2019-4-22 09:38:40
是一种不错的思路。成本也低。
举报

王萍

2019-4-22 09:39:27
我分享的目的也不限于一定要用于零点采集,希望这种做法对大家有点启发意义,对解决相关的电路问题提供一个新思路。
举报

王萍

2019-4-22 09:39:51
你这个硬件上是简单,但是软件处理上比较复杂.
如果过零点的电压不要求,交流信号接个限流电阻,直接输入到io口都是可以的,有的单片机io口可以直接配置滤波处理.
更多的情况过零电压值有要求,你这个电路也实现不了.
过零监测看似只是高低电平的问题,其实最主要的难点是抖动的处理,之前就被极少出现的抖动情况折磨的好痛苦.
举报

王萍

2019-4-22 09:41:43
理论上此电路过零电压精度仅次于运放采零点电路,关于抖动问题我认为此电路还是有可取之处的,因为此电路保留了IO口自带的2V滞回特性,有一定的滤抖效果。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分