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

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

3天内不再提示

CLASS B内部时钟检测在MM32SPIN0280上的实现

灵动MM32MCU 来源:灵动MM32MCU 2023-09-14 17:30 次阅读

很多应用场合需要检测系统时钟是否在正常范围内,以保证MCU能正常工作,CLASS B功能安全实现系统时钟自检的方法是采用两个独立时钟源交叉检查来进行测量,可使其中一个作为定时器的时钟源,另一个作为定时器的输入。SPIN0280含有微控制器时钟输出(MCO)功能,允许时钟输出到外部 MCO 引脚上,可以很便捷的输出HSI内部时钟信号到引脚上,配置外部时钟HSE为MCU的系统时钟,使用Timer3对引脚上的HSI信号进行捕获,以实现内部HSI和外部HSE交叉检测的功能。

微控制器时钟输出(MCO)

微控制器时钟输出(MCO)允许时钟输出到外部 MCO引脚上。相应 GPIO端口的配置寄存器必须被配置为复用输出功能。可以选择以下五个时钟信号中的一个作为 MCO输出时钟:

4107cd1e-52de-11ee-a25d-92fbcf53809c.png

MCO 与时钟源对应关系

微控制器时钟输出(MCO)配置为在PA8引脚上输出,此时PA8引脚需配置为AF0复用模式。

4139a0d2-52de-11ee-a25d-92fbcf53809c.png

TIM3 通用定时器

由一个16位可实时编程预分频器和一个16位计数方向可调的自动装载计数器组成,可以为用户提供便捷的计数定时功能,计数器时钟由预分频器分频得到。

TIM3具有多种用途:输入功能(测量输入信号的脉冲宽度、频率,PWM输入等),输出功能(PWM输出、单脉冲模式输出等)。

本次主要使用TIM3的输入捕获功能,输入捕获部分包括数字滤波器、多路复用、预分频器等,结构如下:

417021fc-52de-11ee-a25d-92fbcf53809c.png

输入捕获模式下,当检测到信号ICx上的有效边沿后,计数器的当前值被锁存到对应的影子寄存器上,再复制到对应的捕获比较寄存器中。当开启了中断或DMA使能,发生捕获事件时,将产生相应的中断或DMA请求。发生捕获事件时,会将状态寄存器(TIM3_SR)中的捕获标志位 CCxIF 置 1,通过配置 CCxIF=0或读取TIM3_CCRx中的数据,清除CCxIF标志位。当CCxIF未被清零时,发生输入捕获事件,重复捕获标志位CCxOF将会被置1,通过配置CCxOF=0,可以清除CCxOF标志位。

SPIN0280的通用定时器TIM3有4路输入捕获通道,本文采用TIM3_CH2对HSI进行捕获。

4139a0d2-52de-11ee-a25d-92fbcf53809c.png

SPIN0280 Timer3捕获内部HSI时钟具体步骤

1.使用外部HSE时钟(8M)并倍频到96M作为系统时钟

2.TIM3_CH2的引脚配置,配置为PA7的AF1复用功能

3. TIM3挂载在APB1上,使能TIM3时钟

4.配置TIM3,计数器清空,由低向高计数,上升沿触发,时钟不分频

5. 配置MCO输出在PA8引脚上,配置PA8为AF0复用功能,HSI信号128分频输出

6. 开启TIM3的时钟中断,并配置NVIC和编写中断函数

7. 开启Timer3外设

示例代码如下:

41d2d4a0-52de-11ee-a25d-92fbcf53809c.png

41fa50fc-52de-11ee-a25d-92fbcf53809c.png

420ca324-52de-11ee-a25d-92fbcf53809c.png

42293a7a-52de-11ee-a25d-92fbcf53809c.png

示例输出结果:

4246853a-52de-11ee-a25d-92fbcf53809c.png

4253864a-52de-11ee-a25d-92fbcf53809c.png

与实际硬件测试的结果相符。







审核编辑:刘清

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

    关注

    48

    文章

    6812

    浏览量

    147653
  • 寄存器
    +关注

    关注

    30

    文章

    5032

    浏览量

    117746
  • 数字滤波器
    +关注

    关注

    4

    文章

    250

    浏览量

    46748
  • 定时器
    +关注

    关注

    23

    文章

    3148

    浏览量

    112048
  • 预分频器
    +关注

    关注

    0

    文章

    17

    浏览量

    7989

原文标题:灵动微课堂 (第270讲)|CLASS B内部时钟检测在MM32SPIN0280上的实现

