高校實(shí)驗(yàn)箱_DSP實(shí)驗(yàn)箱_嵌入式教程2-24 步進(jìn)電機(jī)控制實(shí)驗(yàn)

實(shí)驗(yàn)?zāi)康?/h1>
本節(jié)視頻的目的是掌握GPIO模擬輸出PWM的方法,學(xué)習(xí)步進(jìn)電機(jī)的控制原理,并實(shí)現(xiàn)步進(jìn)電機(jī)的控制。
實(shí)驗(yàn)原理
先來看一下硬件原理圖,可看到控制步進(jìn)電機(jī)的管腳分別為:GPIO6[2]、GPIO6[3]、GPIO6[4]和GPIO1[15]。使用的是一路四相五線步進(jìn)電機(jī),使用的電機(jī)驅(qū)動芯片是L9110。


四相五線步進(jìn)電機(jī)的控制方法有兩種,四相四拍和四相八拍。本實(shí)驗(yàn)中使用的是四相四拍,稱為全步控制。
四相:步進(jìn)電機(jī)中有四組線圈。
四拍:步進(jìn)電機(jī)A,B,C,D四組線圈的通電時(shí)序,四拍的驅(qū)動正轉(zhuǎn)通電順序?yàn)锳-B-C-D-A-B-C-D-……循環(huán)往復(fù),-A-B-C-D-四拍為一個(gè)循環(huán)周期。
五線:步進(jìn)電機(jī)引出的接線數(shù)量為五根。

步進(jìn)電機(jī)工作原理
步進(jìn)電機(jī)是利用電磁鐵原理,將脈沖信號轉(zhuǎn)換成線位移或角位移的電機(jī)。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負(fù)載信號的影響。每給電機(jī)加一個(gè)脈沖信號,電機(jī)就轉(zhuǎn)過一個(gè)步距角,帶動機(jī)械移動一小段距離。
步進(jìn)電機(jī)的速度控制:通過輸入的脈沖頻率快慢實(shí)現(xiàn)的。當(dāng)發(fā)生脈沖的頻率減小時(shí),步進(jìn)電機(jī)的速度就下降;當(dāng)頻率增加時(shí),速度就加快。還可以通過頻率的改變而提高步進(jìn)電機(jī)的速度或位置精度。
步進(jìn)電機(jī)的位置控制:靠給定的脈沖數(shù)量控制的。給定一個(gè)脈沖,轉(zhuǎn)過一個(gè)步距角,當(dāng)停止的位置確定以后,也就決定了步進(jìn)電機(jī)需要給定的脈沖數(shù)。
程序流程
程序流程設(shè)計(jì)中首先要進(jìn)行UART2初始化和DSP中斷初始化,接著進(jìn)行矩陣鍵盤初始化和外設(shè)使能配置,然后進(jìn)行管腳復(fù)用配置和定時(shí)器初始化,接著初始化定時(shí)器中斷,最后進(jìn)行矩陣鍵盤掃描并控制步進(jìn)電機(jī)的轉(zhuǎn)動。

管腳復(fù)用源碼

管腳復(fù)用配置
GPIO復(fù)用配置操作直接封裝成了函數(shù),使用時(shí),相關(guān)函數(shù)通過“gpio.h”文件引用。
StarterWare API 接口:GPIOBank0Pin0PinMuxSetup();
方向配置源碼
第一個(gè)參數(shù)時(shí)GPIO的基地址,第二個(gè)參數(shù)是GPIO的編號,第三個(gè)參數(shù)設(shè)置GPIO的方向

管腳方向配置
使用StarterWare 的庫將 GPIO 口配置為輸出或輸入。使用時(shí),直接包含“gpio.h”文件即可。
StarterWare API 接口:GPIODirModeSet(SOC_GPIO_0_REGS, 141, GPIO_DIR_INPUT);
數(shù)據(jù)配置源碼
第一個(gè)參數(shù)是GPIO的基地址,第二個(gè)參數(shù)是GPIO的編號,第三個(gè)參數(shù)設(shè)置GPIO的電平

