搜索
bottom↓
回复: 174

【 LCR DIY 完工 基于 STM8S105的 ,测试结果基本满意 】

  [复制链接]

出0入0汤圆

发表于 2010-8-20 16:04:32 | 显示全部楼层 |阅读模式
代码全部自己原创(当然要除开ST的库,呵呵!),电路借鉴了俄罗斯版的,电路结构与原版不同之处,STM8S105产生相差90度的鉴相控制信号,同时拿出一路来给三组低通滤波器产生正弦波
走了一些弯路,开始使用AD9833来产生正弦波,由于AD9833产生的正弦波与鉴相信号的频率不能完全一样,又由于是使用的积分的方法得到相量因此会造成测试结果会周期性的变化,所以才使用了三组低通滤波器来产生正弦波,滤出来的正弦波我从示波器上基本看不出来有失真,
不多说了看看结果吧!
图片是手机拍的大家就着看吧!
点击此处下载 ourdev_576520.rar(文件大小:411K) (原文件名:LCR-STM8-7135.rar)
原理图,还没有改过来,上面画的还是AD9833
点击此处下载 ourdev_576545.pdf(文件大小:73K) (原文件名:Schematic Prints.pdf)

更新一下原理图,已经改为与实际的一致了,

点击此处下载 ourdev_576726.pdf(文件大小:81K) (原文件名:Schematic Prints.pdf)



(原文件名:调整大小 201008121252.jpg)


(原文件名:调整大小 201008121253.jpg)


(原文件名:调整大小 201008171255.jpg)


(原文件名:调整大小 201008191260.jpg)


(原文件名:调整大小 201008191262.jpg)


(原文件名:调整大小 201008201267.jpg)


(原文件名:调整大小 201008201268.jpg)


(原文件名:调整大小 201008201269.jpg)


(原文件名:调整大小 201008201270.jpg)


(原文件名:调整大小 201008201271.jpg)


(原文件名:调整大小 201008201272.jpg)


(原文件名:调整大小 201008201273.jpg)


(原文件名:调整大小 201008201274.jpg)


(原文件名:调整大小 201008201275.jpg)


(原文件名:调整大小 201008201276.jpg)


(原文件名:调整大小 201008201278.jpg)


(原文件名:调整大小 201008201279.jpg)


(原文件名:调整大小 201008201280.jpg)


(原文件名:调整大小 201008201281.jpg)


(原文件名:调整大小 201008201282.jpg)


(原文件名:调整大小 201008201283.jpg)


(原文件名:调整大小 201008201284.jpg)


(原文件名:调整大小1607.jpg)

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-8-20 16:22:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-20 16:24:56 | 显示全部楼层
我来顶,这个不错啊
很有参考意义

出0入0汤圆

发表于 2010-8-20 17:23:26 | 显示全部楼层
很强大,学习。。。

出0入42汤圆

发表于 2010-8-20 17:26:39 | 显示全部楼层
不错

出0入85汤圆

发表于 2010-8-20 18:45:42 | 显示全部楼层
高手,膜拜ing

出0入0汤圆

发表于 2010-8-20 18:59:47 | 显示全部楼层
真乃高手,我也膜拜一下~

出0入4汤圆

发表于 2010-8-20 19:14:55 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-20 20:46:05 | 显示全部楼层
非常不错

出0入0汤圆

发表于 2010-8-20 21:06:50 | 显示全部楼层
为什么要用7135做AD?是因为精度高还是鉴相需要?

出0入0汤圆

发表于 2010-8-20 21:15:56 | 显示全部楼层
电容D值可信吗

出0入0汤圆

发表于 2010-8-20 21:17:29 | 显示全部楼层
确实不错的 东东

出0入0汤圆

发表于 2010-8-20 21:40:37 | 显示全部楼层
呵呵,很高兴看见同样喜欢lcr的人。如果用diy角度看,做的很好。

-------------------------讨厌的分割线---------------------------------------------

俄罗斯版使用时钟产生正弦波,可以精确产生同步和正交信号,能够精确的测量实部和虚部。而且更重要是有效利用7135这个积分式

adc剔除噪声。因此,使用ad9833实际上抛弃最精华部分。

