完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
飞思卡尔基于ARM Cortex-M0+内核的Kinetis L系列的低功耗特性被广泛使用在可穿戴设备、智能水电气表类及移动手持设备等等需要电池供电的对功耗敏感的应用领域。而我们在低功耗应用过程中,通常来说主要会考量三个重要的指标,即低功耗模式下的最低电流、低功耗模式被唤醒到运行模式下的唤醒时间和低功耗模式的唤醒源,本篇的主要目的是第三个指标即唤醒源问题。 在低功耗模式中,唤醒源通常有很多,包括外部IO中断唤醒(这个是最常用的,比如按键唤醒)、定时器唤醒(周期性的唤醒工作)或者通信接口唤醒(通过地址匹配或者边沿触发唤醒)等等(不多说了,都放在等等里面吧,呵呵),其中本篇博客就说说Kinetis L系列UART通信接口唤醒的方式。 Kinetis KL25有三个UART接口即UART0、UART1和UART2,其中UART1和UART2的时钟源是固定的只能选择Busclock,而UART0的时钟源则比较灵活,可选择Busclock、晶振电路OSC的输出时钟或者芯片内部自带的低速或者高速时钟,这也就决定了在进入低功耗模式下UART1和UART2则无法保证模块继续工作(因为Busclock已经停止),而UART0则可以通过选择内部时钟源来保证其在低功耗模式下可以继续保持接收数据的standby,然后通过对UART0发送数据来唤醒CPU到运行模式而且用来唤醒的数据也可以被接收过来,但是这种方法在低功耗模式下会给整个系统带来额外功耗(相当于UART0一直在低功耗模式下运行着),我测算过大概有60uA左右,这就需要折衷根据自己的应用来考量,这种方法可以保证第一个数据不丢失,保证实时性,在某些应用中可能第一发送过来的就是有效数据。但是在大多数应用中,我觉着这种方法带来的功耗增加是得不偿失的,对功耗非常敏感的应用这个额外的电流是不可接受的,而这种应用又对实时性没有要求那么高,这样该怎么办呢? 放心好了,飞思卡尔当然替我们想好了。KL25这三个UART接口除了UART0可以支持低功耗模式下运行保证接收数据的实时性之外,它们三个还都支持边沿唤醒能力,即UART模块在低功耗模式下也进入休眠状态(不消耗额外的电流),也就是即使是UART0我们也可以通过配置让其在低功耗模式下不再工作,而当芯片的对应这三个模块的RxD管脚有数据到达的时候会将CPU唤醒到运行态(因为RS232协议start位是一个低跳变)。 当然,这两种方法都是可以在KL25上支持的,具体选用哪种方法还是要看我们大家的具体需求了,总之衡量着使用就是了,或者将两者结合起来使用也不失一种良策。全部代码我就不上传了,只贴出这两种方式对UART初始化的部分,其他的只需要自己去写好UART的中断服务函数就好了,如下: (1)UART0在低功耗模式下保持低功耗standby,当数据到达时唤醒CPU并保存该数据:
|
|
相关推荐
3 个讨论
|
|
只有小组成员才能发言,加入小组>>
1894个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36299 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4365 浏览 0 评论
6020 浏览 1 评论
6741 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4190 浏览 0 评论
600浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
593浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
582浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
671浏览 2评论
754浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-1 14:52 , Processed in 1.345855 second(s), Total 79, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号