happyme 发表于 2006-11-20 10:18:28

avr单片机根本不适合作三相电机控制用!!

我认为主要原因在于AVR单片机PWM实现方式问题。AVR的单片机一般都是一个定时器实现两路PWM输出,一个有6路PWM输出的单片机可能需要三个定时器实现。如果控制交流电机的话,需要6路PWM,那么可能三个定时器都用在了PWM输出功能上,这显然是极其不合理的。就拿最简单的三相无刷电机来说,也至少需要3路PWM输出,如果用简单的MEGA8实现,那么就会用调T1、T2定时器来产生PWM,而只剩下T0定时器作他用。这显然会造成本来用一个8位单片机资源就够用但是却不够用的情况。有人说了,用一路PWM输出就可以实现6路PWM输出,这本身没错,借助于外扩电路芯片,或者软件都可以实现,但是在一些应用场合,外扩电路芯片本身就是不允许或者一种笨拙的方法;如果用软件实现,那么软件就会比较复杂,为了实现很好的PWM输出,就需要占用CPU的很多资源,最最重要的是,这种方式下增加了软件的编制难度,花费大量CPU开销,为了输出比较好的PWM,软件要权衡很多东西。

如果让我重新选择,我不会选择AVR。

各位网友,有什么好的8位单片机推荐?最主要的是需要一个定时器输出至少3路PWM,这才是真正的适合于电机控制的MCU.



欢迎大家讨论!!
-----此内容被happyme于2006-11-20,10:18:48编辑过

zhaojianguo 发表于 2006-11-20 12:14:04

MC68HC908MR8最好

happyme 发表于 2006-11-20 12:26:55

请问这款单片机是谁家的?价格多少?

easygoing 发表于 2006-11-20 12:32:44

希望楼主能多看看AVR的其它类型单片机,一个16位定时器就可以输出三路PWM的,虽然我对控制电机不懂.

erxun 发表于 2006-11-20 17:23:12

一个mega16可以输出24路pwn脉冲,



某些公司做的机器人的控制,接24个舵机,就一片mega16

happyme 发表于 2006-11-20 17:31:57

请看清我提问题的角度。电调上很多也用mega8实现三路PWM输出的。我不是说并非不能实现,而是在于如何方便的实现。

guantingwei 发表于 2006-11-20 19:10:39

那么楼主的标题应该为:AVR不是……的最佳选择。

哈哈,表意不清

linhaimi 发表于 2006-11-20 20:00:25

唉,又一个愤青

hexenzhou 发表于 2006-11-20 20:44:22

如何用16位的T1输出3路的PWM?很是好奇!

Grant 发表于 2006-11-20 23:15:42

大把啊,像ST7MC、Microchip不都有吗?自己找找就是了。AVR不是有个AT90PWM3,这东西谈不上什么适不适合,只能说什么项目要求该用什么。

MYMCU 发表于 2006-11-21 08:21:14

有些用C51都做的到,效果很不错.在老板眼里,做产品关键是成本,而不是有没有方便你编程.

wentao 发表于 2006-11-21 08:28:41

对,项目不同,单片选型也可能不同。不一定以一种单片机应付所有应用

eddia2000 发表于 2006-11-21 09:10:27

"这种方式下增加了软件的编制难度,花费大量CPU开销,为了输出比较好的PWM,软件要权衡很多东西。"



還是自已對軟件編程沒有信心罷了.

mirrorok 发表于 2006-11-21 13:29:45

电机控制不是 AVR的 长项,电机控制 MICROCHIP的DSP系列的 不错!!PWM支持的好 多

ljq0810 发表于 2006-11-21 21:53:33

楼主是不是做无刷控制的?我现在就是在用m8做无刷控制,确实存在楼主所说的问题。有空多交流交流。qq:29870393

livanfield 发表于 2009-8-31 22:08:37

LPC2131,12路单边沿PWM或者6路双边沿PWM,是不是就可以有两组三相输出?

avrpicarm 发表于 2009-9-1 00:33:09

我认为主要原因在于AVR单片机PWM实现方式问题。AVR的单片机一般都是一个定时器实现两路PWM输出,一个有6路PWM输出的单片机可能需要三个定时器实现。如果控制交流电机的话,需要6路PWM,那么可能三个定时器都用在了PWM输出功能上,这显然是极其不合理的。就拿最简单的三相无刷电机来说,也至少需要3路PWM输出,如果用简单的MEGA8实现,那么就会用调T1、T2定时器来产生PWM,而只剩下T0定时器作他用。这显然会造成本来用一个8位单片机资源就够用但是却不够用的情况。有人说了,用一路PWM输出就可以实现6路PWM输出,这本身没错,借助于外扩电路芯片,或者软件都可以实现,但是在一些应用场合,外扩电路芯片本身就是不允许或者一种笨拙的方法;如果用软件实现,那么软件就会比较复杂,为了实现很好的PWM输出,就需要占用CPU的很多资源,最最重要的是,这种方式下增加了软件的编制难度,花费大量CPU开销,为了输出比较好的PWM,软件要权衡很多东西。
如果让我重新选择,我不会选择AVR。
各位网友,有什么好的8位单片机推荐?最主要的是需要一个定时器输出至少3路PWM,这才是真正的适合于电机控制的MCU.

欢迎大家讨论!!
-----此内容被happyme于2006-11-20,10:18:48编辑过
=========================================


我就不拍砖头啦,
自然有人会出来拍砖,
呵呵,
楼主以后自己也会拍自己的砖的,
留下爪印作记念

xinfa190 发表于 2009-9-1 12:46:00

AVR的普通系列本来就不是干这个的,非要拿这个来说事

looker 发表于 2009-10-22 18:48:54

直接用一个定时器就能产生多路PWM的

xitwbc 发表于 2009-10-22 19:03:17

粗略看了下你的贴
好像你对AVR单片机还不了解吧
你可以看一下MEGA128,其中定时器1和3每个都可产生3路,俩个共6路
我用他做过三相逆变电路的触发脉冲,固定电压,固定频率,载波12K,晶振16M,带死区,程序都比较简单,不到1K,能不能用好关键看你的编程思路。

ytspc 发表于 2011-2-6 23:00:52

【19楼】 xitwbc
可否把您的程序发来共享,参考一下,谢谢!

proteldxp 发表于 2011-2-8 19:57:43

STC12C5A60S2不错,而且不贵。可以试试。

yangjunanoid 发表于 2011-2-10 14:37:05

用tms320f2407dsp芯片
页: [1]
查看完整版本: avr单片机根本不适合作三相电机控制用!!