ARM PWM电机控制实验

  • 格式:doc
  • 大小:416.00 KB
  • 文档页数:6

4.12 ARM PWM电机控制实验
1.实验目的
⑴通过实验掌握ARM处理器的PWM控制方式和工作原理;
⑵熟悉S3C2410X的定时器寄存器的使用;
⑶熟练掌握控制PWM定时器的软件编程方法。

2.实验设备
硬件:Embest EduKit-III实验台,仿真器,PC机,步进电机,直流电机。

软件:Embest IDE集成开发环境,Windows 98/2000/NT/XP。

3.实验内容
编写程序,实现:分别用定时器T0,T1的PWM控制步进电机和直流电机;按下SB1203改变电机的转动方向;改变定时器T0,T1的计数器寄存器的值改变电机的转动速率。

4.实验原理
⑴ PWM定时器概述
S3C44B0X有5个16位定时器,其中定时器0,1,2,3具有脉冲宽度调制(PWM)功能,定时器4具有内部定时作用,但是没有输出引脚。

定时器0具有死区生成器,可以控制大电流设备。

定时器T0,T1共用一个8bit预分频器,定时器T2,T3,T4共用另一个8bit预分频器,每个定时器都有一个时钟分频器,信号分频输出有5种模式(1/2,1/4,1/8,1/16 和外部时钟TCLK)。

每个定时器模块都从时钟分频器接收它自己的时钟信号,时钟分频器接收的时钟信号来自于8bit预分频器。

可编程8bit预分频器根据存储在TCFG0和TCFG1中的数据对PCLK 进行预分频。

当时钟被允许后,定时器缓冲计数器器寄存器(CTNTBn)把计数初值下载到减法计数器中。

定时器比较缓冲寄存器(CMPBn)把初始值下载到比较寄存器中来和减法计数器值比较,这种CTNTBn和CMPBn双缓冲寄存器特性能使定时器产生稳定的输出,且占空比可变。

每一个定时器都有一个自己的用定时器时钟驱动的16位减法计数器。

当减法计数器减到0的时候就会产生一个定时器中断来通知CPU定时器操作完成。

当定时器减法计数器减到0的时候相应的TCNTBn的值被自动重载到减法计数器中继续下次操作。

然而,如果定时器停止了,比如在运行的时候通过清除TCON 中定时器使能位来中止定时器的运行,TCNTBn 的值不会被重载到减法计数器中。

TCMPBn的值用于脉冲宽度调制(PWM)。

当定时器的减法计数器的值和TCMPBn的值相匹配的时候,定时器输出改变输出电平。

因此,比较寄存器决定了PWM输出的开关时间。

S3C44B0X具有双缓冲功能,能在不中止当前定时器运行的情况下,重载下次定时器运行参数,所以尽管新的定时器的值被设置好了,但是当前操作仍能成功完成。

定时器值可以被写入定时器计数缓冲寄存器(TCNTBn),当前的计数器的值可以重定时器计数观察寄存器(TCNTOn)读出。

读出的TCNTBn值并不是当前的计数器的值,而是下次重载的计数器值。

TCNTn的值等于0的时候,自动重载操作把TCNTBn的值装入TCNTn,只有当自动重载允许并且TCNTn的值等于0的时候才会自动重载。

如果TCNTn等于0,自动重载禁止,则定时器停止运行。

⑵ PWM定时器控制寄存器
定时器配置寄存器0(TCFG0,地址:0x51000000)
定时器输入时钟频率(TCLK)=PCLK/(预分频值+1)/分频器分频值;预分频值=0~255,分频器的分频值为2、4、8、16。

PWM输出时钟频率=定时器输入时钟频率(TCLK)/定时器计数缓冲寄存器值(TCNTBn)。

PWM输出信号的占空比=定时器比较缓冲寄存器值(TCMPBn)/定时器计数缓冲寄存器值(TCNTBn)。

表4-12-4 定时器减法和比较缓冲寄存器
步进电机是一种将电脉冲转化为角位移的执行机构。

当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的步进角度。

可以通过控制脉冲个数来控制角位移量,达到准确定位目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,达到调速目的。

实验使用步进电机驱动器是TA8435,其驱动电路如图4-12-1所示。

表4-12-1 TA8435芯片引脚功能
图4-12-1 步进电机驱动电路
直流电机采用的驱动芯片是L298N。

L298N是SGS公司的产品,内部包含4通道逻辑驱动电路,是一种二相和四相电机的专用驱动器,即内含二个高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。

其引脚排列如图4-12-2所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信号。

L298N可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。

5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB 接控制使能端,控制电机的停转。

L298N的逻辑功能如表4-12-2所列。

L298N采用15脚Multiwatt塑料封装,通过散热片可用螺钉固定在散热器上。

内部包含:两个高电压大电流全桥式驱动器A与B(每个全桥由4只NPN型三极管构成);逻辑电路供电稳压器;逻辑控制电路等。

引脚排列如图3.10所示。

图4-12-2 L298N外形和管脚
该芯片的主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电
流可达3A,持续工作电流为2A;内含两个高电压大电流全桥式驱动器,可以用来驱动直流电动机、步进电动机、继电器、线圈等感性负载;采用标准的TTL逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作,有一个逻辑电源输
入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。

表4-12-2 L298N输入输出逻辑关系
EN A(B)IN1(IN3)IN2(IN4)电机运行情况
H H L 正转
H L H 反转
H 同IN1(IN3)同IN2(IN4)快速停止
L X X 停止
图4-12-3直流电机驱动电路
5.实验操作步骤
⑴串口接收设置。

在PC机上运行windows自带的超级终端串口通信程序(波特率115200、1位停止位、无校验位、无硬件流控制);或者使用其它串口通信程序。

⑵调试实验例程。

打开实验例程目录pwm_test目录下例程,编译链接工程→Remote Connect进行连接软件仿真器→Download下载程序→Debug工具条Go命令(F5快捷键)→观察超级终端显示结果和电机运行结果→Disconnect退出调试状态。

⑶调试过程中,观察超级终端显示内容:
boot success...
PWM test
Press SB1203 to change the direction of the motor
You can change the duty cycle and rotation speed as following:
1-->PWM0: 1/2,100Hz(default)
2-->PWM0: 1/3,100Hz
3-->PWM0: 1/3,200Hz
4-->PWM0: 1/2,200Hz
5-->PWM1: 1/2,100Hz(default)
6-->PWM1: 1/3,100Hz
7-->PWM1: 1/3,200Hz
8-->PWM1: 1/2,200Hz
可以使用PC机键盘,输入数字1~8,改变定时器0、1的PWM输出占空比来控制电机。

在实验台上按下SB1203后(不松手),电机改变转动方向。

对于实验中的小型电机,工作频率在100Hz左右能功能在最佳状态,当然也可以改变占空比和频率观察电机转动状况。

注意:跳线连接到SW1202表示程序可以控制步进电机,跳线连接到SW1203表示程序可以控制直流电机,用户可以通过改变跳线来切换控制步进电机和直流电机。

6.思考题
改变定时器参数,产生其他频率的PWM输出控制电机。