【技术】武汉芯源CW32定时器输入捕获的操作讲解

2023-02-16 武汉芯源半导体公众号
MCU,CW32,武汉芯源 MCU,CW32,武汉芯源 MCU,CW32,武汉芯源 MCU,CW32,武汉芯源

CW32系列MCU的GTIM、ATIM的每个定时器都带有至少4路独立的捕获/比较通道,输入捕获功能可以测量输入信号的脉冲宽度或者频率。当捕获比较通道CHy上信号发生跳变(上升沿或下降沿)时,硬件自动将当前计数寄存器GTIMx_CNT的值存放到对应通道的比较捕获寄存器GTIMx_CCRy中,完成一次捕获。通过连续几次捕获即可完成信号脉冲宽度或者频率的测量。


功能框图如下图所示:

各个通道上触发捕获的条件由比较捕获控制寄存器GTIMx_CMMR决定。

当发生一次捕获时,通道CHy比较捕获中断标志GTIMx_ISR.CCy被硬件置位,如果允许中断(设置中断使能寄存器GTIMx_IER.CCy为 1),CPU将响应中断服务程序。退出中断服务程序之前,应设置中断标志清除寄存器GTIMx_ICR.CCy为0以清除该标志。


输入捕获来源

GTIM的输入捕获来源可以是外部GTIMx_CHy引脚,也可以是片内其它外设,通过通用定时器输入捕获来源配置寄存器SYSCTRL_GTIMxCAP进行配置。当SYSCTRL_GTIMxCAP.CHy为0x00时,输入捕获信号的外部输入端口由GPIO复用功能寄存器(GPIOx_AFRH和GPIOx_AFRL)进行配置。当SYSCTRL_GTIMxCAP.CHy为0x01~0x07时,输入捕获信号来自片内其它外设,如下表所示:

这种配置下,可以在芯片内部实现外部输入的互联,例如将UART的RXD信号作为输入捕获来源,可以实现对UART波特率的自动检测。


实例演示

利用GTIM的输入捕获功能,测量PWM信号的周期和脉宽

1.初始化系统时钟

void RCC_Configuration(void)

{

__RCC_GTIM1_CLK_ENABLE();

__RCC_GPIOA_CLK_ENABLE();

RCC_HSI_Enable(RCC_HSIOSC_DIV6);

// 系统时钟设置为HSI,6分频,8MHz, PCLK、HCLK不分频, PCLK=HCLK=SysClk=8MHz

}


2.初始化GPIO

void GPIO_Configuration(void)

{

GPIO_InitTypeDef GPIO_InitStruct = {0};

GPIO_InitStruct.IT = GPIO_IT_NONE;

GPIO_InitStruct.Mode = GPIO_MODE_INPUT;

GPIO_InitStruct.Pins = GPIO_PIN_6 | GPIO_PIN_7;

GPIO_Init(CW_GPIOA, &GPIO_InitStruct);

PA06_AFx_GTIM1CH1();//设置PA06复用为GTIM1_CH1, 上升沿触发捕获

PA07_AFx_GTIM1CH2();//设置PA07复用为GTIM1_CH2,下降沿触发捕获。

}


3.配置中断服务程序

void NVIC_Configuration(void)

{

__disable_irq();

NVIC_EnableIRQ(GTIM1_IRQn);

__enable_irq();

}


4.GTIM1中断服务程序:

通道1的输入捕获中断获取计数值VALUE1,通道2的输入捕获中断获取计数值VALUE2,通道1的第2次输入捕获中断获取计数值VALUE3。则信号脉宽=VALUE2-VALUE1,信号周期=VALUE3-VALUE1。注意如果待测量信号的脉宽和周期较长,在计算时需要考虑定时器的溢出问题,详见定时器溢出中断处理内容。

void GTIM1_IRQHandler(void)

{

GTIM1_IRQHandlerCallBack();

}

void GTIM1_IRQHandlerCallBack(void)

