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

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

3天内不再提示

STM32H7 BDMA应用示例及实现过程分析

茶话MCU 来源:茶话MCU 作者:茶话MCU 2022-11-06 21:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

有人利用STM32H743系列芯片做开发,他想使用片内BDMA将GPIO的数据读到内存,并通过LPTIM触发DMA传输时却遇到点麻烦,发现总是实现不了。这里我简单介绍下实现过程,并做些提醒。

STM32H7系列的时钟系统以及内部总线、功能框架相比其它M3/M4内核的STM32芯片要负责不少。整个芯片根据运行时钟高低及总线架构大致分为3个区域,其中BDMA位于区域3即D3域。

在STM32H7系列参考手册中有下面的一副系统功能框图:

0572414c-5ce1-11ed-a3b6-dac502259ad0.png

我们在上图的右下角可以看到BDMA,而且BDMA只能访问AHB4APB4总线上的外设和SRAM4及备份SRAM. 另外,我们还可以从手册上进一步了解到,GPIO外设都是挂在AHB4总线上的。

05a7040e-5ce1-11ed-a3b6-dac502259ad0.png

结合上面介绍可知,现在既然使用BDMA,内存RAM就不能选择SRAM4和备份RAM以外的区域,否则BDMA鞭长莫及而访问不到他们。这是要注意的地方。

另外,这里需要用到LPTIM2的输出事件来触发DMA请求,要使用DMAMUX并完成相关配置。

062af656-5ce1-11ed-a3b6-dac502259ad0.png

配置LPTIM2让它可以产生周期性输出事件即可,实际参数视具体应用而拟定。

066311ee-5ce1-11ed-a3b6-dac502259ad0.png

现在对BDMA做些配置,如下图示。LPTIM2的每次输出事件申请一个DMA请求。

0998bfee-5ce1-11ed-a3b6-dac502259ad0.png

另外,我还配置了GPIOC的几个管脚,以便做测试。这里就不贴配置截图了。

把时钟系统配置完后就可以基于STM32CubeIDE和STM32Cube库的工程。

再添加几行用户代码就可以着手测试。添加的函数代码分别是关于开启DMAmux、启动DMA传输和启动LPTIM2的操作。

LPTIM_HandleTypeDefhlptim2;

DMA_HandleTypeDefhdma_bdma_generator0;

09d967ec-5ce1-11ed-a3b6-dac502259ad0.png

这里我把GPIO_INData[]数组地址指定到了BDMA可以访问到的SRAM4.,它对应STM32CubeIDE链接文件里的RAM_D3。

09fe7fb4-5ce1-11ed-a3b6-dac502259ad0.png

0a3208ac-5ce1-11ed-a3b6-dac502259ad0.png

最后验证结果,我们可以看到BDMA从GPIOC端口读到的数据。

0a5f127a-5ce1-11ed-a3b6-dac502259ad0.png

整体来讲,实现起来比较简单,重点注意BDMA可以访问哪些地方弄清楚,在指定内存地址这个地方不同IDE环境操作上略有差异。再就是要用到LPTIM周期性事件申请DMA请求来实现传输。

审核编辑:郭婷

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

    关注

    463

    文章

    54416

    浏览量

    469206
  • 总线
    +关注

    关注

    10

    文章

    3057

    浏览量

    91864

原文标题:STM32H7 BDMA应用示例

