打印

MSP430进入lpm4后,MCU会偶尔丢失i/o中断

[复制链接]
1995|37
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
430_NEW_MAN|  楼主 | 2016-12-8 17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
430进入LMP4 ,通过外部的RTC来唤醒,偶尔会出现无法唤醒, 如果再次出发mcu 可以正常唤醒并运行,可以确定RTC是有输出信号来唤醒MCU的,貌似mcu没有响应边沿中断,
(边沿设置、中断使能 什么的都没有问题)

时钟芯片内部的震荡时钟  16MHZ,

进入睡眠:
............
SetVCore(PMMCOREV_0);  //进步一降低功耗
      __bis_SR_register( LPM4_bits + GIE );
      SetVCore( PMMCOREV_3 );
.............

唤醒中断
#pragma vector=PORT2_VECTOR
__interrupt static void prvSelectButtonInterrupt(void) {

           LPM4_EXIT;
           /* add some power on */
           delay_ms(2000);
           TA0CTL |= MC_1;
        }

以上是大概的代码,我有一个疑问,在进入睡眠前SetVCore(PMMCOREV_0);是否有问题? 因为我的时钟是16mhz的,
这样会不会对中断有影响? 请帮忙解答疑问

相关帖子

沙发
dirtwillfly| | 2016-12-8 19:09 | 只看该作者
你用的那个型号的msp430?
你可以在中断服务程序里点亮个led验证是不是真的没唤醒,或者让led闪烁,看唤醒后的时钟频率情况

使用特权

评论回复
板凳
430_NEW_MAN|  楼主 | 2016-12-8 20:15 | 只看该作者
msp43067461  唤醒会打印内容的,  确定错过了RTC的唤醒信号, RTC的设置确定没有问题,  似乎是mcu进入lmp4后 会有很小的概率丢失中断

使用特权

评论回复
地板
dirtwillfly| | 2016-12-9 09:13 | 只看该作者
为啥不用内部的rtc呢?

使用特权

评论回复
5
430_NEW_MAN|  楼主 | 2016-12-9 10:38 | 只看该作者
内部RTC不准, 我外部用的是精度较高的RTC和晶体

使用特权

评论回复
6
dirtwillfly| | 2016-12-9 15:51 | 只看该作者
建议观察一下唤醒型号的波形,这样可以判断是外围电路的问题还是mcu的问题

使用特权

评论回复
7
430_NEW_MAN|  楼主 | 2016-12-9 16:42 | 只看该作者
本帖最后由 430_NEW_MAN 于 2016-12-9 16:45 编辑
dirtwillfly 发表于 2016-12-9 15:51
建议观察一下唤醒型号的波形,这样可以判断是外围电路的问题还是mcu的问题 ...

波形没有毛刺,已经排错波形差的情况, I/o中断设置也是没有问题的.现在测试通过唤醒前后 读外部RTC内部的flag寄存器来判断是RTC问题还是MCU问题. 这个问题概率比较低.

使用特权

评论回复
8
dirtwillfly| | 2016-12-9 16:56 | 只看该作者
430_NEW_MAN 发表于 2016-12-9 16:42
波形没有毛刺,已经排错波形差的情况, I/o中断设置也是没有问题的.现在测试通过唤醒前后 读外部RTC内部的fl ...

rtc和mcu距离和走线怎么样,小概率也有可能是干扰

使用特权

评论回复
9
430_NEW_MAN|  楼主 | 2016-12-9 16:56 | 只看该作者
dirtwillfly 发表于 2016-12-9 16:56
rtc和mcu距离和走线怎么样,小概率也有可能是干扰

走线很短,大概1cm吧,

使用特权

评论回复
10
mcu430| | 2016-12-9 20:51 | 只看该作者
这个要ti的回答啦

使用特权

评论回复
11
ayl439| | 2016-12-10 09:22 | 只看该作者
你的430是什么型号??430供电电压是多高?

使用特权

评论回复
12
ayl439| | 2016-12-10 09:29 | 只看该作者
建议你用LPM3试验一下

LPM3和LPM4的功耗不会差太多,到了那个程度,我觉得绝大部分场合那点功耗影响不大了,又不是数量级的差距

使用特权

评论回复
13
suzhanhua| | 2016-12-10 22:48 | 只看该作者
中断丢失是不是信号太小了

使用特权

评论回复
14
suzhanhua| | 2016-12-10 22:51 | 只看该作者
低功耗在唤醒的时候,是不是存在延迟?

使用特权

评论回复
15
typeof| | 2016-12-11 16:46 | 只看该作者
IO中断不能及时响应?

使用特权

评论回复
16
typeof| | 2016-12-11 16:49 | 只看该作者
LPM使用的是什么唤醒?

使用特权

评论回复
17
vibra2016| | 2016-12-11 21:39 | 只看该作者
那就是IO口中断驱动的要提高

使用特权

评论回复
18
430_NEW_MAN|  楼主 | 2016-12-12 09:50 | 只看该作者
typeof 发表于 2016-12-11 16:49
LPM使用的是什么唤醒?

P2口的I/O中断

使用特权

评论回复
19
430_NEW_MAN|  楼主 | 2016-12-12 09:53 | 只看该作者
suzhanhua 发表于 2016-12-10 22:48
中断丢失是不是信号太小了

不小,下降沿触发, 外部有上拉3.3V, 示波器捕捉到的波形没有毛刺.下降沿大概15us,两个板子各跑了72小时了,还没有复现

使用特权

评论回复
20
430_NEW_MAN|  楼主 | 2016-12-12 09:54 | 只看该作者
ayl439 发表于 2016-12-10 09:22
你的430是什么型号??430供电电压是多高?

3.3V F67461

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

19

帖子

1

粉丝