{

static uint8_t stage = 0;

static uint32_t cnt = 0;

if (GTIM_GetITStatus(CW_GTIM1, GTIM_IT_OV))

{

GTIM_ClearITPendingBit(CW_GTIM1, GTIM_IT_OV);

if (stage == 1)

{

cnt++;

}

}

if (GTIM_GetITStatus(CW_GTIM1, GTIM_IT_CC1))

{

if (stage == 0)

{

PWMPeriod = GTIM_GetCapture1(CW_GTIM1);

stage = 1;

}

else if (stage == 1)

{

PWMPeriod = GTIM_GetCapture1(CW_GTIM1) + cnt * 65536 - PWMPeriod;

stage = 0;

cnt = 0;

}

GTIM_ClearITPendingBit(CW_GTIM1, GTIM_IT_CC1);

}

if (GTIM_GetITStatus(CW_GTIM1, GTIM_IT_CC2))

{

if (stage == 1)

{

PWMWidth = GTIM_GetCapture2(CW_GTIM1) + cnt * 65536 - PWMPeriod;

}

GTIM_ClearITPendingBit(CW_GTIM1, GTIM_IT_CC2);

}

}


5.主程序:使用GTIM1的CH1和CH2两个通道对PWM输入信号进行测量,在捕获中断服务程序中完成信号的周期和脉宽计算。

static uint32_t PWMPeriod = 0;

static uint32_t PWMWidth = 0;

int32_t main(void)

{

RCC_Configuration();//System Clocks Configuration

GPIO_Configuration();//GPIO Configuration

NVIC_Configuration();//NVIC Configuration

GTIM_InitTypeDef GTIM_InitStruct = {0};

GTIM_ICInitTypeDef GTIM_ICInitStruct = {0};

GTIM_InitStruct.Mode = GTIM_MODE_TIME; /*!< GTIM的模式选择。*/

GTIM_InitStruct.OneShotMode = GTIM_COUNT_CONTINUE;

/*!< GTIM的单次/连续计数模式选择。*/

GTIM_InitStruct.Prescaler = GTIM_PRESCALER_DIV1; /*!< GTIM的预分频系数。*/

GTIM_InitStruct.ReloadValue = 0xFFFF; /*!< GTIM的重载值。*/

GTIM_InitStruct.ToggleOutState = DISABLE;

GTIM_TimeBaseInit(CW_GTIM1, >IM_InitStruct); //GTIM的基础参数初始化

GTIM_ICInitStruct.CHx = GTIM_CHANNEL1;// GTIM 输入捕获的配置参数

GTIM_ICInitStruct.ICFilter = GTIM_CHx_FILTER_NONE;

GTIM_ICInitStruct.ICInvert = GTIM_CHx_INVERT_ON;

GTIM_ICInitStruct.ICPolarity = GTIM_ICPolarity_Rising;

GTIM_ICInit(CW_GTIM1, >IM_ICInitStruct);//输入捕获功能初始化

GTIM_ICInitStruct.CHx = GTIM_CHANNEL2;

GTIM_ICInitStruct.ICPolarity = GTIM_ICPolarity_Falling;

GTIM_ICInit(CW_GTIM1, >IM_ICInitStruct);

GTIM_ITConfig(CW_GTIM1, GTIM_IT_CC1 | GTIM_IT_CC2 | GTIM_IT_OV, ENABLE);

GTIM_Cmd(CW_GTIM1, ENABLE);

while (1)

{

}

}


6.演示说明:

将同一个PWM输入信号引入到PA06和PA07上,运行程序,使用GTIM1的CH1和CH2两个通道对PWM输入信号的脉宽和周期进行测量。

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由认真转载自武汉芯源半导体公众号,原文标题为:CW32定时器操作讲解——输入捕获,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【技术】一文介绍使用CW32系列MCU实现电池备份(VBAT)功能

