tylcareer 发表于 2011-2-8 17:22:31

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

有个项目需要控制10个步进电机,每个步进电机都有驱动芯片,cpu只要控制驱动芯片就可以了,同一时刻,有可能有多个电机同时动作,电机的最高频率为5KHz。
想用stm32实现,但是发现stm32的通用tim虽然有4路pwm输出,但是定时器是共用一个,也就是说4路pwm的周期必须相同,这样1个timer就不能控制4个电机了,只能控制一个。
请教大家,如何控制10个电机呢?

taishan 发表于 2011-2-8 22:53:43

10个独立受控电机?拿个板凳坐下听课。

fengwan008 发表于 2011-2-8 23:09:17

期待高手出现.

tylcareer 发表于 2011-2-9 09:00:53

是10个独立电机,用stm32f103zf和zg可以,定时器有十多个,但是担心批量后芯片不好买,想用103ze定时器又不够。
纠结中,大家帮忙出出主意,多谢!

liu_xf 发表于 2011-2-9 09:37:57

楼主动动脑筋

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

tylcareer 发表于 2011-2-9 13:35:26

回复【4楼】liu_xf 新发
-----------------------------------------------------------------------
虽然1个stm32的定时器有4路pwm输出,但是这4路pwm肯定是周期相同啊,不能同时控制独立的电机啊。
用比较输出方式有可能行,但是一个定时器控制多个电机用输出比较怎么实现呢?

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

   大家有其他好的办法吗?

tylcareer 发表于 2011-2-9 15:00:37

请大侠们指点指点啊,多谢1

hemjidn 发表于 2011-2-9 15:26:27

1个计时器循环计时,将到时间做比较可能行……

tylcareer 发表于 2011-2-10 08:31:12

没有别的办法了吗,这个办法要求定时器周期很短,中断比较频繁。

gxy508 发表于 2011-2-10 10:25:22

mark

NJ8888 发表于 2011-2-10 10:30:30

不如用CPLD做

tylcareer 发表于 2011-2-10 22:42:30

在产品中加cpld太麻烦了,价格还贵,还要考虑cpld程序u盘升级等,最好1个cpu搞定。

shdjdq 发表于 2011-2-11 09:46:12

要看情况才能具体实施,应该可以解决的

lisn 发表于 2011-3-1 17:34:08

一个fpga就搞定了,在用一个单片机来配置程序。保密性也不错,以后要改程序,增加电机数量都很简单

lostid 发表于 2011-3-1 19:09:41

5k的速度又不快,用一个定时器直接IO控制就好了!

TigerRay 发表于 2011-3-1 20:53:00

同意10楼的朋友说法,最好不要这样用的,现在我就用ZE控制一路PWM输出,然后芯片控制其它的东西都有点跑不起来!所以多路控制的话最好还是不要这样做的!

study_day_day 发表于 2011-3-1 20:58:51

10个步进电机 其它还有需求没有 如adc io端口等等 我帮你找找看看有没有单片机可以做到

guodan033 发表于 2011-6-6 20:39:32

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

sychen 发表于 2011-6-7 06:52:28

一个定时器,配10个计数变量

huanghaiming 发表于 2011-6-13 21:03:10

那个驱动是不是就是脉冲分配器之类的,还是对每一个IO口都有一个对应的驱动管脚?这样不是几个IO口才能控制一个电机,10个电机不得几十个IO口?

hong_hong789 发表于 2011-9-5 16:57:51

mark

avr-arm 发表于 2011-9-5 17:06:07

好办法就是将stm32换成一片cpld或者fpga
页: [1]
查看完整版本: 请教:用stm32控制10个步进电机