这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » STM32L053之internal voltage reference

共3条 1/1 1 跳转至

STM32L053之internal voltage reference

菜鸟
2015-12-31 16:36:31     打赏

一直做电机控制和工业控制,对系统的稳健性高度关注!

L053我们将用于一个电池供电的IOT设备中,其低功耗是我们非常关注的,同时系统还要随时监测自身电池电压。

我们的新设计中将使用L053内部的电压参考代替原先的外部电压参考,目的是省电、稳健。

于是我们用开发板评估一下该参考电压的性能先。


VREFINT out:               1.224v            

TCoeff        :                25ppm/°C

ACoeff        :                1000ppm

VDDCoeff    :                2000ppm/V

如此的电参数,用来作为电源电压的监测基准,绰绰有余!更有甚者,该基准是经ST的生产流程校准的,校准参数保存地址是:0x1FF8 0078 - 0x1FF8 0079


好了,我们直接用已经应用在F051/F303上的电压校准程序来测量L053的基准,通过校准过程来测量开发板的VCC电压。在芯片的外围寄存器配置稍作修改即可:结果如下


开发板的VCC:  3.313V

VCC测试结果:3320/1000=3.320v

不错!


程序如下:

//-----     SystemFirmware_TemperatureMeasure_Ts_pro / 系统固件_TemperatureMeasure      -----
void  SystemFirmware_TemperatureMeasure_Ts_pro( void )
  {                                                         // Tb: 128ms                 

u8  cBuff;          
s32 _wBuff;
u32 wVTs,wVref,wBuff;

static  u8  cTBuff  =0,
            cCntBuff=0;   

    cTBuff++;
    if( ( cTBuff & 0x7  ) == 0 )                     // Tb: 1s
      {                                                     // device temp calculate

        cCntBuff++;
        sSystemFirmWare._wTempDeviceDataBuff[ (cCntBuff&0x7) ]  = sSystemFirmWare.sTemperatureInput[0xe].iAdcBuff;
        sSystemFirmWare._wVrefDataBuff           [ (cCntBuff&0x7) ]  = sSystemFirmWare.sTemperatureInput[0xf].iAdcBuff;

                                                            // VrefCal
        sSystemFirmWare.iVrefCal = *(vu16*)(0x1FFFF7BA);
                                                            // TsCal
        sSystemFirmWare.iTsCal1  = *(vu16*)(0x1FFFF7B8);
        sSystemFirmWare.iTsCal2  = *(vu16*)(0x1FFFF7C2);

        for( cBuff=0,wVTs=0,wVref=0;cBuff<8;cBuff++ )  
          {
            wVTs +=sSystemFirmWare._wTempDeviceDataBuff[ cBuff ];
            wVref+=sSystemFirmWare._wVrefDataBuff           [ cBuff ];
          }

        wVTs >>= 3;
        wVref>>= 3;
        sSystemFirmWare.wVref = wVref;
                                                            // Vcc 校准 @ VrefCal
        wBuff = 3000;//3300;
        wBuff*= sSystemFirmWare.iVrefCal;
        wBuff/= (wVref+1);

        sSystemFirmWare.iVssAx1000 = wBuff;
    }
  }


总的感觉不错,与303的基准相当,后续将测试低功耗特性,如果OK,我们将使用L053进入设计流程!

谢谢ST !

谢谢EEPW !

谢谢璐璐 !

祝各位新年愉快、平安、有成!

 




关键词: STM32L053    

助工
2016-01-13 10:22:51     打赏
2楼
期待楼主继续更新哦~

院士
2016-01-13 10:27:29     打赏
3楼

楼主是如何实现的啊~~

从程序上面看不出来是将L053的内置电压读出来啊


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]