0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32U5 LPBAM模式介绍

jf_pJlTbmA9 来源:STM32单片机 作者:STM32单片机 2023-10-26 17:59 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1、前言

LPBAM 全称为 low-power background autonomous mode,系统时钟可以在进入低功耗模式之后打开或关闭,可以触发 DMA 请求,可以在 stop0,stop1,stop2 模式下使用。在 stop 模式下除了 LSI 和 LSE 以外其他时钟都会关闭,但 MSIK 和 HSI16 可以被临时使能,以支持 DMA 传输,这就是 LPBAM 的特点。

另外,LPBAM 需要 DMA 来进行配合,U5 系列的 DMA 有 Linked List 功能,也就是说DMA 可以完成链表设计好的任务。在初始化的时候,以链表模式设置好 DMA 相关寄存器,可以通过链表模式完成内存到内存,或者内存和外设寄存器之间的数据传输。

由于 LBAM 的特性,在进行低功耗应用设计时,可以使用 LPBAM 大大减少功耗,提升产品的低功耗性能。比如,可以在 stop2 模式下进行串口收发,ADC 采集任务等等。

本文将介绍如何使用 CubeMX,配置 DMA Linked List,在低功耗模式下,使用LPBAM 进行 GPIO Toggle。

2. 准备工作

2.1 环境准备

测试硬件:B-U585I-IOT02A 开发板

测试开发环境:IAR 8.50.1

CubeMX 版本:6.30.0

wKgaomUD6bmACwKIAAJ8OrDNmt0099.png

2.2 设计思路

如图所示,我们先在内存中定义好需要写入 GPIO 寄存器的数值,其中 Set GPIO 就将数据写入 BSRR 寄存器,Reset GPIO 就将数据写入 BRR 寄存器。LPDMA 设置两个节点,一个去 Set GPIO,另一个 Reset GPIO,然后由软件触发,由 LPTIM1 CH1 的上升沿触发 LPDMA 第一个节点进行动作,LPTIM1 CH1 的下降沿触发 LPDMA 第二个节点进行动作。

LPTIM1 设置使用 LSI 32KHz 为时钟,频率为 32KHz,占空比为 50%的 PWM 波输出,也就是说 GPIO 会以 500ms 的频率进行 toggle。

wKgaomUD6bqAF3FiAACEZEvodEE825.png

3.Step By Step

wKgZomUD6byACbIEAAJaQm8MCEI219.png
wKgaomUD6b2AQmGOAAG2VqbYUSc989.png
wKgZomUD6b-AU2KsAAGDHzydsbo171.png
wKgZomUD6cGAEMQ1AAPVIyGRIwk720.png
wKgaomUD6cKAHNqVAAb4w9JGMpY897.png
wKgZomUD6cSAJ1-KAAFWYjxNsVU481.png
wKgZomUD6cWABo-pAAHCZ1-FRMg791.png
wKgaomUD6caAW0PmAAGiG0wBJ24929.png
wKgZomUD6ciAeWyuAAC8zOcS_Uc907.png
wKgaomUD6cmAPkK8AADEErXqEu0028.png
wKgZomUD6cqAYPLbAADn_YeFwBw382.png
wKgaomUD6cyAVAztAAF7sGFUK2E091.png
wKgaomUD6c6AAhKcAAGEhkL6bRg719.png
wKgaomUD6c-AFMSDAAD7102_KBc085.png
wKgZomUD6dCAOtY3AAFhUJgu6Fs840.png

STEP10-1:代码修改 main.c

wKgaomUD6dKAcfr3AAFBUuTV-iY719.png
wKgZomUD6dOAFXUpAAF33VtXhjE161.png

STEP10-2:代码修改 main.h

wKgZomUD6dWAM_v4AAA6ZN7v61o960.png

STEP10-3:代码修改 stm32u5xx_it.c

wKgaomUD6deASBGoAACU-QRQyMY216.png

STEP10-4:代码修改 linked_list.c

wKgaomUD6dmAQaVVAAA-_ZkANc0465.png

STEP10-5:stm32u5xx_hal_msp.c

wKgZomUD6dqAS8ThAAATdFDDAWk285.png

wKgZomUD6dyARzTuAAFAAq5txTw296.png

STEP11:

link file 修改 : stm32u585xx_flash.icf

wKgaomUD6d2AV6hLAABJyQ2muVg039.png

修改完后,编译工程,在按下 USER BUTTON 后,系统将进入 STOP2 模式, 板载 LED 会停止toggle,但是 LPGPIO 控制的 LED 仍然会继续 toggle。

4、总结

本文介绍了 LPBAM 模式,以及如何使用 CubeMX 方便地配置 DMA Linked List,最后完成了在 CPU 进入 Stop2 模式下的 GPIO toggle 任务。LPBAM 模式将会在打造超低功耗的产品中发挥非常重要的作用。

文档中所用到的工具及版本

测试工具版本信息:

• IAR:8.50.1

• CubeMX:6.30.0

