AG32 MCU 如何进入低功耗模式

news2024/11/18 17:27:10

       默认情况下,微控制器(MCU)在系统复位或电源复位后处于运行模式。当CPU不需要持续运行时,可以使用几种低功耗模式来节省功耗。这是由用户选择的模式,给出了低功耗,短启动时间和可用的唤醒源之间的最佳妥协。

       AG32VF 系列MCU具有以下三种低功耗模式:
(1)休眠模式Sleep mode (CPU时钟关闭,包括核心外设在内的所有外设保持运行)
(2)停止模式Stop mode (所有时钟停止)
(3)待机模式Standby mode (1.2V域下电)


另外,海 振 远 建议,可以通过以下方式降低运行模式下的功耗:
(1)系统时钟变慢。
(2)在APB和AHB外设未使用时对时钟进行门控。

1. 减慢系统时钟
在运行模式下,系统时钟的速度可以降低。还会减慢外围设备的速度
进入休眠模式。

2. 外围时钟门控
在运行模式下,外设和存储器的时钟可以随时停止,以减少功耗。
为了进一步降低睡眠模式下的功耗,可以在执行WFI或WFE指令之前禁用外围时钟。

3. 睡眠模式
3.1 进入睡眠模式
      休眠模式通过执行WFI (Wait For Interrupt)或WFE (Wait For Event)指令进入。根据系统控制寄存器中的SLEEPONEXIT位,有两个选项可用于选择睡眠模式进入机制:
(1) Sleep-now:如果SLEEPONEXIT位被清除,则MCU在执行WFI或WFE指令时立即进入Sleep模式。
(2) Sleep-on-exit:如果设置了SLEEPONEXIT位,MCU一旦退出最低优先级ISR,就会进入Sleep模式。
       在休眠模式下,所有I/O引脚保持与运行模式下相同的状态。

3.2 退出睡眠模式
       如果使用WFI指令进入休眠模式,任何被嵌套的矢量中断控制器(NVIC)确认的外设中断都可以从休眠模式唤醒设备。如果使用WFE指令进入睡眠模式,则一旦发生事件,MCU就退出睡眠模式。唤醒事件可以通过以下方式生成:
(1)在外围控制寄存器中启用中断,但在NVIC中不启用中断,并在系统控制寄存器中启用SEVONPEND位。当MCU从WFE恢复时,外设中断挂起位和外设NVIC IRQ通道挂起位(在NVIC中断清除挂起寄存器中)必须被清除。
(2)或在事件模式下配置外部或内部EXTI线路。当CPU从WFE恢复时,不需要清除外设中断挂起位或NVIC IRQ通道挂起位,因为没有设置与事件行对应的挂起位。这种模式提供了最低的唤醒时间,因为没有时间浪费在中断进入/退出。

Table 1. Sleep-now

Sleep-now modeDescription
Mode entryWFI (Wait for Interrupt) or WFE (Wait for Event) while:
– SLEEPDEEP = 0 and
– SLEEPONEXIT = 0
Refer to the System Control register.
Mode exitIf WFI was used for entry:
Interrupt: Refer to : Interrupt and exception vectors
If WFE was used for entry
Wakeup event: Refer to : Wakeup event management
Wakeup latencyNone

Table 2. Sleep-on-exit

Sleep-on-exitDescription
Mode entryWFI (wait for interrupt) while:
– SLEEPDEEP = 0 and
– SLEEPONEXIT = 1
Refer to the System Control register.
Mode exitInterrupt: refer to: Interrupt and exception vectors.
Wakeup latencyNone

另外,还有stop mode 和Standby mode的设置,可以参考海振远科技提供的MCU手册,这里就不赘述了。

4. 自动唤醒(AWU)从低功耗模式
       RTC可用于从低功耗模式唤醒MCU,而不依赖于外部中断(自动唤醒模式)。RTC提供了一个可编程的时间基础,用于定期从停止或待机模式中唤醒。为此,可以通过在备份域控制寄存器中编程RTCSEL[1:0]位来选择三个备选RTC时钟源中的两个(RCC_BDCR):
(1)低功耗32.768 kHz外置晶体振荡器(LSE OSC)。
        这个时钟源提供了一个精确的时间基础,功耗非常低。
(2)低功耗内部RC振荡器(LSI RC)
      该时钟源的优点是节省了32.768 kHz晶体的成本。
 

       AGM AG32系列MCU,不仅仅是高性能MCU,还在片上集成了2KLE FPGA逻辑资源,非常适合工业控制、医疗及消费市场。芯片技术支持与芯片订购,可联系海振远科技提供支持。

AGRV2KQ32(AG32VF303KCU6) AGRV2KL48(AG32VF303CCT6)
AGRV2KL64(AG32VF407RGT6) AGRV2KL100(AG32VF103VCT6)
Description: If you order the AGRV2KQ32, we will provide the AG32VF303KCU6,because they are the same chips.
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1485069.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode 刷题 [C++] 第226题.翻转二叉树

题目描述 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 题目分析 深度优先搜索(DFS)- 递归方式 对于二叉树的镜像问题,很容易想到的就是使用递归来解决,自底向上依次翻转每一个节点…

python类型注解,多态详解

目录 1.类型注解 1.变量的类型注解 2.函数(方法)的类型注解 3.union类型 2.多态 抽象类 1.类型注解 1.变量的类型注解 #基础数据类型注解 import randomv1 : int 10 v2 : str "aaa" v3 : bool True#类对象类型注解 class student:p…

kafka文件存储机制和消费者

1.broker文件存储机制 去查看真正的存储文件: 在/opt/module/kafka/datas/ 路径下 kafka-run-class.sh kafka.tools.DumpLogSegments --files ./00000000000000000000.index 如果是6415那么这个会存储在563的log文件之中,因为介于6410和10090之间。 2.…