出0入0汤圆

发表于 2010-8-20 22:38:58 | 显示全部楼层
回复【12楼】fickle
呵呵,很高兴看见同样喜欢lcr的人。如果用diy角度看,做的很好。
-------------------------讨厌的分割线---------------------------------------------
俄罗斯版使用时钟产生正弦波,可以精确产生同步和正交信号,能够精确的测量实部和虚部。而且更重要是有效利用7135这个积分式
adc剔除噪声。因此,使用ad9833实际上抛弃最精华部分。


-----------------------------------------------------------------------

可以用两个AD9833输出正交信号是吗?

出0入0汤圆

发表于 2010-8-20 22:45:07 | 显示全部楼层
AD9851可以产生正交正弦信号

出0入0汤圆

发表于 2010-8-20 23:22:49 | 显示全部楼层
雷厉风行啊。

出0入0汤圆

发表于 2010-8-21 00:43:38 | 显示全部楼层
再次仔细看了楼主的原理图。发现ad9833的时钟来源于mcu,也许可以产生精确的同步和正交信号。(呵呵,也许楼主已经这样做了。)

请问楼主,测量1pF电容如何?还有10m Ohm电阻如何?

出0入0汤圆

 楼主| 发表于 2010-8-21 09:28:25 | 显示全部楼层
回复【10楼】888888888888  
-----------------------------------------------------------------------


(原文件名:调整大小 201008211285.jpg)


(原文件名:CS2CP.JPG)


(原文件名:调整大小 201008211287.jpg)

出0入0汤圆

 楼主| 发表于 2010-8-21 09:37:45 | 显示全部楼层
回复【16楼】fickle  
-----------------------------------------------------------------------

1P电容没有 最小只有15P电容测试准,电阻没有试,也不关心电阻值是否准确,估计你是关心高增益时的噪声问题吧?用示波器看肯定是看到杂波了!

出0入0汤圆

发表于 2010-8-21 11:19:51 | 显示全部楼层
鉴相部分不是太明白!是不是把7135换成其他非积分式的ADC也可以,只是噪声问题严重点?这样可以提高测试速度.

出0入0汤圆

发表于 2010-8-21 11:34:19 | 显示全部楼层
看上去很不错

出0入0汤圆

发表于 2010-8-21 13:28:34 | 显示全部楼层
回复【18楼】kevinzcp
回复【16楼】fickle   
-----------------------------------------------------------------------
1p电容没有 最小只有15p电容测试准,电阻没有试,也不关心电阻值是否准确,估计你是关心高增益时的噪声问题吧?用示波器看肯定是看到杂波了!
-----------------------------------------------------------------------

1、如果小电容或者小电阻不太理想的话,这个方案还不如论坛的谐振方案呢。

2、楼主不关心电阻值准确性?整个仪器只有通过电阻才能校准,否则仪器怎么用呢?

3、我这里有一份俄国人版的英文说明书,楼主想要么?

出0入0汤圆

发表于 2010-8-21 13:58:29 | 显示全部楼层
回复【19楼】0123456789
-----------------------------------------------------------------------

尝试回答你的问题。(最近一直在学习lcr,有许多迷惑之处。)

1、俄版和德版都是使用了经典测量微弱电压信号方法:同步检测或者叫锁相放大技术。

2、而锁相放大技术借用了无线电的外差技术。基本原理就是被测信号和同频率的参考信号相乘,会得到包含相位差的直流信号和其他高

频信号,然后采用低通滤波器滤除直流以外信号,得到那个相位差信号即测量信号。

----------------------------------------------------------------------------------------------------------------------
“鉴相部分不是太明白!是不是把7135换成其他非积分式的ADC也可以,只是噪声问题严重点?这样可以提高测试速度. ”

----这也是我在思考的问题。原理上,我觉得可以。事实上,我认定可以,呵呵。原因很简单,高速度的lcr商业价值更高。

出0入0汤圆

发表于 2010-8-21 14:33:34 | 显示全部楼层
谢谢fickle!

这个仪器,每次测试前是不是要把表笔短路和开路校准一次?

