• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

【代码库】如何在 iMX.RT1180 上设置运动控制参考设计

09/03 09:52
566
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

rd-motion-control-slave-servo-mimxrt1180-main.zip

共1个文件

如何在 iMX.RT1180 上设置运动控制参考设计

 

本应用演示了如何在 iMX.RT1180 上实现 EtherCAT+ PMSM 电机控制。参考设计包含两个工程,分别为主站工程和从站工程。主站工程负责完成 EtherCAT 主站协议栈的处理,从站工程负责完成 EtherCAT 从站协议栈的处理以及伺服电机的控制。基于本参考设计,做了两个 Demo 进行演示: Demo1: 1 个主站带 4 个从站节点,每个从站节点控制两台电机。来自不同从站节点的两台电机组成一组,通过激光穿透和遮挡演示 EtherCAT 的同步性能。Demo2 1 个主站带 2 个从站节点,每个从站节点控制两台电机。位于不同从站板上的电机 1 负责控制电机 2 平台的左右移动。位于不同从站板上的两台电机 2 靠近时会同步移动,远离时会分别移动。

电路板:XSERVO-MTR-DRV 电路板、MIMXRT1180-EVKC 电路板

 

类别:电机控制、网络

 

外设:ADC、PWM、以太网

 

工具链:MCUXpresso IDE

 

目录

 

  1. 软件
  2. 硬件
  3. 设置
  4. 结果
  5. 支持
  6. 发行说明

1.软件

 

2.硬件

 

3. 设置

 

3.1 步骤 1

 

  1. 打开 MCUXpresso IDE,在快速启动面板中,选择应用程序代码中心导入
  2. 在搜索栏中输入演示名称。
  3. 点击?复制GitHub链接?,MCUXpresso IDE将自动检索项目属性,然后单击?下一步>?。
  4. 选择分支然后点击?Next>?,选择MCUXpresso工程,点击Finish按钮完成导入。
  5. 单击?“Build”?开始编译项目。

3.2 第 2 步

 

MIMXRT-1180-EVK RevC 板设置

 

  1. 通过 J2 提供 5V 电源(JP1 引脚 1 和引脚 2 使用跳线连接)。
  2. 将 J-Link 调试器连接到 MIMXRT-1180-EVK RevC 板的 J37。
  3. 将“ motioncontrolmaster_soem ”项目导入MCUXpresso IDE。
  4. 选择 SDP 模式。(SW5->off-off-off-on)。
  5. 构建 motioncontrolmastersoem 项目(?调试构建?)并将项目下载到开发板(JP5 需要连接跳线)。 ?注意:?此项目无法直接构建。项目中缺少 CMSIS 相关文件,用户需要手动将文件从 (.. motioncontrolservort1180cm33 CMSIS..) 复制到 (..evkmimxrt1180soemservomotorbmcm33CMSIS..)。
  6. 选择 Flashboot 模式。(SW5->off-on-off-off)。
  7. 复位板。D31将一直亮着。
  8. 使用网线将ETH4连接到Slave网口。

XSERVO-MTR-PSG RevA 板设置

 

  1. 通过 J16/17 提供 5V 电源。
  2. 将 J-Link 调试器连接到 XSERVO-MTR-PSG RevA 板的 J15。
  3. “motioncontrolservort1180cm33”和“motioncontrolservort1180cm7”项目导入MCUXpresso IDE。
  4. 选择 SDP 模式。(SW2->off-off-off-on)。
  5. 首先构建'motioncontrolservort1180cm7'项目(?Release build?)。
  6. 编译“motioncontrolservort1180cm33”项目(?Release build?)。将项目下载到开发板。 ?注意:?此项目无法直接编译。请参阅下文。详细信息请参阅“rd-motion-control-imxrt1180motioncontrolservort1180cm33docs”路径下文档的第4章至第6.3章。
准备演示

 

