- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验八:直流电机试验.doc
实验八:直流电机试验
实验目的
熟悉ARM 本身自带的PWM,掌握相应寄存器的配置。
Linux 下编程实现ARM 系统的PWM 输出,从而控制直流电机。
了解直流电机的工作原理,学会用软件的方法实现步进电机的脉冲分配。
掌握带有PWM 的CPU 编程实现其相应功能的主要方法
实验设备
硬件:
PC机一台,博创科技嵌入式教学科研平台UP-NETARM2410-S
软件:
Windows98/XP/2000系统,VMware Workstation6。0,Red Hat Linux,
MINICOM,ARM-Linux开发环境
实验内容
学习直流电机的工作原理,了解实现电机转动对于系统的软件和硬件要求。学习ARM PWM的生成方法。使用Redhat Linux 9.0 操作系统环境及ARM 编译器,编译直流电机的驱动模块和应用程序。运行程序,实现直流电机的调速转动。
实验预习要求
仔细阅读参考书:
【1】鸟哥的Linux私房菜 基础学习篇 第三版,人民邮电出版社,鸟哥
【2】嵌入式Linux系统开发标准教程,人民邮电出版社,华清远见嵌入式培训中心
【3】嵌入式Linux应用程序开发标准教程,人民邮电出版社,华清远见嵌入式培训中心
【4】C 语言的基础知识、程序调试的基础知识,Linux 的基本操作
【5】掌握在Linux 下常用编辑器的使用
【6】掌握Makefile 的编写和使用
【7】掌握Linux 下的程序编译与交叉编译过程
实验原理与代码分析
关键代码分析
Linux 下的直流电机程序包括模块驱动程序和应用程序两部分。Module 驱动程序实现了以下方法:
static struct file_operations s3c2410_dcm_fops = {
owner: THIS_MODULE,
open: s3c2410_dcm_open,
ioctl: s3c2410_dcm_ioctl,
release: s3c2410_dcm_release,
};
开启设备时,配置IO 口为定时器工作方式:
({ GPBCON =~ 0xf; GPBCON |= 0xa; })
配置定时器的各控制寄存器:
({ TCFG0 = ~(0x00ff0000);
TCFG0 |= (DCM_TCFG0);
TCFG1 = ~(0xf);
TCNTB0 = DCM_TCNTB0; /* less than 10ms */
TCMPB0 = DCM_TCNTB0/2;
TCON =~(0xf);
TCON |= (0x2);
TCON =~(0xf);
TCON |= (0x19); })
在s3c2410_dcm_ioctl 中提供调速功能接口:
case DCM_IOCTRL_SETPWM:
return dcm_setpwm((int)arg);
应用程序dcm_main.c 中调用:
ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (setpwm * factor));
实现直流电机速度的调整。
七、实验步骤
1、阅读理解源码
2、编译直流电机模块
cd /arm2410s/kernel-2410s
make menuconfig
进入Main Menu / Character devices 菜单,选择DC MOTOR 为模块加载:
编译内核模块:
make dep
make
make modules
直流电机模块的编译结果为:
/arm2410s/kernel-2410s/drivers/char/s3c2410-dc-motor.o
2、编译应用程序。将源代码COPY到 arm2410s下。
cd /arm2410s/10_dcmotor/
make
生成dcm_main
3、下载调试与运行
换到minicom 终端窗口,使用NFS mount 开发主机的/arm2410s 到/host 目录
[root@zxt root]# minicom
[/mnt/yaffs] mount -t nfs -o nolock -o tcp 192.168.0.56:/arm2410s /host
[/mnt/yaffs]cd /host/10_dcmotor/
[/host/10_dcmotor]./dcm_main
程序运行结果:直流电机变速转动。
........
setpwm = -265
setpwm = -266
setpwm = -267
setpwm = -268
setpwm = -269
setpwm = -270
setpwm = -271
setpwm = -272
setpwm = -273
......
setpwm = 290
setpwm = 291
setpwm =
文档评论(0)