------------------


  由于流过电容或电感的电流与其两端的电压存在90°的相位差,因此只需在任一时刻采样得到交流信号瞬时值V1,然后相移90°,再采样得到瞬时值V2,就可用V1和V2表示完整的交流信号:V2=V1+jV2。

---------------
在  http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3823454  上看到以上内容,是不是说可以不用校准呢?

出0入0汤圆

发表于 2010-8-21 14:40:50 | 显示全部楼层
有才,学习了

出0入0汤圆

发表于 2010-8-21 18:35:32 | 显示全部楼层
回复【23楼】0123456789
谢谢fickle!
这个仪器,每次测试前是不是要把表笔短路和开路校准一次?
------------------
  由于流过电容或电感的电流与其两端的电压存在90°的相位差,因此只需在任一时刻采样得到交流信号瞬时值v1,然后相移90°,再采样得到瞬时值v2,就可用v1和v2表示完整的交流信号:v2=v1+jv2。  
---------------
在  http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3823454  上看到以上内容,是不是说可以不用校准呢?
-----------------------------------------------------------------------

呵呵,我不能瞎说。

推荐给你一本书吧。测量电子电路设计-滤波器篇 日 远坂俊昭

卓越买的,打7折。

出0入0汤圆

发表于 2010-8-21 20:28:12 | 显示全部楼层
不错。有空仿制一个。

出0入0汤圆

 楼主| 发表于 2010-8-22 09:13:44 | 显示全部楼层
回复【12楼】fickle  
-----------------------------------------------------------------------
我本身就在DIY

回复【15楼】june4th  朴正欢
-----------------------------------------------------------------------
这是我的兴趣,我在去年 回贴时就说想做一个LCR,也算是蓄谋已久了吧,哈哈
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3339857&bbs_page_no=1&search_mode=1&search_text=lcr&bbs_id=9999


回复【21楼】fickle  
-----------------------------------------------------------------------

1,15P电容在10K频率下也达到1M左右的阻抗了,能稳定测试我已经达到我的DIY目的了,不能说什么方案不如什么方案,白猫黑猫捉到老鼠就是好猫。
2,目前的代码中没有涉及到校准,目前的精度我已经能接受了没打算把它当正式仪器来用,更重要的是我的兴趣爱好,探索,做了这么一个东西,当然校准也只是添加一些代码就应该可以实现的了,的确没有其它仪器或参考时用已知电阻值来检验测量结果是否准确是一个最便捷途径,
3,有英文版的说明书可以放上来造福一下更多的爱好者,我先替大家谢谢你了。

出0入0汤圆

发表于 2010-8-22 09:49:08 | 显示全部楼层
请教楼主:为什么测试信号要分成三路输出而不共用一个滤波电路呢?是因为100HZ和10KHZ的电压幅度相差太多吗?应该不是相位问题吧?

出0入0汤圆

发表于 2010-8-22 11:33:37 | 显示全部楼层
回复【27楼】kevinzcp
-----------------------------------------------------------------------

1、研发本是耗神耗力体力活,呵呵,我的本心没有惹楼主不开心的意思。

2、楼主的开源行为连累了我,你是偶像。

点击此处下载 ourdev_576883.pdf(文件大小:214K) (原文件名:RLC2e.pdf)

出0入0汤圆

发表于 2010-8-22 19:55:53 | 显示全部楼层
不错。谢谢分享。

出0入0汤圆

发表于 2010-8-27 13:01:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-15 00:16:52 | 显示全部楼层
还在关注楼主的进展。

我自己也有个思路,希望给些意见。见,

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4217332&bbs_page_no=1&search_mode=3&search_text=fickle&bbs_id=9999

出0入0汤圆

发表于 2010-9-15 09:18:58 | 显示全部楼层
厉害

出0入0汤圆

发表于 2010-9-15 10:08:25 | 显示全部楼层
不错,好东西

出0入0汤圆

发表于 2010-9-15 10:41:46 | 显示全部楼层
膜拜。

出0入0汤圆

发表于 2010-9-15 15:49:48 | 显示全部楼层
mark!

出0入0汤圆

发表于 2010-9-15 16:59:47 | 显示全部楼层
膜拜。

出0入0汤圆

