问题背景:

英飞凌官网有提供基于XMC1302的步进电机的demo,但是客户根据官网提供的文档介绍,不知道如何来使得步进电机正常运行。所以我们特意整理了该文档,详细介绍下步进电机例程的完整操作流程。

环境搭建:

1. 硬件环境

1) KIT_XMC1300_IFX9201

https://www.infineon.com/cms/en/product/evaluation-boards/kit_xmc1300_ifx9201/

2) KIT_XMC47_RELAX_5V_AD_V1

https://www.infineon.com/cms/en/product/evaluation-boards/kit_xmc47_relax_5v_ad_v1/

3)步进电机

4)PC机一台

5) MiniUSB线一根

2. 软件环境

1)DAVE 4.4.2或更高版本

(从英飞凌官网下载,下载链接:https://softwaretools.infineon.com/tools/com.ifx.tb.tool.daveide?_ga=2.218624848.837896391.169560901...)

2) Arduino IDE 1.8.1-windows

https://www.arduino.cc/en/software/OldSoftwareReleases


按照下图方式来进行连接,这里的步进电机需要外部电源提供24V的供电,而控制器的5V供电,可以由KIT_XMC47_RELAX_5V_AD_V1来提供。(找元器件现货上唯样商城)

3. demo工程下载路径

1)XMC工程

https://www.infineon.com/cms/en/product/evaluation-boards/kit_xmc1300_ifx9201/

2)Arduino程序包

https://github.com/Infineon/Stepper-Motor-Shield-IFX9201-XMC1300

该程序包含configureStepperMotor和testStepperMotor两个主程序。

备注:该步进电机的例程,可以通过Arduino的板子来控制XMC的控制板,从而来控制步进电机进行运行。所以,在运行电机前,KIT_XMC1300_IFX9201的板子要插到KIT_XMC47_RELAX_5V_AD_V1板子上。同时,使用两根导线来连接下图所示的TX RX管脚。

运行步骤

1 Arduino相关配置设置

1)打开Arduino IDE,点击”preferences”

2)复制以下链接到下图红色标记位置

https://github.com/Infineon/XMC-for-Arduino/releases/latest/download/package_infineon_index.json

3)依次点击Tools > Board > Boards Manager,在boards manager中搜索XMC,选择下图所示的board文件进行安装。


4)点击点击Tools > Board >XMC4700 Relax Kit


2 通过Arduino程序包来控制步进电机

1) 安装库, 依次点击Sketch > Include Library > Add .ZIP Library...

选择刚从github上下载的Arduino的程序包

2) 加载 configureStepperMotor程序, 依次点击File > Open

选择configureStepperMotor


3)点击红色标记的”verify”按钮,进行工程编译。


4)点击红色标记的”upload”,完成对配置设置


5)加载testStepperMotor程序, 依次点击File > Open

选择testStepperMotor


6)点击红色标记的”verify”按钮,进行工程编译。


7)点击红色标记的”upload”,开始对步进电机的测试。可以观察到步进电机按照程序的步骤,进行运动。


8)通过修改下面黄色标记的部分,来修改步进电机的转速。


备注:步进电机的转动实际上都是根据驱动器和电机相互匹配的,例如电机转动步进角所需电流大小,驱动器在接收脉冲间隔时是否可以满足该电流以及步进换向的速度。如果脉冲过高导致驱动板切换AB相电流速度过快,对应的步进电机无法做到转动,那么就叫丢步了,表现上可能就是不转或者速度降低。

如果转速是10 转/秒,也就是600转/分钟,控制脉冲频率是4KHz,那么该电机的步数就是400步/圈,那么步距角就是0.9°。