打印

这个问题有点难,急!

[复制链接]
楼主: yezhenyu
手机看帖
扫描二维码
随时随地手机跟帖
21
一级菜鸟| | 2008-11-17 22:36 | 只看该作者 回帖奖励 |倒序浏览

差不多意思吧,脉宽够的话不需要采样保持了

使用特权

评论回复
22
iC921| | 2008-11-17 23:10 | 只看该作者

我的意思是:类似这个图就可以了

使用特权

评论回复
23
iC921| | 2008-11-17 23:12 | 只看该作者

适当选择电阻后,两片四比较器芯片摆平它

使用特权

评论回复
24
msliang18| | 2008-11-17 23:14 | 只看该作者

最落后的办法,仅供参考

1.通过模拟开关设计一个放大倍数可调的放大电路(4051刚好可用)
2.将所有信号降到原来的1/5,这样,最大的变为额2V,最小的变为60mV;
3.通过4051和运放组成8组可选择的放到倍数;
4.运放输出与一个标准电压如2.5V比较;
5.比较后的数据接入单片机I/O口(最好使用中断,可提高执行速度),
(备注:比较器可用运放代替,以节省器件个数)
工作原理:通过单片机控制放到电路的放到倍数:从最小的一直到最大的逐步的检测,第一个用于检测10V,检测不到则检测8V,依次类推,检测到为止。之后就是根据脉冲周期重新从最高的电平开始检测。

需要注意的就是单片机的运行速度和脉冲的宽度。为了防止意外,在用运放代替比较器时需要加限流电阻或稳压管,避免烧毁单片机I/O口;
为了能够充分利用脉冲的宽度,可用一个触发电路,当用脉冲时就让单片机进入扫描峰值状态。

电路特点:一个运放,一个4054,(可选择加比较器),采用中断检测时,则只需保证控制放大电路8次的时间小于脉冲的宽度时间。

使用特权

评论回复
25
msliang18| | 2008-11-17 23:18 | 只看该作者

23楼提供的电路速度最快了

应该是个不错的选择。

使用特权

评论回复
26
ljm810010| | 2008-11-17 23:22 | 只看该作者

呵呵,IC921把我的图顺手粘到23楼了

楼主好象说过不愿意外加两片比较器,如果可以外加比较器,当然你方法最好,只用8个普通IO,什么AD都不要,一般MCU都能处理过来

使用特权

评论回复
27
iC921| | 2008-11-18 00:21 | 只看该作者

哈哈,这叫顺手**

捡到的不算偷~

这个图是避免过多信号调理的有效方法,用不用比较器是另外一回事了。

使用特权

评论回复
28
awey| | 2008-11-18 08:31 | 只看该作者

如果速度要求不快,一级菜鸟的方法最简单

如果速度要求高,用ic921的方法,只是要占用不少IO口

使用特权

评论回复
29
耕在此行| | 2008-11-18 08:38 | 只看该作者

楼主

你的信号脉宽是多少?
按12楼做
用比较器检测到脉宽触发AD转换.并把所有转换的结果缓存起来,再分析统计各个幅度的脉冲有多少.
300mV---15V   1:30,用个8位的AD也就行了,关键还是要根据脉宽来选择AD速度.

使用特权

评论回复
30
oufuqiang| | 2008-11-18 09:06 | 只看该作者

脉冲宽度是多少

使用特权

评论回复
31
孤星119| | 2008-11-18 11:20 | 只看该作者

感觉除了IC921的方法.

其他的好象都很难实现.

使用特权

评论回复
32
systemboy| | 2008-11-18 12:24 | 只看该作者

楼主的想法应该可以的,积分输出的曲线不要是线性的

适当调整每个输入电压值积分的时间线性分布,利用一个计数器计数积分时间,另外分别计数脉冲个数.具体电路可用直接RC充电,或在R上串或并接稳压管等实现.

使用特权

评论回复
33
locky_z| | 2008-11-18 13:29 | 只看该作者

.

  如果所有电压幅度的脉冲,其为0时的电压都是小于0.3V的,那么用下面方法最简单:
  加个0.3V的比较器,凡出现大于0.3V的就认为是有脉冲来了,就进行AD转换,测出此时的电压幅度并累积。


使用特权

评论回复
34
yezhenyu|  楼主 | 2008-11-18 21:18 | 只看该作者

在调理前信号的脉宽不定,最小200微秒,最大600微秒

不好意思,本人白天公司上不了网,忙到现在才回家,看到大家这么多好的点子,心里暖乎乎的,辛苦了各位大侠。

使用特权

评论回复
35
fzyuan| | 2008-11-18 21:54 | 只看该作者

超级简单的问题,

信号进来分2路,
1路整形后中断,也可以同时接到C8051的那个什么可以启动AD转换的口线;
2路衰减到1/5后进AD端口;

中断——>AD后进行分拣并进行计数;

完成!

使用特权

评论回复
36
ljm810010| | 2008-11-18 22:08 | 只看该作者

楼主开玩笑吧

楼顶说脉冲周期110US,37楼说脉宽300~600US?我知我晕还是你晕了

使用特权

评论回复
37
yezhenyu|  楼主 | 2008-11-19 20:34 | 只看该作者

不好意思,多敲了一个0

脉宽应该是20-60US
RE:36楼locky_z直接用340片内的AD进行累积,估计不行,时间不够。
RE:30楼耕在此行的建议恐怕得用海量RAM,IO口也不够用了。
RE:38楼fzyuan"1路整形后中断,也可以同时接到C8051的那个什么可以启动AD转换的口线;2路衰减到1/5后进AD端口;"信号是一个通道进来的,您这1路,2路是怎么来的?
RE:msliang18的建议指导性极强,俺周末搭个电路试试,顺便把结果告诉大家,这叫反馈,呵呵,虽然延迟长了些。
RE:王奉瑾的自适应比较器俺认为大概跟一级菜鸟说的差不多吧,不错的建议。
RE:ljm810010、IC921的建议速度是最快的,但是占用IO口多,没办法,IO不够用了。
RE:systemboy的“利用一个计数器计数积分时间”恐怕时间来不及
再次感谢各位大侠的参与,斑竹awey的鼎立相助。

使用特权

评论回复
38
fzyuan| | 2008-11-20 19:55 | 只看该作者

楼主大哥!

你在40楼说:
“RE:38楼fzyuan"1路整形后中断,也可以同时接到C8051的那个什么可以启动AD转换的口线;2路衰减到1/5后进AD端口;"信号是一个通道进来的,您这1路,2路是怎么来的?”

你没有看见我的第一句话“信号进来分2路,”?

给个图是否好理解一些?
第一路经过R1(限流保护电阻,D1为嵌位二极管),直接进C8051的比较器,比较器的参考电压可外接为250mV左右,比较器的输出接到CNVSTR用于启动ADC。同时将CNVSTR引脚定义为PCA的外部捕捉输入。

快速完成AD后可以判断输入信号幅值,CEX的输入可以计数,根据幅值分拣结果进行计数。

不知可行否?

使用特权

评论回复
39
iC921| | 2008-11-21 10:46 | 只看该作者

楼主说说吧

你到底能提供多少个IO口?!

使用特权

评论回复
40
yezhenyu|  楼主 | 2008-11-21 20:13 | 只看该作者

回楼上,说出来一定会让您晕倒

只有1个IO口可用。

使用特权

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

本版积分规则