10回答

0收藏

[求助] PSoC3 的两路A/D采集之间的影响?

英飞凌 英飞凌 5352 人阅读 | 10 人回复 | 2013-05-13


Uo和Ux是两路输入信号,我的信号源有滑动变阻器产生的分压、D/A产生的正弦波两种。
遇到的问题是Uo和Ux同为正弦波输入时,液晶所显示的电压差距很大(按下复位键时看的),改变A/D的转化模式也没有任何变化,实在找不到问题。希望大家帮指点一下可能是那的问题,在下感激不尽!
程序如下:
for(;;)
{
////测量Uo
  AMux_1_Select(0);
     ADC_DelSig_1_Stop();
     ADC_DelSig_1_Start();
     ADC_DelSig_1_StartConvert();    // Start the ADC conversion
     ADC_DelSig_1_IsEndConversion(ADC_DelSig_1_WAIT_FOR_RESULT);
     output1 = ADC_DelSig_1_GetResult16();   
////测量Ux
  AMux_1_Select(1);
     ADC_DelSig_1_Stop();
     ADC_DelSig_1_Start();
     ADC_DelSig_1_StartConvert();    // Start the ADC conversion
     ADC_DelSig_1_IsEndConversion(ADC_DelSig_1_WAIT_FOR_RESULT);
     output2 = ADC_DelSig_1_GetResult16();
     后边是显示部分……
}
分享到:
回复

使用道具 举报

回答|共 10 个

倒序浏览

沙发

ming1006

发表于 2013-5-13 23:31:26 | 只看该作者

液晶所显示的电压差距很大(按下复位键时看的)

没明白问题是什么
板凳

Go_for_it

发表于 2013-5-14 08:16:17 | 只看该作者

ming1006 发表于 2013-5-13 23:31
没明白问题是什么

两路A/D采集的都是D/A产生的正弦信号,采集回来的值应该是相同的,但是我采集到的两个数据差值很大
地板

ming1006

发表于 2013-5-14 22:54:55 | 只看该作者

海日生明月 发表于 2013-5-14 08:16
两路A/D采集的都是D/A产生的正弦信号,采集回来的值应该是相同的,但是我采集到的两个数据差值很大 ...

你是说直流没区别,但是交流有差别?会不会是正弦波频率太高呢?你DA产生的正弦信号频率多大呢?
5#

Go_for_it

发表于 2013-5-15 08:57:00 | 只看该作者

ming1006 发表于 2013-5-14 22:54
你是说直流没区别,但是交流有差别?会不会是正弦波频率太高呢?你DA产生的正弦信号频率多大呢? ...

按理说不高,正弦波是1kHz,我的A/D采样转化速率是10000SPS,应该可以满足吧?
6#

ming1006

发表于 2013-5-15 22:53:47 | 只看该作者

海日生明月 发表于 2013-5-15 08:57
按理说不高,正弦波是1kHz,我的A/D采样转化速率是10000SPS,应该可以满足吧? ...

虽难说AD采样率是10k,但是你的AD不是连续采样,两次之间AD关了又开,应该会有一段时间,你试下降低正弦波信号,改成100Hz左右试下吧
7#

Go_for_it

发表于 2013-5-16 11:33:14 | 只看该作者

ming1006 发表于 2013-5-15 22:53
虽难说AD采样率是10k,但是你的AD不是连续采样,两次之间AD关了又开,应该会有一段时间,你试下降低正弦 ...

试了一下,频率降低到100Hz,10Hz,才回来的数据相对靠谱点了。请问仁兄有何方法解决这个问题?
8#

ming1006

发表于 2013-5-16 13:05:41 | 只看该作者

海日生明月 发表于 2013-5-16 11:33
试了一下,频率降低到100Hz,10Hz,才回来的数据相对靠谱点了。请问仁兄有何方法解决这个问题? ...

我觉得主要是ADC的启动比较占时间,你试一下把
ADC_DelSig_1_Stop();
ADC_DelSig_1_Start();
这两句去了,初始化时开ADC,而不是模拟复用器转换时开ADC,还有就是可以把ADC频率也提高点
9#

Go_for_it

发表于 2013-5-16 14:12:10 | 只看该作者

ming1006 发表于 2013-5-16 13:05
我觉得主要是ADC的启动比较占时间,你试一下把
ADC_DelSig_1_Stop();
ADC_DelSig_1_Start();

感觉两者之差除了在采集直流时几乎相等外,其他情况下时不时出现很大的差距。我想用两个ADC_DelSig,干脆不用复用器,不知道怎样实现?
10#

ming1006

发表于 2013-5-16 23:14:28 | 只看该作者

海日生明月 发表于 2013-5-16 14:12
感觉两者之差除了在采集直流时几乎相等外,其他情况下时不时出现很大的差距。我想用两个ADC_DelSig,干脆 ...

直接拖两个模块进来应该就行了,不过不知道PSoC里面是有几个ADC
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条