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

【基于STM32F3的电机控制】_给力外围之 internal voltage reference

[复制链接]
Lovely_STM32 发布时间:2015-10-11 15:43
本帖最后由 Lovely_STM32 于 2015-10-11 15:49 编辑
1 ^+ N, z. q4 M- L6 t* @8 A' a$ z4 _0 h8 _! C# }
      Vref(internal voltage reference)在STM32F1时代就有了。
+ }7 G/ Q* H2 {0 M( _9 d& @" c" d6 R; n
1.2V±5%的初始精度;+ G4 G) n$ ~1 p$ n. ^: f3 L
100ppm/℃的温度漂移;4 J; I  |; p1 g
Data based on characterization results, not tested in production;
/ J" O8 g# C4 Y5 E; E) R. `2 IGuaranteed by design, not tested in production;
; j% t- N* D$ G! F' l. I0 C
# T% K( i2 P6 z0 s, @      今天STM32F3仍然是如此描述,但有一点有很大提高,每个芯片的Vref都进行了校准,并且提供了校准值(Internal reference voltage calibration values),在某种意义上可以理解为芯片的Vref已经有工厂测试了。
% @( n4 z: @) U) d$ Z4 W! [& Q4 s      FOC应用中,有好多值使用的是标幺值,也有好多值要使用绝对值,与VDD/VERF+相关的部分更是如此。于是使用高精度的电源芯片,例如LM1117_3v3_1%,或者使用外部高精度Vref都是必需的。
  U$ S4 e6 V! ?* [, \) s( G      而使用STM32F3的内部Vref已经可以达到同样的设计招标了!可以用内部Vref来校准VDD/VERF+,代价是多一个对VDD或VDDA_VREF+的校准过程和使用过程中的数据校准,四个应用中的STM32F302CBT6的校准数据如下:/ S. W2 e- Q, X6 N5 Y% t2 C' Z

6 ~! `# ?" N5 C/ F& S测量得到的VDD数据          校准得到的VDD数据       误差9 e" L, n: i& ~! G4 J" q2 A3 W8 f
3.368V                            3.370V                         +0.05%3 K* t5 w# g' Z: d& f/ H0 ?
3.361V                            3.359V                         -0.05%1 U0 r+ P: a. r1 ^' x+ |, k
3.371V                            3.357V                         -0.4%' r8 R6 \. P9 F+ O. s! F
3.368V                            3.371V                         +0.09%
1 P( [# Z8 |+ \3 x8 }; X
& E9 m8 v7 o, t: v* y4 k      如此的测试数据,你一定也可以感受到蝴蝶女神的轻盈之美!
7 R6 e" y/ T! i3 t. }) C  ?" z      当她扇动美丽的翅膀飞舞之时,我都闻到了随风而至的醉人的芬芳!!0 O5 b' V4 W$ Y/ _  B+ ]
9 P8 {8 ^8 ^( W$ ?
//-----     SystemFirmware_TemperatureMeasure_Ts_pro / 系统固件_TemperatureMeasure      -----7 }- w7 H) W" T/ z# `
void  SystemFirmware_TemperatureMeasure_Ts_pro( void ): r  L5 l" Y  a4 }, T( J
  {                                                         // Tb: 128ms                 
% I4 `, y1 w( _6 O; K- i
- }) B8 A" ?: l$ U. a- |5 C* Wu8  cBuff;          9 q% W& \' D, w
s32 _wBuff;
& x1 u0 X2 Y$ m+ @6 H9 fu32 wVTs,wVref,wBuff;4 q, g) X6 K# u/ b

$ S: w+ m. k! r% g& J: j" j8 ^. v; Lstatic  u8  cTBuff  =0,: j& s% Z( b" {1 V4 B! K! Q
            cCntBuff=0;   
, o/ L/ L2 _2 m5 P5 z% Z9 y8 }6 W4 ]/ Z! f; e4 Y
    cTBuff++;  H" U, y. s7 e. u
    if( ( cTBuff & 0x7  ) == 0 )                     // Tb: 1s
# c0 m8 s/ g/ Y9 R  l      {                                                     // device temp calculate2 \, H# s8 K' k; R' o8 W! c

# P& E2 h$ `5 J        cCntBuff++;
7 W# a4 s# Y0 }- Y$ M- q7 E7 u2 o        sSystemFirmWare._wTempDeviceDataBuff[ (cCntBuff&0x7) ]  = sSystemFirmWare.sTemperatureInput[0xe].iAdcBuff;; [+ ^7 G% `  p1 r" ]6 E' Z
        sSystemFirmWare._wVrefDataBuff           [ (cCntBuff&0x7) ]  = sSystemFirmWare.sTemperatureInput[0xf].iAdcBuff;
1 F  q' \7 t! q3 r* u( @( w) L5 t; f0 t1 w6 [& C3 d, T
                                                            // VrefCal
1 [, q1 X6 n4 P  ?- y8 u5 {9 @3 s        sSystemFirmWare.iVrefCal = *(vu16*)(0x1FFFF7BA);! E# a' j$ f$ F6 e
                                                            // TsCal% W0 `( |- Y$ m$ x# T8 k+ @
        sSystemFirmWare.iTsCal1  = *(vu16*)(0x1FFFF7B8);
! y% ]" f; d. ~+ e        sSystemFirmWare.iTsCal2  = *(vu16*)(0x1FFFF7C2);2 Z; v3 R) N# Y

6 C7 F! m2 L! ]; w+ i5 g        for( cBuff=0,wVTs=0,wVref=0;cBuff<8;cBuff++ )  / l# ]% r' X& A  i1 W
          {
! J; [6 b. }# L0 I8 S            wVTs +=sSystemFirmWare._wTempDeviceDataBuff[ cBuff ];- H, o: J7 H. E7 {- I/ z: V6 ^
            wVref+=sSystemFirmWare._wVrefDataBuff           [ cBuff ];9 n$ U( S- m2 t( B! b& c
          }
. Q) P  K8 j8 Q; a/ q4 t
8 F6 H) }3 V. X$ u        wVTs >>= 3;5 @$ }  R$ b( z+ ^) \0 v/ i
        wVref>>= 3;
5 v  B! {, \' ~: H3 V        sSystemFirmWare.wVref = wVref;
  q4 h. J- Z& J  o; p                                                            // Vcc 校准 @ VrefCal4 p0 ]) Y1 ]3 o# `' `; i
        wBuff = 3300;% K! Q" K: G& }) G; A+ y: k% T
        wBuff*= sSystemFirmWare.iVrefCal;5 i6 S6 C% Z9 V4 p6 B, ]9 ]- C
        wBuff/= (wVref+1);! b, x* T! C5 X3 m; {

; x/ U, u4 N  b  M* v1 G# N- n        sSystemFirmWare.iVssAx1000 = wBuff;8 n+ d% X& t" A: R7 ]2 ^6 d
    }
  n( K0 ^; y  a  }
5 [) b" Q& l& t8 q% ^
7 }" d* u8 w& P* a7 ^% _* P' H: `! ^$ @5 q

* g) o# E$ m6 w4 J0 X% Y  d3 q1 T6 ?) r5 \2 Y
赞 收藏 评论4 发布时间:2015-10-11 15:43

举报

4个回答
你好我好大家好! 回答时间:2015-10-11 16:39:23
st做的芯片是越来越适合控制电机了
franki 回答时间:2015-10-11 23:23:08
谢谢 分享  
lkl0305 回答时间:2015-10-12 08:49:37
多谢分享!
JackieLaura 回答时间:2015-10-12 12:12:15
不错,谢谢分享
stmcu.org.png

所属标签

相似技术帖

官网相关资源

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