当前位置: 首页 > news >正文

DA14531(Cortex-M0+)之Wake-up Interrupt Controller (WIC)

Wake-up Interrupt Controller (WIC) to allow the processor to be powered down during sleep, while interrupt sources are still allowed to wake up the system.

唤醒中断中断器,允许处理器休眠时关闭电源和时钟,但中断源可以唤醒系统。具备独立的唤醒中断向量。

使用 Cortex-M 处理器的微控制器设计人员可以选择在其设计中包含 WIC。WIC 是一个小型中断检测逻辑,它反映了 NVIC 中的中断掩码功能。WIC 允许通过停止处理器的所有时钟信号,甚至将处理器置于状态保留状态,进一步降低处理器的功耗。当检测到中断时,WIC 向微控制器内部的电源管理单元 (PMU) 发送请求,以恢复处理器的电源和时钟信号,然后处理器可以唤醒、恢复作并处理中断请求。

WIC 功能的一个重要优点是它对软件是透明的。WIC 本身不包含任何可编程寄存器,它有一个耦合到 Cortex-M0/M0þ 处理器的 NVIC 的接口,中断掩码信息在睡眠期间自动从处理器传输到 WIC。在某些情况下 (取决于微控制器设备的设计) ,WIC 仅在深度睡眠模式 (设置了 SLEEPDEEP 位) 下激活,您可能还需要在微控制器中特定于设备的 PMU 中对其他控制寄存器进行编程,以启用 WIC 模式深度睡眠。

WIC 使 Cortex-M 处理器能够使用称为状态保持功率门控 (SRPG) 的技术来降低待机功耗。使用 SRPG,可以通过关闭逻辑的大部分部分来最大限度地减少顺序数字系统在睡眠期间的泄漏功率,在每个触发器中留下一个小的存储元件以保持当前状态。

并非所有基于 Cortex-M 处理器的微控制器都支持 WIC 功能。使用 WIC 降低功耗取决于所使用的应用和半导体工艺。

请注意,在 Cortex-M0 和 Cortex-M0+处理器中,WIC 可以在睡眠和深度睡眠模式下使用。在 Cortex-M3 和 Cortex-M4 处理器中,WIC 功能仅在深度睡眠中可用。

在DA14531应用中,中断仅在active mode可用。而且如果需要在sleep中唤醒,那么必须使用WIC。这里的设计跟其他MCU有些许区别。更多MCU是run/active、sleep允许中断唤醒(共用中断函数),而standby使用专用的唤醒引脚。

中断相关函数:GPIO_EnableIRQ、GPIO_RegisterCallback。

休眠唤醒相关函数:wkupct_enable_irq、wkupct_register_callback。

DA14531在BLE模式下,是会进入sleep的,所以如果要实现中断的应用,实际上必须同时使用以上两种配置,即中断、休眠唤醒,否则可能出现唤醒延时、无法唤醒的问题。

WIC主要是支持低功耗的唤醒、硬件级别的唤醒,仅支持高低电平,不支持边沿触发,可以关闭NVIC电源。

普通中断(唤醒是否支持,取决于芯片设计)则可以支持边沿触发,NVIC电源域电源需要保持。

reference:

1. Sleep Modes and Wake-up | renesas/ble-sdk6-examples | DeepWiki

2. DA14580睡眠配置_da14580睡眠模式-CSDN博客

3. Dual use pin (wkupct_enable_irq & GPIO_EnableIRQ) - Bluetooth Low Energy - Renesas Wireless Connectivity - Renesas Engineering Community4. how does app_easy_wakeup and app_easy_wakeup_set works? - Bluetooth Low Energy - Renesas Wireless Connectivity - Renesas Engineering Community5. 1. Example description — DA14585/DA14586 and DA14531 Multiple button press wake up callback6. ble-sdk6-examples/interfaces/wakeup-button/src/user_wakeup.c at main · renesas/ble-sdk6-examples · GitHub7. 2. 睡眠模式概述 — DA1453x 和 DA1458x 教程睡眠模式

8. 11. Sleep Mode — DA145XX Tutorial SDK Getting started

http://www.dtcms.com/a/354715.html

相关文章:

  • JumpServer开源堡垒机:统一访问入口 + 安全管控 + 操作审计
  • 从0开始搭建一个前端项目(vue + vite + typescript)
  • 第6篇:链路追踪系统 - 分布式环境下的请求跟踪
  • 【STM32】G030单片机的窗口看门狗
  • 从协作机器人到智能协作机器人:工业革命的下一跳
  • Fluent Bit针对kafka心跳重连机制详解(下)
  • KubeBlocks For MySQL 云原生设计分享
  • Logstash数据迁移之mysql-to-kafka.conf详细配置
  • 卷积神经网络(CNN)搭建详解
  • 区块链+隐私计算护航“东数西算”数据安全报告
  • AppScan扫描电脑上的客户端,C/S架构客户端等
  • 深度学习----卷积神经网络实现数字识别
  • RAW API 的 TCP 总结2
  • 数据结构8---排序
  • 鸿蒙OS与Rust整合开发流程
  • 【边缘计算】RK3576算力评估
  • 排序(Sort)方法详解(冒泡、插入、希尔、选择、堆、快速、归并)
  • 详细介绍Linux 内存管理 struct page数据结构中有一个锁,请问trylock_page()和lock_page()有什么区别?
  • 开源工具新玩法:cpolar提升Penpot协作流畅度
  • 8.28日QT
  • 分布式锁过期危机:4大续命方案拯救超时任务
  • 2025年机械工程与机器人国际研讨会(CMER2025)
  • PAT 1086 Tree Traversals Again
  • React 动画库
  • 2025.8.28总结
  • Docker Swarm vs Kubernetes vs Nomad:容器编排方案对比与选型建议
  • GitHub宕机自救指南技术文章大纲
  • 图论基础篇
  • Oracle 数据库权限管理的艺术:从入门到精通
  • 【第四章】BS 架构测试全解析:从功能验证到问题定位​