历史上的今天
返回首页

历史上的今天

今天是:2024年09月03日(星期二)

正在发生

2021年09月03日 | STM8使用TIM1测量PWM波

2021-09-03 来源:eefocus

一基本TIM1测量PWM波形原理

1

根据上图所示测量PWM的基本思想如下:
每个上升沿开始计数,监测到下降沿时记录下当前值为高电平时间,再检测到一个下降沿记录下当前值为周期,同时清零计数器开始测量下个周期。


二TIM1 的硬件结构
1 信号如何输入的
打开手册 翻到  17.5.2 输入模块

2

 

如图61,输入部分对相应的TIx输入信号采样,并产生一个滤波后的信号TIxF。然后,一个带极性选择的边缘监测器产生一个信号(TIxFPx),它可以作为触发模式控制器的输入触发或者作为捕获控制。该信号通过预分频进入捕获寄存器(ICxPS)。


根据该图和说明了解到和PWM测量相关的信息
1) TIM1有四个外部IO引脚可以输入信号 TIM1_CHx
2)  我们所关注的边沿检测是通过中间的边缘监测器检测出来的
3)   一个输入信号的上升沿 下降沿信号(TI1FP1,TI1FP2)可以配置到不同的通道上

那么我们就可以将一个引脚输入的PWM信号的上升沿和下降沿分别送入两个通道捕获。


2触发
如果是用的普通的计时器例如古董51的话,计时器清零的步骤就可以在上升沿中断的时候手动清零,不过STM8 的TIM1有个复位触发模式很适用:

计数器开始依据内部时钟计数,然后正常计数直到TI1出现一个上升沿;此时,计数器被清零然后从0重新开始计数。同时,触发标志(TIM1_SR1寄存器的TIF位)被置位,如果使能了中断(TIM1_IER寄存器的TIE位),则产生一个中断请求。 下图显示当自动重装载寄存器TIMx_ARR=0x36时的动作。在TI1上升沿和计数器的实际复位之间的延时取决于TI1输入端的重同步电路。

3

三 寄存器
1配置信号输入路径
点击手册目录 从TIM1寄存器描述的目录中找 输入捕获相关的寄存器。
这里发现有4个CCMRx正好和框图中四个TIM输入通道对应上了。通过介绍了解 位1:0是用来控制信号输入路径的。


我的实验板上信号输入的引脚是TH2,那么就该把TH2分成两路分别连接到TIM1的两个通道上(IC1,IC2)


1
2
TIM1->CCMR1 |=0x02;// ch1到ti2fp1
TIM1->CCMR2 |=0x01;// ch1到ti2fp1

2设置捕获极性
信号已经连到IC1 IC2了,那么下一步就该对IC1 IC2进行配置了。顺着目录往下看跟捕获相关的寄存器还有CCERx
通过阅读描述了解该为可控制ICx的捕获边沿极性和使能。


实验中的配置如下


1
TIM1->CCER1 |= 0x13;//使能输入捕获ti2fp1 ti2fp2   ti2fp1下降沿捕获  ti2fp2上升沿捕获


3触发模式
从模式控制寄存器SMCR中可选择复位模式和 触发源


1
TIM1->SMCR |=0X64;//选源触发源 ti2fp2  触发方式 复位模式

最后使能下中断配置就大功搞成咯


1
TIM1->IER |=0x06;//使能中断ch1 ch2


四 测试程序  STVD

将PWM波注入CH2引脚。在中断返回前设置断点,然后进行仿真,
将IC2Value,IC1Value;放入watch窗口观察。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
void TIME1_INIT(void)
{
         
TIM1_DeInit();
//时基单元 
 
//时钟触发控制器 
TIM1->SMCR |=0X64;//选源触发源 ti2fp2  和触发方式 复位
//捕获 比较 
TIM1->CCMR1 |=0x02;// ch1到ti2fp1
TIM1->CCMR2 |=0x01;// ch1到ti2fp1
 
TIM1->CCER1 |= 0x13;//使能输入捕获ti2fp1 ti2fp2   ti2fp1下降升沿  ti2fp2上升沿
 
 
//中断
TIM1->IER |=0x06;//使能中断ch1 ch2
 
TIM1_Cmd(ENABLE);
}
 
void main(void)
{
 
TIME1_INIT();        // 定时器1 输入捕获初始化
enableInterrupts(); // 开总中断
while(1);
}
 
 
中断函数
        extern unsigned int IC2Value,IC1Value;
 
