10528|6

5

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

STM32F030F4P6多通道ADC DMA采样数值为4095问题总结 [复制链接]

本帖最后由 zhouguoping 于 2020-1-15 10:55 编辑

    最近调试STM32F030F4P6多通道ADC DMA定时触发采样时,碰到鬼了!此鬼折腾了我2天多的时间总算得出结论。

    电路原理图:                                               

    现象描述:

    PA0,PA1外接2路模拟量,PA2,PA3当UART TTL电平使用,然后启用DMA 2通道定时器1的TRGO触发采样。第一版板子都调试成功了,第二版稍微修改了一下板子尺寸,元器件布局之类的,总之,原理上就将LED从PA4移到了PA5,其他都没有动。然后焊接板子调试,奶奶的,见鬼了!PA0接了其他传感器,PA1接了个TMP36,DMA缓存数组0的值(接其他传感器的值)正确,1的值(TMP36)为4095。

    捉鬼过程:

    1、测硬件,VCCA=3.28,VCC=3.28,REST=3.3V。么发现问题,因为板子元器件密度比较大,怀疑是不是底线没接好?因地线是走线加覆铜,而电源线专门走的20mil的线,么得怀疑。然后地线飞了两个线后问题依旧!

    2、查代码,没发现啥问题。因使用IAR开发,FLASH的15扇区留作存参数,FLASH容量不够用了,将优化级别设置为Medium,怀疑是不是程序优化带来的问题?然后精简程序,想将优化级别改为Low,但是怎么折腾还是没达到目的,最后将串口部分功能注视掉,优化级别设置为Low,问题依旧!

    3、修改代码中的怪相:将ADC_ChannelConfig(ADC1, ADC_Channel_0, ADC_SampleTime_55_5Cycles);中的ADC_SampleTime_55_5Cycles改为ADC_SampleTime_1_5Cycles,通道1的值不再是4095,但还是与外部测量的电压值对不上,比如0.8V的输入,缓存数组1里面的值是1600左右,后来发现,将通道转换时间或者是ADC的CLK调整的越高,采样值越低,越慢采样值越大。

    4、因之前代码板子都是好的,并且之前的板子上的元器件已经拆到新板子上了,也就没法对比?第二天早上再搜网页,发现一网友也见过此鬼!“STM32F030的ADC严重问题”。原文连接 https://bbs.eeworld.com.cn/thread-464556-1-1.html 豁然想起也用示波器测测看,发现TMP36的信号线上叠加了一个2us的方波,而且将与电脑的RX拔掉就没了,再测RX线是5V的TTL电平,问题应该就在于这个5V的TTL电平吧?然后给5V的RX线中串接一个10K的电阻,一切正常了。这就是问题的结局。

    

     问题回顾:

     第一版用的是自制的3.3V TTL与电脑通信,故一切OK!第二版直接采用USB转232 TTL(TTL为5V电平,未测,之前不知)

     

     疑惑:

     PA4管脚的电平不对?为什么影响到了PA1?为什么么有影响到PA0?再说PA4都配置为UART管脚了,怎么又牵扯到芯片内部的模拟量的东东(当然完全没关系估计是不可能的!)?这么说来,那通信之类的干扰岂不是对模拟量影响很大?难道不是芯片的BUG?

此帖出自stm32/stm8论坛

最新回复