linux的通信方案(SYSTEM V)

文章目录 共享内存(Share Memory)信号队列(Message Queue)信号量(semaphore) 进程间通信的核心理念:让不同的进程看见同一块资源 linux下的通信方案: SYSTEM V 共享内存(Share Memory) 特点:1.共享内存是进程见通信最…

图论 - 最小生成树(Prime、Kruskal)

文章目录 前言Part 1:Prim算法求最小生成树1.题目描述输入格式输出格式数据范围输入样例输出样例 2.算法 Part 2:Kruskal算法求最小生成树1.题目描述输入格式输出格式数据范围输入样例输出样例 2.算法 前言 本篇博客介绍两种求最小生成树的方法&#xff…

使用OpenCV和mediapipe实现手部信息抓取

目录 运行效果 挨行解读 (1)初始化MediaPipe Hand模块 (2)打开摄像头 (3)初始化计时器 (4)开始程序主题部分 (5)读取视频帧 (6&#xff09…

c++基础知识补充5

隐式类型转换型初始化:如A a1, 与全局类没有区别,只是受主类的类域限制,内部类天生是主类的友元 采用匿名构造如A()代替A aa可以加速编译器优化 接收建议新创建一个对象

基于springboot+vue的科研工作量管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

大模型(LLM)的token学习记录-I

文章目录 基本概念什么是token?如何理解token的长度?使用openai tokenizer 观察token的相关信息open ai的模型 token的特点token如何映射到数值?token级操作:精确地操作文本token 设计的局限性 tokenizationtoken 数量对LLM 的影响训练模型参…

c语言--qsort函数(详解)

目录 一、定义二、用qsort函数排序整型数据三、用qsort排序结构数据四、qsort函数的模拟实现 一、定义 二、用qsort函数排序整型数据 #include<stdio.h> scanf_S(int *arr,int sz) {for (int i 0; i < sz; i){scanf("%d", &arr[i]);} } int int_cmp(c…

【GitHub】修改默认分支

GitHub的默认分支为main&#xff0c;但我们常常习惯使用master作为默认分支&#xff0c;那在GitHub上如何将master修改为默认分支呢&#xff1f; 全局修改 点击头像&#xff0c;选择菜单栏中的设置 输入master作为默认分支&#xff0c;然后执行updating即可&#xff01; 单项…

【Java数据结构】——二叉搜索树

目录 &#x1f388;概念 &#x1f388;操作-查找 &#x1f388;操作-插入 &#x1f388;操作-删除&#xff08;难点&#xff09; &#x1f388;概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树 : 若它的左子树不为空&a…

【Qt学习笔记】(四)Qt窗口

Qt窗口 1 菜单栏1.1 创建菜单栏1.2 在菜单栏中添加菜单1.3 创建菜单项1.4 在菜单项之间添加分割线1.5 给菜单项添加槽函数1.6 给菜单项添加快捷键 2 工具栏2.1 创建工具栏2.2 设置停靠位置2.3 设置浮动属性2.4 设置移动属性2.5 添加 Action 3 状态栏3.1 状态栏的创建3.2 在状态…

Matlab 机器人工具箱 动力学

文章目录 R.dynR.fdynR.accelR.rneR.gravloadR.inertiaR.coriolisR.payload官网:Robotics Toolbox - Peter Corke R.dyn 查看动力学参数 mdl_puma560; p560.dyn;%查看puma560机械臂所有连杆的动力学参数 p560.dyn(2);%查看puma560机械臂第二连杆的动力学参数 p560.links(2)…

mac命令行下计算文件SHA-256散列值

源起 从国内的第三方网站下载了Android sutiod的zip包下载地址&#xff0c;为了安全起见还是得跟Android官网上的对应的zip包的SHA值做下对比。以前是经常使用md5命令的&#xff0c;所以理论在命令行下应该是有对应的命令行工具可以计算SHA值的。后来搜索到可以用 shasum命令来…

Java中线程安全的集合类

在先前的文章中我们已经讲过了原子类(线程安全的基本类型&#xff0c;基于CAS实现)&#xff0c;详见常见锁策略&#xff0c;synchronized内部原理以及CAS-CSDN博客 &#xff0c;我们在来讲一下集合类&#xff0c;在原来的集合类&#xff0c;大多数是线程不安全的&#xff0c;虽…

深入了解 Android 中的 RelativeLayout 布局

RelativeLayout 是 Android 中常用的布局之一&#xff0c;它允许开发者基于子视图之间的相对位置来排列界面元素。在这篇博客中&#xff0c;我们将详细介绍 RelativeLayout 的各种属性&#xff0c;并提供代码示例和解释。 第一个示例 <RelativeLayoutandroid:layout_width…

【数据分享】2001~2023年中国区域MOD17A3HGF GPP数据

各位同学们好&#xff0c;今天和大伙儿分享的是2001~2023年中国区域MOD17A3HGF GPP数据。如果大家有下载处理数据等方面的问题&#xff0c;您可以私信或评论。 Running, S., M. Zhao. <i>MODIS/Terra Net Primary Production Gap-Filled Yearly L4 Global 500m SIN Grid…

标准库`random`函数大全:探索Python中的随机数生成【第107篇—`random`函数大全】

标准库random函数大全&#xff1a;探索Python中的随机数生成 随机数在计算机科学和数据科学领域中扮演着重要角色&#xff0c;Python的标准库中提供了random模块&#xff0c;用于生成各种随机数。本篇博客将深入探讨random模块的各种函数&#xff0c;以及它们的应用场景和代码…

Leetcoder Day35| 动态规划part02

62.不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#xff…