搜索
bottom↓
回复: 23

我的25A无刷电调PCB也回来了

[复制链接]

出0入0汤圆

发表于 2009-6-8 16:54:55 | 显示全部楼层 |阅读模式
N沟MOS管IR7831用了6只,P沟MOS管FDS6679Z用了9只,应该有25A吧。速度调节用0-5V模拟信号,带电压保护,双层PCB设计,网上说隔热好(OK!我坦白,因本人能力有限,小体积大电流的情况下只能用双层PCB了)。刚回来就急不及待的焊上,焊接时才发现晶振封装有问题(用错层了),没办法,把绿油刮掉继续焊,焊好上电没冒烟,接上ISP能认CPU,应该没画错了。先发上来晒一下
顺便问一下,因比较器和AD不能同时使用,如果我在每次换相后再检测AD的话会不会影响电调性能呢?有什么好方法呢?小弟是AVR菜鸟一名
废话少说,先上图。PCB文件在公司里,回去再发上来

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

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

出0入0汤圆

 楼主| 发表于 2009-6-8 16:56:24 | 显示全部楼层

(原文件名:DSC00291.JPG)


(原文件名:DSC00293.JPG)


(原文件名:DSC00287.JPG)


(原文件名:DSC00288.JPG)


(原文件名:DSC00289.JPG)

出0入0汤圆

发表于 2009-6-8 17:08:23 | 显示全部楼层
好像可以自己修改的哦

出0入0汤圆

发表于 2009-6-8 20:15:12 | 显示全部楼层
哟有制作资料吗? 最大能做到多少A? 楼主说说情况

出0入0汤圆

 楼主| 发表于 2009-6-9 13:36:28 | 显示全部楼层
电路图是参考本站的,CPU用M48.只用Protel99SE画了PCB(我画PCB从来都不画电路的),这几天休假,明天回公司再发上来吧。IRF7831最大电流21A,FDS6679Z最大-13A,参考成品电调用6只7831、9只6679Z标称是25A,设计时控制电路板和动力电路板分开,如果想加大电流的话可以将两块动力电路板并联,电流能上50A,不过PWM频率要降低一点,不然的话IO口可能会不够力驱动的。电路板尺寸是25*37mm.因设计不是用于航模的,所以用模拟信号控制速度,也可用PPM。电路硬件上昨晚已通过调试。

出0入0汤圆

发表于 2009-6-10 07:46:14 | 显示全部楼层
请问楼主是参考本站哪个电路图的?

出0入0汤圆

 楼主| 发表于 2009-6-10 09:14:56 | 显示全部楼层
大体结构是参考这个电路图的
(原文件名:20071251712080.jpg)
这是PCB文件点击此处下载 ourdev_452303.zip(文件大小:43K) (原文件名:bldc.zip)

出0入0汤圆

发表于 2009-6-10 13:09:11 | 显示全部楼层
期待你的成功,等待关注最终测试结果。

出0入0汤圆

发表于 2009-6-10 14:32:17 | 显示全部楼层
不错啊,我也想搞一个 我觉得你这个可以35A了

出0入0汤圆

发表于 2009-6-10 14:45:36 | 显示全部楼层
有么有50A的?

出0入0汤圆

 楼主| 发表于 2009-6-10 21:35:09 | 显示全部楼层
终于能动了,驱动硬盘电机。只写了同步起动和运行程序。但电机好像慢了点,电源电压12V,电流0.17A.转速才1813转/分钟(用示波器测其中一相的反向电动势为544HZ,除以6步(每个循环),因硬盘电机是9极定子是3的3倍所以再除以3再乘以60秒得1813转,不知这样算对不对)。
测量驱动MOS管的I/O口输出的占空比只有4个是33.3%,其他两个分别是16%左右和40%左右。(同步运行时6个都是33.3%的)
因刚学AVR,边学边写。无奈网上能找到的汇编参考程序太少了,写起来有种想哭的感觉。不知这样写对不对,有没有更好的写法呢?
.include"m48def.inc"   
.org 0   
rjmp Start
Start:
ldi r30,0b00011111
out ddrb,r30
ldi r30,0b00100000
out ddrc,r30
ldi r30,0b00100111
out ddrd,r30

ldi r30,0b00000011
sts didr1,r30
ldi r30,0b01000000
sts adcsrb,r30
ldi r30,0b00000000
sts acsr,r30
ldi r30,0b00000000
sts adcsra,r30
           
clr r30
out portb,r30
out portd,r30
clr r30
ldi r25,254

moto:
rcall t0   ;开机延时
inc r30
tst r30
brne moto
moto1:     ;同步起动
ldi r30,0b00000011
out portb,r30
ldi r30,0b00000000
out portd,r30
rcall t0

ldi r30,0b00000101
out portb,r30
ldi r30,0b00000000
out portd,r30
rcall t0

ldi r30,0b00001100
out portb,r30
ldi r30,0b00000000
out portd,r30
rcall t0

ldi r30,0b00001000
out portb,r30
ldi r30,0b00100000
out portd,r30
rcall t0

ldi r30,0b00010000
out portb,r30
ldi r30,0b00100000
out portd,r30
rcall t0

ldi r30,0b00010010
out portb,r30
ldi r30,0b00000000
out portd,r30


