基于STM32和L6208的步進電機控制系統_第1頁
基于STM32和L6208的步進電機控制系統_第2頁
基于STM32和L6208的步進電機控制系統_第3頁
基于STM32和L6208的步進電機控制系統_第4頁
基于STM32和L6208的步進電機控制系統_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于STM32和L6208的步進電機控制系統摘要:本文介紹了步進電機的基本工作原理及控制方法,通過對ARM公司的STM32F103XX處理器Cortex-M3和ST公司步進電機驅動芯片L6208性能和驅動原理的深入分析,闡述了一種新型驅動步進電機的控制系統。本控制系統能夠實時、準確、可靠地控制兩相兩極的步進電機。關鍵詞:STM32、L6208、步進電機Abstract: This paper introduced the basic work principle and control methods, By introducing the performance of STM32F103XX

2、 and thorough analyzing the drive principle of DMOS driver for bipolar steeper motor L6208, I expounded a new control system for driving steeper motor. This control system can control bipolar stepper motor real-time, well and truly and reliably.Key words: STM32, L6208, stepper motor第1章 引 言本系統采用STM32

3、F103XX微控制器驅動雙極性步進電機的方法,執(zhí)行整步和半步模式來控制步進電機。用戶可以選擇:操作模式(整步/半步);電機旋轉方式(順時針/逆時針);當前控制模式(快速/慢速)。這種方法使用中密度STM32F103XX微控制器和全集成兩相步進電機驅動L6208,這是性價比最高和最簡單的方式獲得最小的CPU負載。Cortex-M3是專門在微控制系統和無線網絡等對功耗和成本敏感的嵌入式應用領域實現高系統性能而設計的,它大大簡化了編程的復雜性,集高性能、低功耗、低成本于一體。本設計的主要特點:1、 不需反饋器件,比其他運動控制系統成本低。2、 尤其在低速扭轉力和強穩(wěn)定性方面具有優(yōu)勢。3、 低功耗,高

4、性能并且靈活,可用于機器人控制,機械工具轉彎處,影像和其它精準的軸位置控制環(huán)境。4、 高性能的STM32F103XX微控制器驅動步進電機依賴于控制器的低計算環(huán)境。第2章 方案比較與論證總體系統框圖如圖1所示:圖1 系統框圖2.1 控制模塊選擇方案一:采用89C51作為步進電機控制器。經典51單片機具有價格低廉、使用簡單等優(yōu)點。但其運算速度低,功能單一,RAM、ROM空間小,不穩(wěn)定等特點。方案二:采用STM32F103XX作為步進電機控制器。STM32通過寄存器模式,尋址方式靈活,RAM和FLASH容量大,運算速度快、低功耗、低電壓等,且通過TIM2的輸出比較模式來控制步進電機以連續(xù)周期的50%

5、和一個可變頻率。DMA控制器可用來改變時鐘周期,Systick定時器靈活地產生中斷?;谝陨戏治?,選擇方案二。2.2 電機的選擇方案一:采用直流電機。直流電機具有優(yōu)良的調速特性,調速平滑、方便,調整范圍廣;過載能力強,能承受頻繁的沖擊負載,可實現頻繁的無極快速啟動、制動和反轉;能滿足生產自動化系統各種不同的特殊運行要求。直流電機的工作狀態(tài)可分為兩種:開環(huán)狀態(tài)和閉環(huán)狀態(tài)。直流電機工作在開環(huán)狀態(tài)時,電路相對簡單,但其定位性能比較差。直流電機工作的閉環(huán)狀態(tài)時,其定位性能精確,但是相對開環(huán)狀態(tài)又要增加很多檢測器件,使用的元器件多,電路非常復雜。方案二:采用步進電機。步進電機是將電脈沖信號轉變?yōu)榻俏灰苹?/p>

6、線位移的開環(huán)控制元件。在非超載的情況下,電機的轉速、啟停的位置只取決于脈沖信號的頻率和脈沖數,而不受負載變化的影響,即給電機一個脈沖信號, 電機則轉過一個步距角。因此,步進電機具有快速啟停能力,如果負荷不超過步進電機所能提供的動態(tài)轉矩值,就能立即使步進電機啟動或反轉,而且步進電機的轉換精度高,驅動電路簡單,非常適合定位控制系統?;谝陨戏治觯x擇方案二。2.3 驅動模塊的選擇方案一:采用繼電器對電動機的開和關進行控制,通過開關的切換對電機的速度進行調整。這個方案的優(yōu)點是電路較為簡單,實現容易;缺點是繼電器的響應速度慢、機械結構易損壞、壽命較短。方案二:采用L6208驅動芯片。提供了帶CMOS/

