搜索
bottom↓
回复: 21

请教:用stm32控制10个步进电机

[复制链接]

出0入0汤圆

发表于 2011-2-8 17:22:31 | 显示全部楼层 |阅读模式
有个项目需要控制10个步进电机,每个步进电机都有驱动芯片,cpu只要控制驱动芯片就可以了,同一时刻,有可能有多个电机同时动作,电机的最高频率为5KHz。
想用stm32实现,但是发现stm32的通用tim虽然有4路pwm输出,但是定时器是共用一个,也就是说4路pwm的周期必须相同,这样1个timer就不能控制4个电机了,只能控制一个。
请教大家,如何控制10个电机呢?

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2011-2-8 22:53:43 | 显示全部楼层
10个独立受控电机?拿个板凳坐下听课。

出0入0汤圆

发表于 2011-2-8 23:09:17 | 显示全部楼层
期待高手出现.

出0入0汤圆

 楼主| 发表于 2011-2-9 09:00:53 | 显示全部楼层
是10个独立电机,用stm32f103zf和zg可以,定时器有十多个,但是担心批量后芯片不好买,想用103ze定时器又不够。
纠结中,大家帮忙出出主意,多谢!

出0入0汤圆

发表于 2011-2-9 09:37:57 | 显示全部楼层
楼主动动脑筋

不是一个电机就非得需要一个定时器的。

出0入0汤圆

 楼主| 发表于 2011-2-9 13:35:26 | 显示全部楼层
回复【4楼】liu_xf 新发
-----------------------------------------------------------------------
虽然1个stm32的定时器有4路pwm输出,但是这4路pwm肯定是周期相同啊,不能同时控制独立的电机啊。
用比较输出方式有可能行,但是一个定时器控制多个电机用输出比较怎么实现呢?

还有种方式就是用1个定时器,比如设为10us一个中断,每进次中断,变量count++,需要启动某个电机的时候先记下当时的count是多少,然后跟据此电机的需要发的脉冲频率,算出下一个需要改变输出电平的count值,在每个定时中断中比较,到了设定的count值后改变电平,但是这样tim的中断太频繁了,并且当count溢出的时候可能不好处理。

     大家有其他好的办法吗?

出0入0汤圆

 楼主| 发表于 2011-2-9 15:00:37 | 显示全部楼层
请大侠们指点指点啊,多谢1

出0入0汤圆

发表于 2011-2-9 15:26:27 | 显示全部楼层
1个计时器循环计时,将到时间做比较可能行……

出0入0汤圆

 楼主| 发表于 2011-2-10 08:31:12 | 显示全部楼层
没有别的办法了吗,这个办法要求定时器周期很短,中断比较频繁。

出0入0汤圆

发表于 2011-2-10 10:25:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-10 10:30:30 | 显示全部楼层
不如用CPLD做

出0入0汤圆

 楼主| 发表于 2011-2-10 22:42:30 | 显示全部楼层
在产品中加cpld太麻烦了,价格还贵,还要考虑cpld程序u盘升级等,最好1个cpu搞定。

出0入0汤圆

发表于 2011-2-11 09:46:12 | 显示全部楼层
要看情况才能具体实施,应该可以解决的

出0入0汤圆

发表于 2011-3-1 17:34:08 | 显示全部楼层
一个fpga就搞定了,在用一个单片机来配置程序。保密性也不错,以后要改程序,增加电机数量都很简单

出0入0汤圆

发表于 2011-3-1 19:09:41 | 显示全部楼层
5k的速度又不快,用一个定时器直接IO控制就好了!

出0入0汤圆

发表于 2011-3-1 20:53:00 | 显示全部楼层
同意10楼的朋友说法,最好不要这样用的,现在我就用ZE控制一路PWM输出,然后芯片控制其它的东西都有点跑不起来!所以多路控制的话最好还是不要这样做的!

出0入0汤圆

发表于 2011-3-1 20:58:51 | 显示全部楼层
10个步进电机 其它还有需求没有 如adc io端口等等 我帮你找找看看有没有单片机可以做到

出0入0汤圆

发表于 2011-6-6 20:39:32 | 显示全部楼层
楼主你好,请问你步进电机驱动怎么做的?是自己做的还是买的驱动器?我这也在发愁,想用STM32控制10路相同动作的步进电机(24V,2A左右),还处在选驱动方案阶段,请求赐教~我是一小菜鸟,不太有经验~谢谢啦~

出0入0汤圆

发表于 2011-6-7 06:52:28 | 显示全部楼层
一个定时器,配10个计数变量

出0入0汤圆

发表于 2011-6-13 21:03:10 | 显示全部楼层
那个驱动是不是就是脉冲分配器之类的,还是对每一个IO口都有一个对应的驱动管脚?这样不是几个IO口才能控制一个电机,10个电机不得几十个IO口?

出0入0汤圆

发表于 2011-9-5 16:57:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-5 17:06:07 | 显示全部楼层
好办法就是将stm32换成一片cpld或者fpga
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 00:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表