查看: 3309|回复: 2

[原创] 《K64进阶笔记》节选——基于K64的低功耗应用设计

[复制链接]
  • TA的每日心情
    奋斗
    2017-1-17 10:45
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    38

    主题

    395

    帖子

    3

    高级会员

    Rank: 4

    积分
    780
    最后登录
    2023-11-17
    发表于 2017-2-20 21:52:01 | 显示全部楼层 |阅读模式
    本文档是之前在摩尔吧在线课程《K64进阶笔记》第二期中《基于K64的低功耗应用设计》的讲义。提供文字版下载,方便大家在挤地铁的时候还能够阅读一份技术小品。

    基于K64的低功耗应用设计


    • K64中的低功耗模式介绍
        - ARM内核的典型低功耗模型
        - Kinetis特别优化的低功耗设计
        - 详解各功耗模式
        - 外设模块在低功耗模式下的存活状态汇总
    • 低功耗状态机模型的运作
        - 功耗管理系统中的相关模块
        - 各功耗模式的切换模式图
        - 从RUN模式切换到低功耗模式的编程模式——“装弹模型”
    • 低功耗应用开发典型模式
    • K64低功耗编程心得
    • 总结


    主要参考资料:
    - ARM Cortex-M4技术参考手册
    - K64P144M120SF5RM:K64 Sub-Family Reference Manual, Rev. 2, January 2014
    - AN4503:Power Management for Kinetis MCUs, Rev. 2, 04/2015
    - 增补:《低功耗的那点事》 http://www.cnblogs.com/pang123hui/articles/2620638.html



    0. 引言


    低功耗应用是单片机开发环节中一个比较高级的话题,年轻工程师在入门阶段通常更关心例如GPIO、UART等直接同外部设备相连接的模块,首先掌握这些外设模块的用法有助于快速实现单片机系统的功能。只有在当用户提出对供电需求时,要求单片机软件工程师设计的应用程序能够满足在供电有限的条件下能够实现功能,此时就需要考虑针对低功耗展开编程。低功耗编程的目标,就是要保持现有应用功能不变的情况下,减少单片机系统中不必要的电能开销。对于以低功耗作为重点评定标准的应用设计,例如使用电池供电的系统中,甚至在一开始建立应用程序的组织架构时,就要使用专用于低功耗开发的编程模型。


    1. K64中的低功耗模式介绍

    K64是一款基于ARM Cortex-M4内核的单片机,因此Cortex-M4内核的设计中继承了部分ARM通用的低功耗模式。同时NXP Kinetis (前FSL)产品线的设计工程师们还加入了一些专门的低功耗模式,针对具体器件进行了进一步的优化。


    通常情况下,Power Management(电源管理系统或是功耗管理系统,功耗管理实际上就是对芯片内部供电电源的管理)和时钟管理是相辅相承的,因此一旦涉及到低功耗,就不得不把这两个部分的穿插起来介绍,这实际上就提高了对Power Management系统理解的复杂度。这里,我试图对低功耗做个“偏微分”,将只跟电源管理的部分单独提取出来继续介绍,便于读者理解。而对于时钟系统及与时钟系统相关的部分,这里仅仅给出几个“引用原则”,即当在分析功耗管理系统时需要考虑时钟系统的时候,仅仅需要考虑如下几个基本事实:


    - 时钟频率的改变必须由时钟系统独立完成,Power Management不会改变现有时钟源的频率,只有可能在功耗模式切换时有由硬件自动切换时钟源。这里仅仅是切换时钟源而不是改变时钟。


    - 时钟频率的变化需要功耗的系统的支持,更高的时钟频率需要更大供电能力,在使用更高频率之前需要电源管理系统提前准备好足够的供电能力。而当系统降频时,需要先把频率降下来再切换到低功耗的模式,从而保证功耗模式在转换过程中仍能够支持足够高的频率。


    - 在芯片中功耗系统与时钟系统的说明中,读者要特别关注某个时钟源在特定的功耗下是否可以继续存活,如果没有专门的寄存器字段可供配置,就必然是在某个表格中明确列出。能够使用在低功耗模式下继续存活的时钟作为外设模块工作的时钟源,该模块就可以在低功耗模式下工作,而这个模块本身也通常被称为低功耗外设模块,例如,LPUART,LPTMR等。


    形象地比喻低功耗模式与时钟系统的关系,就像汽车中速度档位和油门。只有当油门给足了,车速提高到足够快,才能切换到对应的高速档位上。而当减小油门把车速降低了,与之对应地降下档位,才能让整车的功耗和传动比保持比较合适的状态。

    Kinetis芯片内部专门管理功耗的核心模块PMC,是通过一系列调压器(regulator)调整对片内各个模块的供电电流及电压,从而实现对整个芯片系统功耗的控制。

    总而言之,在考虑低功耗编程模型时,需要关注两个要点:
    - 芯片上可以提供哪些低功耗模式及其供电特性?
    - 如何进入特定的低功耗模型?

    至于硬件中很复杂的实现细节,如果在芯片手册中不能以足够简单并且明了地交代给读者,那基本上就可以判定这不是一份对软件工程师友好的芯片手册了,因为在单片机应用软件的开发环节中,没有人愿意花大量的时间在晦涩的语言中探索与软件开发无关的信息,费力不讨好。


    而在这份笔记当中,我试图有针对性地过滤掉与软件开发无关的信息,紧密围绕低功耗模型中的两个关键问题,结合芯片手册和开发经验整理出必要的信息,归纳总结,以备自己和他人日后快速查阅。


    ......
    详情请下载附件 《K64进阶笔记》节选——基于K64的低功耗应用设计.pdf (1.12 MB, 下载次数: 128)
    回复

    使用道具 举报

    该用户从未签到

    3

    主题

    555

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    1343
    最后登录
    2018-10-23
    发表于 2017-2-21 09:13:41 | 显示全部楼层
    谢谢分享
    回复

    使用道具 举报

  • TA的每日心情

    2025-5-29 09:38
  • 签到天数: 632 天

    连续签到: 1 天

    [LV.9]以坛为家II

    94

    主题

    1639

    帖子

    2

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    4470

    热心会员

    最后登录
    2025-6-10
    发表于 2017-2-27 11:19:37 | 显示全部楼层
    感谢分享~
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-19 08:57 , Processed in 0.086016 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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