原创 Stm32实现低CPU占用的高速脉冲输出

2011-8-23 22:28 6151 18 19 分类: 工业电子
Stm32实现低CPU占用的高速脉冲输出
panasonic.lin@163.com

首先,如果是脉冲数量不受控制的话,Stm32完全可以实现0%CPU占用的超高速1Mhz以上的脉冲输出。
所以在此只讨论数量可控制的脉冲。

传统的办法,也是在MCU的功能没那么强大之前,可能会采用在中断中计数的技术,这个办法有几个缺点


1.高速脉冲的最高频率可能不是很理想,中断程序需要占用相当的CPU时间,中断处理时间超过脉冲的
周期的话,脉冲的脉宽实际被展开了。
2.当脉冲必须有加减速算法时候,CPU必须每个脉冲或者周期性的计算新的速度曲线,除了计数,CPU的
负担进一步加大。
3.系统除了脉冲的中断外,还有额外的工作要做,例如扫描用户程序,扫描IO,执行数据采集等。
4.当实现多轴处理时,如果要实现直线插补或者其他加减速算法或者多轴联动,CPU其他事情什么也做不

了。

解决的办法是:
1.用更高处理速度的CPU;
2.用专门的脉冲驱动IC,减轻CPU负担,如MCX314,日脉的PCD系列;
3.用CPLD,FPGA自己构建一个纯硬件的脉冲单元。

这些都是根据个人的实际客观条件,选择最合适的解决方案。

在一些经济型系统,如小型PLC,上述办法都会增加系统复杂性。
在性能允许范围内,Stm32强大的定时器功能最适合实现这类应用。
Stm32所有TIMx定时器在内部相连,用于定时器同步或链接。当一个定时器处于主模式时,它可以对
另一个处于从模式的定时器的计数器进行复位、启动、停止或提供时钟等操作20110823221836978.jpg

手册上的配置步骤很详细,这里不再啰嗦。
主定时器和从定时器有同步和异步时钟两种,最好选择同步,这样便于计算。
下图是发送1Khz的脉冲10/embed>



最后献上日系的回机械原点的视频,对搞运动控制的朋友或许有帮助:

 

文章评论1条评论)

登录后参与讨论

zajiju_815773237 2011-8-23 23:19

不是44B0的程序的嘛。
相关推荐阅读
用户1620250 2013-06-14 21:21
CIMCOEdit5自动生成轮廓的G代码
做了台全自动的NC数控玻璃切割机,感觉就是一台CNC的雏形了。     不管是哪一类的机床,只要是 NC 加工,零件的加工步骤如下: 1. 分析研究零件图; 2. 选择最合适...
用户1620250 2012-12-30 22:38
STM32 FSMC与FPGA 存储器接口 读写
  STM32 FSMC与FPGA 存储器接口 读写  panasonic.lin@163.com FPG...
用户1620250 2012-01-12 21:33
DSP/BIOS:Cannot create/delete a Clock from Hwi or Swi thread
DSP/BIOS:Cannot create/delete a Clock from Hwi or Swi thread 上篇文章提到Task_sleep睡死的问题解决后,添加了系统心跳cloc...
用户1620250 2012-01-12 21:28
DSP/BIOS:Task_sleep睡死的问题
程序其中的一个任务调用了Task_sleep(100),结果睡死在里面,用ROV查看任务的状态,Blocked阻塞,但是阻塞点是Unknown. 这是因为没有添加clock模块到系统...
用户1620250 2011-12-23 00:55
TI DSP 28335 CCSV4 外置SRAM调试(二)
11.为再次确保万无一失,往外置SRAM读写校验一下   12由于板子设置了从FLASH boot,FLASH内还有程序,debug 在LOAD了程序后自动复位然后运行了flash的...
用户1620250 2011-12-23 00:38
TI DSP 28335 CCSV4 外置SRAM调试(一)
DSP28335有内置256K X 16的FLASH,34K X 16的RAM,但是如果运行一个大一点的系统,如SYS/BIOS,这么小的RAM很难容纳的下,如果在FLASH中调试的话,每次都烧写...
我要评论
1
18
关闭 站长推荐上一条 /2 下一条