jackliu999的个人空间 https://bbs.21ic.com/?342049 [收藏] [复制] [RSS]

日志

STM32F303 ADC使用问题小结

已有 830 次阅读2018-11-1 11:34 |个人分类:STM32单片机|系统分类:嵌入式系统| ADC

1、AD采样不准确,当信号输入30mV时,AD采样值为0;  
     解决:   1) 使用AD校准函数  HAL_ADCEx_Calibration_Start(&AdcHandle);   在DMA启动之前校准
                   2)降低ADC时钟频率;(现在是72Mhz/4,没有修改)
                   3)提高ADC采样时间(681.5cycle)
              参考
    • 使用STM32CubeMX4.22版本开发F051K4T6采集三路AD,60MV以下采集不到http://www.stmcu.org.cn/module/forum/thread-612721-1-1.html(出处: 意法半导体STM32/STM8技术社区)
    • 如何在STM32中得到最佳的ADC精度  http://www.**/emb/danpianji/20171129588835_2.html   里面提到   选择较长的采样时间或较慢的ADC时钟,能保障更好的转换效果。或者通过降低ADC时钟频率、选择较长采样时间或选择较低的分辨率,可以容许更大的外部信号源阻抗
     效果:增加校准函数,AD采样值不为0,但与30mV输入有差距;继续提高采样时间,设置181.5cycle 达到30mV测量值,有波动;设置最大的681.5cycle,结果一样。
              第一路准确,其他几路还有偏差,需要继续研究

2、AD采样通道上存在毛刺
     解决: 不采用DMA模式,采用轮询模式,则没有毛刺,仔细对比两种模式,对采样数值没有影响。
     参考:关于STM32 ADC引脚出现很多毛刺的问题  https://bbs.21ic.com/icview-370415-1-1.html

 3、STM32F303 ADC时钟最大为72Mhz,没有f1系列14Mhz的限制;

4、转换时间

ADC转换时间:

有如下公式: TCONV = 采样时间+ 12.5 个周期

其中12.5个周期是采集12位AD时间是固定的,另外一个采样时间每个通道可以单独配置。

  1.5周期、2.5、4.5、7.5、19.5、61.5、181.5、601.5

  



路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)