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

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

3天内不再提示

STM32定时器主从级联的应用示例分享

茶话MCU ? 来源:茶话MCU ? 作者:Miler ? 2021-11-26 11:45 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在STMCU中文社区有人咨询了类似下面的应用问题,有部分需求如下:

1.发送12个周期为500ns的脉冲(高电平200ns,低电平300ns),每隔4us发送一次,共计三次(36个脉冲,每12个脉冲之间间隔4us)。

2.在第一步中的每段12个脉冲的上升沿时,访问GPIO口,共计12个,三次共计36个。相关时序图如下:

384a2dec-4ddc-11ec-9eda-dac502259ad0.png

这里,我们就该问题的部分需求聊聊它的大致实现。先整理下需求:

连续三组12个周期为500ns的指定个数的小脉冲;

一个固定时间间隔10us(含12个脉冲本身的时间);

每个小脉冲对应1次GPIO的访问;

显然,我们一般会很自然地想到通过TIMER来完成,可以使用1个TIMER,也可以通过2个TIMER来完成。

如果使用1个TIMER,我们可以考虑使用更新事件对脉冲个数的统计及时间间隔的控制,同时基于比较事件或更新事件来触发DMA来实行对GPIO的访问。不过,这里每个脉冲周期为500ns,势必会发生频繁进入更新中断。

如果使用2个TIMER来实现起来就更为方便点。2个TIMER实现主从级联,各自任务如下安排:

主TIMER做时间间隔的控制,每10us产生一次触发事件,并开启更新事件中断,每发生3次更新事件即为一个大周期,后续启动根据其它条件定,此处不表。

从ITMER工作在触发从模式,同时选择它的某一通道做PWM输出,并工作在单脉冲模式,同时每个脉冲的比较事件触发一次DMA实现GPIO与内存间的传输。

基于上面的需求及规划,下面简单介绍下实现过程。我们选用STM32G4系列的Nucleo板【Nucleo-G431RB】来进行验证测试。

选择TIM1工作在从模式,输出脉冲的比较事件触发DMA完成对GPIO的访问。DMA每传输12个数据后进入DMA传输完成中断,并进行相关数据处理。令TIM3工作在主模式,它的计时周期为10us,每个周期产生一次更新事件作为触发输出并与TIM1的触发输入相连,作为TIM1的启动触发信号

通过查看STM32G4系列参考手册,我们可以得到如下片内定时器互联信号表。TIM3的TRGO信号可以作为TIM1的触发输入通道2的输入信号。

389a4174-4ddc-11ec-9eda-dac502259ad0.png

下面我们使用CubeMx进行配置。先看TIM1的相关配置【定时器计数时钟为10MHz】:

3903d45e-4ddc-11ec-9eda-dac502259ad0.png

39914e4c-4ddc-11ec-9eda-dac502259ad0.png

39f5c20a-4ddc-11ec-9eda-dac502259ad0.png

再看看看TIM3的基本配置:

3a5e6396-4ddc-11ec-9eda-dac502259ad0.png

完成相关初始化配置后创建工程,然后添加必要的用户代码。代码很简单,开启TIM1通道的pwm输出,使能TIM1-ch1比较事件的DMA触发功能,调用相关DMA功能函数,启动TIM3的计数器。

3ace4bd4-4ddc-11ec-9eda-dac502259ad0.png

其中,TIM_DMAcptPro()为DMA传输完成中断的回调函数,负责做相关数据的处理。TIM1的启动靠TIM3的更新事件来触发实现。

稍作编译调试即可看到如下结果:

黄色的信号为TIM1周期的脉冲输出,小脉冲间的间隔为4us.

蓝色信号为通过DMA写到GPIO的数据,高、低电平均代表一个数据。这些只是模拟下操作过程。

显然,当弄清实现原理后,基于CubeMx进行配置,整个过程实现起来还是比较简单的。这里需要我们对定时器的主从级联、定时器各类事件、比较输出的单脉冲模式的特性及对DMA运用有些了解。上面主要演示基于定时器主从模式的实现过程,更多细节还得阅读相关技术手册。

最后提醒个地方,现在是TIM3的更新事件去触发启动TIM1,显然第一次启动TIM1时需等待TIM3一个计数周期,如果不希望这样的话,我们也可以在TIM3启动的同时启动TIM1计数,只需在启动TIM3的同时手动产生个更新事件来实现。

编辑:jq

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

    关注

    23

    文章

    3302

    浏览量

    119397
  • dma
    dma
    +关注

    关注

    3

    文章

    576

    浏览量

    103473
  • 代码
    +关注

    关注

    30

    文章

    4905

    浏览量

    70995
  • GPIO
    +关注

    关注

    16

    文章

    1283

    浏览量

    54283