lop:    ;检测反向电动势
ldi r30,0b00000010;a
sts admux,r30
in r30,acsr
sbrs r30,5
rjmp a0 ;0
rjmp a1 ;1

a0:
ldi r30,0b00000011;b
sts admux,r30
in r30,acsr
sbrs r30,5
rjmp a0b0 ;0
rjmp a0b1 ;1

a1:
ldi r30,0b00000011;b
sts admux,r30
in r30,acsr
sbrs r30,5
rjmp a1b0 ;0
rjmp a1b1 ;1

a0b0:
ldi r30,0b00000100;c
sts admux,r30
in r30,acsr
sbrs r30,5
rjmp a0b0c0 ;0
rjmp a0b0c1 ;1

a0b1:
ldi r30,0b00000100;c
sts admux,r30
in r30,acsr
sbrs r30,5
rjmp a0b1c0 ;0
rjmp a0b1c1 ;1

a1b0:
ldi r30,0b00000100;c
sts admux,r30
in r30,acsr
sbrs r30,5
rjmp a1b0c0 ;0
rjmp a1b0c1 ;1

a1b1:
ldi r30,0b00000100;c
sts admux,r30
in r30,acsr
sbrs r30,5
rjmp a1b1c0 ;0
rjmp a1b1c1 ;1

a0b0c0:    ;输出
rjmp lop

a0b0c1:
ldi r30,0b00000011
out portb,r30
ldi r30,0b00000000
out portd,r30
rjmp lop

a0b1c0:
ldi r30,0b00001100
out portb,r30
ldi r30,0b00000000
out portd,r30
rjmp lop

a0b1c1:
ldi r30,0b00000101
out portb,r30
ldi r30,0b00000000
out portd,r30
rjmp lop

a1b0c0:
ldi r30,0b00010000
out portb,r30
ldi r30,0b00100000
out portd,r30
rjmp lop

a1b0c1:
ldi r30,0b00010001
out portb,r30
ldi r30,0b00000000
out portd,r30
rjmp lop

a1b1c0:
ldi r30,0b00001000
out portb,r30
ldi r30,0b00100000
out portd,r30
rjmp lop

a1b1c1:
rjmp lop

t0:
ldi r29,170
t1:
ldi r28,170
t2:
inc r28
tst r28
brne t2

t3:
inc r29
tst r29
brne t1
ret

.exit

出0入0汤圆

发表于 2009-6-10 21:49:12 | 显示全部楼层
看起来不错,就是沉了点……这个用在航模上损失好几十克的重量~~~~~~~~

另外,放下汇编吧,我看你这个风格,再写下去自己就晕倒了……还是用C爽利一点,反正是新学,学个移植性好的。

出0入0汤圆

 楼主| 发表于 2009-6-10 22:02:19 | 显示全部楼层
【13楼】 abuzhu

能否告诉我怎样写才能把以上程序精简点呢?能给点思路我吗?

出0入0汤圆

 楼主| 发表于 2009-6-10 22:08:27 | 显示全部楼层
刚查了一下反向电动势的时序图,发觉每相每个循环只有一个周期的反向电动势,所以我12楼的计算方法是错的,应该是544/3*60=10880转/分钟

出0入0汤圆

发表于 2009-6-12 10:00:07 | 显示全部楼层
我也没有太好的建议,以下是我写汇编的一些建议,楼主参考:
1、把最常用的寄存器定义一些名称,比如我习惯:R16、R17,R18定义为TEMPA,TEMPB,TEMPC用于临时变量的存放;R19,R20定义为COUNTER1,COUNTER2用于计算循环量;另外R26~R31一般用X,Y,Z或XL,YL等,用于指针;

2、做一个包含文件,把功能寄存器的设定值定义一个变量名,并在包含文件中初始化,在正式的文件中只出现变量名;

3、START那里加个ORG,把它放到0X15之后,中间中断向量部分不用的地方全部用RETI填起来;

4、尽量加注释,否则1个月以后这段程序自己都看不明白了;

出0入0汤圆

 楼主| 发表于 2009-6-12 13:22:19 | 显示全部楼层
【16楼】 abuzhu
谢谢你的建议,这几天找了本地的几家大型点的书店,但找到的都是用C来编AVR的,我想先学汇编再学C,能告诉我哪能找到AVR汇编的书?

现在电调已能用0-5V电压调速了,就是还有两个问题没解决,一个就是MOS管有点热,个人估计是换相时切换太快MOS管栅极电压来不及泄放完导致上下桥短时间同时导通引起的,回头加个延时试试。还有一个是电机带负载起动不了,要用手拨一下才能转起来,这个才是最伤脑筋的。

出0入0汤圆

发表于 2011-7-26 00:01:51 | 显示全部楼层
楼主厉害!用的是M48吗!

出0入0汤圆

发表于 2011-7-26 00:26:58 | 显示全部楼层
我想知道lz是怎么测速的?码盘?

出0入0汤圆

发表于 2011-9-16 15:10:21 | 显示全部楼层
不错啊,还有潜力

出0入0汤圆

发表于 2011-12-23 21:55:32 | 显示全部楼层
...

出0入0汤圆

发表于 2011-12-24 16:31:40 | 显示全部楼层
向楼主致敬

出0入0汤圆

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

本版积分规则

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

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

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

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