文章出处:【微信号:MindMotion-MMCU,微信公众号:灵动MM32MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MM32SPIN220B产品特性是什么?

    MM32SPIN220B产品特性是什么?MM32SPIN220B产品功能和外设配置是怎样的?
    发表于 11-08 07:15

    MM32SPIN0280相关资料下载

    灵动微全新MM32SPIN0280系列32位MCU产品是专门用于针对电机与电源领域所设计的基于Arm Cortex-M0内核的高性能微控制器,内核主频96兆赫兹,PWM主频192兆赫兹。QFN20
    发表于 11-10 08:39

    如何在MM32SPIN27实现硬件I2C从机呢

    翻遍了网络,国产MCU的资源还是较少,就贡献一个吧使用了国产的RT-thread操作系统+M0的单片机,灵动微MM32SPIN27实现的硬件I2C从机,有需要的朋友拿去,根据情况改
    发表于 02-11 06:55

    浅谈灵动微MM32SPIN0280系列MCU产品

    MM32SPIN0280系列32位MCU,同时设计了硬件数学计算单元,以及高主频PWM设计,尤其在三合一空调(压缩机、PFC以及风机)的设计,双轮平衡车、无人自走车这类产品方案,原本需要至少
    发表于 03-22 14:42 856次阅读

    灵动微全新MM32SPIN0280系列32位MCU

    灵动微全新MM32SPIN0280系列32位MCU产品是专门用于针对电机与电源领域所设计的基于Arm Cortex-M0内核的高性能微控制器,内核主频96兆赫兹,PWM主频192兆赫兹。QFN20
    发表于 11-05 18:05 11次下载
    灵动微全新<b class='flag-5'>MM32SPIN0280</b>系列32位MCU

    灵动微电子MM32SPIN0280为主控的滑板车参考方案

    -霍尔自学习,相位自检测 -支持单电阻电流采样 灵动微电子MM32SPIN0280使用高性能M0为内核的32位
    发表于 01-07 16:40 653次阅读

    AN6203 MM32SPIN0280 Motor Liberal指导手册(中文版)

    AN6203 MM32SPIN0280 Motor Liberal指导手册(中文版)
    发表于 03-01 18:43 0次下载
    AN6203 <b class='flag-5'>MM32SPIN0280</b> Motor Liberal指导手册(中文版)

    AN6407_基于MM32SPIN0280无感方波BLDC电动工具驱动篇应用笔记(中文版)

    AN6407_基于MM32SPIN0280无感方波BLDC电动工具驱动篇应用笔记(中文版)
    发表于 03-01 18:43 0次下载
    AN6407_基于<b class='flag-5'>MM32SPIN0280</b>无感方波BLDC电动工具驱动篇应用笔记(中文版)

    AN6413 基于MM32SPIN0280的PMSM双电阻采样矢量控制方案(中文版)

    AN6413 基于MM32SPIN0280的PMSM双电阻采样矢量控制方案(中文版)
    发表于 03-01 18:44 0次下载
    AN6413 基于<b class='flag-5'>MM32SPIN0280</b>的PMSM双电阻采样矢量控制方案(中文版)

    AN6415_基于MM32SPIN0280的PMSM单电阻采样矢量控制方案(中文版)

    AN6415_基于MM32SPIN0280的PMSM单电阻采样矢量控制方案(中文版)
    发表于 03-01 18:45 0次下载
    AN6415_基于<b class='flag-5'>MM32SPIN0280</b>的PMSM单电阻采样矢量控制方案(中文版)

    AN0071 从MM32SPIN2x移植到MM32SPIN0280(中文版)

    AN0071 从MM32SPIN2x移植到MM32SPIN0280(中文版)
    发表于 03-01 18:45 0次下载
    AN0071 从<b class='flag-5'>MM32SPIN</b>2x移植到<b class='flag-5'>MM32SPIN0280</b>(中文版)

    MM32SPIN0280 产品手册(中文版)

    MM32SPIN0280 产品手册(中文版)
    发表于 03-01 19:02 0次下载
    <b class='flag-5'>MM32SPIN0280</b> 产品手册(中文版)

    MM32SPIN0280 产品手册(英文版)

    MM32SPIN0280 产品手册(英文版)
    发表于 03-01 19:03 0次下载
    <b class='flag-5'>MM32SPIN0280</b> 产品手册(英文版)

    MM32SPIN0280内部时钟捕获外部HSE时钟

    对一段标准时间内的被测信号的上升沿数量进行计数。
    的头像 发表于 05-12 13:50 414次阅读
    <b class='flag-5'>MM32SPIN0280</b><b class='flag-5'>内部</b><b class='flag-5'>时钟</b>捕获外部HSE<b class='flag-5'>时钟</b>

    MM32SPIN0280内部时钟捕获外部HSE时钟

    对一段标准时间内的被测信号的上升沿数量进行计数。
    的头像 发表于 05-23 15:49 574次阅读
    <b class='flag-5'>MM32SPIN0280</b><b class='flag-5'>内部</b><b class='flag-5'>时钟</b>捕获外部HSE<b class='flag-5'>时钟</b>