正点例程ADC采样最大不是4095mb是多少g吗

单片机12位精度AD采集时,满值输出不是4096-PIC单片机12位AD精度偏大问题。
你正在浏览: &>&
单片机12位精度AD采集时,满值输出不是4096_PIC单片机12位AD精度偏大问题。
单片机12位精度AD采集时,满值输出不是4096
12位的ADC,最大值应该是4095。12位表示一共有2^12=4096种可能,别忘了还有一个0呢。
51单片机中12位双字节数(低12位)求平均数 [
; MOV R0, #40H ;四个数据的起始地址 MOV R2, #4 MOV R3, #0 ;四...]请教关于单片机控制12位串口AD的问题 [
直接使用STM32或者ARM板自带的12位ADC就OK了。]12位AD转换的芯片把输出的数据串行传给51单片机。怎么传? 单片机的SBUF不是只有八位吗? [
是的,SBUF只有八位,但是你可以将12位拆成两次发送啊。 百度嫌我字数不够]急,求教!如何将stc12c5a60s2单片机,10位ad转换变成12位?软件、硬件如何实现?求教!... [
您好,以下是单片机实践团为您解答: 1、首先请您参考以下链接搞清楚一个概念——过采样! http:/...]内部集成12位ad和da的单片机有哪些 [
12位算是比较通用的,单片机种类太多了,你还是按你熟悉的厂家类型找吧.]PIC基本级单片机的指令12位,数据是8位,那么存在ROM里的多少字节? [
MOVLW K指令的的格式为1100 KKKK KKKK,指令是12位的,其中还包含了8位的数据KK...]8位单片机怎么处理12位AD,用C写,是读12位AD转换器。 [
你用的是8位的处理12adc肯定需要两个结果存储器才行,将这两个存储器的值合并即可,注意那个是低8位...]89c52单片机 对12位AD进行控制时是否需要设置AD转化器采样长度?这个问题答案能否发给我 [
这个要看具体AD转换芯片呀, 有些芯片是固定12位, 也有些12位的AD转换芯片可以工作在8位方式,...]毕设求助 ,基于单片机的高精度PWM式12位D-A设计,现在单片机里面的程序不会写啊,求高手指导下!... [
你用什么单片机啊,12位的DA转换,频率是多少的,我也正在弄PWM,我也需要至少10位的,频率25K...]
你可能感兴趣的内容?21ic官方微信-->
后使用快捷导航没有帐号?
ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU
请完成以下验证码
查看: 3081|回复: 5
帮忙看下:STM32ADC,怎么采出来不是0就是4095?,官方例程。
&&已结帖(0)
主题帖子积分
初级技术员, 积分 93, 距离下一级还需 7 积分
初级技术员, 积分 93, 距离下一级还需 7 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
初级技术员, 积分 93, 距离下一级还需 7 积分
初级技术员, 积分 93, 距离下一级还需 7 积分
如题,不想看那些复杂的寄存器了,就想简单的采一下电压,甚至不要求什么精度,判断电池电压的。&想着直接拿例程用下得了,有DMA就有DMA吧,虽然用不到。测试采集PC.4的电压,直接复制的例程。但是采出来不是0就是4095。偶尔会有乱七八糟的数,跟电压无关,一般比较大。&PC.4串68K的电阻接直流可调电源。&更严重的问题,是测试ADC涉嫌把两个STM32都烧了,手头上午还有3个好的板子,目前只有一个了。现象都是烧写这个ADC的程序,用过两次,使用STLIN2就下载不进去了。到PROGRAMING&FLASH那里,IAR没有相应,重启IAR,重启电脑都试过。目前仅有一块,还能用,但是电压不对。&
, , , , , ,
主题帖子积分
初级技术员, 积分 93, 距离下一级还需 7 积分
初级技术员, 积分 93, 距离下一级还需 7 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
初级技术员, 积分 93, 距离下一级还需 7 积分
初级技术员, 积分 93, 距离下一级还需 7 积分
我最重要的一个小板,很多器件都是用它测试的,已经用不
主题帖子积分
初级工程师, 积分 2521, 距离下一级还需 479 积分
初级工程师, 积分 2521, 距离下一级还需 479 积分
主题帖子积分
专家等级:结帖率:25%
主题帖子积分
初级工程师, 积分 2521, 距离下一级还需 479 积分
初级工程师, 积分 2521, 距离下一级还需 479 积分
以前有类似的贴子,上电时你的代码就运行启动了DMA,DMA会不断的把ADC的数据送到RAM。而烧录FLASH是会用到部分RAM的,放在RAM里的代码被DMA改了,所以就烧录出错了。解决的办法是从选择从RAM&BOOT烧录芯片,这样DMA不会启动,烧录代码就可以正常在RAM里运行了。
主题帖子积分
资深工程师, 积分 11272, 距离下一级还需 8728 积分
资深工程师, 积分 11272, 距离下一级还需 8728 积分
主题帖子积分
专家等级:结帖率:75%
主题帖子积分
资深工程师, 积分 11272, 距离下一级还需 8728 积分
资深工程师, 积分 11272, 距离下一级还需 8728 积分
别用DMA的例程
&&很简单,ADC例程别用使用DMA的那个,而用其它更简单的例程。
主题帖子积分
主题帖子积分
专家等级:结帖率:27%打赏:0.00受赏:12.00
主题帖子积分
刚在另一个论坛回答了你的问题,你又发到这里
下次我也不能太着急,等你各处撒完英雄帖,再揭榜不迟,呵呵~~~~~~~~
主题帖子积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
下次我也不能太着急,等你各处撒完英雄帖,再揭榜不迟,呵呵~~~~~~~~
大神,你怎么帮他解决问题的,我也有这个问题啊,你在这个论坛没说啊。
精华达人奖章
等级类勋章
湍急之河流
发帖类勋章
时间类勋章
技术奇才奖章
人才类勋章
时间类勋章
技术领袖奖章
人才类勋章
核心会员奖章
等级类勋章
坚毅之洋流
发帖类勋章
荣誉元老奖章
等级类勋章STM32的ADC很脆弱吗?==
热门型号:
&&&当前位置:
STM32的ADC很脆弱吗?
用户名:mcu000
注册时间: 8:56:00
STM32的ADC很脆弱吗?
最近做一个产品,要测试多串锂电池的电压,系统也是用锂电池供电的。选择的是,稳压管用的是;电池每串的电压范围是2.8~4.2V,目前我系统上做到10串,电压采集直接用分压按照15:1来做的。
问题是:我用电压模拟的时候,ADC采集数据都是好的,但直接把多串电池直接接上,第一次还能正常采集,但热插拔几次,ADC采集出来的数据就全部变成4095,我再尝试读取内部的参照电压和温度器,依然是4095;再把ADC输入的几个管脚配置成IO,能进行正常的电平变化;我再小心翼翼的换上另外一块装有同样程序同样的板子,ADC就能正常采集数据了。我再测试那个异常的板子,串口通讯、PWM、定时器等都是好的,所以我几乎可以肯定是STM32的ADC外设损坏了。这个问题在我的实验中已经碰到了两次,在没有找出最可能的原因之前都不敢做实验了,不是芯片太贵,而且拆卸一次太麻烦了,请大家帮我分析下原因,谢谢!
用户名:mcu000
注册时间: 9:40:00
急呀,已经困惑我一个周了,有哪位兄弟碰到类似的情况呀?
我在STM32板块查了下,没有找到类似的帖子!
用户名:香水城
注册时间: 9:51:00
使用有问题的板子再回头做电压模拟,结果如何呢?
用户名:香水城
注册时间: 9:55:00
楼主的2张图中的Bat03是不是同一个?如果是同一个,问题可就大了!
用户名:mcu000
注册时间: 9:55:00
本帖最后由 mcu000 于
09:56 编辑
已经没有用了,但ADC模拟端口的电压是随外界输入变化而变化,就是ADC采集不到!
用户名:mcu000
注册时间: 10:02:00
香水城 是同一个!
怎么啦,麻烦解释下?
用户名:香水城
注册时间: 10:13:00
当Q1关闭时,Bat03的12.0~16.8V高电压会直接通过ADC引脚进入STM32中。
用户名:mcu000
注册时间: 10:19:00
香水城 不好意思
你说的“Q1关闭”,指的是LDO吗?
用户名:香水城
注册时间: 10:23:00
我说的“Q1关闭”,指的是靠近R33的MOS管,它把SGND与地线连通。
用户名:香水城
注册时间: 10:24:00
我说的“Q1关闭”,指的是靠近R33的MOS管,它把SGND与地线连通。
用户名:mcu000
注册时间: 10:25:00
不好意思,刚看了下,现在这个MOSFET由于货源问题,没有接!我直接跳线接地的!
不是这个原因哦
用户名:mcu000
注册时间: 10:44:00
香水城 还能帮我找出别的什么原因吗?
或者是ADC采集这块,能给我提供一点比较可靠的电路!
我现在不敢轻易上电池测试了,一不小心又把片子干掉了!
其他有没有碰到碰到类似的情况,给点建议,不甚感激!
用户名:香水城
注册时间: 10:45:00
即使不是这个原因,这也是一个问题。
图中没有画出来,所有的Bat01~Bat13之间有什么关系?所有的BatA00~BatA13接到哪里?
还有你在5楼的回答我看不懂,什么东西已经没有用了?
用户名:香水城
注册时间: 10:49:00
电池每串的电压范围是2.8~4.2V,这个电压对应图中哪个信号?共有多少串?每串之间什么关系?
请一次交待清楚,不要让大家管窥一豹,胡乱猜呀。
用户名:mcu000
注册时间: 10:57:00
本帖最后由 mcu000 于
11:00 编辑
3楼: 使用有问题的板子再回头做电压模拟,结果如何呢?
我5楼是针对你这个问题说的,回头再做的时候,已经没有数据返回,ADC采集出来的全部是4095,包括内部参照电压和内部温度;
Bat01~Bat13代表每节电池的正极电压点:
Bat00:&&3.0~4.2V
Bat01:&&6.0~8.4V
Bat02:&&9.0~12.6V
(备注:由于我现在只测试10串,所以暂时把分压比定为15:1,如果串数再多点,电阻分压比就要变了,但这不是影响问题的关键!)
BatA00~BatA13我直接接到CPU的ADC输入端口
另外,谢谢香水城的建议,下次我改版的时候,肯定要把你说的Q1关断的反压问题解决掉!否则始终是个隐患,谢谢!
也谢谢你耐心的解答,非常感动!
用户名:香水城
注册时间: 11:37:00
还是不太清楚你的电池是如何接的。
是否是这样:&&Bat00&&-电池0+&&Bat01&&-电池1+&&Bat02&&-电池2+&&Bat03 ......
在你的热插拔实验时,假定只剩一个电池1时,它是否是只接在Bat01与Bat02之间?
用户名:老狼
注册时间: 11:47:00
所有模拟输入端口,加TVS保护。
用户名:mcu000
注册时间: 12:03:00
电池是这样接的:
不好意思,是我没有说清楚!
这种接法的问题是:当把排线插上,Bat03通过HT7533给CPU供电,同时所有电池的电压信号也通过分压电阻到CPU的ADC输入管脚。
所有的线都已经在电池上接好,要么全有,要么全没!
老狼,你的建议不错,我考虑到了,手上没有这个器件,正在申请购买中;另外,这不是解决问题的最好方法,如果每个输入口线都加的话,10串要就要加10个TVS或者是ESD,成本将接受不了!
(据我们市场部估计,这个产品批量将是至少10K以上的量!)
用户名:老狼
注册时间: 12:17:00
或者修改各个分呀电阻,让每一路都工作在1-1.5伏,你在试一下!,电池的输出,
((4.2×15)/210)×15=4.5 太高了!
而且,插拔的时候,肯定要拉弧呀!
用户名:mcu000
注册时间: 12:23:00
你的建议很对
我现在主要是从我手上有的精密电阻考虑的
而且我目前测试的是10串,最高电压只到42V,输入到ADC端口的只有2.8V
但你说的热插拔拉弧是有可能的
我现在就是想请大家多帮我出点主意
到时候我帮大家建议的方法都加上
确保下次做实验不烧CPU的ADC
否则一个LQFP64脚的芯片拆卸一次太麻烦了,多搞几次,板子都费了!
用户名:xjavr
注册时间: 19:32:00
能不能在R2 。。。上,并个104电容?
用户名:zhzjzh21ic
注册时间: 20:09:00
有两个疑点
1、假定某次插拔中间的电池最后接入,则进入模拟口会出现负电平
2、假定bat03最后接入,则stm32各个IO引脚有电而VCC没电哦。
用户名:zhzjzh21ic
注册时间: 20:13:00
你的电路只有电池从01-02-03-04------依次接入才没问题。
用户名:午夜霓虹
注册时间: 8:39:00
这样做本身就有很大缺陷,不实用。
用户名:午夜霓虹
注册时间: 8:40:00
况且这个电路加电容意义不大,电池本身就相当于一个非常大的电容。
用户名:dotaforgod
注册时间: 8:59:00
目前还看不太懂,学习~!
用户名:mcu000
注册时间: 14:17:00
zhzjzh21ic:
你分析得很有道理,我正在想办法验证你说的问题! 谢谢~
22楼: 你的电路只有电池从01-02-03-04------依次接入才没问题。
午夜霓虹: 这样做本身就有很大缺陷,不实用。
我也想这么做,但实际情况不允许!现在这个产品就是要求要热插拔,从上面各位反映的情况,我还需要提高排线的质量,另外主要还是要在电路上面采取措施!
欢迎大家继续建议,不甚感激!
用户名:IJK
注册时间: 15:51:00
关键是电源和地应该 先于被检测的IO先 连上
其实也不难,可以参考SD卡、USB等等接口的做法:都是规定电源和地的“金手指”比其它引脚长,确保电源和地先接上。
用户名:mcu000
注册时间: 16:15:00
其实也不难,可以参考SD卡、USB等等接口的做法:都是规定电源和地的“金手指”比其它引脚长,确保电源和地先接上。
这好像行不通哟
第一,我的板子尺寸很小;
第二,进CPU的电源有LDO和电容滤波,上电的速度肯定没有管脚速度快;
第三,CPU本身还有个复位电路,又加大了延迟。
现在,我是打算通过一个场管来控制采样电阻网络的地,这样在CPU没有工作的时候,这些电阻网络是浮空的,没有参考!
用户名:老狼
注册时间: 1:07:00
通过一个场管来控制采样电阻网络的地,这样在CPU没有工作的时候,这些电阻网络是浮空的,
-------你这个方案肯定是有问题的,不行呀。为啥?自己想想,其实香水在前面已经提到过这个问题。想想,公共地不接,电路会在哪形成通路? ADC的输入阻抗?ADC的输入电压?
用户名:mcu000
注册时间: 8:08:00
老狼 万分感谢
我昨天已经到ZLG买了一堆3.3V的ESD,准备在所有跟CPU相连接的管脚都加上,再看效果!
心里面悬呀,再烧,就要重新打样板子了!
用户名:czzy
注册时间: 22:16:00
只需在供电Bta03到U3之间串一个二极管就行了
用户名:老狼
注册时间: 11:35:00
二极管的保护速度太慢了!
只能用 ESD 或者TVS
用户名:yaobb1981
注册时间: 15:05:00
信号和电源最好是能够隔离,不能隔离的话就要在信号输入脚上加保护二级管。要不然很容易打坏CPU。
用户名:lanshi
注册时间: 23:38:00
每个AD入口 加一个5V TVS& &,串一个磁珠 在加一个电容
用户名:mcu000
注册时间: 10:22:00
目前我采用的方法是在进入芯片的电源和地之间加上了3.3V的ESD,经过几天的多次插拔测试,目前芯片还安然无恙!
用户名:老狼
注册时间: 11:07:00
兄弟,你在zlg那里,什么价格拿到的货?
热门型号:查看: 224|回复: 11
正点例程ADC采样最大不是4095吗?为什么要进行*(3.3/4096),不应该是除4095吗?
主题帖子精华
中级会员, 积分 465, 距离下一级还需 35 积分
在线时间41 小时
正点例程ADC采样最大不是4095吗?为什么要进行*(3.3/4096),不应该是除4095吗?
正确的应该是/4095.没错。
主题帖子精华
金钱113389
在线时间830 小时
正确的应该是/4095.没错。
主题帖子精华
金牌会员, 积分 1154, 距离下一级还需 1846 积分
在线时间122 小时
因为是4096个数据呀,如果是4095的话,就没有0这个数了
主题帖子精华
新手上路, 积分 34, 距离下一级还需 16 积分
在线时间4 小时
ADC为12位,2的12次方为4096,将3.3v分为4096份
主题帖子精华
中级会员, 积分 433, 距离下一级还需 67 积分
在线时间88 小时
你的ADC分辨率12位=4096,采样参考电源是3.3V,所以从0-3.3V按分辨率计算,每位采样值是(3.3/4096)
主题帖子精华
中级会员, 积分 465, 距离下一级还需 35 积分
在线时间41 小时
你的ADC分辨率12位=4096,采样参考电源是3.3V,所以从0-3.3V按分辨率计算,每位采样值是(3.3/4096)
分辨率12位不是=4095吗?ADC12位都是1的时候,最大,=4095?
主题帖子精华
中级会员, 积分 433, 距离下一级还需 67 积分
在线时间88 小时
分辨率12位不是=4095吗?ADC12位都是1的时候,最大,=4095?
请看下尺子,1M长,它是如何计算的。或许就明白了。
主题帖子精华
初级会员, 积分 110, 距离下一级还需 90 积分
在线时间12 小时
0-个数,也就是说把3.3分成0-份
主题帖子精华
中级会员, 积分 465, 距离下一级还需 35 积分
在线时间41 小时
0-个数,也就是说把3.3分成0-份
3.3V时,ADC的值是4095,难道是这样折算:U=3.3*?
主题帖子精华
中级会员, 积分 465, 距离下一级还需 35 积分
在线时间41 小时
请看下尺子,1M长,它是如何计算的。或许就明白了。
3.3V时,ADC的值是4095,难道是这样折算:U=3.3*?
主题帖子精华
中级会员, 积分 433, 距离下一级还需 67 积分
在线时间88 小时
本帖最后由 csmjmcc 于
11:05 编辑
3.3V时,ADC的值是4095,难道是这样折算:U=3.3*?
0算一格 4095算一格。共4096格。get_adc() * 3.3 / 4096
主题帖子精华
在线时间991 小时
都可以。。。都存在半个分辨率误差
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
Powered by

我要回帖

更多关于 最大采样率 的文章

 

随机推荐