- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DSP实验报告
实验名称: 步进电机控制实验
系 部: 物理与机电工程学院
专业班级:
学 号:
学生姓名:
指导教师:
完成时间: 2014-5-7
报告成绩:
步进电机控制实验
一、实验目的
1. 掌握 2812 通用IO 口的使用方法;
2. 掌握 2812 对步进电机的控制。
二、实验设备
1. 一台装有CCS软件的计算机;
2. DSP试验箱的TMS320F2812主控板;
3. DSP硬件仿真器。
三、实验原理
步进电机工作原理,给步进脉冲电机就转,不给脉冲电机就不转,步进脉冲的频率越高,步进控制电机就转的越快;改变各相的通电方式可以改变电机的运行方式;改变通电顺序可以控制步进电机的运行方式;改变通电顺序可以控制步进电机的正反转。
步进电机的控制问题可以总结为两点:
(1)产生工作方式需要的时序脉冲;
(2)控制步进电机的速度使它始终遵循加速-匀速-减速的规律工作。
对于I/O 口有二类寄存器:
1. 控制寄存器和数据方向寄存器,使用方法如下:首先确定引脚的功能,即IO控制器寄存器,为1 表示引脚功能是原模块的功能,否则为IO 功能。
2. 如果引脚被配置为 IO 功能,就需要确定它的方向:输入还是输出。为1 表示是输出引脚,否则是输入引脚。对于IO 功能的输入或输出是通过读写相应的数据方向寄存器来实现。输入引脚对应读操作;输出引脚对应写操作。
3.步进电机的使用至少需要三个方面的配合,一是电脉冲信号发生器,它按照给定的设置重复为步进电机输送电脉冲信号,目前这种信号大多数由可编程控制器或单片机来完成;二是驱动器(信号放大器),它除了对电脉冲信号进行放大、驱动步进电机转动以外,还可以通过它改善步进电机的使用性能,事实上它在步进电机系统中起着重要的作用,一般一种步进电机可以根据不同的工况具有多种驱动器;三是步进电机,它有多种控制原理和型号,现在常用的有反应式、感应子式、混合式等。 步进电机的速度控制是通过输入的脉冲频率快慢实现的。当发生脉冲的频率减小时,步进电机的速度就下降;当频率增加时,速度就加快。还可以通过频率的改变而提高步进电机的速度或位置精度。????? 步进电机的位置控制是靠给定的脉冲数量控制的。给定一个脉冲,转过一个步距角,当停止的位置确定以后,也就决定了步进电机需要给定的脉冲数。在包装机控制中,给定脉冲数的多少,还与机构的参数有关,例如螺杆的直径等。?
4.实验电路
5.试验框图
四、实验步骤
1.连接好仿真器、DSP实验箱,计算机;
2.本实验工程文件(Example_stepmotor.pjt)加深DSP系统的理解#include include/DSP281x_Device.h // DSP281x Headerfile Include File
#include include/DSP281x_Examples.h // DSP281x Examples Include File
void delay_loop(void);
void Gpio_select(void);
short codetab[17]=
{0x0001,0x0002,0x0004,0x0008,0x0008,0x0004,0x0002,0x0001,
0x0001,0x0002,0x0004,0x0008,0x0001,0x0002,0x0004,0x0008,0x0000};
main()
{
short i,j;
InitSysCtrl();
EALLOW;
EDIS;
Gpio_select();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
InitXintf(); // For this example, init the Xintf
GpioDataRegs.GPADAT.all=0;
Reg06=0x00;
while(1)
{
for(j=0;j400;j++)
{
for(i=0;i4;i++)
{
GpioDataRegs.GPADAT.all =codetab[i];
Reg06=0x00;
delay_loop();
}
原创力文档


文档评论(0)