来源:STM32单片机
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2305

    文章

    11120

    浏览量

    371052
  • 模式
    +关注

    关注

    0

    文章

    65

    浏览量

    13755
  • CubeMx
    +关注

    关注

    0

    文章

    31

    浏览量

    1944
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【课程升级】STM32U5开发板《TouchGFX 图形界面开发》,从快速入门到深度UI实战教程

    好消息,华清远见STM32U5开发板配套课程升级通知!本次升级计划,主要致力于为初学者提供更深入、更实用的TouchGFX图形界面开发学习体验。01课程升级核心内容快速入门,构建完整学习路径
    的头像 发表于 11-04 11:05 193次阅读
    【课程升级】<b class='flag-5'>STM32U5</b>开发板《TouchGFX 图形界面开发》,从快速入门到深度UI实战教程

    STM32U5A9J-DK探索套件技术解析与应用指南

    STMicroelectronics STM32U5A9J-DK探索套件是用于演示和开发STM32U5A9NJH6Q微控制器的完整平台。 STMicroelectronics
    的头像 发表于 10-25 16:49 1169次阅读
    <b class='flag-5'>STM32U5</b>A9J-DK探索套件技术解析与应用指南

    立即在GitHub上抢先体验面向STM32U5的最新STM32Cube HAL更新

    其满足您的需求。 如何获取预览版本 面向STM32U5系列的STM32Cube HAL2预览版已在GitHub代码库STM32CubeU5-V2-Preview中开放。 更新后的HAL2有哪些新功能? HAL2在原有HAL的基础
    的头像 发表于 10-20 17:12 635次阅读

    请问STM32U5不支持ST-LINK v2怎么办?

    STM32U5不支持ST-LINK v2怎么办?
    发表于 06-09 07:59

    STM32U5 IWDG的提前唤醒中断无法在STOP模式下触发怎么解决?

    我使用的是STM32U585系列芯片,开启了IWDG,并在运行模式下测试提前唤醒中断正常触发,但在进入STOP2模式后,提前唤醒中断无法触发导致无法喂狗,看门狗超时后芯片复位。 手册中写道IWDG
    发表于 04-27 08:05

    请问STM32U3系列的定位是怎样的?

    领先的每毫瓦 Coremark分数117。这几乎是意法半导体之前 STM32U5系列效率的两倍,是STM32L4系列的五倍。
    发表于 04-25 07:05

    STM32U5 IWDG的提前唤醒中断无法在STOP模式下触发怎么解决?

    我使用的是STM32U585系列芯片,开启了IWDG,并在运行模式下测试提前唤醒中断正常触发,但在进入STOP2模式后,提前唤醒中断无法触发导致无法喂狗,看门狗超时后芯片复位。 手册中写道IWDG
    发表于 04-24 07:50

    STM32U5驱动库从1.6.0更新至1.7.0本可以正常运行的代码出现问题了,怎么处理?

    我于近期更新了CUBEMXIDE为1.18.0,以前的代码工程(STM32U5_1.6.0)提示说有新驱动库(STM32U5_1.7.0)可以使用,随即我便更新了驱动库,然后烧录出现问题,调试发现
    发表于 04-23 07:51

    请问STM32U3系列的定位是怎样的?

    领先的每毫瓦 Coremark分数117。这几乎是意法半导体之前 STM32U5系列效率的两倍,是STM32L4系列的五倍。
    发表于 04-23 06:45

    STM32U5 IWDG的提前唤醒中断无法在STOP模式下触发怎么解决?

    我使用的是STM32U585系列芯片,开启了IWDG,并在运行模式下测试提前唤醒中断正常触发,但在进入STOP2模式后,提前唤醒中断无法触发导致无法喂狗,看门狗超时后芯片复位。 手册中写道IWDG
    发表于 04-22 08:14

    STM32U5‌(超低功耗MCU,支持TinyML)全面解析

    STM32U5可运行量化后的MobileNetV1模型,实现每秒20+帧的实时分类(如工业缺陷检测)。功耗表现 :运行TinyML任务时,结合LPBAM模式可将平均功耗控制在100μA以下,适合电池供电设备。三
    的头像 发表于 04-08 17:38 3183次阅读
    <b class='flag-5'>STM32U5</b>‌(超低功耗MCU,支持TinyML)全面解析

    STM32U5如何设置才能保证LPBAM和RUN模式下的应用程序正常使用呢?

    = 0x08000000,LENGTH = 2048K}请问,必须如上图这样设置才可以正常使用LPBAM吗,如果我的应用程序占用RAM过大,需要使用大量的RAM空间,如何设置才能保证LPBAM和RUN模式下的应用程序正常使用呢
    发表于 03-10 08:21

    cubeide的代码怎么编译到内部+外部FLASH里面去?

    我有一个项目,准备使用GUI和AI,准备使用STM32U5,但是编译出来的代码很多,STM32U5的内部FLASH不够用,准备使用OSPI扩展外部FLASH。但是遇到一个问题,我不知道怎么将编译
    发表于 03-07 07:48

    STM32U5偶尔出现无法进入shutdown模式,为什么?

    mode */ HAL_PWREx_EnterSHUTDOWNMode();}请问,通过上述代码进入shutdown模式,偶尔会出现进入失败的情况,现象是功耗没有降下去,并且IO口没有被重置,我在进入
    发表于 03-07 07:46

    STM32U5驱动库从1.6.0更新至1.7.0后,LPBAM的一个库接口返回错误是怎么回事?

    近期更新了CUBEMXIDE为1.18.0,以前的代码工程(STM32U5_1.6.0)提示说有新驱动库(STM32U5_1.7.0)可以使用,随即我便更新了驱动库,然后烧录出现问题,调试发现
    发表于 03-07 07:35