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

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

3天内不再提示

实战经验 | Timer 结合 DMA 2D 通道实现不同波形输出

STM32单片机 来源:未知 2023-10-26 15:20 次阅读

关键词:GPDMA,2D addressing

目录预览

1、问题背景

2、产生PWM

3、PWM滤波输出

4、小结

01

问题背景

客户需要使用 MCU 输出正弦波,但受限于 MCU DAC 数量不足,建议尝试使用 PWM加滤波方式产生正弦波。同时要求正弦波与固定电平交替输出。因此可用一个 TIM 输出PWM,同时用另一个 TIM 来定时切换输出正弦波或固定电平。

使用 TIM 输出 PWM 产生正弦波形时,需要结合 GPDMA 来实现。在 STM32U5 系列中,GPDMA 共有 16 个独立通道,其中 12-15 通道还具有 2D addressing/ repeat 功能。因此也可以使用一个 TIM 加 GPDMA 的一个 2D 通道实现 PWM 波形切换功能。

02

产生PWM

本文按以下配置产生 PWM,在 U575 NUCLEO 板测试:

(1)MCU 主频:100MHz

(2)PWM 频率 2MHz(周期 500ns),脉宽可调范围 0~50 个计数时钟,

(3)每个正弦波周期(10us)对应 20 个 PWM 脉冲,各 PWM 脉宽用计数时钟表示分别为:25, 33, 40, 45, 49, 50, 49, 45, 40, 33, 25, 17, 10, 5 , 1 , 0 , 1 , 5 , 10, 17

(4)将步骤 3 中的正弦波重复 1000 次,对应 10ms 的连续正弦波形

2.1. STM32CubeMX 生成测试工程

2.1.1. TIM1 CH1 PWM 配置

wKgZomU6FFCAXNNoAAInklhBFsk366.png

图1. TIM1 CH1 PWM

2.1.2. GPDMA CH12 配置

选用 GPDMA 通道 12,并配置为循环模式:

wKgZomU6FFGAPbJqAAPOxQvJEsA581.png

图2. GPDMA CH12

2.1.3. GPDMA Linked List 配置

创建 Linked List Queue,并配置为搭配 GPDMA 2D 功能通道使用。创建两个节点,TN1, TN2,并使用循环模式,指定首个循环节点为 TN1。

wKgZomU6FFGAcTtUAADifVzLGPs743.png

图3. Linked List

TN1 节点配置,由此节点结合 TIM 来产生 PWM,并滤波成正弦信号

(1)TIM1 更新事件作为 DMA 请求

(2)使能 2D 功能,一个 block 传输完成后,回退到数组起点,重新传输

(3)使能 Repeat 功能,重复 block 传输 1000 次

首先使能了 TrustZone 架构,然后将 LPGPIO 映射到了非安全区,并且配置了 DMA 链表功能,使用 LPTimer 作为触发,自动地修改 LPGPIO 的寄存器,从而达到在低功耗模式下,GPIO自动切换的功能。但遇到了 LPDMA 的配置问题,并且程序无法跳转到 Non-Secure 工程。

wKgZomU6FFGAQ8_oAAFjZfU5VU4726.png

图4. Linked List Node1

TN2 节点配置,与 TN1 节点类似,用于切换到第二组数据产生第二种波形

wKgZomU6FFGAdONnAAFXpheqJ3M634.png

图5. Linked List Node2

2.2. 测试代码

wKgZomU6FFGAdEn4AAHo5WB52Go632.png

GPDMA Linked List 模式执行流程

wKgZomU6FFGAa57AAABfbe_y3EQ230.png

图6. Linked List 执行过程及期望输

03

PWM滤波输出

在 U575 NUCLEO 板上测试,结果如下:

wKgZomU6FFKAJqFrAATY_Zm02Ok916.png

图7. 实际输出

从实测结果来看,滤波后的正弦波频率,波形持续时长都符合预期。另外,与通过额外 TIM 计时来切换 PWM 输出的方式相比,使用 Linked List repeat 这种方式,正弦波与固定电平输出之间切换更平滑。

wKgZomU6FFKAEBdZAANLej_RDE8462.png

图8. 额外 TIM 计时来切换 PWM 输出

04

小结

通过使用 GPDMA Linked List 模式,使用 2D addressing repeat 功能,能方便实现这种多种波形切换的应用场景。如 Node1 与 Node2 使用不同的数据长度和重复次数,则可得到不同时长的两种波形;通过增加更多 Node,则可得到多种不同波形。

wKgZomU6FFKAGNi-AAHiBpzEGaQ236.png

完整内容请点击“阅读原文”下载原文档。


原文标题:实战经验 | Timer 结合 DMA 2D 通道实现不同波形输出

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。


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

    关注

    6037

    文章

    44558

    浏览量

    635261
  • STM32
    +关注

    关注

    2270

    文章

    10900

    浏览量

    355998