數(shù)據(jù)寄存器配置
使用 StarterWare 的庫來設(shè)置GPIO的值。
使用時(shí),直接包含“gpio.h”文件即可。
StarterWare API 接口:GPIOPinWrite(SOC_GPIO_0_REGS, 105, GPIO_PIN_LOW);
定時(shí)器配置源碼
第一個(gè)參數(shù)是定時(shí)器模塊寄存器的基地址,第二個(gè)參數(shù)是用于配置定時(shí)器模塊。

定時(shí)器配置
使用 StarterWare 的庫來配置定時(shí)器。
使用時(shí),相關(guān)函數(shù)通過“timer.h”文件引用。
StarterWare API 接口:void TimerConfigure(unsigned int baseAddr, unsigned int config)
周期配置源碼
第一個(gè)參數(shù)是定時(shí)器模塊寄存器的基地址,第二個(gè)參數(shù)是要設(shè)置周期的定時(shí)器,第三個(gè)參數(shù)是設(shè)置的周期大小

定時(shí)器周期配置
使用 StarterWare 的庫來配置定時(shí)器周期。
使用時(shí),相關(guān)函數(shù)通過“gpio.h”文件引用。
StarterWare API 接口:void TimerPeriodSet(unsigned int baseAddr, unsigned int timer, unsigned int period)
定時(shí)器使能源碼
第一個(gè)參數(shù)是定時(shí)器模塊寄存器的基地址,第二個(gè)參數(shù)是要使能的定時(shí)器,第三個(gè)參數(shù)是配置使能定時(shí)器的模式。

定時(shí)器使能配置
使用 StarterWare 的庫來使能定時(shí)器。
使用時(shí),相關(guān)函數(shù)通過“gpio.h”文件引用。
StarterWare API 接口:void TimerEnable(unsigned int baseAddr, unsigned int timer, unsigned int enaMode)
操作現(xiàn)象
硬件連接
本實(shí)驗(yàn)使用的硬件接口為步進(jìn)電機(jī)和UART2 RS232接口,所需硬件為實(shí)驗(yàn)板、仿真器、RS232 交叉串口母母線、USB轉(zhuǎn)RS232串口線和電源。

(1)使用 RS232 交叉串口母母線和 USB 轉(zhuǎn) RS232 串口線連接實(shí)驗(yàn)板的UART2串口和電腦的 USB口。
(2)連接仿真器和電腦的USB接口,
(3)將撥碼開關(guān)撥到DEBUG模式01111,連接實(shí)驗(yàn)箱電源,撥動電源開關(guān)上電。

串口調(diào)試工具調(diào)節(jié)
(1)先在設(shè)備管理器查看串口的端口號;
(2)再設(shè)置串口調(diào)試工具,

軟件操作
設(shè)置好串口調(diào)試工具后,在CCS里進(jìn)行相關(guān)操作
導(dǎo)入工程,選擇Demo文件夾下的對應(yīng)工程
編譯工程
將CCS連接實(shí)驗(yàn)箱并加載程序
點(diǎn)擊運(yùn)行程序,實(shí)驗(yàn)板上步進(jìn)電機(jī)開始轉(zhuǎn)動,串口調(diào)試終端打印步進(jìn)電機(jī)轉(zhuǎn)動的信息。
Direction 表示轉(zhuǎn)動方向,正方向轉(zhuǎn)動為 Forward,反方向轉(zhuǎn)動為 Backward;
SpeedLevel表示轉(zhuǎn)速,最慢為 0,最快為 5;
按鍵 7 控制轉(zhuǎn)方向。
按鍵 8 控制加速。
按鍵 9 控制減速。
按下按鍵 7 調(diào)轉(zhuǎn)方向,按下按鍵 8 加速,實(shí)驗(yàn)板上步進(jìn)電機(jī)開始反方向轉(zhuǎn)動
