查看: 7413|回复: 6

[S12] S9S12G128低功耗模式

[复制链接]

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
47
最后登录
1970-1-1
发表于 2015-6-15 11:37:27 | 显示全部楼层 |阅读模式
我在调试S12G128单片机的低功耗fullstop mode时遇到这个情况:
        - 单片机执行__asm("STOP"); 指令进入stopmode,单片机加外设消耗电流有10mA
       ps:我尝试过将其他驱动芯片都从线路板上拿掉,只留下单片机,单片机不用的IO口我置为输出0,关闭所有外设模块,电流还是10mA.
        - 单片机执行__asm("ANDCC #0x7F"); __asm("STOP");进入stop mode,单片机加外设消耗电流1mA.
        此部分代码如下(可以通过CAN总线或IRQ引脚唤醒):
      {
          HW_Watchdog_Disable();   
         asm SEI;   
          ......(关闭外设模块)                                   
         CANCTL0_SLPRQ    =  1;
          while(!CANCTL1_SLPAK);
         CANCTL0_WUPE     =  1;
          CANRIER_WUPIE     =  1;
          CANCTL1_WUPM  =  1;      
         while(!CANCTL1_SLPAK);         
          IRQCR_IRQEN        =  1;
        CPMUCLKS_PSTP    =  0;      
         asm CLI;   
         Cpu_SetStopMode();    /* __asm("ANDCC #0x7F"); __asm("STOP"); */
         _Startup();                    
       }
        
     1. 此时ANDCC #0x7F对条件代码寄存器CCR操作会影响什么? 为什么消耗电流差别这么大?
     2. 执行__asm("ANDCC #0x7F"); __asm("STOP");进入了stop mode,通过IRQ引脚或者CAN总线唤醒后,单片机程序从哪里开始执行?我现在是执行的启动代码,从启动代码里跳到main函数执行。
     3.  执行__asm("ANDCC #0x7F"); __asm("STOP");进入了stop mode,重新上电(不触发唤醒信号),单片机上电复位程序从哪里开始执行?目前情况是单片机重新上电后保持睡眠状态,唤醒单片机后可正常工作。

我知道答案 目前已有6人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2015-6-15 15:36:03 | 显示全部楼层
    休眠以后,唤醒是从休眠地方继续执行。楼主把IO设置为输入再测试一下功耗。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16874
    最后登录
    1970-1-1
    发表于 2015-6-15 23:59:02 | 显示全部楼层
    学习了
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    7

    帖子

    0

    新手上路

    Rank: 1

    积分
    47
    最后登录
    1970-1-1
     楼主| 发表于 2015-6-16 15:04:56 | 显示全部楼层
    安 发表于 2015-6-15 15:36
    休眠以后,唤醒是从休眠地方继续执行。楼主把IO设置为输入再测试一下功耗。 ...

    前两个问题搞定。第三个问题还没有搞定。系统重新上电后,应该会执行上电复位,但是我上电后,还在休眠状态。不知道什么原因
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    205

    帖子

    0

    高级会员

    Rank: 4

    积分
    516
    最后登录
    2016-2-16
    发表于 2015-6-16 18:00:09 | 显示全部楼层
    学习了啊
    回复

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2015-6-17 09:20:12 | 显示全部楼层
    这个只能通过代码分析了。看看是不是一上来就进入了休眠模式。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    11

    帖子

    0

    新手上路

    Rank: 1

    积分
    41
    最后登录
    1970-1-1
    发表于 2015-6-18 11:07:54 | 显示全部楼层
    请问下楼主,进入Full Stop Mode时MCU是否会复位?另外,前两个问题怎么是什么原因,怎么解决的,能否分享下?
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-13 04:29 , Processed in 0.100462 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表