TI中文支持网
TI专业的中文技术问题搜集分享网站

请教F5529的PMM测试Vcc电压问题

刚做了一个用PMM测Vcc电压的程序,只在2.5V下有效,不管再怎么调试程序都不能更改电压。麻烦各位大虾帮忙可能看是什么问题呢?

#include "msp430f5529.h"

void main( void ) {  

 // Stop watchdog timer to prevent time out reset  

 WDTCTL = WDTPW + WDTHOLD;   

 P1DIR = BIT0;  

 P8DIR = BIT0 + BIT1 + BIT2;

  P1OUT = 0;   P8OUT = 0;  PMMCTL0_H = 0xA5;                                          //开PMM电源管理    

PMMIFG = 0;  // PMMRIE = SVMHVLRIE + SVMLVLRIE + SVMLIE;  

  PMMRIE = SVMHIE;  

SVSMHCTL = SVMHE + SVSMHRRL_6;                   //配置SVML电压  

PMMCTL0_H = 0X00;                                          //锁存配置

    while(1)   {     for(unsigned int i=0;i<60000;i++);     P1OUT ^= BIT0;   } }

#pragma vector=SYSNMI_VECTOR

__interrupt void SYSNMI_ISR(void) {

  P8OUT = BIT1;  

 PMMIFG &= ~SVMHIFG;

 }

Leon Yan:

你这个程序应该是配合原理图贴上来比较好;

再一个对代码详细注释一下,这样方便大家分析。

jie zhang2:

回复 Leon Yan:

谢谢您的回复,这个代码我是用DEMO板来测试的,电路图没什么参考价值。

另外这个PMM检测Vcc电压的用法,有点类似于原来的SVS,与部的电路接法无关。我是把Vcc直接接到一个可调电源上测试的。

Hanson He:

下面是在F5418A系列中验证过的代码,请参考。

设置SetVCore在电压大于3V时,程序才执行。判断VCC电压等级使用SVMH

void main(void)

{

     /******** 进行基本的配置,包括初始化看门狗,GPIO等*******/

   // 慢上电VCC 大约为~1.62-1.85V

   // 为了保证VCore=3,VCC电压需要更高一些

   // SetVCore函数用于监测电压

    while (SetVCore(PMMCOREV_3) != PMM_STATUS_OK);     PMMCTL0_H = 0xA5;

    // 清标志    PMMIFG = 0;    // 如果VCore电压增加,设置SVMH到一个新的电压    SVSMHCTL = SVMHE | SVSHE | (SVSMHRRL0 * 6);  // VSVMH,level6 = 2.90V-3.23V    while ((PMMIFG & SVSMHDLYIFG) == 0) ;    // 清标志    PMMIFG &= ~SVSMHDLYIFG;    // 等待,直到SVMH标志被清除(VCC > 2.90V-3.23V)    while (PMMIFG & SVMHIFG)    {        PMMIFG &= ~SVMHIFG;    }

     //这里电压应当为3V,应用程序执行

}

赞(0)
未经允许不得转载:TI中文支持网 » 请教F5529的PMM测试Vcc电压问题
分享到: 更多 (0)