[技术问题解答] KL15 LLS低功耗模式j-link连不上了,怎么办?

[复制链接]
4339|31
 楼主| luofeng2g 发表于 2015-4-3 14:12 | 显示全部楼层 |阅读模式
最近做功耗测试,就弄了个LLS模式,上电直接进入LLS模式,之后debug不了了,然后j-link连不上了,是什么原因啊?怎么办?
 楼主| luofeng2g 发表于 2015-4-3 14:12 | 显示全部楼层
@FSL_TICS_ZJJ  遇到过这样的问题么?求解
aozima 发表于 2015-4-3 14:39 | 显示全部楼层
设置芯片的BOOT引脚,让不要运行用户的程序。
FSL_TICS_ZJJ 发表于 2015-4-3 15:13 | 显示全部楼层
楼主你好!
低功耗的时候,debug接口会被断掉。
所以,你需要把程序烧录到芯片后,断开JLINK, 结合万用表测试电流查看你的具体模式。
FSL_TICS_ZJJ 发表于 2015-4-3 15:14 | 显示全部楼层
你这种现象是正常现象,LLS模式是会自动断掉仿真口的。
 楼主| luofeng2g 发表于 2015-4-3 15:27 | 显示全部楼层
本帖最后由 luofeng2g 于 2015-4-3 16:17 编辑
FSL_TICS_ZJJ 发表于 2015-4-3 15:14
你这种现象是正常现象,LLS模式是会自动断掉仿真口的。

那要怎么唤醒啊,目前烧不进程序!怎么才能唤醒呢????急!!!(附:软件没有做唤醒处理!!怎么办?)
huangxz 发表于 2015-4-3 15:42 | 显示全部楼层
复位的时候可以退出LLS的.
 楼主| luofeng2g 发表于 2015-4-3 16:15 | 显示全部楼层
huangxz 发表于 2015-4-3 15:42
复位的时候可以退出LLS的.

一上电就进了LLS模式,没法连上j-link了;复位也是一样啊!
 楼主| luofeng2g 发表于 2015-4-3 16:17 | 显示全部楼层
@FSL_TICS_ZJJ 求助啊!!我改怎么办?
FSL_TICS_ZJJ 发表于 2015-4-3 16:22 | 显示全部楼层
luofeng2g 发表于 2015-4-3 16:17
@FSL_TICS_ZJJ 求助啊!!我改怎么办?

按住reset按键,然后点击烧录,放开按键,这样试试。
FSL_TICS_ZJJ 发表于 2015-4-3 16:23 | 显示全部楼层
luofeng2g 发表于 2015-4-3 16:17
@FSL_TICS_ZJJ 求助啊!!我改怎么办?

还有,就是使用JLINK commander,看看能不能找到内核,能找到,输入unlock kinetis, 全片擦除下。
 楼主| luofeng2g 发表于 2015-4-3 16:32 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-4-3 16:23
还有,就是使用JLINK commander,看看能不能找到内核,能找到,输入unlock kinetis, 全片擦除下。 ...

找不到!
FSL_TICS_ZJJ 发表于 2015-4-3 16:35 | 显示全部楼层

你芯片没坏吧?
不会被锁死了吧。
你代码除了做低功耗,还做了啥?
你把你代码给我,我烧试试,低功耗不会造成再次连接不上的问题的。
 楼主| luofeng2g 发表于 2015-4-3 17:13 | 显示全部楼层
本帖最后由 luofeng2g 于 2015-4-3 17:32 编辑
FSL_TICS_ZJJ 发表于 2015-4-3 16:35
你芯片没坏吧?
不会被锁死了吧。
你代码除了做低功耗,还做了啥?

int main(void)
{
//    MASTER_INTERRUPT_DISABLE();
//    BGTASK_SCHEDULER_DECLARE();
//   
//    // 驱动初始化
    System_Init();
//    Power_Init();
//    Power_On();
//    Flash_Init();
//    ConsoleUart_Init();
////
//    FloodLight_Init();
#ifdef _CS_BTH_OPTION
//    BleUart_Init();
//    BleModule_Init();
#else
    BthUart_Init();
#endif
    // 功能模块初始化
//    BGTASK_SCHEDULER_INIT();
//    TimerTaskScheduler_Init();
//    CmdLine_Init();
//    DncpStack_Init();
    //LaiTest_InitStack(0);    // 协议栈初始化
//    Button_Init();
//    McuFlash_Init();
//    Flash_Init();
//    Adc_Init();
//    Buzz_Init();
//    SysLed_Init();
//    HardVersion_Init();
//    BatteryCharge_Init();
#ifdef _CS_BTH_OPTION

#else
    BluetoothManager_Init();
    AutoConfig_Init();
#endif
    // 开启总中断
//    MASTER_INTERRUPT_ENABLE();
////
////    // 服务开启
//    TimerTaskScheduler_Start();
//
//    LowPowerDetect_Start();
    PowerMode_SwitchToLLSMode();
//    PowerMode_SwitchToWaitMode();
    while (1)
    {
        //后台任务调度
//        BGTASK_SCHEDULER_RUN();

    }

    return 0;
}

void PowerMode_SwitchToLLSMode(void)
{
    volatile Uint8 dummyRead;
    SMC_PMPROT = SMC_PMPROT_ALLS_MASK;

    SMC_PMCTRL &= ~SMC_PMCTRL_STOPM_MASK;
    SMC_PMCTRL |= SMC_PMCTRL_STOPM(0X03);

    dummyRead = SMC_PMCTRL;

    SCB_SCR |= SCB_SCR_SLEEPDEEP_MASK;
#ifdef CMSIS
    __wfi();
#else
    /* WFI instruction will start entry into LLS mode */
    asm("WFI");
#endif

}

程序就这两句代码了,(公司产品,就不给你发代码了);一开始我以为也是芯片坏了,但烧录好几块了,j-link都连不上了!不得不让我怀疑。。。

又出现了一块!!


FSL_TICS_ZJJ 发表于 2015-4-3 17:34 | 显示全部楼层
luofeng2g 发表于 2015-4-3 17:13
int main(void)
{
//    MASTER_INTERRUPT_DISABLE();

把你芯片的具体型号发给我,我做个代码,直接进低功耗的,然后给你,看你JLINK烧过能不能连,如果能连,我只能怀疑你代码修改flash了。
FSL_TICS_ZJJ 发表于 2015-4-3 17:45 | 显示全部楼层
你一直按住reset,看看能不能在JLINK commander中看到内核
FSL_TICS_ZJJ 发表于 2015-4-3 17:46 | 显示全部楼层
能到内核之后,你再松开reset,然后输入unlock kinetis, 就能全片擦除了。
 楼主| luofeng2g 发表于 2015-4-3 17:49 | 显示全部楼层
本帖最后由 luofeng2g 于 2015-4-3 17:54 编辑
FSL_TICS_ZJJ 发表于 2015-4-3 17:46
能到内核之后,你再松开reset,然后输入unlock kinetis, 就能全片擦除了。

嗯,已经搞定了,谢谢!!貌似是进了LLS模式,我测了下电流,200ua左右。型号是KL16Z64VFT4,上面说错了!
 楼主| luofeng2g 发表于 2015-4-3 17:53 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-4-3 17:46
能到内核之后,你再松开reset,然后输入unlock kinetis, 就能全片擦除了。

就是这样操作成功的,那这个是什么原因导致的?
lvyunhua 发表于 2015-4-3 22:37 | 显示全部楼层
学习了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

824

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部