感谢博主分享经验,最近在使用32的ad也遇到了这样的问题,首先是在stm32f103c8t6上进行测试,没有问题,adc可以正常读取,然后把代码移植到stm32f103zet6,程序就出现了类似的问题,要么是0,要么是4095,悬空时值是随机的,一旦想要去读取需要的电压时就出现问题,一度怀疑人生,后来查看了博主上边给的链接(原文连接 https://bbs.eeworld.com.cn/thread-464556-1-1.html ),里边的条评论是“问题解决了 硬件设计时在VDDA引脚上的供电与VDDC不一致 VDDC用的是3.3V VDDA用的是2.5V  导致内部的模拟电路不稳定 将VDDA换成3.3V就OK了”,仔细看了看两颗芯片的引脚,发现确实在ad的参考电平上有些不同,随后又查看这些个引脚的用法(参考1:https://blog.csdn.net/m0_38106923/article/details/103488569  参考2:https://blog.csdn.net/guoguo123a/article/details/121997746),于是做出了一个违背祖宗的决定,将zet6板子上的verf+与板子上的vcc3.3短接,ad采集正确!!!(稍有些噪声,估计是vcc3.3电平不稳,参考野火的原理图,VDDA与verf+短接,而VDDA是由vcc3.3经过磁珠以及一些电容滤波后得到的),希望能够帮助遇到类似的小伙伴   详情 回复 发表于 2023-12-15 22:50
点赞 关注
 

回复
举报

664

帖子

104

TA的资源

纯净的硅(中级)

沙发
 

是用STM32CubeMX生成的工程配置吗?

你目前应该还没找到问题的根源

此帖出自stm32/stm8论坛

点评

我用的是标准库,自己写的代码.  详情 回复 发表于 2020-3-19 14:47
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

我使用F030F4P6采集6路ADC的时候出现AD值与电压值对不上的情况,后来加了一句HAL_ADCEx_Calibration_Start(&hadc);    就好了

此帖出自stm32/stm8论坛

点评

我用标准库,自己写的代码,也调用了校准,我的值是对的,就是PA4配置为UART时,如果与5V的TTL电平连接时,会影响PA1(码值4095),PA0是好的.  详情 回复 发表于 2020-3-19 14:49
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

4
 
gs001588 发表于 2020-1-28 15:28 是用STM32CubeMX生成的工程配置吗? 你目前应该还没找到问题的根源

我用的是标准库,自己写的代码.

此帖出自stm32/stm8论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

5
 
stcanx 发表于 2020-1-28 21:48 我使用F030F4P6采集6路ADC的时候出现AD值与电压值对不上的情况,后来加了一句HAL_ADCEx_Calibration_Start( ...

我用标准库,自己写的代码,也调用了校准,我的值是对的,就是PA4配置为UART时,如果与5V的TTL电平连接时,会影响PA1(码值4095),PA0是好的.

此帖出自stm32/stm8论坛
 
 
 

回复

14

帖子

0

TA的资源

一粒金砂(初级)

6
 

顶一下

此帖出自stm32/stm8论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

7
 

感谢博主分享经验,最近在使用32的ad也遇到了这样的问题,首先是在stm32f103c8t6上进行测试,没有问题,adc可以正常读取,然后把代码移植到stm32f103zet6,程序就出现了类似的问题,要么是0,要么是4095,悬空时值是随机的,一旦想要去读取需要的电压时就出现问题,一度怀疑人生,后来查看了博主上边给的链接(原文连接 https://bbs.eeworld.com.cn/thread-464556-1-1.html ),里边的条评论是“问题解决了 硬件设计时在VDDA引脚上的供电与VDDC不一致 VDDC用的是3.3V VDDA用的是2.5V  导致内部的模拟电路不稳定 将VDDA换成3.3V就OK了”,仔细看了看两颗芯片的引脚,发现确实在ad的参考电平上有些不同,随后又查看这些个引脚的用法(参考1:https://blog.csdn.net/m0_38106923/article/details/103488569  参考2:https://blog.csdn.net/guoguo123a/article/details/121997746),于是做出了一个违背祖宗的决定,将zet6板子上的verf+与板子上的vcc3.3短接,ad采集正确!!!(稍有些噪声,估计是vcc3.3电平不稳,参考野火的原理图,VDDA与verf+短接,而VDDA是由vcc3.3经过磁珠以及一些电容滤波后得到的),希望能够帮助遇到类似的小伙伴

此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表