7、TTL輸入邏輯以及幾個保護功能的全保護型雙H驅動橋,且為驅動雙極步進電機而專門優(yōu)化的全集成驅動器,從而大幅度減少了電機控制應用所需的外圍元器件的數量。此芯片產品采用8V52V的單電源電壓,所有的邏輯輸入引腳都配有降低噪聲敏感度的磁滯功能,而且兼容TTL/CMOS/CMOS 3.3V電壓。為全面保護對地短路和每個電橋的兩個相位之間的短路,芯片內置過流檢測電路(OCD)。OCD電路用于監(jiān)測流經上橋臂功率DMOS晶體管的電流,因為沒有外部電阻器,所以也就降低了功耗,符合節(jié)能要求。此外,為保證對IC進行的全面的保護,芯片上還集成了其它的特殊電路:監(jiān)測電源電壓的低壓封鎖保護以及一旦結溫超過165時關閉所

8、有功率輸出的熱保護功能。這個器件能夠適應各種應用,包括微步進應用?;谏鲜隼碚摲治龊蛯嶋H情況,擬定選擇方案二。第3章 系統硬件設計3.1 電機控制系統的設計RESET、 ENABLE、 FAST/SLOW、 HALF/FULL、 CLOCK、 CW/CCW是控制信號的輸入端,控制信號由STM32提供,可以直接將STM32與L6208的相應引腳相連。STM32控制L6208對應引腳如表1所示:STM32引腳L6208引腳TIM2_CH1(PA0)CLOCK(PIN_1)PC2CONTROL(PIN_13)PC3HALF/ (PIN_12)PC4CW/ (PIN_2)PC5RESET(PIN_23

9、)PC13EN(PIN_14)表1 STM32控制L6208對應引腳電機控制系統原理圖如圖2所示:圖2 電機控制系統原理圖L6208驅動電路圖如圖3所示:圖3 L6208驅動電路圖第4章 系統軟件設計主程序流程圖:部分流程圖:圖4 DMA流程圖圖5 系統時鐘流程圖第5章 功能測試及結果分析第6章 結束語本系統主要以STM32為主要控制芯片。采用了L6208驅動芯片實現電機控制。在設計過程中,力求硬件電路簡單,充分發(fā)揮軟件設計的優(yōu)勢,編程靈活方便來滿足系統的要求。參考文獻1 李寧,基于MDK的STM32處理器開發(fā)應用,北京航空航天大學出版社2 黃智偉,全國大學生電子設計競賽系統設計,北京航空航天

10、大學出版社3 ST公司,步進電機驅動l6208應用手冊。附錄一主要元器件清單:器件名稱器件數量STM32F103RBT6微控制器1片電機驅動芯片L6208N1片42BYG102步進電機1個電阻、電容、電位器、二極管若干附錄二主程序:int main(void) /* System Clocks Configuration */ RCC_Configuration(); /* NVIC Configuration */ NVIC_Configuration(); /* Activate the driver */ Stepper_Cmd(ENABLE); /* Driver control pi

11、n configuration */ Stepper_PinControlConfig(); /* Disable the initialization of the driver */ Stepper_ResetDisable(); /* -Modes selection: Rotation direction, Step mode, Decay mode-*/ #ifdef RotationDirection_CW Stepper_SetRotationDirection(Stepper_RotationDirection_CW);#endif /* RotationDirection_C

12、W */#ifdef RotationDirection_CCW Stepper_SetRotationDirection(Stepper_RotationDirection_CCW);#endif /* RotationDirection_CCW */ #ifdef Half_Step Stepper_SelectMode(Stepper_Half);#endif /* Half_Step */ #ifdef Full_Step Stepper_SelectMode(Stepper_Full);#endif /* Full_Step */ #ifdef ControlSlow_Current

13、 Stepper_SetControlMode(Stepper_ControlSlow);#endif /* ControlSlow_Current */ #ifdef ControlFast_Current Stepper_SetControlMode(Stepper_ControlFast);#endif /* ControlFast_Current */ /* Start the stepper motor */ Stepper_Start(ENABLE); /* Peripherals configuration */ Stepper_Init(); while (1) /* * br

14、ief Configures the different system clocks. * param None * retval : None */void RCC_Configuration(void) /* RCC system reset(for debug purpose) */ RCC_DeInit(); /* Enable HSE */ RCC_HSEConfig(RCC_HSE_ON); /* Wait till HSE is ready */ HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(HSEStartUpStatus = S

15、UCCESS) /* Enable Prefetch Buffer */ FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); /* Flash 2 wait state */ FLASH_SetLatency(FLASH_Latency_2); /* HCLK = SYSCLK */ RCC_HCLKConfig(RCC_SYSCLK_Div1); /* PCLK2 = HCLK */ RCC_PCLK2Config(RCC_HCLK_Div1); /* PCLK1 = HCLK/2 */ RCC_PCLK1Config(RCC_HCLK

16、_Div2); /* PLLCLK = 8MHz * 9 = 72 MHz */ RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); /* Enable PLL */ RCC_PLLCmd(ENABLE); /* Wait till PLL is ready */ while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) = RESET) /* Select PLL as system clock source */ RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /* Wait till PLL is used as system clock source */ while(RCC_GetSYSCLKSource() != 0x08) /* * brief Configure the nested vectored interrupt controller. * param None * retval : None */void NVIC_C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論