发表于 2010-10-16 10:40:14 | 显示全部楼层
真的不错 lcr project !!
楼主厉害

出0入0汤圆

发表于 2010-10-16 10:53:01 | 显示全部楼层
顶!

出0入0汤圆

发表于 2010-10-16 10:57:55 | 显示全部楼层
留名!以后备用

出0入0汤圆

发表于 2010-10-16 11:04:31 | 显示全部楼层
mark.

出0入0汤圆

发表于 2010-10-16 14:20:17 | 显示全部楼层
这个给力
顶个

出0入0汤圆

发表于 2010-10-16 15:12:50 | 显示全部楼层
make

出0入0汤圆

发表于 2010-10-19 10:58:55 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-9 17:39:59 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-19 22:45:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-20 10:41:37 | 显示全部楼层
mark...

出0入134汤圆

发表于 2010-11-20 11:29:06 | 显示全部楼层
很给力啊  板子做的不错

出0入0汤圆

发表于 2010-11-27 03:32:02 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-30 11:41:41 | 显示全部楼层
相当的牛人啊,热转印的板子真漂亮,还能做那么密的线,第一次看有印字的,而且测得的值比我用名牌万用表准多了,实在佩服佩服...

出0入18汤圆

发表于 2010-11-30 11:58:24 | 显示全部楼层
很好的一个东西!!!!

出0入0汤圆

发表于 2010-11-30 12:51:34 | 显示全部楼层
再次顶起   

STM8+LCR表

出0入0汤圆

发表于 2010-12-2 21:48:36 | 显示全部楼层
回复【52楼】3466756555
再次顶起   
stm8+lcr表
-----------------------------------------------------------------------

same

出0入0汤圆

发表于 2010-12-7 12:27:07 | 显示全部楼层
好久没来,发现楼主的图有了新的变化,仔细学习学习。

出0入0汤圆

发表于 2010-12-7 12:29:37 | 显示全部楼层
记得楼主好像有同惠的lcr测试仪吧?测量结果和同惠比如何?

出0入0汤圆

发表于 2010-12-12 23:51:08 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-12-13 13:04:10 | 显示全部楼层
找个空心电感测试一下看看

出0入0汤圆

发表于 2010-12-14 17:41:48 | 显示全部楼层

(原文件名:STM_phase select.jpg)
请问一下楼主:

上面原理图的截图中,红圈部分的两个点,它的信号应该长什麽样子?
是直流电压吗?我照原理图做电路,测试频率用10KHZ,但是这两点的信号都只是很低的电压,
几乎没有麽变化,不知道这样问题出在哪里?

出0入0汤圆

发表于 2010-12-14 18:51:56 | 显示全部楼层
回复【58楼】PSIR
-----------------------------------------------------------------------

应该是直流电压.

你是用软件模拟的还是实测的电路?

出0入0汤圆

发表于 2010-12-14 19:52:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-14 20:24:51 | 显示全部楼层
好贴 一定要做个maik

出0入0汤圆

发表于 2010-12-15 00:50:43 | 显示全部楼层
做的不错啊,去找点精密电容做校正吧。

出0入0汤圆

发表于 2010-12-15 09:52:17 | 显示全部楼层
回复【59楼】0123456789  
回复【58楼】psir
-----------------------------------------------------------------------
应该是直流电压.
你是用软件模拟的还是实测的电路?
-----------------------------------------------------------------------

我是用面包板上实做电路,但是这两点的输出波形却不是直流电压,这该如何是好?
还有请问一下各位先进哦,有些桌上型的 LCR Meter 量测频率可以高达 1MHz,
而那种高档产品通常会用 DDS 来产生正弦波,
如果测试频率也希望高达 1MHz 的话,
是否直接将频率提高就可以了,还是还要更改原理图设计?

出0入0汤圆

发表于 2010-12-15 09:59:57 | 显示全部楼层
回复【63楼】PSIR
-----------------------------------------------------------------------

面包板怕是接触不太稳定吧!还是焊接起来比较放心.

频率提高要考虑运放带宽和模拟开关的速度.

我打算做个200K左右的,在选新运放和模拟开关呢.

出0入0汤圆

发表于 2010-12-16 16:48:04 | 显示全部楼层

