历史上的今天
今天是:2025年06月17日(星期二)
2019年06月17日 | STM32使用TIM触发ADC,CUBEMX配置
2019-06-17 来源:eefocus
上一篇博客讲到,要采集准确的电机电流值,需要在PWM发波的高电平中间,或中间靠后进行ADC采样

这样可以确定采样出来的电流是真实的电机电流,应该是会比平均电流大写的。因为我这边PWM产生是用TIM1的互补PWM通道,而TIM1又是由TIM3的COM事件来触发的,现在我需要有另外一个定时器来产生一个跟TIM1周期相同,但是PWM的值是TIM1的一半的波形,这里我选择的是TIM15,因此需要保证TIM15的CCR寄存器的值为TIM1的一半,因此,可以直接在TIM1的溢出中断的回调函数中更新TIM15的CCR寄存器的值:

接下来就是要保证TIM1与TIM15同步了,因为TIM1是TIM3(霍尔定时器)的从定时器,那么,将TIM15也配置为TIM3的从定时器就可以了,由寄存器参考手册可知,TIM15的触发源是ITR1:

然后将CUBEMX的触发源选择为ITR1,并且选择复位模式,选择内部时钟:

在配置好触发源之后,我们希望的是使用TIM15的PWM结束的时候,这样讲有些歧义吧,换个说法就是咋TIM15的计数值CNT达到CCR的值的之后,触发ADC开启采集,那也就是说TIM15需要开启主从模式,并且需要发送一个OC1REF信号(因为使用的是1通道):

在这里需要说明一下这个OC1REF信号的产生必须是在PWM模式下的,最开始我也不清楚,连同公司的软件大佬一起搞这个问题搞了两天,依旧是发送不出来这个OC1REF信号,最后还是看到了一篇博客:http://blog.sina.com.cn/s/blog_155ff95b20102wwen.html,里面最后一段话有提到这个:

我之前没有配置PWM模式的CUBEMX是这样的:

一个原因是因为我不知道这个姿势点,另一个原因是因为确实我的引脚资源不够用了,已经没有引脚给我配置PWM了,后来看了那篇博客之后,将TIM15配置改为:

当然理论上,配置成Output Compare No Output模式,然后TIM15的TRGO信号使用OC1信号也是可以的,这个我没有测试。也是参考了那篇博客,我将ADC改为了上升沿触发,而要使用上升沿触发,那么只需要将TIM15改为PWM2模式就可以了:

接下来就是ADC那边的配置了,因为我们是要在PWM高电平的中间采集一次,下一次PWM再采集下一次,因此需要将ADC配置为单次采集,至于DMA配置的话,正常模式与循环模式都是可以的,只不过是多一句重新启动的问题,我采用的是DMA循环模式,而触发信号就选择TIM15的处罚信号,上升沿触发,配置如下:


实际用示波器的电流如图:

方框内为发波时的电流波形,我现在把负载调小了些,所以电流小了些。
实际STM32读出来的电流波形如图:(使用了串口打印出来,每个PWM周期采集一次,即66us采集一次)

史海拾趣
|
[][]买数码相机的几大误区 高像素等于高品质照片? 许多初次购买数码相机的用户都会把像素做为考虑的首要因素,在他们看来像素是判定数码相机品质高低的基础,似乎高像素的数码相机就必然会得到高品质的拍摄效果,事实上像素和品质之 ...… 查看全部问答> |
|
这个电路是原来给别人设计的,成本很低,充电效果很好,供一节锂电池充电使用。近几天看到很多朋友制作的简易充电器,效果不尽人意,不是电流限制不好就是电压不准!而这个电路是由一个抵压差恒流电路与一个由TL431组成的抵压差线形稳压电源的结合 ...… 查看全部问答> |
|
恩智浦LPCXpresso之LPC1343开发板申请,成功获得LPC2148之PCB后。 成功获得LPC2148之PCB后,希望有机会接触到LPC1xxx系列。在上次的《lpc2148使用问题探讨:“新版主chenzhufly LPC2000 PCB 大放送”成果研究专用贴》中与论坛的好友们分享与交流了个人的使用经验,同时也附带的表述个人对LPC22xx与LPC21xx使用的不同 ...… 查看全部问答> |
|
(1)ALU译码器(2)用LFSR设计一个20分频的简单分频器;(3)FSM设计,设计“101001”的序列检测器;(4)8位宽、16深度同步FIFO的设计4个入门级问题,告诉我编写的代码就OK了。Thx.… 查看全部问答> |
|
dspic33fi128gp306 很多io口悬空会烧坏单片机吗? 最近用的别人设计的一个原理图,单片机dspic33fi128gp306 ,好多io口都悬空了。因为时间关系没有进行修改。自己做了个pcb,发现除开最开始的几个板子之一是正常的。其他板子在用icd3烧写程序的时候都是正常的,然后上电运行。立马短路了,vss和vdd ...… 查看全部问答> |




