请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430F5529 您好,
我正在尝试设计电池供电的低功耗系统,并将MSP430F5529启动板用于开发目的。 我正在LPM4和LPM3模式下检查电流消耗。 使用LPM模式的示例代码,启动板的当前消耗大约为1.4uA (与预期的数据表规格匹配)。
问题是当我尝试将 UART和ADC集成到我的代码中时,电流消耗增加到大约300uA。 我创建了一个函数来初始化UART和ADC (如下所示)并在 主函数中调用它。 根据数据表,外围设备和所有时钟预期ACLK在LPM3模式下应处于关闭状态,根据该理论,我预期电流消耗应该稍高,但肯定不会达到300uA。
如果我做错了事,或者预计会有这种消耗,请告诉我。
void uart0_init(void)
{
P3SEL || 0x18;//WFP 3.3 and 3.4 USCI_A0 Tx and Rx
UCA0CTL1= UCSRST; // reset
UCA0CTL1 |= UCSSEL_1; // ACLK 3.2768万 UCOD0BR0
= 3; //速率率UCA0B1= UCA0CT1;
~波率UCA0B1= UCA0B0;UCST= 0波率0波率UCA0波0波0波;// UCCA0波率= UCA0波0波率= UCCA0波率0波0波0波0波0波率= UC0波0波0波0波率 //设置
UCA0IE |= UCRXIE; //启用USCI_A1 RX中断
}
void ADC_init()
{
//配置ADC10 -脉冲采样模式;ADC10SC触发器
ADC12CTL0 = ADC12SHT0_2 + ADC12ON; // 16 ADC10CLK;ADC12REF2_5V + ADC12REFON上的ADC
ADC12CTL1 = ADC12SHP + ADC12CONSEQ_0; // s/w触发,单通道/转换
ADC12CTL2 = ADC12RES_0; // 10位转换结果
ADC12MCTL0 = ADC12SREF_1 + ADC12INCH_11;// AVcc/2
//配置内部引用
同时(REFCTL0和REFGENBUSY); //如果ref发生器忙,请等待
REFCTL0 |= REFVSEL_2 + REFON; //选择内部参考= 2.5V;内部参考打开
__delay_cycles (75); //延迟(~75US),用于确定Ref
}
void main()
{
WDTCTL = WDTPW | WDTHOLD;//秒表计时器
uart0_init(); //正在初始化UART0
ADC_INIT(); //正在初始化ADC
low_power设置(); //此功能将禁用VUSB LDO和SLDO,SVS以及非浮动状态下的配置端口。
__bis_sr_register(LPM3_bits);//输入LPM3
}
谢谢你