(原文件名:RLC-2_UI_4053.jpg)
我重画了俄版电路的鉴相器部分原理图,透过 U、I 选择以及 ClkSel 的 0 和 1 切换,
可以得到 4 种电压的组合,不过 In+ 和 In- 这两支脚的波形为何都是0V?我的测试频率是 5KHz,
这样子就算送进 ICL7135 的话也无法得到 A/D 值,
请问 In+ 和 In- 的正确波形应该是什么样子?楼主是否方便拍个照片分享一下。

出0入0汤圆

 楼主| 发表于 2010-12-20 13:54:31 | 显示全部楼层
回复【55楼】fickle  
-----------------------------------------------------------------------

是公司有一个同惠的LCR,但被另一同事带走了一直没有还回公司来,所以没得对比。


回复【58楼】PSIR
回复【65楼】PSIR  
-----------------------------------------------------------------------
这里的波型没有实际看过,应该是一个比较平坦的类似锯齿波。

出0入0汤圆

发表于 2011-1-6 06:50:25 | 显示全部楼层
一直关注中。

出0入0汤圆

发表于 2011-1-8 00:08:38 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-1-27 15:38:31 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-27 16:57:28 | 显示全部楼层
mark lcr

出0入0汤圆

发表于 2011-1-27 19:45:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-28 11:32:21 | 显示全部楼层
看了楼主的图与基他的对比,用继电器与模拟开关,选那个好?


(原文件名:1.jpg)


(原文件名:2.jpg)

出0入0汤圆

发表于 2011-1-28 11:59:30 | 显示全部楼层
2种原理上都没什么问题。

使用模拟开关,设计看起来更简洁。但后期校准很麻烦,尤其在不同量程之间,不同频率之间。

出0入0汤圆

发表于 2011-2-1 23:13:13 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-2-2 00:23:16 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-2 08:28:21 | 显示全部楼层
支持楼主,要是弄个四线的就好啦

出0入0汤圆

发表于 2011-2-3 03:27:12 | 显示全部楼层
桥接怎么变成非桥接?这样与理论差距很大..

出0入0汤圆

发表于 2011-2-10 22:54:06 | 显示全部楼层
楼主,是否方便测一下10m ohm电阻和5pf左右电阻?

出0入0汤圆

发表于 2011-2-10 23:31:42 | 显示全部楼层
很有参考意义

出0入0汤圆

发表于 2011-3-3 20:29:27 | 显示全部楼层
这个好啊

出0入0汤圆

发表于 2011-3-3 22:09:03 | 显示全部楼层
回复【77楼】lyzhangxiang
支持楼主,要是弄个四线的就好啦
-----------------------------------------------------------------------

不就是楼主电路图显示四线??

出0入0汤圆

发表于 2011-3-4 03:56:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-19 15:14:12 | 显示全部楼层
想仿制一个 不知道楼主是否同意

出0入0汤圆

发表于 2011-3-19 16:33:27 | 显示全部楼层
LCR DIY

出0入14汤圆

发表于 2011-3-22 21:00:05 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-22 21:43:17 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-25 13:23:58 | 显示全部楼层
请问楼主,10M以上电阻测量如何?

出0入0汤圆

发表于 2011-3-26 01:35:34 | 显示全部楼层
仔细看了楼主板子,lf411也没采取保护措施。

估计测大电阻时,噪声也是老大。

出0入0汤圆

 楼主| 发表于 2011-3-26 09:58:35 | 显示全部楼层
回复【80楼】fickle  
-----------------------------------------------------------------------

回复【89楼】fickle  
-----------------------------------------------------------------------

回复【90楼】fickle  
-----------------------------------------------------------------------

这个DIY的第一版,这个板改得乱七八糟的扔在角落灰尘积了一堆也拆了一些元件就不想去折腾它了,目前暂时还没空做第二版(不是工作忙,有点其它事处跑也没有心情弄),不过有空了一定会做(当然只是满足我的兴趣,依然是热转印的,不知道到时会不会又影响到老兄你了,不过还是建议你按自己的方法去弄,不要管别人是否会影响到你),做好了再试再给你看测试结果。

出0入0汤圆

