STM32F103的ADC问题

 

求助,STM32F103的ADC问题

                                 我使用了两路ADC来做采集,无论是独立模式还是同步模式,PA0(通道0)会有毛刺状信号产生,PA1(通道1)会有约1.7V(3.3V供电的一半)的电平出现。两只脚都是悬空,而且AD转换不启动的时候都是正常的0V。而且无论是用ADC1还是ADC2,情况都是一样的。有没有哪位高手遇到这种问题?<br />
<br />
&nbsp;&nbsp;ADC_InitStructure.ADC_Mode = ADC_Mode_RegSimult;<br />
&nbsp;&nbsp;ADC_InitStructure.ADC_ScanConvMode = DISABLE;<br />
&nbsp;&nbsp;ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;&nbsp; &nbsp;&nbsp; &nbsp; //连续转换模式 <br />
&nbsp;&nbsp;ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; <br />
&nbsp;&nbsp;ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;&nbsp; &nbsp;//数据右对齐 <br />
&nbsp;&nbsp;ADC_InitStructure.ADC_NbrOfChannel = 1;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp;ADC_Init(ADC1, &amp;ADC_InitStructure);<br />
&nbsp;&nbsp;ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_55Cycles5); <br />
<br />
&nbsp;&nbsp;ADC_InitStructure.ADC_Mode = ADC_Mode_RegSimult;<br />
&nbsp;&nbsp;ADC_InitStructure.ADC_ScanConvMode = DISABLE;<br />
&nbsp;&nbsp;ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;<br />
&nbsp;&nbsp;ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;<br />
&nbsp;&nbsp;ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;<br />
&nbsp;&nbsp;ADC_InitStructure.ADC_NbrOfChannel = 1;<br />
&nbsp;&nbsp;ADC_Init(ADC2, &amp;ADC_InitStructure);

haidxshuma 发表于 2010-4-18 20:40

                                 更正一下,现在把PA0,PA1,PA2都悬空的话,情况都是一样的,ADC一启动的时候,该脚就会有约1/2的供电电压。之前PA0的情况应该是下拉电阻造成的。现在情况就是一样。难道是配置的问题?有没有人遇过?

maychang 发表于 2010-4-18 20:56

                                 是不是采样之前的滤波电路没做好

happyniu88 发表于 2010-4-18 21:11

                                 为了防止影响,我把那些脚都悬空了。只要ADC工作才会有约1.7V的电压存在,试过库自带的例子,用通道14,情况都是一样的。我的是STM32F103RBT6,不知道是哪里的问题了。

yb2004 发表于 2010-4-18 21:22

                                 再测试了一下,是软启动转换之后就会出现。应该就是转换的时候出现的。如果选择单次转换方式,转换完就恢复0V了。如果是用死循环来ADC_SoftwareStartConvCmd的话,也是一直是那个电平。是不是哪里设置错了?用例程的情况都一样的。

yx833 发表于 2010-4-18 22:07

                                 请不要把ADC输入脚悬空。

luhuitian 发表于 2010-4-18 22:23

                                 呵呵,新手的问题。我的是靠电阻分压输入的,查了一下相关的资料,怀疑是输入阻抗太大了

CNC 发表于 2010-4-18 22:26

                                 <br />
<br />
之前用AVR的AD还真没注意这个问题,才发觉用STM32的ADC比较折腾。之前试过直接将测量信号不分压输入,竟然会直接影响测量信号的幅值。难道还真的要加一个电压跟随才行?目前还在调试中,看看有没有其他解决办法。<br />
<br />
我已经是用ADC_SampleTime_239Cycles5了,按照查到的资料,说输入阻抗可以达到350K欧了。竟然还会出事,实在不太好用了。

zorro1978 发表于 2010-4-18 23:16

                                 第一次用还真的是问题不少。以为用起来简单,很多东西不用讲究。看来STM32的模拟输入还真有不少要求。现在做了一大批板,差点不能用。幸好AD采集不是主要功能,之前是用两个1K电阻分压来测量信号,现在改为51K,对原来的信号影响不大了。(1K的时候,接STM32时将原来2V的信号弄到1.3V)。看来下次只能加电压跟随器了。

hzlyj999 发表于 2010-4-19 09:26

                                 <div class="quote"><blockquote>更正一下,现在把PA0,PA1,PA2都悬空的话,情况都是一样的,ADC一启动的时候,该脚就会有约1/2的供电电压。之前PA0的情况应该是下拉电阻造成的。现在情况就是一样。难道是配置的问题?有没有人遇过? ...<br />
</blockquote></div>这是正常的情况:<br />
1)我实际用STM32的AD也看到类似的情况<br />
2)ST似乎就这个问题作过说明,印象里说这个情况跟AD的结构有关<br />
<br />
但话说回来,在实际使用中,一般不会让AD的输入悬空

lpzyb 发表于 2010-4-19 09:31

                                 <div class="quote"><blockquote>第一次用还真的是问题不少。以为用起来简单,很多东西不用讲究。看来STM32的模拟输入还真有不少要求。现在做了一大批板,差点不能用。幸好AD采集不是主要功能,之前是用两个1K电阻分压来测量信号,现在改为51K,对原 ...<br />
</blockquote></div>STM32的AD其实不难使用,比如10k电位器的1端接电源电压(另1端接地),这种情况下用STM32的AD测电位器的分压输出,还是很准的。

dfx168 发表于 2010-4-19 09:36

                                 看看,听高手解释

zoling 发表于 2010-4-19 12:00

                                 学习一下!

luoxinmjun520 发表于 2010-4-19 20:49

                                 接电源是很准确,主要是跟前级输出测量信号的阻抗,输出电流有关。我当时在开发板调试的时候也没发现问题,因此才没有细看内部结构。比较了一下AVR跟STM32的ADC结构,AVR内部是有放大器的,因为这样才使在相同的电路分压测量电平信号的时候,AVR完全没问题,STM32就出现类似问题。所以以后在使用ADC的时候,还是要多注意阻抗等问题。比较保险的方法当然就是加个电压跟随了。

fu2521 发表于 2010-4-19 21:12

                                 怎么悬空了?

lingqiang0123 发表于 2010-4-19 21:12

                                 是的,在输出级加个电压跟随是很必要的,保证阻抗足够大

haozi 发表于 2010-4-19 21:49

                                 采集信号时,输入阻抗要保证足够大

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值