本文档介绍了如何基于CW32系列MCU,通过增加简单的外部电路配合软件实现VBAT功能,在系统电源掉电后仍能保持RTC时钟正常计时,以及如何降低系统功耗,从而延长后备电池的使用寿命。

技术探讨    发布时间 : 2023-09-14

介绍MCU的ARM处理器——Cortex-M0+内核

ARM Cortex-M0+是2012年3月14日ARM公司发布的一款低功耗效率、能效最高的ARM处理器,可用于存在设计约束的嵌入式应用。它具有最小的硅面积和极少的代码量,从而使开发人员能够以16和8位的价位实现32位性能。处理器的低门数使其能够部署在需要简单功能的应用中。本文中武汉芯源来给大家介绍Cortex-M0+内核,希望对各位工程师有所帮助。

技术探讨    发布时间 : 2024-05-31

【技术】解析武汉芯源MCU CW32系统滴答SysTick定时器

Cortex-M0+处理器中内置有一个SysTick定时器,通常用于嵌入式操作系统的多任务切换,在不使用操作系统的应用中,亦可作为其它用途,如定时、计时或者为需要周期性执行的任务提供中断源。

技术探讨    发布时间 : 2023-01-06

【经验】武汉芯源CW32系列MCU PWM输出功能指南

脉冲宽度调制(PWM),是在数字电路中达到模拟输出效果的一种手段,常见应用电机调速,照明灯调光等。在MCU中,主要通过定时器单元来时实现PWM输出,以CW32L083VxTx为例,LPTIM,GTIM,ATIM都可以输出PWM信号。

设计经验    发布时间 : 2023-02-23

武汉芯源半导体安全低功耗MCU CW32L010 | 新品使用初体验

CW32L010新品的正式发布,标志着嵌入式技术领域的又一次创新突破。今日,我们有幸进行该新品的首次使用体验,以一块L010核心板为例,体验一下这颗芯片

设计经验    发布时间 : 2024-10-18

CW32F030C8T6 MCU Supports an Ultra Wide Temperature Range of -40~105 ℃, Ensures Safe and Stable Operation of Portable Charging Gun

Wuhan Core Source Semiconductor‘s CW32F030C8T6 serves as the core control chip of the portable charging gun of Sihao New Energy Vehicle, indicating that CW32F030C8T6 microcontroller has been recognized by frontline host manufacturers.

应用方案    发布时间 : 2024-11-07

【应用】基于CW32L系列MCU的指夹式血氧仪,实现更高精度测量

主控芯片建议使用CW32F003(20pin)资源足够,还便宜。CW32抗干扰性能可轻松通过ESD 8KV认证,加之优秀的ADC性能,是血氧仪类产品的不二之选

应用方案    发布时间 : 2023-09-07

【经验】芯源CW32系列MCU电容式触摸按键设计指南

芯源半导体的CW32系列MCU电容式触摸按键设计指南向客户提供利用CW32内部资源结合软件编程实现电容式触摸按键有效触摸检测的方法。本指南内容重点在于工作原理、软件检测过程以及调试指引。通过本文可了解到如何利用内置电压比较器和内置定时器及软件配合,实现灵活方便的按键检测。在介绍标准演示板和演示软件的性能参数同时,还会给出详细的调试建议以及设计参数选择倾向分析,帮助客户快速自信地完成设计并实施调试。

设计经验    发布时间 : 2023-07-27

M0+产品行业新标杆诞生,武汉芯源CW32L010安全低功耗MCU集合多项技术性能优势

2024年9月26日,武汉芯源半导体带着最新产品CW32L010安全低功耗MCU作客电巢直播间,举行了一场璀璨的XR技术新品发布会,此次直播,武汉芯源半导体技术总监 张亚凡、北中国区销售总监 孙秀艳与大家分享了武汉芯源半导体的发展历程和重要时刻,全面介绍和讲解了新品CW32L010实现的技术优势。

原厂动态    发布时间 : 2024-11-05

【产品】武汉芯源CW32L083系列MCU中断系统介绍