发表于 2011-3-26 11:00:00 | 显示全部楼层
调试中出了问题。开始,10mR测不准,搞定了。现在是10MR噪声大,找不到原因,呵呵,到处问。

出0入0汤圆

发表于 2011-4-8 21:55:55 | 显示全部楼层
楼主,我用STM32仿了一个。不过不太正常。电路中的电容,我用独石电容,在100HZ,1KHZ,10KHZ时,要用显示波器的表指点一下如图中所示的电容引脚才会有输出的,不知道什么原因。
还有7135的BUSY引脚,大约3HZ的频率的方波,这个有问题,搞不清原因。

(原文件名:未命名.JPG)

出0入0汤圆

发表于 2011-4-8 22:01:41 | 显示全部楼层
lz的tds220,我的第一次用的数字示波器。现在买不到了,tek原先低价推广来着。

出0入0汤圆

 楼主| 发表于 2011-4-11 12:50:47 | 显示全部楼层
回复【93楼】cyxavr  又一天
-----------------------------------------------------------------------

可能是滤波器的输入阻抗不匹配造成的,可以换个阻值的电位器来调幅度或电位器后增加一级跟随。

出0入0汤圆

发表于 2011-4-11 14:11:18 | 显示全部楼层
强!!!

出0入0汤圆

发表于 2011-4-11 16:57:38 | 显示全部楼层
回复【95楼】kevinzcp



回复【93楼】cyxavr  又一天
-----------------------------------------------------------------------
可能是滤波器的输入阻抗不匹配造成的,可以换个阻值的电位器来调幅度或电位器后增加一级跟随。
-----------------------------------------------------------------------

还有一个问题:
7135 的时钟输入为250K,我用STM32 定时器3通道4来做输入捕捉(上升沿捉一次,下降沿再捉一次,取两次差值),但捕捉到的数据老在跳变

楼主,请教一下,7135  BUSY 最长的高电平与低时间大概各为多少MS啊?

上传工程文件与原理图

没有8MHZ的晶振,我用6MHZ的,升频到54MHZ。

7135 时钟大约在500K左右,现在是知道如何设置STM32捕捉的频率!?


/*定时器5(16位)通道2 PA1(26脚)输出500k的PWM到ICL7153的CLK 脚(22脚),作为时钟信号*/
void  TIM2_Out_Clk_125k_Setup(void)
{
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  TIM_OCInitTypeDef  TIM_OCInitStructure;
  u16 CCR2_Val ;
   // u32  F_HZ=54000000/Prescale;
       
//        u16 F_10kHZ= F_HZ/10000 ;          //1000000/125000(125khz)=8
//        u16 F_1kHZ= F_HZ/1000 ;          //1000000/1000(1khz)=1000
//        u16 F_100HZ= F_HZ/100 ;          //1000000/100(100hz)=10000
  TIM_TimeBaseStructure.TIM_Prescaler =18;// 预分频,此值+1为分频的除数        3M
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

  TIM_TimeBaseStructure.TIM_Period = 6;
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;

  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
  CCR2_Val=3;
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle;
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCInitStructure.TIM_OutputNState = TIM_OutputState_Disable;
  TIM_OCInitStructure.TIM_Pulse = CCR2_Val;
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
  TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCPolarity_Low;//TIM_OCNPolarity_High //关闭反向通道
  TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;
  TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
                                                                                  
  TIM_OC2Init(TIM2, &TIM_OCInitStructure);

  TIM_Cm(TIM2,ENABLE);                                                                                                                     
  TIM_CtrlPWMOutputs(TIM2, ENABLE);
}

