查看: 4807|回复: 14

[已解决] 从run mode和vlls3 mode切换的问题(已解决)

[复制链接]
  • TA的每日心情
    奋斗
    2018-7-24 11:40
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    11

    主题

    78

    帖子

    0

    注册会员

    Rank: 2

    积分
    171
    最后登录
    2020-11-22
    发表于 2014-2-19 11:49:19 | 显示全部楼层 |阅读模式
     现在有个问题是芯片K10从RUN mode进入vlls3 mode,使用LLWU唤醒后有问题,找不出原因,请高手指点, 多谢!!!
    板子上电后电流是30ma,PTB22置为低电平,进入休眠后是6ma,llwu唤醒后是13ma,PTB22应该置为高电平,但没有。 
    使用 PTA4 llwu唤醒的。
     
     
     代码如下:
     
    UINT32   g_SysTimeBase= 0;

    VOID main(VOID)
    {

        DisableInterrupts;                      //关中断

        GPIO_Base_Init(GPIO_PORTB, 22, IO_OUT, IO_HIGH);
        GPIO_Base_ClrN(PORTB,22);

        LLWU_InitWakeupPort();

        LPTMR_RunSystemTimeBase(); // 使用LPTMR 定时器100ms超时

        EnableInterrupts;                       //开中断


        while(TRUE)
        {


            if (g_SysTimeBase == 100)
            {
                MC_EnterVLLS3();
            }

        }



    LLWU初始化相关配置:
    VOID LLWU_InitWakeupPort(VOID)
    {
        SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK;
        PORT_PCR_REG(PORTA_BASE_PTR, 4) &= ~PORT_PCR_MUX_MASK; 
        PORT_PCR_REG(PORTA_BASE_PTR, 4) |= PORT_PCR_MUX(1);          // 配置相应引脚为GPIO功能

        enable_irq(INT_LLW - 16);

        LLWU_PE1 = LLWU_PE1_WUPE3(2);
        if (LLWU_F1 & LLWU_F1_WUF3_MASK)
        {
            LLWU_F1 |= LLWU_F1_WUF3_MASK;
        }

        if (PMC_REGSC & PMC_REGSC_ACKISO_MASK)
        {
            PMC_REGSC |= PMC_REGSC_ACKISO_MASK;
        }
    }

    LLWU中断处理函数
    VOID LLWU_ISR(VOID)
    {
        //UINT32  i;

        if (LLWU_F1 & LLWU_F1_WUF3_MASK)
        {
            LLWU_F1 |= LLWU_F1_WUF3_MASK;   // write one to clear the flag
        }

        if (PMC_REGSC & PMC_REGSC_ACKISO_MASK)
        {
            PMC_REGSC |= PMC_REGSC_ACKISO_MASK;
        }

        GPIO_Base_Init(GPIO_PORTB, 22, IO_OUT, IO_HIGH);
        GPIO_Base_SetN(PORTB, 22);
    }



    进入VLLS3 mode
    VOID MC_EnterVLLS3(VOID)
    {
        volatile unsigned int dummyread;
        /* Write to PMPROT to allow VLLS3 power modes */
        SMC_PMPROT = SMC_PMPROT_AVLLS_MASK;

        /* Set the STOPM field to 0b100 for VLLS3 mode */
        SMC_PMCTRL &= ~SMC_PMCTRL_STOPM_MASK;
        SMC_PMCTRL |=  SMC_PMCTRL_STOPM(0x4);

        /* set VLLSM = 0b11 */
        SMC_VLLSCTRL =  SMC_VLLSCTRL_VLLSM(3);

        /*wait for write to complete to SMC before stopping core */
        dummyread = SMC_VLLSCTRL;

        /* Now execute the stop instruction to go into VLLS3 */
        stop();

    }


    //LPTMR中断处理
    VOID LPTMR_ISR(VOID)
    {
        LPTMR0_CSR |= LPTMR_CSR_TCF_MASK;        //写1清除中断标志

        g_SysTimeBase++;

    }



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

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-7-24 11:40
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    11

    主题

    78

    帖子

    0

    注册会员

    Rank: 2

    积分
    171
    最后登录
    2020-11-22
     楼主| 发表于 2014-2-20 10:31:35 | 显示全部楼层

    RE:从run mode和vlls3 mode切换的问题

    顶一下,求大神解答。。。。。。。。。。。。。。。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-2-20 10:49:17 | 显示全部楼层

    回复:从run mode和vlls3 mode切换的问题

    楼主你好,请问你的K10芯片具体型号及maskset编号(芯片表面刻的5位数字、英文组合)?
    还有你进入VLLS3的电流偏大很多啊,从数据手册上看常温下VLLS3的电流最大也就23uA?
    楼主是否尝试用其他LLWU唤醒操作过,因为PTA4引脚比较特别上面复用了NMI_b功能?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-7-24 11:40
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    11

    主题

    78

    帖子

    0

    注册会员

    Rank: 2

    积分
    171
    最后登录
    2020-11-22
     楼主| 发表于 2014-2-20 14:50:22 | 显示全部楼层

    回复:从run mode和vlls3 mode切换的问题

    回复第 3 楼 于2014-02-20 10:49:17发表:
    楼主你好,请问你的K10芯片具体型号及maskset编号(芯片表面刻的5位数字、英文组合)?  
     MK10DX256VLL7
    还有你进入VLLS3的电流偏大很多啊,从数据手册上看常温下VLLS3的电流最大也就23uA?    
     这个应该是受到电路板的影响,我直接看模拟电源的输出电流值
    楼主是否尝试用其他LLWU唤醒操作过,因为PTA4引脚比较特别上面复用了NMI_b功能?    
    其他的LLWU没有试,我对PTA4的复用做了定义啊
      SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK;
        PORT_PCR_REG(PORTA_BASE_PTR, 4) &= ~PORT_PCR_MUX_MASK; 
        PORT_PCR_REG(PORTA_BASE_PTR, 4) |= PORT_PCR_MUX(1);          // 配置相应引脚为LLWU
     

     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-2-20 18:59:10 | 显示全部楼层

    回复:从run mode和vlls3 mode切换的问题

    回复第 4 楼 于2014-02-20 14:50:22发表:
    回复第 3 楼 于2014-02-20 10:49:17发表:
    楼主你好,请问你的K10芯片具体型号及maskset编号(芯片表面刻的5位数字、英文组合)?  
     MK10DX256VLL7
    还有你进入VLLS3的电流偏大很多啊,从数据手册上看常温下VLLS3的电流最大也就23uA?    
     这个应该是受到电路板的影响,我直接看模拟电源的输出电流值
    楼主是否尝试用其他LLWU唤醒操作过,因为PTA4引脚比较特别上面复用了NMI_b功能?    
    其他的LLWU没有试,我对PTA4的复用做了定义啊
      SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK;
        PORT_PCR_REG(PORTA_BASE_PTR, 4) &= ~PORT_PCR_MUX_MASK; 
        PORT_PCR_REG(PORTA_BASE_PTR, 4) |= PORT_PCR_MUX(1);          // 配置相应引脚为LLWU
     

     
     

    建议你先使用其他LLWU引脚测试一下。
     
    因为NMI_b引脚功能并不是仅你切换到其他复选功能,它的NMI不可屏蔽功能就禁止了的。
    要禁止NMI功能请看参考手册K10P100M72SF1RM的“6.3.3 FOPT boot options章节”描述。
    FOPT[NMI_DIS]用于控制NMI功能是否使能,FOPT寄存器位于Flash的0x0040D地址,用户需固化0x0040D地址值使得芯片在boot时就让FOPT装载禁止NMI功能的值。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-2-21 11:32:47 | 显示全部楼层

    回复:从run mode和vlls3 mode切换的问题

    楼主你好,我的硬件平台是TWR-K60D100M开发板。
    软件是F:\KINETIS512_V2_SC\build\iar\pmc_demo例程上修改的。
    你可以参考一下。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-7-24 11:40
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    11

    主题

    78

    帖子

    0

    注册会员

    Rank: 2

    积分
    171
    最后登录
    2020-11-22
     楼主| 发表于 2014-2-24 16:05:50 | 显示全部楼层

    回复:从run mode和vlls3 mode切换的问题

    回复第 6 楼 于2014-02-21 11:32:47发表:
    楼主你好,我的硬件平台是TWR-K60D100M开发板。
    软件是F:\KINETIS512_V2_SC\build\iar\pmc_demo例程上修改的。
    你可以参考一下。
     
    多谢版主的大力支持,发下例程,谢谢。
    我换到LLWU_P14,配置为下降沿触发中断,发现芯片直接复位了。。。。。
     
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-7-24 11:40
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    11

    主题

    78

    帖子

    0

    注册会员

    Rank: 2

    积分
    171
    最后登录
    2020-11-22
     楼主| 发表于 2014-2-24 16:28:17 | 显示全部楼层

    回复:从run mode和vlls3 mode切换的问题

    回复第 6 楼 于2014-02-21 11:32:47发表:
    楼主你好,我的硬件平台是TWR-K60D100M开发板。
    软件是F:\KINETIS512_V2_SC\build\iar\pmc_demo例程上修改的。
    你可以参考一下。
     
    还有几个问题请教下版主:
    pmc_demo例程中,进入vllsx模式前有 这个prepareToGetLowestPower 函数
    1、uart(OFF);    是否进入vllsx前必须把所有的GPIO引脚恢复成默认状态?
    2、clockMonitor(OFF); 这个是否也是必要的?
    3、JTAG_TDO_PullUp_Enable();    这个设置有什么作用?
    感谢答复,谢谢
     
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-2-24 16:57:30 | 显示全部楼层

    回复:从run mode和vlls3 mode切换的问题

    回复第 7 楼 于2014-02-24 16:05:50发表:
    回复第 6 楼 于2014-02-21 11:32:47发表:
    楼主你好,我的硬件平台是TWR-K60D100M开发板。
    软件是F:\KINETIS512_V2_SC\build\iar\pmc_demo例程上修改的。
    你可以参考一下。
     
    多谢版主的大力支持,发下例程,谢谢。
    我换到LLWU_P14,配置为下降沿触发中断,发现芯片直接复位了。。。。。

     

    这个就是飞思卡尔官网上的Kinetis 100MHz V2硅版本的例程包[url=https://www.freescale.co
    m/webapp/sps/download/license.jsp?colCode=KINETIS512_V2_SC&location=null&fpsp=1&WT_TYPE=Snippets,%20Boot%20Code,%20Headers,%20Monitors,%20etc.&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=zip&WT_ASSET=Downloads&sr=9&amparent_nodeId=1333141411984714199192&amparent_pageType=product&amparent_nodeId=1333141411984714199192&amparent_pageType=product]KINETIS512_V2_SC[/url]中的程序。
    当然我在上面稍作了修改,这是我测试PTA4引脚唤醒VLLS3的程序。
     

    KINETIS512_V2_SC_pmc.zip

    216.02 KB, 下载次数: 4

    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-2-24 17:01:13 | 显示全部楼层

    回复:从run mode和vlls3 mode切换的问题

    楼上这个我修改过的例程,因为用到了PTA4引脚,所以还需根据附件视频操作一下。
    也就是我在5楼提到的,为了关闭NMI功能需要在IAR下对flash的操作。

    IAR Flash Loader.zip

    8.79 MB, 下载次数: 8

    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-19 01:23 , Processed in 0.111535 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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