你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F0系列ADC CH17用法

[复制链接]
刚声打火机 发布时间:2015-10-13 16:24
目前F0系列的MCU,我只用过F030和F051(F031)两者各有自己的Reference Manual 以及 DataSheet9 M& i0 [: }( j1 ~8 L+ C2 l
0 i& B" @# ~. K" s$ v
6 B' R8 N" M! K
我发现ST的文档还是比较坑的,就如何利用内部CH17通道ADC采样求得VCC电压,F030的参考手册里面并没有
( d2 b4 S2 m2 L% X解释得很清楚,网上的帖子也是一大堆,不过没有一个准确的,至少我没找到。
" C/ S- W( T' j* m
& E" H; a/ s8 I5 m/ v$ _7 F. {

/ e  p& o" V& K. ?/ t' B今天就这个问题,作一个笔记,方便以后查阅:) l3 p" p7 Y: H( K, M, l- Q0 _2 V
首先,我们翻开F030的DataSheet来看看(F030的DataSheet:DS9773)' H$ T5 j5 O, H" u3 f
1.png * e. s5 u& N7 v1 |
! ~4 D+ w* F" ]. c9 a) C
看看这段英文,大概的意思就是MCU有一个内部参考电压,是和ADC通道17相连的。ST公司在MCU
/ S1 h9 c$ P8 |2 o生产过程中,会在这样一个环境下对MCU作一个校准:8 `& O; G, d2 t# ^* p7 K6 W
温度30度,为MCU加上较为精确的3.3V电压时,获取ADC CH17的AD值Vrefint_cal,并且把此AD值记录
0 P" f- r2 E, f! v6 G到MCU的内部存储器里面作为一个只读的数据,作为参考。此数据地址为0x1ffff7ba,长度2字节0 |7 N" H- I" ?

' A+ U5 K$ Q1 Q  }: F. F7 d' N然后呢?怎么用呢?datasheet就没下文了,好吧,那我们再去查查Reference Manual
  B) }3 W1 g- X1 s' x7 C找到STM32F030的[RM0360],找到ADC这一章,204页(我这个是Rev3的)6 z# p7 B) r+ ~
2.png
; X' c0 E/ G$ p4 [

. I/ V8 j+ Z0 V# ` 我想说:然并卵!!!" e/ d5 s+ R! X: R" Y! N. e# N
file:///C:/Users/Administrator/AppData/Local/YNote/data/qq64CFFFD5BCF5D79E15E658E5AFC24512/e77d702919e9404aafe723892f30752b/clipboard.png$ s" `% D- b( P2 f( \
4 j' V/ {7 U3 ^3 V5 K& N
看到这里我突然无语了,只讲了内部温度如何求得,居然没讲内部参考电压的用法!!!- r! q. S/ R$ l; `/ L, t, H3 A
所以我说ST的文档坑呢。。。! W6 n% C) Q* N( U6 T! Y; ~
, }# A! ~; S; t" [8 Q, O0 m

/ U3 o8 ^+ ~5 V7 _, `% _0 ~不过还好,我发现虽然这个RM0360里面没有提及VREFINT的用法,但是另一款MCU
+ m7 K8 A8 D% p0 bSTM32F051的参考手册里面有说到:3 X* z3 Y1 a: H0 Q7 _7 T& d

9 o0 e6 F, P$ [5 [6 y$ K: V打开[RM0091]
* Z4 r6 R3 B5 [7 Rfile:///C:/Users/Administrator/AppData/Local/YNote/data/qq64CFFFD5BCF5D79E15E658E5AFC24512/b7f2c021c1b1452b8ee1cf39f729f6f9/clipboard.png& g; e) w. A  L; h" Y
3.png
! I& c, _- y8 T2 ~
& i9 c. {+ l" z1 E: t终于找到了用法,这段英文大概的意思是这样的:
: a/ `$ w7 U; i8 t4 `/ aVDDA提供电压给MCU(MCU能工作的前提条件),但是VDDA的值可能是波动的,或者我们不能知道
) ~# A$ f& v2 I: F# y8 B- Z' I2 z' d其精确值,那么内部的参考电压VREFINT和记录在MCU里的参考值会帮助我们求得当前VDDA的精确值
3 O: r6 g0 W/ y$ X1 o/ E并且给了一个很简单的公式。
4 Y1 K7 C3 U+ n. r) A. G5 RVREFINT_CAL 就是前面提到的生产时记录到MCU内部的一个数据
4 f' G, |8 ~7 t% N6 M8 QVREFINT_DATA 则为ADC CH17采集到的AD值
. `5 f! X+ l0 X; j- p4 q  {& y* B6 m

: i1 S- c7 w: Z/ B" H7 _: i自此,我们终于知道这个内部参考电压是怎么用的了,简单的讲,就是:
# a* g0 C( n0 f: @* d4 F# h当我们无法知道当前VDD的值到底是多少时,可以利用ADC CH17采样值
* L: R9 V& a- }) l以及MCU内部的参考值去求得
) N7 T/ O$ v7 R1 o5 `3 f* M$ D) O) V) M

1 F2 o, G+ U: ~7 |* U此方法,我已经做过实验了,F030和F051上都试过,并且应用于实际产品(估算电池电量),准确性还是挺高的。3 T* B! z+ B7 D. W+ |7 z
1 L& i  b$ M, s

6 I8 U! ]6 }& F. o6 _/ i# s9 G+ mPS:
9 Y% S* Z8 \8 r/ l& r        从公式来看,VDD越高,CH17的值越小;VDD越低,CH17的值反而越大
; Z5 f! u& t- z! g  m" T3 ~. e那么,内部的原理图到底是怎样的呢?很好奇。
& P# f+ |% d* I# W' k+ h
; G+ K9 w1 j" e; P  a$ `/ ?5 l
" w, p9 _5 ~% ?( ^

