主题中讨论的其他器件: MSP-FET
您好!
我正在开发基于 MSP430F6723的电表。
该芯片在 DVCC 上有电源、在 AUX1上有额外的电池。 其理念是在主电源关闭时切换供电(硬件控制)、存储一些数据并将器件置于 LPM3。 电源恢复后、将仪表置于正常运行状态。
我发现、这在大部分时间都是有效的。 不幸的是、现在和之后都会发生一件奇怪的事情。 当主电源关闭时、芯片将进入某种奇怪的状态、具有高功耗-大约2.5mA (预期5uA 至6uA)。 在这种情况下、电源恢复后、它不会恢复正常、需要2个或3个开/关周期才能使其运行。 如果您连续施加两个或三个关闭周期(在网格上非常正常)、这种情况经常发生。
起初、我以为我的代码出现了问题、因此我尝试简化整个项目。 最后、我要做的是:
#include
void main (void)
{
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
AUXCTL0 = AUXKEY;
AUXIFG=0;
AUXIE|=AUX0SWIE|AUX1SWIE;
AUXCTL0 &=~LOCKAUX;
enable_interrupt ();
while (1)
{
}
}
#pragma vector = AUX_vector
_interrupt void AUX_ISR (void)
{
switch (__evo_in_range (AUXIV、AUXI_AUXMONIFG))
{
案例 AUXI_NONE:中断;
案例 AUXI_AUXSWNMIFG:中断;
AUXI_AUX0SWIFG 案例:
_BIC_SR_REGISTER_ON_EXIT (LPM3_BITS);
中断;
AUXI_AUX1SWIFG 案例:
_bis_SR_register_ON_EXIT (LPM3_bits+GIE);
中断;
案例 AUXI_AUX2SWIFG:中断;
案例 AUXI_AUX0DRPIFG:中断;
案例 AUXI_AUX1DRPIFG:中断;
案例 AUXI_AUX2DRPIFG:中断;
案例 AUXI_AUXMONIFG:中断;
默认值:break;
}
}
这是整个代码、项目中没有其他内容。
在这种情况下、功耗较高、因为某些引脚可能会漏电、但整体情况是相同的- LPM3 - 250 - 300uA 中的正常条件、在这种"大电流"条件下-大约2.8mA。
切换之间是否有最短的时间、或者我需要确保安全以实现可靠切换?
提前感谢
Maxim Karakash