历史上的今天
今天是:2024年09月05日(星期四)
2019年09月05日 | STM32输入捕获(一)
2019-09-05 来源:eefocus
今天,就参照芯片的数据手册,来编写程序,实现输入捕获功能,首先看一下输入捕获的实现原理:(这里只拿通道1为例,其他通道与之类似)
首先来看这张图

(图中的U代表更新事件,UI表示可以产生更新条件)
蓝色框出的部分就是一条完整的输入捕获通道,红色画出的就是信号采集后的路径,而这只是一个粗略的路径,我们来看下一幅图:

(蓝色方框标注的是相应的控制位)
从上图可以很清晰的看出输入信号的流程:输入部分对相应的TI1输入信号采样(f_DTS是指采样频率),并产生一个滤波后的信号TI1F。然后,一个带极性选择的边缘检测器产生一个信号(TI1FP1),它可以作为从模式控制器的输入触发或者作为捕获控制。该信号通过预分频进入捕获寄存器(ICxPS)。
先分析一下红色方框:
1:滤波器:输入滤波器控制位是TIMx_CCMRx寄存器中的ICxF位,它的作用就是:采样到N次信号看作一次有效信号,因为有的信号不稳定,就连续采集N个信号,来判断该信号的有效性,当然,如果信号稳定,就可以设置采样到一次信号即为有效信号。

2:边缘检测器:它的设定就决定了是下降沿信号,还是上升沿信号能通过。
该位的设定在TIMx_CCER的CCIP位

再往后会发现有一个通道选:3,这个选择器是什么意思呢?原来它的选择决定了通道IC1被映射到哪条信号通道上,通过TIMx_CCMR1的CCIS位设定。

(这里的最后一句被标注了,这个在程序里分析)
比方说:如果此位设为10,就是说通道TI2的输入信号可以传输到IC1上。
最后,输入信号到达IC1上之后,就会经过分频器,它的值决定多少次有效信号触发一次捕获。通过TIMx_CCMR1的IC1PSC位设定。细心地人会发现,红色方框4下的蓝色框中最后有一个使能设定。这就说明了之前设定CC1S位时,通道是关闭的。这也正是上幅图最后标记的那句话意思。

关于输入捕获的实现原理分析就到这,下一篇将参照数据手册分析程序。
史海拾趣
|
我是一只菜鸟。遇到一个问题,烦请大侠帮忙解决。有一个喷墨墨盒,上有一芯片,记录打印次数,如果超过限制,就不让使用,想解开此芯片,把新墨盒的数据写到老墨盒上,在灌上代用墨汁,就不用买原装的了。本菜鸟在很偏僻的树林(沈阳)没有找到办法 ...… 查看全部问答> |
|
产品设计的可测试性(De sign For Testability. OFT) 也是产品可制造性的主要内容从生产角度考虑也是设计的工艺性之一.它是指在设计时考虑产品性能能够检测的难易程度,也就是说设计产品时应考虑如何以最简单的方法对产品的性能和加工质量进行检测, ...… 查看全部问答> |
|
DEBUGMSG(ZONE_TRACE, (TEXT("XXXX\r\n")));这样的语句在驱动里面怎么打印到调试串口? DEBUGMSG(ZONE_TRACE, (TEXT(\"XXXX\\r\\n\")));这样的语句在驱动里面怎么打印到调试串口? … 查看全部问答> |
|
近期对嵌入式系统开发很有兴趣,像微软的WM,谷歌的android,苹果的iphone OS 本身我学习计算机语言就是想涉足计算机系统开发,但是开始学了C#,被微软的VS小黑盒子式编程给洗脑了...感觉编程好像比画图还简单!好想学了C#跟没学似地, 所以现在觉 ...… 查看全部问答> |
|
程序的目的是把采集的温度通过串口显示,现在做的程度是我把硬件连接好后,用MSP430仿真器查看温湿度的数值不正确,比如humi_val.i用quick watch查看value为62850这样的数据,单片机的txd用示波器观察没有波形,可能程序存在很大问题,现在比 ...… 查看全部问答> |
|
我把所有的程序都只注释掉了,只留IO初始化,SD16_A初始化,和一些延时子程序。 一运行到SD16_A初始化完成 中断允许后 单片机就复位了。这是什么情况 坐等高人解惑~~~~… 查看全部问答> |
|
BB Black 入门基础之Eclipse C++ 控制LED灯(中) 本帖最后由 lonerzf 于 2014-1-13 10:57 编辑 接着上一篇。之前的地方设置是有问题的,先不讲可能是哪,大家帮忙给查个错呗。谢谢啦{:soso_e100:} 补充下,如果用 SSH Only方式进行远程部署,则在某些情况下方便得多。 还是在编译好之后选择绿 ...… 查看全部问答> |




