低成本ARM系列LM3S101微控制器的结构与应用

关键字:开发调试架构串行LM3S101是美国Luminary公司生产的、基于ARMCortex-M内核的32位微控制器芯片,它的销售价格在1美元以下,在构建同等性价格比的应用系统时成本很低。广州周立功单片机发展有限公司推出了以学习和评估该芯片为目的的开发套件EasyArm101。该套件由H-JTAG调试器、开发板、KeilμVision开发工具包、各类驱动程序库、文档以及与实例程序配套的相关元器件等组成。

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进行直流电动机调速控制和步进电机运行控制的实例。