本文针对武汉芯源CW32L083系列MCU,同系列产品亦可参考。ARM® Cortex®-M0+内核的嵌套向量中断控制器(NVIC),用于管理中断和异常。NVIC和处理器内核紧密相连,可以实现低延迟的异常和中断处理。

产品    发布时间 : 2022-12-02

Application of CW32L083 Series MCU in Air Purifiers, Supported by Built in Independent Calibration RTC

The air purifier introduced in this article adopts the CW32L083 series microcontroller as the control core of the air purifier, and combines important components such as sensors, displays, drivers, and wireless transceivers to complete the required functions of the controller system.

应用方案    发布时间 : 2024-11-05

使用通用串口模块下载CW32F030芯片的方法

在常见的客户技术支持中,常有需要串口下载CW32芯片的问题,现整理一份文档供参考。

设计经验    发布时间 : 2024-07-20

The Application of CW32F030 Series MCU in Electric Welding Machines

Applying a microcontroller in an electric welding machine can achieve automated control, improve welding quality and efficiency by writing specific programs. This article introduces the application of Wuhan Core Source Semiconductor CW32F030 series microcontroller in arc welding machines.

应用方案    发布时间 : 2024-11-05

【经验】武汉芯源CW32系列MCU芯片低功耗模式的特性介绍

武汉芯源CW32系列芯片支持3种工作模式,运行模式、休眠模式以及深度休眠模式,本文以CW32L083为例介绍低功耗模式的特性。

设计经验    发布时间 : 2023-01-03

【IC】武汉芯源CW32L010安全低功耗MCU,树立M0+产品行业新标杆!

近日,武汉芯源半导体CW32L010系列产品正式官方发布。这款产品以其卓越的产品性能,迅速在业界引起了广泛关注,并成功树立M0+产品行业的新标杆。产品是基于eFlash的单芯片低功耗微控制器,集成了主频高达48MHz的ARM®Cortex®-M0+内核、高速嵌入式存储器(多至64K字节FLASH和多至4K字节SRAM)以及一系列全面的增强型外设和I/O口。

产品    发布时间 : 2024-10-10

展开更多

电子商城

查看更多

品牌:武汉芯源

品类:通用MCU

价格:¥8.4750

现货: 300,010

品牌:武汉芯源

品类:通用MCU

价格:¥7.6275

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥7.0625

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥7.6275

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥4.8025

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥4.8025

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥7.0625

现货: 300,000

品牌:武汉芯源

品类:通用MCU

价格:¥5.6500

现货: 300,000

品牌:武汉芯源

品类:MCU

价格:

现货: 200,000

品牌:武汉芯源

品类:MCU

价格:

现货: 100,000

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:RENESAS

品类:16-BIT MCU

价格:¥5.5190

现货:910,635

品牌:RENESAS

品类:MCU

价格:¥5.1500

现货:200,000

品牌:恒烁

品类:MCU

价格:¥1.0800

现货:154,600

品牌:Advanced Digital Chips

品类:MCU

价格:¥6.6000

现货:100,000

品牌:RENESAS

品类:MCU

价格:¥5.8041

现货:86,925

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥7.3800

现货:76,715

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥15.3000

现货:75,000

品牌:Advanced Digital Chips

品类:MCU

价格:¥9.0000

现货:64,841

品牌:ST

品类:MCU

价格:¥15.5600

现货:58,800

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥257.6400

现货:58,799

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

TFT LCD液晶显示屏/模组定制

可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。

最小起订量: 1000 提交需求>

MCU烧录/Flash烧录/CPLD烧录

可烧录IC封装SOP/MSOP/SSOP/TSOP/TSSOP/PLCC/QFP/QFN/MLP/MLF/BGA/CSP/SOT/DFN;IC包装Tray/Tube/Tape;IC厂商不限,交期1-3天。支持IC测试(FT/SLT),管装、托盘装、卷带装包装转换,IC打印标记加工。

最小起订量: 1pcs 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面