查看: 4681|回复: 13

[分享] KL02Z进入低功耗VLPS模式IIC通信不正常,影响通信

[复制链接]
  • TA的每日心情
    开心
    2017-4-27 08:44
  • 签到天数: 64 天

    连续签到: 1 天

    [LV.6]常住居民II

    26

    主题

    577

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1703
    最后登录
    1970-1-1
    发表于 2014-8-13 10:34:44 | 显示全部楼层 |阅读模式
     mcu在主循环里判断,如果处理完一些该处理的时间后,会控制今天低功耗VLPS模式,但是此时使用IIC1作为slave同外围模块进行通信时会出现问题,外围模块有时会收不到数据;有时收到的数据不完整,前半部分正确,后半部分出错;有时可以收到完整的数据。
    VLPS模式:
    SMC_PMPROT = SMC_PMPROT_AVLP_MASK;
    SMC_PMCTRL = SMC_PMCCTPL_RUNM(2);
    dummyread = SMC_PMCTRL;
    dummyread++;
    stop();
     
    然而当仿照进入VLPR或者VLPW模式,进入stop前,设置内部快速时钟(MCGIRCLK 4M),此时IIC1 slave通信正常,外围模块可以收到完整的数据。但是我的程序别的地方,有用到TPM1输出PWM方波控制LED灯的闪烁,此时TPM1的使用时内部低速时钟(MCGIRCLK 32K),这样的话,虽然IIC正常了,但是进入VLPS模式,却影响到了PWM的输出,导致LED闪烁异常。
     
    请问如何处理才能使IIC1 TPM1正常工作,且能正常进出低功耗VLPS模式。如何才能三者兼得???之前开了一个贴,没有得到解决方法,现重新开贴,项目在这一块困了有一段时间了,求技术帮忙。。。
     
     
    使用内部时钟的VLPS处理:
    MCG_C1 |= MCG_C1_CLK(1);
    MCG_C2 |= MCG_C2_IRCS_MASK;
    delay(10);
    MCG_C2 |= MCG_C2_LP_MASK;
    SIM_CLKDIV1 |= SIM_CLKDIV1_OUTDIV1(0) | SIM_CLKDIV1_OUTDIV4(4);
     
    SMC_PMPROT = SMC_PMPROT_AVLP_MASK;
    SMC_PMCTRL = SMC_PMCCTPL_RUNM(2);
    dummyread = SMC_PMCTRL;
    dummyread++;
    stop();
     
    TPM1使用的时钟是这样初始化的:
    MCG_C1 = MCG_C1_IREFSTEN_MASK | MCG_C1_IRCLKEN_MASK;
    SIM_SCGC6 = SIM_SCGC6_TPM1_MASK;
    SIM_SOPT2 = SIM_SOPT2_TMPSRC_MASK;
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-4-27 08:44
  • 签到天数: 64 天

    连续签到: 1 天

    [LV.6]常住居民II

    26

    主题

    577

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1703
    最后登录
    1970-1-1
     楼主| 发表于 2014-8-13 11:45:38 | 显示全部楼层

    RE:KL02Z进入低功耗VLPS模式IIC通信不正常,影响通信

    没人?都去吃饭了?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-4-27 08:44
  • 签到天数: 64 天

    连续签到: 1 天

    [LV.6]常住居民II

    26

    主题

    577

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1703
    最后登录
    1970-1-1
     楼主| 发表于 2014-8-13 15:18:40 | 显示全部楼层

    RE:KL02Z进入低功耗VLPS模式IIC通信不正常,影响通信

    。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2014-8-13 16:09:02 | 显示全部楼层

    RE:KL02Z进入低功耗VLPS模式IIC通信不正常,影响通信

    我有一些疑问,为什么进入低功耗以后还要进程I2C通讯呢?当进入低功耗模式以后,需要通过外设来唤醒MCU再进行工作。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-12-22 14:33
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    34

    主题

    512

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1378
    最后登录
    1970-1-1
    发表于 2014-8-13 16:33:12 | 显示全部楼层

    RE:KL02Z进入低功耗VLPS模式IIC通信不正常,影响通信

    来围观一下啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-4-27 08:44
  • 签到天数: 64 天

    连续签到: 1 天

    [LV.6]常住居民II

    26

    主题

    577

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1703
    最后登录
    1970-1-1
     楼主| 发表于 2014-8-14 13:44:48 | 显示全部楼层

    RE:KL02Z进入低功耗VLPS模式IIC通信不正常,影响通信

    外围模块和mcu IIC通信时,地址匹配,不是会自动唤醒吗????
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-4-27 08:44
  • 签到天数: 64 天

    连续签到: 1 天

    [LV.6]常住居民II

    26

    主题

    577

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1703
    最后登录
    1970-1-1
     楼主| 发表于 2014-8-15 15:00:39 | 显示全部楼层

    RE:KL02Z进入低功耗VLPS模式IIC通信不正常,影响通信

    。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2014-8-15 15:45:09 | 显示全部楼层

    回复:KL02Z进入低功耗VLPS模式IIC通信不正常,影响通信

    回复第 6 楼 于2014-08-14 13:44:48发表:
    外围模块和mcu IIC通信时,地址匹配,不是会自动唤醒吗???? 

    楼主你好,
    I2C在VLPS下面是static的,所以不能正常通信。
    但是是支持address match wakeup的,需要你配好相关的寄存器。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2014-8-15 15:47:57 | 显示全部楼层

    RE:KL02Z进入低功耗VLPS模式IIC通信不正常,影响通信

    如果要地址匹配唤醒,你需要置位I2CX_C1[WUEN]位,你现在是地址匹配唤不醒吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-4-27 08:44
  • 签到天数: 64 天

    连续签到: 1 天

    [LV.6]常住居民II

    26

    主题

    577

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1703
    最后登录
    1970-1-1
     楼主| 发表于 2014-8-19 10:34:32 | 显示全部楼层

    回复:KL02Z进入低功耗VLPS模式IIC通信不正常,影响通信

    回复第 9 楼 于2014-08-15 15:47:57发表:
    如果要地址匹配唤醒,你需要置位I2CX_C1[WUEN]位,你现在是地址匹配唤不醒吗?
     
    代码里有配置I2CX_C1[WUEN],就是想使能唤醒。现象的现象概率是大部分是可以的,偶尔出现唤醒不了,读不到数据的现象。
     
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-20 19:30 , Processed in 0.099296 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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