收藏 人收藏

    评论

    相关推荐

    Allegro推出2D霍尔效应速度和方向锁存器

    对于天窗顶电机位置,升降门电机,车窗升降电机和电子驻车制动(EPB)系统等应用,透过使用单个2D磁性速度和方向传感器,可以简化系统设计和生产,减少BOM,并提高系统安全性。APS12625和APS12626系列2D霍尔效应2D
    的头像 发表于 09-27 09:58 452次阅读

    TMAG511x 2D锁扣的优点

    电子发烧友网站提供《TMAG511x 2D锁扣的优点.pdf》资料免费下载
    发表于 09-13 09:53 0次下载
    TMAG511x <b class='flag-5'>2D</b>锁扣的优点

    TMAG511x-Q1 2D通道、高灵敏度、霍尔效应锁存器数据表

    电子发烧友网站提供《TMAG511x-Q1 2D通道、高灵敏度、霍尔效应锁存器数据表.pdf》资料免费下载
    发表于 08-13 11:12 0次下载
    TMAG511x-Q1 <b class='flag-5'>2D</b> 双<b class='flag-5'>通道</b>、高灵敏度、霍尔效应锁存器数据表

    TMAG511x 2D通道、高灵敏度、霍尔效应锁存器数据表

    电子发烧友网站提供《TMAG511x 2D通道、高灵敏度、霍尔效应锁存器数据表.pdf》资料免费下载
    发表于 08-12 10:45 0次下载
    TMAG511x <b class='flag-5'>2D</b> 双<b class='flag-5'>通道</b>、高灵敏度、霍尔效应锁存器数据表

    CW32使用DMA通道、定时器触发ADC实现了多路AD采集

    本测试样例基于CW32F030C8T6MCU,使用DMA通道、定时器触发ADC实现了12路AD采集。
    的头像 发表于 05-24 09:29 846次阅读
    CW32使用<b class='flag-5'>DMA</b>单<b class='flag-5'>通道</b>、定时器触发ADC<b class='flag-5'>实现</b>了多路AD采集

    通过2D/3D异质结构精确控制铁电材料弛豫时间

    受经典德拜弛豫启发的米勒模型提供了通过操纵弛豫时间来控制自发极化的理论框架。作者通过使用层转移技术形成的2D/C-3D/2D异质结构克服了传统异质结存在的铁电性恶化和能量损失的问题。
    的头像 发表于 04-29 10:27 669次阅读
    通过<b class='flag-5'>2D</b>/3<b class='flag-5'>D</b>异质结构精确控制铁电材料弛豫时间

    基于MAXWELL 2D 的永磁电机研究

    电子发烧友网站提供《基于MAXWELL 2D 的永磁电机研究.pdf》资料免费下载
    发表于 04-23 14:18 7次下载

    f446rct6在使用dma控制pwm占空比时,pwm波形异常的原因?

    单片机:f446rct6 系统:freertos 库:hal 程序逻辑: 1.初始化timer输出pwm波同时初始化dma并连接到Capture/Compare 寄存器 2.启动
    发表于 04-09 07:45

    STM32G030F ADC-DMA1通道3,串口收发-DMA1的通道1和通道2,同一个DMA的不同通道为什么会相互影响呢?

    同一个DMA的不同通道为什么会相互影响呢,关闭ADC,串口工作正常,串口波形正常。打开ADC,串口虽然也能工作,但是波形在跳动,好像是ADC的DMA
    发表于 03-26 07:01

    有了2D NAND,为什么要升级到3D呢?

    2D NAND和3D NAND都是非易失性存储技术(NVM Non-VolatileMemory),属于Memory(存储器)的一种。
    的头像 发表于 03-17 15:31 1021次阅读
    有了<b class='flag-5'>2D</b> NAND,为什么要升级到3<b class='flag-5'>D</b>呢?

    STM32F051C8 PA0不能以DMA的方式输出PWM,没有正确波形输出是哪里出了问题?

    启动timer2 PWM,用示波器检测不到输出波形; 使用STM32F030C8 ,同样的配置和WS2812B的应用代码,更换为PA6(对应的timer3,channel1)能够正常
    发表于 03-13 06:20

    Xilinx高性能PCIe DMA控制器IP,8个DMA通道

    基于PCI Express Integrated Block,Multi-Channel PCIe QDMA Subsystem实现了使用DMA地址队列的独立多通道、高性能Continous或
    的头像 发表于 02-22 11:11 1457次阅读
    Xilinx高性能PCIe <b class='flag-5'>DMA</b>控制器IP,8个<b class='flag-5'>DMA</b><b class='flag-5'>通道</b>

    STM32U5系列TIMER+DMA+DAC应用演示

    有人使用STM32U575芯片的DAC功能。他希望使用TIMER事件触发DMA,并通过DMA传输内存数据到DAC输出寄存器,进而产生相应的DAC输出
    的头像 发表于 01-24 09:10 1836次阅读
    STM32U5系列<b class='flag-5'>TIMER+DMA</b>+DAC应用演示

    介绍一种使用2D材料进行3D集成的新方法

    美国宾夕法尼亚州立大学的研究人员展示了一种使用2D材料进行3D集成的新颖方法。
    的头像 发表于 01-13 11:37 1069次阅读

    dma通道技术的区别

    DMA(Direct Memory Access)和通道技术是计算机系统中用来优化数据传输和处理的重要技术。尽管它们都与数据传输相关,但它们在实现方法、特点和应用场景等方面存在一些重要的区别
    的头像 发表于 01-04 14:31 2596次阅读