基于STM32和L6208的步进电机控制系统_第1页
基于STM32和L6208的步进电机控制系统_第2页
基于STM32和L6208的步进电机控制系统_第3页
基于STM32和L6208的步进电机控制系统_第4页
基于STM32和L6208的步进电机控制系统_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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微控制器驱动双极性步进电机的方法,执行整步和半步模式来控制步进电机。用户可以选择:操作模式(整步/半步);电机旋转方式(顺时针/逆时针);当前控制模式(快速/慢速)。这种方法使用中密度STM32F103XX微控制器和全集成两相步进电机驱动L6208,这是性价比最高和最简单的方式获得最小的CPU负载。Cortex-M3是专门在微控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域实现高系统性能而设计的,它大大简化了编程的复杂性,集高性能、低功耗、低成本于一体。本设计的主要特点:1、 不需反馈器件,比其他运动控制系统成本低。2、 尤其在低速扭转力和强稳定性方面具有优势。3、 低功耗,高

4、性能并且灵活,可用于机器人控制,机械工具转弯处,影像和其它精准的轴位置控制环境。4、 高性能的STM32F103XX微控制器驱动步进电机依赖于控制器的低计算环境。第2章 方案比较与论证总体系统框图如图1所示:图1 系统框图2.1 控制模块选择方案一:采用89C51作为步进电机控制器。经典51单片机具有价格低廉、使用简单等优点。但其运算速度低,功能单一,RAM、ROM空间小,不稳定等特点。方案二:采用STM32F103XX作为步进电机控制器。STM32通过寄存器模式,寻址方式灵活,RAM和FLASH容量大,运算速度快、低功耗、低电压等,且通过TIM2的输出比较模式来控制步进电机以连续周期的50%

5、和一个可变频率。DMA控制器可用来改变时钟周期,Systick定时器灵活地产生中断。基于以上分析,选择方案二。2.2 电机的选择方案一:采用直流电机。直流电机具有优良的调速特性,调速平滑、方便,调整范围广;过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速启动、制动和反转;能满足生产自动化系统各种不同的特殊运行要求。直流电机的工作状态可分为两种:开环状态和闭环状态。直流电机工作在开环状态时,电路相对简单,但其定位性能比较差。直流电机工作的闭环状态时,其定位性能精确,但是相对开环状态又要增加很多检测器件,使用的元器件多,电路非常复杂。方案二:采用步进电机。步进电机是将电脉冲信号转变为角位移或

6、线位移的开环控制元件。在非超载的情况下,电机的转速、启停的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机一个脉冲信号, 电机则转过一个步距角。因此,步进电机具有快速启停能力,如果负荷不超过步进电机所能提供的动态转矩值,就能立即使步进电机启动或反转,而且步进电机的转换精度高,驱动电路简单,非常适合定位控制系统。基于以上分析,选择方案二。2.3 驱动模块的选择方案一:采用继电器对电动机的开和关进行控制,通过开关的切换对电机的速度进行调整。这个方案的优点是电路较为简单,实现容易;缺点是继电器的响应速度慢、机械结构易损坏、寿命较短。方案二:采用L6208驱动芯片。提供了带CMOS/

7、TTL输入逻辑以及几个保护功能的全保护型双H驱动桥,且为驱动双极步进电机而专门优化的全集成驱动器,从而大幅度减少了电机控制应用所需的外围元器件的数量。此芯片产品采用8V52V的单电源电压,所有的逻辑输入引脚都配有降低噪声敏感度的磁滞功能,而且兼容TTL/CMOS/CMOS 3.3V电压。为全面保护对地短路和每个电桥的两个相位之间的短路,芯片内置过流检测电路(OCD)。OCD电路用于监测流经上桥臂功率DMOS晶体管的电流,因为没有外部电阻器,所以也就降低了功耗,符合节能要求。此外,为保证对IC进行的全面的保护,芯片上还集成了其它的特殊电路:监测电源电压的低压封锁保护以及一旦结温超过165时关闭所

8、有功率输出的热保护功能。这个器件能够适应各种应用,包括微步进应用。基于上述理论分析和实际情况,拟定选择方案二。第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驱动芯片实现电机控制。在设计过程中,力求硬件电路简单,充分发挥软件设计的优势,编程灵活方便来满足系统的要求。参考文献1 李宁,基于MDK的STM32处理器开发应用,北京航空航天大学出版社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_Configuration(void) NV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论