低成本ARM系列LM3S101微控制器的结构与应用
2008-10-15
1 LM3S101芯片的架构与特点
1.1 架 构
- 图1是LM3S101 芯片电路图和EasyArm101开发套件实物图。
LM3S101采用哈佛架构、Thumb-2指令集。芯片内部集成了8 KB单周期的Flash ROM,2 KB单周期的SRAM,2个32位定时器,1个同步串行接口(SSI),1个遵循ARM FiRM规范的看门狗定时器,1个UART,2个模拟比较器以及18个GPIO等,时钟频率为20 MHz。
1.2 应用特点
◆存储治理方式简单;
◆具有硬件位操作能力;
◆中断响应快捷;
◆定时器与脉宽调制PWM功能;
◆同步和异步串行接口。
2 开发环境和过程
2.1 开发环境
支持LM3S101芯片开发的集成环境有好几种,本文以Keil μVision3 for ARM软件为例来介绍开发环境。该软件集成了编译器、链接器和调试器等,其使用方式与Keil for C51相似。针对LM3S系列控制器提供的函数库名为Stellaris Drivet Library。
2.2 开发过程
① 开发软件安装:安装KeilμVision3 for ARM软件。
② 调试器驱动安装:将ULINK调试器连接到计算机,选择"自动搜索驱动"选项安装。
③ 设置编译器:选择Project→"Components,Environ-ment;Books"进入编译器设置界面,选择RealView编译器。选中"Use RealView Complier"选项,其他选默认设置。
④ 建立工程:选择Project→"New Project",输入工程名,选择对应的MCU型号LM3S101。按软件提示复制相应的启动代码。该启动代码用汇编编写,它主要对堆栈和中断向量进行初始化。接下来需将DriverLib.lib文件导入到工程,该文件就是Stellaris Driver Library的二进制版本,导入以后就可以在程序中调用库函数。
⑤ 程序调试:应用程序编写完成后,按F7编译。编译通过以后,选择Flash→Download菜单,就可以将程序下载到LM3S101上。
3 LM3S101应用实例
3.1 直流电动机调速控制
使用PWM控制直流电动机调速是通过调节输出方波的占空比来实现的,这里采用定频调宽法,即方波的周期不变,只改变方波宽度。当PWM输出占窄比为50%时,电机处于静止状态;当占空比小于50%时,电机反转;当占空比大于50%时,电机正转。调节占空比就可以改变转速。按键KEY1和KEY2用来控制占空比进行调速实验,按下KEY1时占空比提高10%,按下KEY2时占空比降低10%。
3.1.1 直流电动机调速原理
直流电动机PWM调速控制原理图如图2所示。其中,TA7291S是直流电动机驱动芯片,工作电压为4~20V,最大输出电流为0.4 A。
3.1.2 直流电动机调速程序设计
程序流程图如图3所示。初始化程序将PWM占空比设置为50%,将PA5和PA4设置为上升沿中断触发方式。当中断发生后,由中断服务程序修改占空比,从而调节电机的转速。
3.2 步进电机运行
实验使用四相步进电机,采用单极单相激磁方法。步进电机运行通过4个输入控制信号CE、CD、SI和MO来控制。其中,CE是步进电机使能位,高电平使能,低电平禁能;CD用于控制电机转向,低电平顺时针转动,高电平逆时针转动;SI为转动量控制端,每收到一个脉冲即转动N个步进角;N的值由端口MO设置,低电平时N为1,高电平时N为10。输入控制信号由PA0~PA3进入,激磁信号由PB0~PB3输出。
3.2.1 步进电机运行控制原理
步进电动机运行控制电路原理如图4所示。其中TLP521-4为光隔芯片,UNL2003为达林顿驱动器,用于进行步进电机驱动。
3.2.2 步进电机运行控制程序设计
程序流程图如图5所示。主程序等待输入控制信号触发外部中断,每次中断转动N个步距角,其判定过程由中断服务程序实现。
结 语
LM3S101芯片性价比高,具有配套完善的软件开发工具和丰富的驱动程序库,使用C语言编程,凶此非凡适合构建32位的小嵌入式系统。本文介绍了使用开发套件EasyArm101进行直流电动机调速控制和步进电机运行控制的实例。