/*定时器3通道4输入捕捉*/
void TIM3_ICAP_Setup(void)
{
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

    TIM_ICInitTypeDef  TIM_ICInitStructure;
         
    TIM_TimeBaseStructure.TIM_Period = 0xffff;          // ????
    TIM_TimeBaseStructure.TIM_Prescaler = 99; //分频后为54M/(99+1)=540K  ???
    TIM_TimeBaseStructure.TIM_ClockDivision = 0;
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

    TIM_PrescalerConfig(TIM3, 99,TIM_PSCReloadMode_Immediate );
     
    TIM_ICInitStructure.TIM_Channel = TIM_Channel_4; //选择通道4
    TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //输入上升沿捕获
    TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //通道方向选择
    TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; //每次检测到捕获输入就触发一次捕获
    TIM_ICInitStructure.TIM_ICFilter = 0x03;//脉冲滤波
    TIM_ICInit(TIM3, &TIM_ICInitStructure);


    TIM_SelectInputTrigger(TIM3, TIM_TS_TI2FP2);           //参考TIM结构图选择滤波后的TI1输入作为触发源,触发下面程序的复位
    TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);  //复位模式-选中的触发输入(TRGI)的上升沿初始化计数器,并且产生一个更新线号
    TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable); //启动定时器的被动触发


      /* Enable the CC2 Interrupt Request */
    TIM_ITConfig(TIM3, TIM_IT_CC4, ENABLE);        //  打开中断
    TIM_Cmd(TIM3, ENABLE);
    TIM_ClearITPendingBit(TIM3, TIM_IT_CC4);
   
}


void TIM3_IRQHandler (void)
{
#define OFFSET7135 7657

    TIM_ICInitTypeDef  TIM_ICInitStructure;

    if(TIM_GetITStatus(TIM3, TIM_IT_CC4) == SET)
    {
        TIM_ClearITPendingBit(TIM3, TIM_IT_CC4);


        if(TIM3ICValue1==0)
        {
            TIM3ICValue1=TIM_GetCapture4(TIM3);
            //test1();

            TIM_ICInitStructure.TIM_Channel = TIM_Channel_4; //选择通道3
            TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Falling;//输入下降沿捕获  TIM_ICPolarity_Rising;
            TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //通道方向选择 //将TI2配置到PA1上
            TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; //每次检测到捕获输入就触发一次捕获
            TIM_ICInitStructure.TIM_ICFilter = 0x03;//脉冲滤波
            TIM_ICInit(TIM3, &TIM_ICInitStructure);
            GPIOA->ODR ^= GPIO_Pin_12;
            if(GPIO_ReadInputDataBit(ICL7135_POLE_PORT,ICL7135_POLE_PIN))//读7135 POLH引脚电平是否为高?
                POLE_7135_FLAG = 1;
            else
                POLE_7135_FLAG = 0;

        }
        else
        {
            TIM3ICValue2=TIM_GetCapture4(TIM3);

            TIM_ICInitStructure.TIM_Channel = TIM_Channel_4; //选择通道3
            TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;//TIM_ICPolarity_Rising; //输入上升沿捕获
            TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //通道方向选择 //将TI2配置到PA1上
            TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; //每次检测到捕获输入就触发一次捕获
            TIM_ICInitStructure.TIM_ICFilter = 0x03;//脉冲滤波
            TIM_ICInit(TIM3, &TIM_ICInitStructure);


            ResultAD7135=(1.0001*(TIM3ICValue2-TIM3ICValue1-OFFSET7135))/OFFSET7135;//得到AD值
            if(!POLE_7135_FLAG)   ResultAD7135 = -1*ResultAD7135;        //判断信号的正负
            // sprintf(DisL2Buf,"7135:%.3f",ResultAD7135);//打开此处注释短接7135第9-10脚显示出的数即为 OFFSET7135
           // test_ax();
            //  test2() ;
            GPIOA->ODR ^= GPIO_Pin_15;
            TIM3ICValue1 = 0;
            TIM3ICValue2 = 0;
            TIM3INTCount=1;


        }
    }
}

还有其他的看工程文件。


里面有IAR 源码文件与PDF 原理图ourdev_629986UDNIW4.zip(文件大小:584K) (原文件名:IAR STM32 LCR.zip)

出0入0汤圆

发表于 2011-4-11 16:58:12 | 显示全部楼层
板子不错,很漂亮!

出0入0汤圆

发表于 2011-4-11 17:13:45 | 显示全部楼层
强悍.

出0入0汤圆

发表于 2011-4-12 13:05:31 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-14 11:05:48 | 显示全部楼层
回复【楼主位】kevinzcp
-----------------------------------------------------------------------
用AD9852产生正交信号,另外如果能加入DCBIAS就更好了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 16:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表