zoukankan      html  css  js  c++  java
  • FreeRTOS 低功耗之停机模式

    以下转载自安富莱电子: http://forum.armfly.com/forum.php

    STM32F103 如何进入停机模式
    在 FreeRTOS 系统中,让 STM32 进入停机模式比较容易,调用固件库函数 PWR_EnterSTOPMode
    即可,不过要注意:为了进入停机模式,所有的外部中断的请求位(挂起寄存器(EXTI_PR))和 RTC 的闹钟
    标志都必须被清除,否则停止模式的进入流程将会被跳过,程序继续运行。
    STM32F103 如何退出停机模式
    由于我们是采用指令 WFI 指令进入停机模式,那么设置任一外部中断线 EXTI 为中断模式并且在 NVIC
    中必须使能相应的外部中断向量,就可以使用此中断唤醒停机模式。
    在开发板上面是将实体按键 K2 对应的引脚设置为中断方式触发。按下此按键会将系统从停机模式唤
    醒。
    STM32F103 使用停机模式注意事项
    使用停机模式注意以下两个问题:
    进入停机模式前,一定要关闭滴答定时器,实际测试发现滴答定时器中断也能唤醒停机模式。
    当一个中断或唤醒事件导致退出停机模式时,HSI RC 振荡器被选为系统时钟。 这个时候用户要根据
    需要重新配置时钟,如果使用的 HSE 时钟,那么要重新配置并使能 HSE 和 PLL。

    STM32Fxx 如何进入停机模式
    在 FreeRTOS 系统中,让 STM32 进入停机模式比较容易,调用固件库函数 PWR_EnterSTOPMode
    即可,不过要注意:为了进入停机模式,所有 EXTI 线挂起位(在挂起寄存器 (EXTI_PR)中)、 RTC 闹钟
    (闹钟 A 和闹钟 B)、 RTC 唤醒、 RTC 入侵和 RTC 时间戳标志必须复位,否则停机模式的进入流程将会被
    跳过,程序继续运行。
    STM32F4xx 如何退出停机模式
    由于我们是采用指令 WFI 指令进入停机模式,那么设置任一外部中断线 EXTI 为中断模式并且在 NVIC
    中必须使能相应的外部中断向量,就可以使用此中断唤醒停机模式。
    在开发板上面是将实体按键 K2 对应的引脚设置为中断方式触发,按下此按键会将系统从停机模式唤
    醒。
    STM32F4xx 使用停机模式注意事项
    使用停机模式注意以下两个问题:
    进入停机模式前,一定要关闭滴答定时器,实际测试发现滴答定时器中断也能唤醒停机模式。
    当一个中断或唤醒事件导致退出停机模式时,HSI RC 振荡器被选为系统时钟。 这个时候用户要根据
    需要重新配置时钟,如果使用的 HSE 时钟,那么要重新配置并使能 HSE 和 PLL。
    如何有效降低停机模式下的功耗
    设计低功耗主要从以下几方面着手:
    注意 I/O 的状态。 因为在停机状态下,所有的 I/O 引脚都保持它们在运行模式时的状态。
    如果此 I/O 口带上拉,请设置为高电平输出或者高阻态输入。
    如果此 I/O 口带下拉,请设置为低电平输出或者高阻态输入。
    注意 I/O 和外设 IC 的连接。
    测试低功耗的时候,一定不要连接调试器,更不能边调试边测电流。
    F429关于低功耗的停机模式说明:
    (1) 停机模式是在 Cortex-M4F 的深睡眠模式基础上结合了外设的时钟控制机制,在停机模式下
    电压调节器可运行在正常或低功耗模式。此时在 1.2V 供电区域的的所有时钟都被停止,PLL、
    HSI 和 HSE 的 RC 振荡器的功能被禁止,SRAM 和寄存器内容被保留下来。
    (2) 在停机模式下,所有的 I/O 引脚都保持它们在运行模式时的状态。
    (3) 一定要关闭滴答定时器,实际测试发现滴答定时器中断也能唤醒停机模式。
    (4) 当一个中断或唤醒事件导致退出停机模式时, HSI RC 振荡器被选为系统时钟。
    (5) 退出低功耗的停机模式后,需要重新配置使用 HSE。

  • 相关阅读:
    每天一篇文献:A SURVEY OF LEARNING FROM DEMONSTRATION USED IN ROBOTICS
    PyBullet(七)在PyBullet中使用VR
    期刊模板搜索网址
    论文阅读:Robot Program Parameter Inference via Differentiable Shadow Program Inversion
    visio画图如何插入到latex中
    win10下TensorFlow-GPU安装(GTX1660+CUDA10+CUDNN7.4)
    Object detection with localization using Unity Barracuda and ARFoundation
    论文阅读:Design and Implementation of a Virtual Reality Application for Mechanical Assembly Training
    Qt开发经验小技巧151-155
    Qt开发经验小技巧146-150
  • 原文地址:https://www.cnblogs.com/yangguang-it/p/7232289.html
Copyright © 2011-2022 走看看