1 l# C  r: [# v! c

  y$ F( o5 p1 G: Y
) k# U3 c% S2 F* f9 z, _+ n- G" M5 }- p9 V+ C1 [3 F
: ]+ U( a: k7 w& N
  G" m  {7 V, [8 D% H+ [+ R
" |) ?" g) `, \; H2 W1 w5 [

1 O, H. R' `7 W( A' v/ b/ C
, [  }7 Q  H6 M' `* M- z7 Q2 _4 x

6 E* y* F8 T  j. J( H7 F! x  V1 F
; `3 j- R% E" r9 \! V
- G9 B0 C' z4 U4 x
& C, g( y2 d) e7 l/ a' \8 D6 C

3 B2 D' X1 I* A2 Z, t3 B

" p, U3 j+ Q5 M2 M. c, J. g4 B% v+ K, U
; b- R3 @. @6 g7 l
- _% }# N3 j4 q9 ~. T( }  u5 N( |4 `, B

2 {* a% k5 R+ n8 z+ r
9 }8 Q: b9 a! B; _) B

% B  Z8 Q: x( O' \3 G/ r3 O( |. J* H

* A2 p+ o) q1 k. w5 _$ R: X& X2 K% B* }

. P  F5 ^3 N1 W0 f2 v9 n& S- G( j( ?) m% j1 p5 P

* F/ c# D; L0 Q/ O9 c. X) r( a2 `& F, E

/ u2 u2 [. [: o5 i5 z9 g; c( v6 [( {4 X3 }7 g/ b' D

: Y, v2 k- v6 P0 Y1 G  O  z3 U3 x8 Y

( [& O/ s8 L2 N! m/ n/ ~- N" W& B8 H$ d
  e, E' G* }9 D9 x7 v' [/ s
5 |, z8 Y+ o5 D( e! n% O
6 H' Z( j$ d9 `# n5 Y% g7 o
* Z9 w, ]+ ]/ p0 g
: e# |! R/ C/ D/ `, M. v% n3 `5 o# i; Z( H

( g3 a1 _) _8 E5 ?1 p' G5 O8 D

( g7 M  P- `. _8 j) X2 Q, u, F( t0 I1 m, n
4 W: H3 q* ^  b

- z, F; U. S- Y- k- z- J) F

/ ?! z7 [, N# o- G9 ~3 r$ ^  S( U% o$ Z, K6 R# U9 Z$ C7 w
赞 收藏 7 评论16 发布时间:2015-10-13 16:24

举报

16个回答
foxglove 回答时间:2015-10-13 17:15:29
准确性还是挺高
kingsings 回答时间:2015-10-14 00:18:11
按理说,电源电压变了,这时候量化值应该也会变,如果同比例减小,那么采到的数据应该不会变化。
; l0 W" x2 p) n: |. U: ]就是不知道他的量化值是否由一个与电源无关的恒压参考源提供
disheng4688 回答时间:2015-10-14 17:02:55
学习8 n* Y3 ]) F5 `" M9 b7 W& F8 a& g; R
4 J( a' y8 i+ @' \
                     
STM32LEARN 回答时间:2015-10-14 07:49:38
学习了  
yubinwu_3004964 回答时间:2015-10-14 21:12:10
楼主的探索精神赞一个
埃斯提爱慕 回答时间:2015-10-15 10:28:53
提示: 作者被禁止或删除 内容自动屏蔽
yceast 回答时间:2015-10-15 10:43:39
楼主好人  最近内部测温测出来70多度 正在困扰
安臣 回答时间:2015-10-15 12:20:16
为毛我总是搞不定
ruilimeng 回答时间:2015-10-21 11:46:45
谢谢分享!
eshui 回答时间:2015-10-21 11:55:51
非常好的资料,非常感谢分享
wolfgang 回答时间:2016-3-1 17:31:29
这帖讲得透彻
追梦者11号 回答时间:2016-10-17 17:07:01
感谢分享
zbber 回答时间:2016-10-17 21:05:19
按理说,电源电压变了,这时候量化值应该也会变,如果同比例减小,那么采到的数据应该不会变化
C106工作室 回答时间:2017-8-17 16:16:27
问题是,,怎么读取这个  第17通道?需要打开什么吗?
12下一页

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版