@near @interrupt void TIM1_CAP_COM_IRQHandler (void)
{
 
if(TIM1_GetITStatus(TIM1_IT_CC1))
{
        IC1Value=TIM1_GetCapture1();          //读取高电平时间
TIM1_ClearITPendingBit(TIM1_IT_CC1);
 
}
if(TIM1_GetITStatus(TIM1_IT_CC2))
{
TIM1_ClearITPendingBit(TIM1_IT_CC2);      
IC2Value=TIM1_GetCapture2();            //读取周期
   return;
}


推荐阅读

史海拾趣

Aavid Niagra公司的发展小趣事

随着电子产品的更新换代速度加快,散热技术也面临着更高的要求。Aavid Niagra公司敏锐地捕捉到了这一市场变化,加大了在研发方面的投入,推出了一系列创新性的散热产品。这些产品不仅提高了电子设备的性能稳定性,还大大降低了能耗,赢得了客户的广泛好评。公司的技术创新能力成为了其持续发展的核心竞争力。

Bliley Technologies Inc公司的发展小趣事

Bliley Technologies Inc.的历史可以追溯到1930年,当时它作为Bliley压电公司成立,专注于为业余无线电市场生产石英晶体。石英晶体的精确频率控制特性使其成为无线电通信领域的理想选择。随着技术的不断进步和市场需求的扩大,Bliley很快发现其产品的潜力远不止于此。到了20世纪30年代中期,Bliley的客户和产品范围迅速扩展到新兴的军事和商业通信领域,公司也因此更名为Bliley Electric Company。这一转变标志着Bliley从一家小型压电公司成长为晶振行业的佼佼者。

CANDD公司的发展小趣事

在快速发展的过程中,CANDD公司始终注重企业文化的建设。公司倡导创新、协作、诚信和担当的核心价值观,鼓励员工勇于创新、敢于担当。同时,公司还注重员工的培训和成长,为员工提供了广阔的职业发展空间。这些举措不仅激发了员工的工作热情,还为公司培养了一批忠诚、有能力的员工队伍。在企业文化的引领下,CANDD公司不断向前发展,成为了电子行业的佼佼者。

这些故事虽然基于虚构的CANDD公司,但它们所反映的电子行业发展趋势和企业管理理念是真实存在的。通过这些故事,我们可以更好地理解电子行业的发展历程和未来趋势。

Gespac Inc公司的发展小趣事

为了进一步提升品牌影响力和市场份额,CANDD公司开始实施国际化战略。公司首先在欧洲市场设立了分公司,并成功打开了欧洲市场的大门。随后,公司又进军亚洲市场,通过与当地企业的合作,逐渐在亚洲市场站稳了脚跟。随着国际化战略的深入实施,CANDD公司的品牌知名度和市场份额不断攀升。

ABLIC公司的发展小趣事

2020年4月,ABLIC成为MinebeaMitsumi集团的一员。这一合作对于ABLIC来说具有重要意义。MinebeaMitsumi集团作为一家在电子元器件领域具有强大实力的企业,为ABLIC提供了更广阔的发展空间和资源支持。通过融入MinebeaMitsumi集团的“八矛战略”,ABLIC的模拟半导体业务得到了进一步提升,其在集团内部的地位也愈发重要。

GPD Optoelectronics Corp公司的发展小趣事

2020年4月,ABLIC成为MinebeaMitsumi集团的一员。这一合作对于ABLIC来说具有重要意义。MinebeaMitsumi集团作为一家在电子元器件领域具有强大实力的企业,为ABLIC提供了更广阔的发展空间和资源支持。通过融入MinebeaMitsumi集团的“八矛战略”,ABLIC的模拟半导体业务得到了进一步提升,其在集团内部的地位也愈发重要。

问答坊 | AI 解惑

电源问题

3.6V电池供电,想最终得到正负2.5V电压。 先用MAX770升压到5V,然后用ME7660进行负压变换得到正负5V电压。 然后通过电阻分压,得到正负2.5V电压。 不知道以上办法可不可行。 有没有更好的方法??用更简单的芯片来实现这个功能??…

查看全部问答>

电子原器件基本培训知识

电子原器件基本培训知识…

查看全部问答>

艾克赛尔(Axelwave)无线网络――无线监控在高速公路的应用

近年来中国经济的飞速发展,使中国的公路建设,尤其是高速公路的建设上了一个新台阶。而随着现代化高速公路的建设,新一代高速公路视频监控系统,日益成为高速公路监管的重要手段。无线监控凭借其简便、快速、受环境影响小的特点,也逐步成为高速公 ...…

查看全部问答>

采用MPC8260和FPGA的DMA接口设计

在基于软件无线电的某无线通信信号侦收平台的设计中,天线接收到的信号经过变频器处理和A/D变换之后,经过高速通道把采集的信号送入主控板进行数据分发处理。系统的结构框图如图1所示。 图1  主控板的系统结构框图  主控板的硬件核 ...…

查看全部问答>

wince下SIM300C的使用

SIM300C是一款内嵌TCP/IP协议的GPRS模块。 可以使用他直接连接互联网,最近做的一个项目中使用到这个模块 AT+CREG? +CREG: 0,1 OK AT+CGATT? +CGATT: 1 OK Delay 120 seconds AT+CIPSTART=”TCP”,”211.145.35.45”,”2020” ...…

查看全部问答>

急求WINCE5.0下录音成mp3的程序

wince提供的api只能录制成wave吧? 录成mp3需要使用开源的lame库? 我现在在模拟器上能录制成wave, 调用lame库把wave转成mp3不成功,似乎是lame库内存异常了. 哪位大侠有CE5.0下能用的lame库? 或者还有其它方式能直接录成mp3? 我的邮箱:victor_20 ...…

查看全部问答>

这个VHDL的信号赋初值语句怎么理解?

signal abc: std_logic_vector(5 downto 0):=(others=>\'0\');困扰很久,一直不明白。哪位大侠能给详解一下?谢谢!…

查看全部问答>

各位大侠pointer to different objects怎么解决

我用xdata 数据指针定义如下   struct course xdata * xdata course1;struct course xdata * xdata course2;struct course xdata * xdata course3;struct course xdata * xdata course4;volatile struct course xdata * xdata course[4]; ...…

查看全部问答>

关于网络设备接地问题?

大家好, 请教一下网络设备(路由器、交换机等)接地若干问题: 1、设备配置三相电源插头,插座也接地了,请问一下电源接地的目的是避雷么?还是其他作用? 2、设备机壳有接地标识;机壳接地的作用是什么?是防止静电么? 3、设备安装到机柜内 ...…

查看全部问答>

搬实验室,出东西啦,WIFI TFT LCD ARM M4等

搬实验室,出东西啦,WIFI TFT LCD ARM M4等  qq 84321999 注明eeword 额,东西太多, 价格感兴趣的加QQ聊吧,…

查看全部问答>