主题中讨论的其他部件:MSP430F5436,
我遇到了一个问题,我似乎不能过去:一旦启用了外部晶体,我在LPM4模式下燃烧大约230mW (在3.3V时约70mA)。 我在同一主板上有一个类似的处理器(MSP430F5436),它在LPM4中的功耗约为2mW。
详情如下:
1)该板只有几个旁路盖,两个CPU和两个7.37MHz晶体(每个一个)。
2)处理器的代码基本相同:
int main (void){
易失性无符号int I;
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
USE_XT2();
__bis_sr_register(LPM4_bits);//输入LPM4,中断已禁用......... 温度!!!!!!!!!
...但是,“use_XT2”例程是不同的,因为它们特定于每种处理器类型。
对于MSP430F5359 (耗电量过大的设备),“USE_XT2”代码为:
void use_XT2 (void)
{
易失性无符号int I;
PDSEL_L = 0x0C;
//在XT2上使用7.3728mhz xtal设置时钟
UCSCTL0 = 0x0000;//使用FLL时由硬件设置的DCO
UCSCTL1 = 0x0060;// DCORSEL = 6,选择DCO频率范围4.6 - 10.7 MHz
UCSCTL2 = 0x0001;// FLLD = 0,FLLN = 1,
UCSCTL3 = 0x0050;// FLREFCLK = 5 (选择XT2CLK)
// FLLREFDIV = 0 (参考/1)
UCSCTL4 = 0x0555;// ACLK = MCLK = SMCLK = XT2CLK
UCSCTL5 = 0x00;// ACLK,MCLK,SMCLK当前所有DIV为1
//__bis_sr_register(LPM4_bits);//输入LPM4,禁用中断......... 温度!!!!!!!!!
UCSCTL6 = 0x002D;// XT2DRIVE = 0,4至8MHz
// XT2BYPASS = 0,用于XT2操作
// XT2OFF = 0,XT2已打开
// XT1DRIVE = 0
// XTS = 1,不使用高频率上限
// XT1BYPASS = 0
// XCAP = 3,最小值
// SMCLKOFF =0,SMCLK打开
// XT1OFF = 1,xt1关闭
__bis_sr_register(LPM4_bits);//输入LPM4,中断已禁用......... 温度!!!!!!!!!
}// use_xt2()
注意LPM4模式语句。 在当前配置中,功耗为240mW。 如果我从上面的UCSCTL6设置中删除注释,则功率将下降到2mW。 基本上,我是在启用XT2晶体之前停止CPU的。
3)我看了两个CPU的晶体针脚,它们看起来是一样的。
我缺少什么?
提前感谢!!