實踐之基于ADI Blackfin ADSP 的直流電機驅動
上午一直跟同學們討論關于直流電機驅動的問題,下午終于實現(xiàn)了,寫出來給大家分享一下。
本文引用地址:http://2s4d.com/article/176229.htm主要用直流電機實現(xiàn)車庫的控制,以下為實現(xiàn)原理:
1、直流電動機的PWM電路原理
晶體管的導通時間也被稱為導通角а,若改變調制晶體管的開與關的時間,也就是說通過改變導通角а的大小,如下圖所示,來改變加在負載上的平均電壓的大小,以實現(xiàn)對電動機的變速控制,稱為脈寬調制(PWM)變速控制。在PWM變速控制中,系統(tǒng)采用直流源,放大器的頻率是固定,變速控制通過調節(jié)脈寬來實現(xiàn)。構成PWM的功率轉換電路或者采用H橋式驅動,或者采用T式驅動。由于T式電路要求雙電源供電,而且功率晶體管承受的反向電壓為電源電壓的兩倍。因此只適用于小功率低電壓的電動機系統(tǒng)。而H橋式驅動電路只需一個電源,功率晶體管的耐壓相對要求也低些,所以應用得較廣泛,尤其用在耐高壓的電動機系統(tǒng)中。
脈寬調制(PWM)變速原理圖
2、直流電動機的PWM等效電路
如下圖所示:是一個直流電動機的PWM控制電路的等效電路。在這個等效電路中,傳送到負載(電動機)上的功率值決定于開關頻率、導通角度及負載電感的大小。開關頻率的大小主要和所用功率器件的種類有關,對于雙極結型晶體管(GTR),一般為lkHz
至5kHz,小功率時(100W,5A以下)可以取高些,這決定于晶體管的特性。對于絕緣柵雙極晶體管(IGBT),一般為5kHz至l2kHz;對于場效應晶體管(MOSFET),頻率可高達2OkHz。另外,開關頻率還和電動機電感有關,電感小的應該取得高些。
驅動的實現(xiàn):
ucLinux 下的直流電機程序包括模塊驅動程序和應用程序兩部分。Module 驅動程序實現(xiàn)了以
下方法:
static struct file_operations Blackfin_dcm_fops = {
owner: THIS_MODULE,
open:Blackfin_dcm_open,
ioctl:Blackfin_dcm_ioctl,
release: Blackfin_dcm_release,
};
開啟設備時,配置 IO 口為定時器工作方式:
({ GPBCON =~ 0xf; GPBCON |= 0xa; })
配置定時器的各控制寄存器:
({ TCFG0 = ~(0x00ff0000);
TCFG0 |= (DCM_TCFG0);
TCFG1 = ~(0xf);
TCNTB0 = DCM_TCNTB0; /* less than 10ms */
TCMPB0 = DCM_TCNTB0/2;
TCON =~(0xf);
TCON |= (0x2);
TCON =~(0xf);
TCON |= (0x19); })
在Blackfin_dcm_ioctl中提供調速功能接口:
case DCM_IOCTRL_SETPWM:
return dcm_setpwm((int)arg);
應用程序dcm_main.c中調用:
ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (setpwm * factor));
從而實現(xiàn)直流電機速度的調整。
pwm相關文章:pwm原理
評論