文章出处:【微信号:stmcu832,微信公众号:茶话MCU】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32H7 的 3 个 ADC 时钟同步方法

    1. 引言STM32H7 系列中使用多个 ADC 时,存在 ADC 时钟不同步的风险,这可能导致一个 ADC模块干扰其他 ADC 模块的转换过程。当 ADC1 和 ADC2 以双模(dual
    发表于 04-15 16:16 0次下载

    “中国造”STM32启动规模量产,意法半导体打造MCU产业本地化新样本

    产品已陆续发货给国内客户。 首批 量产的产品以STM32H7系列的部分型号为主,同时意法半导体表示2026年将 有 更多STM32产品系列实现中国本地量产, 从 STM32H7 高性能
    的头像 发表于 03-24 11:27 6774次阅读
    “中国造”<b class='flag-5'>STM32</b>启动规模量产,意法半导体打造MCU产业本地化新样本

    LAT1602_STM32H7 的 3 个 ADC 时钟同步方法

    STM32H7 系列中使用多个 ADC 时,存在 ADC 时钟不同步的风险,这可能导致一个 ADC模块干扰其他 ADC 模块的转换过程。当 ADC1 和 ADC2 以双模(dual mode)工作
    发表于 03-11 10:51 0次下载

    STM32H7R3/S3:高性能微控制器的新标杆

    STMicroelectronics STM32H7R3/S3微控制器采用Arm® Cortex®-M7处理器,时钟频率为600MHz。STMicroelectronics STM32H7R3/S3
    的头像 发表于 10-21 11:39 1246次阅读
    <b class='flag-5'>STM32H7</b>R3/S3:高性能微控制器的新标杆

    STM32H7S78-DK探索套件深度解析与技术应用指南

    的应用。STMicroelectronics STM32H7S78-DK套件具有各种硬件特性,包括USB Type-C™ 、Octo-SPI闪存、Hexadeca-SPI PSRAM器件、音频编解码器、数字麦克风、ADC、用户按钮和灵活扩展连接器。这些连接器便于轻松实现
    的头像 发表于 10-20 15:34 1356次阅读
    <b class='flag-5'>STM32H7</b>S78-DK探索套件深度解析与技术应用指南

    STM32H7的FDCAN驱动找不到是怎么回事?

    看论坛上已经有朋友在用了H7的fdcan驱动了( 记录下H7调试FDCAN驱动的历程 ), 可是我在3.0、4.1 、5.1的源码中都没有找到 ,请问对应的drv_fdcan.c文件在哪里能找到呢?
    发表于 09-11 08:03

    RTthread 4.1 stm32h7系列不支持pwm要怎么处理?

    找问题找了很久,搜到了一个4.0.2版本pwm 没有支持STM32H7系列的帖子 现在是4.1 还是没有,求助大佬帮改个代码 报错信息 驱动程序里没有STM32H7的 static
    发表于 09-10 07:34

    从 rtthread studio 上拉下来的 stm32h7 FDACN 驱动调不通是哪里的问题?

    请问我从 rtthread studio 上拉下来的 stm32h7 FDACN 驱动调不通,是这个驱动有问题吗
    发表于 09-10 06:03

    rt thread studio编写STM32H7不能使用V2版串口驱动是怎么回事?

    使用rt thread studio编写STM32H7程序,使用rt thread settings可视化工具配置:使用UART设备驱动程序,配置为RT_USING_SERIAL_V2,但是使用的还是drv_usart.c,没有drv_usart_v2.c。这是真么回事
    发表于 08-29 07:56

    STM32H7使用HAL库如何控制外置USB HS PHY进入低功耗?

    项目使用STM32H7的HAL库控制外置USB HS PHY(如USB3300或CH132)的。不知如何让MCU通过ULPI接口写寄存器让USB HS PHY进入低功耗,且USB保持链接状态让PC可以重新唤醒。
    发表于 08-14 07:21

    求助,关于stm32H7多DMA数据流问题求解

    情况如下:stm32H7配置了一个adc进行采样,通过dma进行数据传输,串口接收和发送命令,用两个dma数据流通道,采用的空闲中断。 问题:adc一直在中断中,调试未进入串口中断,关闭adc后串口
    发表于 07-29 15:02

    STM32H7的MPU配置与D-Cache冲突如何解决?​​

    现象​​: STM32H743 MPU 与 D-Cache 冲突问题详细描述** 硬件环境 MCU 型号 :STM32H743VIT6 开发板 :自定义板(或 STM32H743I-EVAL 等
    发表于 06-23 17:32

    使用STM32CubeIDE对STM32H7进行开发和调试,CM4始终报\"Failed to read ROM table via AP 3\"错误怎么解决?

    我正在使用STM32CubeIDE对STM32H7系列双核微控制器进行开发和调试,但遇到了一个顽固的问题,希望能得到社区的帮助和建议。 ### 问题描述 我根据应用手册AN5361,使用内置示例
    发表于 05-14 06:20

    STM32H743VIT6 ST单片机 参数及应用场景

    STM32H743VIT6 是意法半导体(STMicroelectronics)推出的一款高性能 Cortex-M7 微控制器,属于 STM32H7 系列。它凭借强大的处理能力、丰富的外设和低功耗
    的头像 发表于 05-12 11:19 3507次阅读
    <b class='flag-5'>STM32H</b>743VIT6 ST单片机 参数及应用场景

    STM32H7双核调试,CM7能成功调试但CM4始终报\"Failed to read ROM table via AP 3\"错误是怎么回事?

    我正在使用STM32CubeIDE对STM32H7系列双核微控制器进行开发和调试,但遇到了一个顽固的问题,希望能得到社区的帮助和建议。 ### 问题描述 我根据应用手册AN5361,使用内置示例
    发表于 04-27 06:40