搜索
bottom↓
回复: 22

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

[复制链接]

出0入0汤圆

发表于 2006-11-20 10:18:28 | 显示全部楼层 |阅读模式
我认为主要原因在于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编辑过

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

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

出0入0汤圆

发表于 2006-11-20 12:14:04 | 显示全部楼层
MC68HC908MR8最好

出0入0汤圆

 楼主| 发表于 2006-11-20 12:26:55 | 显示全部楼层
请问这款单片机是谁家的?价格多少?

出0入0汤圆

发表于 2006-11-20 12:32:44 | 显示全部楼层
希望楼主能多看看AVR的其它类型单片机,一个16位定时器就可以输出三路PWM的,虽然我对控制电机不懂.

出0入0汤圆

发表于 2006-11-20 17:23:12 | 显示全部楼层
一个mega16可以输出24路pwn脉冲,



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

出0入0汤圆

 楼主| 发表于 2006-11-20 17:31:57 | 显示全部楼层
请看清我提问题的角度。电调上很多也用mega8实现三路PWM输出的。我不是说并非不能实现,而是在于如何方便的实现。

出0入4汤圆

发表于 2006-11-20 19:10:39 | 显示全部楼层
那么楼主的标题应该为:AVR不是……的最佳选择。

哈哈,表意不清

出0入0汤圆

发表于 2006-11-20 20:00:25 | 显示全部楼层
唉,又一个愤青

出0入0汤圆

发表于 2006-11-20 20:44:22 | 显示全部楼层
如何用16位的T1输出3路的PWM?很是好奇!

出0入8汤圆

发表于 2006-11-20 23:15:42 | 显示全部楼层
大把啊,像ST7MC、Microchip不都有吗?自己找找就是了。AVR不是有个AT90PWM3,这东西谈不上什么适不适合,只能说什么项目要求该用什么。

出0入0汤圆

发表于 2006-11-21 08:21:14 | 显示全部楼层
有些用C51都做的到,效果很不错.在老板眼里,做产品关键是成本,而不是有没有方便你编程.

出0入0汤圆

发表于 2006-11-21 08:28:41 | 显示全部楼层
对,项目不同,单片选型也可能不同。不一定以一种单片机应付所有应用

出0入0汤圆

发表于 2006-11-21 09:10:27 | 显示全部楼层
"这种方式下增加了软件的编制难度,花费大量CPU开销,为了输出比较好的PWM,软件要权衡很多东西。"



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

出0入0汤圆

发表于 2006-11-21 13:29:45 | 显示全部楼层
电机控制不是 AVR的 长项,电机控制 MICROCHIP的DSP系列的 不错!!PWM支持的好 多

出0入0汤圆

发表于 2006-11-21 21:53:33 | 显示全部楼层
楼主是不是做无刷控制的?我现在就是在用m8做无刷控制,确实存在楼主所说的问题。有空多交流交流。qq:29870393

出0入0汤圆

发表于 2009-8-31 22:08:37 | 显示全部楼层
LPC2131,12路单边沿PWM或者6路双边沿PWM,是不是就可以有两组三相输出?

出0入0汤圆

发表于 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编辑过
=========================================


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

出0入0汤圆

发表于 2009-9-1 12:46:00 | 显示全部楼层
AVR的普通系列本来就不是干这个的,非要拿这个来说事

出0入0汤圆

发表于 2009-10-22 18:48:54 | 显示全部楼层
直接用一个定时器就能产生多路PWM的

出0入0汤圆

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

出0入0汤圆

发表于 2011-2-6 23:00:52 | 显示全部楼层
【19楼】 xitwbc
可否把您的程序发来共享,参考一下,谢谢!

出0入0汤圆

发表于 2011-2-8 19:57:43 | 显示全部楼层
STC12C5A60S2不错,而且不贵。可以试试。

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-7-24 02:21

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

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