原文标题:STM32定时器主从级联的又一应用示例

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    stm32H743定时器溢出的原因?怎么解决?

    我利用定时器更新中断实现软件计时,定时时间是固定的按照{10ms, 20ms,650ms, 50ms,50ms}周期性进行的。由于下一次的计时时间是需要在定时器的中断处理函数中更新的,定时器
    发表于 06-23 08:26

    第十二章 SysTick——系统定时器

    本章介绍了W55MH32的SysTick系统定时器,它是24位递减计数,含4个寄存,可配置定时、中断,用于产生时基 等。
    的头像 发表于 05-22 17:16 ?517次阅读
    第十二章 SysTick——系统<b class='flag-5'>定时器</b>

    MCU定时器/计数

    RISC-V核低功耗MCU通过灵活的定时器架构、低功耗模式适配及硬件级中断优化,在工业控制、智能家居等场景中实现高精度计时与能耗控制的协同设计,满足复杂任务调度与实时响应的双重需求?。 一、?硬件
    的头像 发表于 04-27 13:54 ?345次阅读

    STM32定时器基本原理及常见问题之培训资料

    STM32 定时器基本原理及常见问题之培训资料v3.10 时基单元、捕捉比较功能、主从触发与级联、案例分享 培训内容:
    发表于 04-08 16:26

    STM32Cube配置RTOS时定时器如何选择?

    STM32Cube配置RTOS时定时器如何选择
    发表于 03-07 08:47

    stm32同一个定时器不同的通道,可以不同时的输出pwm波形吗?

    请问,stm32的同一个定时器,不同的通道,可以不同时的输出pwm波形吗?比如tim1的ch1输出,延时几毫秒后tim1的ch2输出。 现在是要输出两个相位不同的pwm波形,延时时间、频率、占空比
    发表于 03-07 08:20

    定时器已安排!开发小白看过来~

    或周期性地执行代码段,为物联网设备的运行提供了精确的时间控制。在多种应用场景中都发挥着重要作用,例如:定时发送数据、周期性检查传感状态等。 Air201最新资料下载: www.air201.cn 本文将通过demo示例,带你了
    的头像 发表于 12-31 14:30 ?469次阅读
    <b class='flag-5'>定时器</b>已安排!开发小白看过来~

    抄作业!看门狗定时器必备知识

    具体示例解析,教你如何在一个简单的LuatOS项目中集成看门狗定时器,设置适当的参数来确保系统在正常运行和故障场景下都能自动恢复。 Air201最新资料下载: www.air201.cn ▼ 看门狗简介 ▼ 看门狗(Watch Dog Timer,WDT)——是一种监控电
    的头像 发表于 12-30 14:44 ?828次阅读
    抄作业!看门狗<b class='flag-5'>定时器</b>必备知识

    详解CKS32F107xx系列的定时器同步功能

    我们将围绕定时器同步功能概述展开,并以其中一种功能为例——将定时器2给定时器3当预分频,最终级联同步PWM输出。
    的头像 发表于 11-26 17:51 ?1097次阅读
    详解CKS32F107xx系列的<b class='flag-5'>定时器</b>同步功能

    定时器自动控制开关怎么设置

    定时器自动控制开关是一种常见的自动化设备,广泛应用于家庭、工业、农业等多个领域。通过定时器,用户可以预设时间,让设备在特定时间自动开启或关闭,从而实现节能、提高效率和便利性。 一、定时器
    的头像 发表于 09-19 16:19 ?4252次阅读

    LM555-MIL定时器数据表

    电子发烧友网站提供《LM555-MIL定时器数据表.pdf》资料免费下载
    发表于 08-23 10:19 ?1次下载
    LM555-MIL<b class='flag-5'>定时器</b>数据表

    LM555QML定时器数据表

    电子发烧友网站提供《LM555QML定时器数据表.pdf》资料免费下载
    发表于 08-20 09:29 ?0次下载
    LM555QML<b class='flag-5'>定时器</b>数据表

    LM555定时器数据表

    电子发烧友网站提供《LM555定时器数据表.pdf》资料免费下载
    发表于 08-20 09:22 ?2次下载
    LM555<b class='flag-5'>定时器</b>数据表

    定时器的基本组成和工作模式

    定时器是计算机或电子设备中常见的一个硬件或软件组件,其主要功能是测量和控制时间的流逝。它在各种应用中起着至关重要的作用,如操作系统调度、多媒体播放、网络通信、工业自动化控制以及家电设备的定时功能等。定时器的工作原理基于时序控制,
    的头像 发表于 08-19 18:28 ?2872次阅读