ADC

 
  
 
stm32f207,  引脚对应的模拟通道:
PA0  IN0,
PA1
PA2
PA3
PA4
PA5
PA6
PA7  IN
PB0  IN8
PB1   IN9
PC0  IN10
PC1
PC2
PC3 
PC4  IN14
PC5  IN15  
  • ADC采样转换时间
ADC转换就是输入模拟的信号量,单片机转换成数字量。读取数字量必须等转换完成后,完成一个通道的读取叫做采样周期。采样周期一般来说=转换时间+读取时间。而转换时间=采样时间+12.5个时钟周期采样时间是你通过寄存器告诉stm32采样模拟量的时间,设置越长越精确
 
  
The total conversion time is calculated as follows:
Tconv = Sampling time + 12 cycles
Example:
With ADCCLK = 30 MHz
and sampling time = 3 cycles:
Tconv = 3 + 12 = 15 cycles = 0.5 μs with APB2 at 60 MHz
  • ADC输入阻抗--匹配--信号源内阻
信号源内阻当然越小越好,这样带负载能力强 
当信号源的阻抗大于2.5K时,AD的输入阻抗对信号源的分压将不能忽
略。信号源阻抗是指从AD口朝外看出来的等效阻抗,当然越小越好。

ADC的输入阻抗越大越好,这样对信号源适应性好
也就不会吸收电流,不会对外电路产生什么影响

AD采样相当于一个电容,工作时候,需要尽快跟上外部电压,于是有个充放电的问题,这个充放电其实就是采样过程。采样完成后断开外部连接,保持器,给ADC转换提供稳定的电压。 

若要做到阻抗匹配,有什么思路呢:
问题: STM32Fxx的AD输入阻抗这么低,导致ad从分压电阻中吸收了电流,以致分压值不准,采样值偏低,

处理方法:
思路一、减小信号源内阻,
对于ad采样来说,若从两分压电阻中间取样,那么分压电阻就不要太大,选取2.5k,试试看。---经验证,效果明显,分压电阻采用的2k---2k。
思路二、加电压跟随器
匹配流程: 信号源内阻<---匹配<--- 高输入阻抗-电压跟随器-低输出阻抗 --->匹配---->adc输入阻抗

参考:
电压跟随器的显著特点就是,输入阻抗高,而输出阻抗低。--百度百科链接,说得不错,算是做了一个阻抗匹配的科普了,呵呵
http://baike.baidu.com/link?url=q7ecMEmTmwwxMe48AN6I1uSotP3MhXDrKio7QmqXnrfKtlJMXOChfeH_OcwqrXg1Uk4P5pv1l6h1mvpeI5s3o_

思路三、减小ADC的采样速率??
---减小ADC的时钟频率。  经验证,确实有效果,将 ADC_Prescaler 设置成ADC_Prescaler_Div8(即7.5MHz)后,ADC引脚的连接对信号源电平的影响减小,有一定的增大ADC输入阻抗的作用。
---增加两次采样之间的时间间隔。经验证,效果基本没有。
减小ADC的采样速率,采样电压的变化频率减小,即AD采样的充放电电容的阻抗减小, 从而降低了adc的输入阻抗。
 参考:
为什么STM32Fxx的AD输入阻抗这么低 -----
http://bbs.eeworld.com.cn/thread-249624-1-1.html
                 (原因:综合网友们的讨论,基本是这个原因---阻抗小,即电容值充放电快,采样速率更高,是为了保证采样速率)
请高手出马:ADC的输入阻抗问题  -----http://bbs.21ic.com/icview-152735-1-1.html
ADC采样输入阻抗的计算  ------http://bbs.21ic.com/icview-84949-1-1.html 
 
  • Using the DMA
If the DMA bit is set, the direct memory access (DMA) controller is used to transfer the data
converted from the regular group of channels (stored in the ADC_DR register) to SRAM
after each regular channel conversion.

Data management-- Using the DMA

When the DMA mode is enabled (DMA bit set to 1 in the ADC_CR2 register), after each
conversion of a regular channel, a DMA request is generated. This allows the transfer of the
converted data from the ADC_DR register to the destination location selected by the
software. 

官方的固体库里的demo例子不错,可直接复制过来进行测试。

 不懂可以参考,下面这文章总结的不错,解决了我的问题。
STM32F4 ADC采集数据的DMA数据传输【库函数操作】
http://www.cnblogs.com/zyqgold/archive/2013/05/23/3095301.html

 STM32 ADC结合DMA数据采样与软件滤波处理
http://blog.csdn.net/i792439187/article/details/8825397 
 
  • ADC软件滤波
----其实,弄个均值滤波就可以了
 
参考:
10种ADC软件滤波方法及程序 
http://blog.csdn.net/haozi_1989/article/details/6625404
 





转载于:https://www.cnblogs.com/plant/p/5067499.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值