```
1. Generate the SSC source code
- Download Slave Stack Code Tool(SSC Tool) from BECKHOFF official website and install it
- Open Slave Stack Code Tool
- Click 'File' -> 'New' -> 'Import' to import the Congfig file
Select servomotor.xml under path '.boardsevkmimxrt1180ecatexamplesservomotor<core>SSC'.
- Click 'Project' -> 'Create new Slave Files'
'Source Folder'(default): '.boardsevkmimxrt1180ecat
examplesservo_motor<core>SSCSrc'.
Click 'Start'.

  1. Copy SSC souce code to 'rd-motion-control-imxrt1180motioncontrolservort1180cm33ecatSSCSrc', and change to '.rd-motion-control-imxrt1180motioncontrolservort1180cm33ecatSSC' path to apply the patch.
    Linux:
    1. Download dos2unix command
    apt-get install dos2unix
    2. Transfer SSC source code format
    dos2unix Src/*
    3. Apply patch
    patch -d Src < CiA402-combine-the-SSC-slave-with-ecpmsm-support.patch
    Windows:
    1. Download patch.exe and Unix2Dos.exe tool
    Download Windows Patch Utility from http://gnuwin32.sourceforge.net/downlinks/patch-bin-zip.php .
    Download Dos2Unix/Unix2Dos-Text file format converters from https://sourceforge.net/projects/dos2unix/ .
    2. Transfer the patch format
    $(Dos2Unix/Unix2Dos-DIR)/bin/unix2dos.exe CiA402-combine-the-SSC-slave-with-ec
    pmsm-support.patch
    3. Apply patch
    patch.exe -i CiA402-combine-the-SSC-slave-with-ec_pmsm-support.patch -d ./Src
  2. Download the program to the Master board
  3. Update ESI file to EEPROM
    • Copy ESI file 'ECAT-SERVO-MOTOR.xml' generated by SSC TOOL to //Config/io/EtherCAT/
    • Restart TwinCAT3 IDE
    • Scan device and Update EEPROM
      ```
  4. 选择 Flashboot 模式。(SW2->off-on-off-off)。
  5. 复位电路板。LED1将每隔1s亮一次。
  6. 连接电机1&2的电源和编码器端口。
  7. 连接网线,J3为从机输入,J7为从机输出。

3.2 步骤 3

 

Demo1 设置

 

  1. 主从机之间网线连接。

  1. 8 个电机和 4 个从属板安装在支架上。

  1. 两个 24V 电源为四块开发板供电。一块电源为开发板 1 和 2 / 1 和 3 供电,另一块电源为开发板 3 和 4 / 2 和 4 供电
  2. 通电前确保所有电机都处于正确的位置(激光是否能够穿过圆孔)。
  3. 为从属板提供 24V 电源。
  4. 主板5V供电。

Demo2 设置

 

  1. 主从机之间网线连接。

  1. 将四个电机安装到滑轨上并拧紧联轴器。
  2. 将两块板上的 M2 齿轮对接在一起,如上图所示。
  3. 为从属板提供 24V 电源。
  4. 主板5V供电。

4.结果

 

使用 USB 电缆连接主机 PC 和主板上的 OpenSDA USB 端口。打开串行终端,设置如下 - 115200 波特率 - 8 个数据位 - 无奇偶校验 - 一个停止位 - 无流控制 下面的日志显示了此演示在终端窗口中的输出:

```
Init success!

Init 3 success!

Start SOEM SERVO MOTOR EXAMPLE!

NETC EP frame loopback example start.
Starting motion task
ecinit on netc0 succeeded.
ec
configinit 0
1 slaves found and configured.
ec
configmapgroup IOmap:20001214 group:0

Slave 1, configadr 1001, state 2
CoE Osize:192 Isize:192
ISIZE:192 192 OSIZE:192
SM programming
SM2 Type:3 StartAddr:1100 Flags: 10064
SM3 Type:4 StartAddr:1400 Flags: 10020
OUTPUT MAPPING
FMMU 0
SM2
slave 1 Outputs 20001214 startbit 0
=Slave 1, INPUT MAPPING
FMMU 1
SM3
Inputs 2000122C startbit 0
IOmapSize 48
Slaves mapped, state to SAFE_OP.
segments : 1 : 48 0 0 0
Request operational state for all slaves
Calculated workcounter 3
Request operational state for all slaves
Calculated workcounter 3
Operational state reached for all slaves.
```

Demo1 结果

 

Demo1 视频

Demo2 结果

 

Demo2 视频

5. 支持

 

在此提供帮助的 URL。

项目元数据

 

类别徽章 类别徽章

周边徽章 周边徽章 周边徽章

工具链徽章

有关此示例的内容/正确性的问题可以作为此 GitHub 存储库中的问题输入。

来源:恩智浦appcodehub

  • rd-motion-control-slave-servo-mimxrt1180-main.zip
    下载
恩智浦

恩智浦

恩智浦半导体创立于2006年,其前身为荷兰飞利浦公司于1953年成立的半导体事业部,总部位于荷兰埃因霍温。恩智浦2010年在美国纳斯达克上市。恩智浦2010年在美国纳斯达克上市。恩智浦半导体致力于打造全球化解决方案,实现智慧生活,安全连结。

恩智浦半导体创立于2006年,其前身为荷兰飞利浦公司于1953年成立的半导体事业部,总部位于荷兰埃因霍温。恩智浦2010年在美国纳斯达克上市。恩智浦2010年在美国纳斯达克上市。恩智浦半导体致力于打造全球化解决方案,实现智慧生活,安全连结。收起

查看更多

相关推荐