YTM32L系列MCU低功耗模式简介_第1页
YTM32L系列MCU低功耗模式简介_第2页
YTM32L系列MCU低功耗模式简介_第3页
YTM32L系列MCU低功耗模式简介_第4页
YTM32L系列MCU低功耗模式简介_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页YTM32L系列MCU低功耗模式简介

(产品)简介YTM32L系列(MCU)是苏州云途(半导体)针对车身控制领域推出的入门级32位产品,最高主频达48MHz,内嵌128KBFlash和16KBS(RAM),MCU内嵌(CAN)-FD,LIN等丰富接口,满足车规可靠性要求AEC-Q100。可以应用于车身(传感器)控制、(电机控制)、胎压监测、电动座椅、电动尾门、天窗、灯光控制及内饰灯控制等方面。

YTM32M系列(芯片)基于32位车规级(ARM)Cortex-M33内核,(CPU)全温域主频高达120MHz,提供1.25MB(嵌入式)闪存,符合ISO26262的ASIL-B等级要求,可靠性满足AEC-Q100、Grade1标准,信息安全方面支持AES、SHA以及国密SM4等多种加密(算法),并提供符合AUTOSAR标准的MCAL。

在低功耗方面,YTM32系列MCU支持Sleep,DeepSleep,Standby和PowerDown(L系列不支持)几种低功耗模式,其中Standby模式是CPU可以保留运行状态信息的最低功耗模式,PowerDown模式则是只有部分模块和部分SRAM可以保留运行信息,其他模块和CPU在内都会断电,系统唤醒之后需要重启,该模式是系统的最低功耗模式。YTM32系列MCU通过多种低功耗模式组合能够很好的满足汽车应用的低功耗需求。

低功耗模式简介YTM系列MCU针对汽车的低功耗需求,定义了几种不同的低功耗模式:

Sleep模式,也称为睡眠模式。这种模式下MCU内部的(时钟)都保持工作状态,CPU核心停止工作,等待外设中断唤醒,因为只有CPU停止工作,所以一般功耗降低的比较少,但是系统可以最快速的唤醒,对于采用系统时钟的外设也是没有影响的。在Sleep模式下,芯片内部(电源模块)依然保持正常运行状态,有比较高的带负载能力。DeepSleep模式,也称深入睡眠模式。这种模式下系统总线时钟停止工作,CPU核心停止工作,等待外设中断唤醒,此时对于采用系统时钟作为主时钟的外设,比如eTMR,pTMR,(DMA)等模块因为没有了时钟,所以都是不能工作的。系统的其他时钟,比如FIRC,FXOSC等时钟是可以根据时钟配置选择开启和关闭的,对于支持功能时钟的外设,如果相应的时钟保持开启,那这些模块也是可以正常工作的。DeepSleep模式由于总线时钟关闭,一些依赖总线时钟的模块也无法工作,所以功耗会有比较大的降低。在DeepSleep模式下,芯片内部(电源)模块依然保持正常运行状态,有比较高的带负载能力。从DeepSleep模式唤醒的时候,因为一些功能时钟需要重新启动,所以唤醒时间相比于Sleep模式会有一定的延长,这个时间还取决于有多少时钟需要重新启动。Standby模式,也称为待机模式。这种模式和DeepSleep模式的主要区别是芯片内部的电源模块工作在低功耗模式,此时芯片的带负载能力有一定减弱。这种模式下对于支持功能时钟的模块,如果相应的功能时钟开启,这些模块也可以正常工作,并可以正常唤醒芯片。这种模式下因为芯片内部电源模块需要从正常工作模式转换成低功耗模式,唤醒的时候需要从低功耗模式回到正常模式,所以进入待机模式和从待机模式唤醒都需要一定的时间,这个时间一般是微秒级别。在Standby模式下,芯片内部RAM数据依然保持,Flash进入低功耗模式,所有模块(寄存器)配置保持不变,所以唤醒的时候,CPU还是可以继续运行。PowerDown模式,也称为掉电模式。这种模式芯片大部分(数字电路)的(供电)被断开,只有少部分数字逻辑单独供电,芯片内部电源模块仅维持不断电的少量数字逻辑供电,此时芯片的功耗是最低的。在PowerDown模式下仅有支持唤醒功能的IO可以唤醒系统,另外还支持唤醒的内部模块包括lpTMR,RTC,(AC)MP等,模块的功能时钟也只有SIRC和SXOSC可以选择。PowerDown模式因为大部分数字电路都已经断电,所以唤醒的时候系统需要复位才能正常运行。Mode(模式)Clock(时钟)外设唤醒源复位功耗Sleep(睡眠)无变化正常工作所有中断否稍有降低DeepSleep(深度睡眠)总线时钟关闭,功能时钟可配置支持功能时钟,且功能时钟开启的模块正常工作异步中断,所有GPIO否较低Standby(待机)总线时钟关闭,功能时钟可配置支持功能时钟,且功能时钟开启的模块正常工作异步中断,所有GPIO否很低PowerDown(掉电)SIRC/SXOSC可配置lpTMR,RTC,ACMP,WKU且有功能时钟lpTMR,RTC,ACMP,WKU特定GPIO是最低低功耗模式流程YTM32芯片的低功耗模式结合了ARMCPU的低功耗模式和整个MCU系统外设的低功耗模式,低功耗模式的进入流程如下:

配置相应的唤醒外设,并开启对应的NVIC中断,保证系统可以正确的唤醒应用程序通过配置(LDO)的运行模式决定系统在低功耗模式下的供电行为(DeepSleep/Standby/PowerDown),通过相关的时钟配置设置相应的时钟在低功耗模式下是否开启配置内核寄存器的SCB→SCR寄存器的SCB_SCR_SLEEPDEEP_Msk比特决定系统进入Sleep模式还是DeepSleep模式执行WFI指令进入低功耗模式系统执行WFI指令之后,(硬件)会依据电源和时钟的配置自动关闭对应的时钟,然后切换系统电源,整个过程无需软件参与,芯片引脚将保持原有的功能配置和输入输出状态,进出低功耗模式过程中,应用无需对芯片引脚做特殊的配置。

另外,进出低功耗模式过程中,系统的时钟也是硬件切换的,应用软件无需做时钟切换。当系统从低功耗模式唤醒的时候,系统会自动恢复低功耗之前的时钟配置模式,然后从WFI指令位置继续往下执行程序(PowerDown模式需要复位)。比如系统进入低功耗模式之前系统时钟为PLL,PLL参考时钟为外部晶振FXOSC,当系统进入低功耗模式(DeepSleep和Standby)时PLL和外部晶振被硬件关闭,在唤醒过程中,系统硬件可以直接重新开启FXOSC和PLL,并等待PLL锁定后将PLL作为系统时钟执行程序。

需要注意的是,当系统时钟采用FXOSC或者PLL的时候,系统唤醒需要等待外部晶振起振和PLL锁定,而外部晶振起振时间一般是毫秒级别,所以说系统的唤醒时间会变长。如果应用对于唤醒时间要求比较高,难么建议采用FIRC作为系统的时钟,FIRC的启动时间只有几个微秒,即使从Standby模式唤醒,唤醒时间也之后几十微秒。

PowerDown模式说明

Powerdown模式是一种掉电模式,和传统的低功耗模式在使用上有一定的差异。Powerdown模式本质上是将芯片内部大部分电路直接断电,从而降低整个系统的功耗。在powerdown模式下只有部分模块(lptmr,rtc,acmp,wku等)和部分SRAM可以继续保持工作,而包括CPU在内的其他模块和大部分SRAM都会直接断电,因为CPU和外设的数据无法保存,系统在唤醒的时候需要经过复位。

在powerdown模式下,芯片引脚状态(包含输入输出,上下拉及驱动强度配置)会保持进入低功耗模式之前的状态,当系统唤醒并重新复位之后,应用可以重新初始化芯片引脚功能。

芯片低功耗模式代码

YTM32芯片的电源模式主要通过power_manager实现,用户可以根据自己的需要配置多种低功耗模式,然后通过相应的函数进行切换。电源模式的定义如下:

/********************************************************************************Includedfiles******************************************************************************/#include"power_config.h"/*!@briefUserConfigura(ti)onstructurepwrMan1_InitConfig4*/power_manager_user_config_tpwrMan_InitConfigRun={.powerMode=POWER_MANAGER_RUN,/*!芯片低功耗模式常见问题汇总芯片建议的低功耗模式是哪种,芯片处于低功耗模式下可以通过哪些模块唤醒?

YTM32B1L系列芯片最低只支持到Standby模式(不支持PowerDown模式),这种模式下所有的GPIO都是可以正常唤醒的芯片的,另外一些支持功能时钟的模块,比如lpTMR,(I2C),SPI,(UART),RTC,ACMP等模块也是可以正常唤醒芯片的。

YTM32B1M/H系列芯片最低功耗模式时PowerDown,这种模式下只有支持WKU功能的(PI)N可以正常唤醒的芯片,另外一些在低功耗电源域的模块,比如lpTMR,RTC,ACMP等模块也是可以正常唤醒芯片的。为什么当我进入Standby/PowerDown模式的时候,测量的(电流)要比数据手册上标的值高很多?

这是一个我们进行低功耗模式调试时经常碰到的一个问题,针对这个问题一般有以下几种原因:系统进入没有正确进入低功耗模式,此时系统电流和Sleep模式相当,如果发现是这种情况,那么就要看是不是有模块产生了唤醒中断,比如GPIO开启了中断唤醒功能,但是系统并没有使能GPIO的中断(NVIC模块禁用了中断),这个时候系统是无法进入Standby模式,因为当系统开始进入低功耗模式的时候,发现有一个Pending的外部中断没有响应,而这个中断是可以唤醒系统的,所以系统便会退出进入低功耗模式,转而等待这个中断被系统响应,而这个时候NVIC禁用了这个中断,所以CPU依然保持Sleep模式,系统上表现进入了低功耗模式,而实际上是进入了Sleep模式,对于这种情况,我们就要排查系统使能的模块是否在系统进入standby模式的时候产生了中断。系统进入了低功耗模式,但是电流在200uA左右,这种情况从电流上看是进入了Standby模式,模式电流偏高的原因可能是在Standby模式下开启了部分的功能时钟,比如SIRC或者FXOSC,并且有一些模块正在工作,比如lpTMR以SIRC作为功能时钟工作,这种情况是比较正常的,如果不需要SIRC时钟,那么可以修改时钟配置,从而进一步降低系统功耗。数据手册上面的电流数据一般都是在关闭这些功能时钟的情况下测试得到的。电流偏高的另外一个原因可能是GPIO上有一定的负载,比如GPIO的输入模式开启了上拉(电阻),但是外部负载是将GPIO拉低的,或者GPIO输出了一个高电平,而外部负载并不是高阻态,这两种情况都会导致GPIO上面有比较大的电流。是否外接了调试器,在低功耗模式下,接入调试器也会引入一定的额外功耗,所以测量低功耗模式电流时候务必断开调试器连接从低功耗模式唤醒的时候,外设需要重新配置吗?进入低功耗模式之前外设是不是需要做特殊的操作?

对于大部分外设,进出低功耗都不需要做特殊的操作,因为YTM32B1L外设都是不掉电的,所有的配置都是可以保留的,所以从低功耗模式唤醒之后可以继续使用,并不需要重新初始化。

对于部分外设,当系统请求进入低功耗模式的时候,如果外设正在工作,那么外设会block系统的低功耗请求,直到当前操作完成,如果系统长时间没有得到外设的响应,系统会直接产生Reset。比如DMA正在传输数据的时候,系统请求进入低功耗模式,这个时候为了防止数据丢失,DMA需要完成当前数据传输之后才会响应低功耗模式请求。低功耗模式下怎么唤醒芯片?

参考前面的表格,Sleep模式下,所有外设都是正常工作的,实际上只有CORE处于Sleep状态,此时所有外设的中断都可以唤醒芯片。在DeepSleep和Standby模式下,首先我们要在芯片手册的NVIC表格中看模块Wakeup列是否标为可唤醒,另外当模块工作时需要时钟(比如lpTMR,RTC),那么还要保证模块的功能时钟在低功耗模式下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论