0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AM243X-LP与EtherCAT的Demo操作说明

电子设计 来源:电子设计 作者:电子设计 2022-01-12 13:53 次阅读

Other Parts Discussed in Post: SYSCONFIG, UNIFLASH

Shaoxing Ke1, Strong2, EP FAE Team

1. 摘要

7月13日德州仪器TI)推出了全新的高性能微控制器MCU+)产品系列,AM243X是其产品系列中的一款芯片。AM243X芯片拥有2个800MHZ ARM Cortex-R5F双核,1个400MHZ ARM Cortex-M4单核,2个PRU-ICSSG工业通信子模块并支持千兆网络。由此,该AM243X芯片可实现对多个千兆级工业以太网和时间敏感网络的场景应用,同时芯片上的功能安全特性可以帮助系统集成商在其工业设计中达到IEC 61508标准的安全完整性等级SIL 3(Safety Integrity Level, SIL)要求。总之,AM243X芯片最大优势在于强大的处理能力、实时控制和工业物联、以及支持多协议应用(如EtherNet/IP、EtherCAT、PROFINET和IO-Link主站等)。本文主要介绍PC 如何与AM243X-LP进行EtherCAT通讯,参考Demo是ethercat_slave_beckhoff_ssc_demo。

2. 硬件准备与环境配置

2.1开发板准备与连接

根据项目测试所使用AM243X control card 的不同,配置CCS运行环境需进行相应调整。比如 AM243X-LP 没有 DDR 内存,开发板进行 DDR 初始化仅适用于 AM243X-EVM。其中,AM243X-LP的板子及连接如图1所示。

图1中USB Type-C connector(J10)用于板子供电,板子上电故障灯LD9,正常灯LD6、LD7和LD8。AM243X-LP和AM243X-EVM都有闪存 SOC,因此都需要进行初始化。在这里可以查看板子BOOT MODE是否处于OSPI 模式,见图2所示。如果不是图2模式,需要首先对板子进行UART设置和闪存 SOC (Sitara System-on-chip)初始化。这部分内容下一小节会讲,参考链接AM243x MCU+ SDK: EVM Setup (ti.com)。其中AM243X-LP原理图,如图3所示。

poYBAGGKRMmAITNDAADaqt4t7HY566.png

图3 AM243X-LP原理图

图3中BOOT MODE有UART、OSPI、SD和NOBOOT四种模式。其中,SD BOOT MODE仅AM243X-EVM需要进行设置。因此,AM243X-LP可选择不同的BOOT MODE对SOC进行初始化设置,本文以OSPI BOOT MODE方案为初始化操作方法。

2.2环境配置与所需软件

在进行环境配置时有两种方法。第一种方法,是借助Python 3.9.6工具并通过UART来对SOC进行初始化。第二种方法,是直接通过使用 CCS 脚本初始化 SOC,每次上电都需要操作一次。本文对两种方法进行如下介绍。

第一种方法借助Python 3.9.6工具并通过UART对SOC进行初始化。

所需要安装的软件,如下表所示。

安装的软件描述

CCS 10.3.1用于程序烧录、调试与通讯

SysConfig 1.8.1makefiles操作需要,如若CCS则无需安装

TI CLANG compiler toolchain 1.3.0.LTSARM 编译器

Python 3.x.设置UART 和BOOT MODE

{SDK_INSTALL_PATH}/SDKSDK /example

SSC_V5i12生成从机与主机建立映射的源文件

TwinCAT3.0上位机编程、调试与通讯

配置前首先需要检查板子上电和UART通讯、Python 3.9.6安装是否正常,并设置BOOT MODE。AM243X-LP正常上电,如图4所示。UART通讯进行检查如下:

首先,关闭AM243X-LP的电源并设置UART BOOT(BOOTMODE [ 1 : 8 ] (SW4) = 1110 0000),如图5所示。

poYBAGGKRM-ASgMkAAGSYHkWKPo984.png

图5 UART BOOT MODE

其次,在AM243X-LP上电前通过CCS-》View-》Terminal-》Open a new UART terminal-》Select the UART port-》进行串口设置,板子上电后可看到UART打印信息,如下图所示。

pYYBAGGKRNCAfihSAAAacYDjgZw647.png

接着,关闭UART并进行闪存 SOC初始化。其中,SOC初始化是借助Python 3.9.6工具进行.cfg文件的配置,并通过UART引导应用程序对板子QSPI FLASH进行初始化。

对于Windows系统操作如下:

Step1:安装python 3.9.6, https://www.python.org/downloads/windows/

Step2:命令提示符(WIN+R)输入以下命令(“python --version”),可查看Python 3.9.6是否安装成功。

pYYBAGGKRNKABZ0EAAARnxcIqR4953.jpg

Step3:若找不到所安装Python 3.9.6版本,进行环境变量添加路径。

poYBAGGKRNOAbvZgAABWrpAvmk8391.png

C:\Users\{your username}\AppData\Local\Programs\Python\Python39。此为Python 3.9.6安装的默认路径。

如果添加环境变量也无法显示“Python 3.9.6”成功安装。推荐使用Anaconda软件安装python, 链接:Anaconda | Individual Edition。这种方法可以不需要配置环境变量,进而帮助Python 3.9.6的安装。

pYYBAGGKRNWABawQAADRWIbWljI284.png

pYYBAGGKRNeATa6ZAACkO86PFws269.png

Step4: 检查是否安装了 python 软件包管理器 “pip” ,默认情况下pip 应该是与 python 一起安装的。如果 “pip”有安装,如有显示下图则直接跳过Step5。

poYBAGGKRNiAXgzgAAAJ7yDg9ms737.jpg

Step5:安装python 软件包管理器 “pip”,命令提示符下键入“python -m pip install pyserial xmodem tqdm” ,如下图所示。其中,python 软件包管理器 “pip”的安装,是为了利用pip引导安装物理层的串口、xmodem协议和tqdm进度条软件包。因此,需要检查“pip”是否有安装。

pYYBAGGKRNqAahTQAAAj1um8i_A424.jpg

Step6: 闪存 SOC (Sitara System-on-chip)初始化。命令提示符下键入“python uart_uniflash.py -p COM –cfg= sbl_prebuilt\am243x-lp\ default_sbl_null.cfg”,如下图所示。此处COM需要通过设备管理器查看电脑上所连J20引脚所对应的串口号。

poYBAGGKRNuAaQkpAABAgcSfRZg915.jpg

poYBAGGKRN2AH5ShAAA9pP48m-k910.jpg

上图为闪存 SOC 初始化成功的界面,如果这一步初始化不成功后续CCS运行工程时无法通过UART打印信息,同时从站也无法告知主站所处的状态。这主要是由于J20引脚既有JTAG烧录,又有UART通信功能。如果SOC初始化失败并报错,可以查看Flash tool error messages and solutions

SOC 初始化成功后,接着将AM243X-LP断电并将BOOT MODE设置为OSPI MODE(BOOTMODE [ 1 : 8 ] (SW4) = 0100 0100),如图6所示。

poYBAGGKRN-AaW_sAAGhfU32HsM804.png

图6 OSPI BOOT MODE

Step7: AM243X-LP上电并打开UART通讯,Console界面打印信息显示图7,则说明AM243X-LP 已设置可以 CCS 加载并运行。

poYBAGGKROCAJu26AABm4gMl1UA401.png

图7 Console界面打印信息

同时,也可以尝试其他Demo案例进行烧录以验证SOC 初始化是否成功,图8为Build a Hello World example的Console界面打印信息。注意:板子 SOC 初始化只需进行一次,之后可以放心使用。

pYYBAGGKROKAWAiBAABvcHdfTv4580.jpg

图8 Hello World example在Console界面上的打印信息

第二种,直接通过使用 CCS 脚本初始化 SOC。但是在某些情况下,尤其在用户自定义的EVM 上运行并且闪存驱动的程序不可用于该 EVM 情况时,可采取第二种方法初始化 SOC。

首先需要设置环境变量,添加一个名为 MCU_PLUS_SDK_AM243X_PATH 的新变量并将其指向安装 SDK 的路径

poYBAGGKROSAfpSvAAB4W0ySa1c252.png

将AM243X-LP设置为NOBOOT模式如下。

poYBAGGKROaAcHJGAAG7pc-awiA497.png

给板子上电并在CCS中创建目标配置文件,如下所示。

CCS工具栏中“View 》 Target Configuration”创建一个新的目标配置文件,仿真器是XDS110 USB Debug Probe,板子是AM243x_LAUNCHPAD。

具体参照链接Create Target Configuration

pYYBAGGKROiAPxBnAABNLMQvqiE163.png

需要注意:每次关闭并重新打开 AM243X-LP 电源时,都需要执行以下步骤进行CCS 脚本初始化 SOC。

pYYBAGGKROmAPmZFAACDAW9Qkq0072.png

选择Launch the target configuration并进入Debug模式,在工具栏选择“CCS Toolbar 》 View 》 Scripting Console”。

并键入命令行“loadJSFile “C:/ti/mcu_plus_sdk_{soc}_{sdk version}/tools/ccs_load/am64x_am243x/load_dmsc.js”

”进行SOC初始化,会在 scripting console显示如下:

在 scripting console中,来自脚本自身的日志,如下图所示。

pYYBAGGKROuAUh-8AAB2staW870293.png

在 AM243X “CIO” console中,来自 R5F核的日志,如下图所示。

pYYBAGGKRO2AW9gYAADEix9i8mk014.png

在 AM243X console中,来自 GEL 脚本的日志,如下图所示。

poYBAGGKRO-ASDLjAAE1YKXONeQ032.png

成功配置后,显示上述三个console的日志进而完成SOC的初始化。CCS界面整体显示界面,如下图所示。

pYYBAGGKRPCADzb8AABJ7N2M5QA077.jpg

3.项目的搭建过程

3.1项目说明

以ethercat_slave_beckhoff_ssc_demo 工程为例,详细介绍一下搭建测试的步骤。其中,AM243X-LP有4 个 LED 可用于EtherCAT 主控制器进行控制。 如果TwinCAT设置DC运行模式,则需要两个以上的EtherCAT从站进行Task分配,最小测试周期是50us。因此,本文仅实现上位机对LED灯的开关控制

运行Demo之前可先按照mcu_plus_sdk_am243x_08_00_00_21\examples\kernel\dpl\hello_world\am243x-lp\r5fss0-0_freertos和Build a Hello World example来验证UART和SOC初始化是否成功,如图8所示。

3.2搭建项目的详细步骤

整个项目的实施主要分为三个部分:1.SSC Tool配置文件生成;2.CCS Debug模式;3.TwinCAT上位机设置。

1.SSC Tool配置文件生成

Step1:打开SSC tool,建立新的工程,import选择并打开相应的xml文件(一般由原厂提供的.xml文件)。

Step2:选择TI AM243x/AM64x Sample

Step3:在application的选项卡中,确保 DC_SUPPORTED为1,并在默认路径下保存,并在Project选项卡中选择Create new Slave Files。

上述设置成功后,进行文件的生成如下图所示。

pYYBAGGKRPeAcRQYAADH6PRHlaU591.png

Step4:将所生成的27个文件复制到${SDK_INSTALL_PATH}/source/industrial_protocols/ethercat_slave/beckhoff_stack/stack_source。

2.CCS Debug模式

CCS中导入Demo工程,Build后并进入Debug界面。首先确保可以正常连接上XDSV110,其次进行CPU重置,再次导入.out文件,Resume运行下会在Console界面显示打印信息,进而可以看到板子上LD12和LD14灯亮。这表示AM243X-LP已经处于初始化状态并可以与TwinCAT进行通讯。Console界面显示的打印信息,如下图所示。(如果没有显示,那说明板子第一次在CCS未进行UART配置和SOC初始化不成功。)

3.TwinCAT上位机设置

在TwinCAT新建项目之前需要将.xml文件复制到{TWINCAT_INSTALL_DIR}\TwinCAT\3.1\Config\Io\EtherCAT folder,否则设备扫描I/O时无法扫描EtherCAT从站的信息。

Step1:打开TwinCAT,检查PC是否存在Intel网卡驱动。如果电脑上不是Intel网卡,则需要从倍福官网上安装兼容性EtherCAT驱动。此外,CCS一直在Resume运行下,可观察AM243X-LP板子上LED12(INT)初始化灯是否亮,如亮说明从站已经处于初始化状态。

Step2:打开TwinCAT,打开一个新的工程。并在solution explorer目录下,找到I/O后进行展开,右键Devices,选择扫描。

点击“Yes”,会扫描到boxes并设置自由运行模式,进而会显示所扫描出来的产品信息。

Step3: 双击Box #,并在右侧可看到从站处于OP状态。

Step4: 通过DO Outputs来写入 “0”或者“1” 控制LED灯的亮灭,以及可以在TwinCAT界面上看到信号的波形,如下图所示。

3.3结果输出

控制前后图9和图10进行对比,RJ45旁的四个LED灯(LD12、LD13、LD14和LD15)可为上位机EtherCAT控制。

4.其他说明

1.针对不是Intel网卡的电脑,或者没有RJ45接口的?

可以通过USB网口转换器,并安装好EtherCAT驱动程序。但是它仅能实现对Demo程序的操作,应用受限。建议还是使用Intel网卡,对应的文件及驱动程序在这里给出:Beckhoff Information System - English

2.SSC Tool生成没有相对应选择的器件型号?

建议由原厂提供.xml文件,或卸载SSC Tool重新安装进行文件生成。

3.UART设置和闪存 SOC在建立工程项目前每一次都需要初始化吗?

UART设置和闪存 SOC仅在BOOT MODE设置使用一次,后续就无需再次进行初始化操作。

4.Python安装时所遇到的“pip”问题及解决方法。

当运用第一种方法进行SOC初始化时,出现下图情形可直接转到闪存工具安装错误总结和解决方案。链接:http://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/08_00_00_21/exports/docs/api_guide_am243x/TOOLS_FLASH.html#TOOLS_FLASH_ERROR_MESSAGES。

解决方案:首先,使用 Ctrl-C 终止脚本的运行。 其次,检查 UART 启动模式开关设置是否设置为UART BOOT,检查 EVM/LP 的电源是否连接,关闭 EVM/LP的电源后重启EVM/LP。最后,重试第一种方法进行SOC的初始化。

此外,采取公司内网使用pip安装时会出现error:Could not find a version that satisfies the requirement ,同样可参考闪存工具安装错误总结和解决方案。链接:http://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/08_00_00_21/exports/docs/api_guide_am243x/TOOLS_FLASH.html#TOOLS_FLASH_ERROR_MESSAGES。

5.CCS Debug所遇到的问题及解决方法(情况1)。

pYYBAGGKRQ2AKLvIAAEJ98C4HAk271.png

产生的原因:由于把SSC Tool整个生成的文件夹拷贝到stack_sources目录下所导致的文件路径索引不对,下图可看到路径解析不存在。

pYYBAGGKRQ-Af9doAAB7KsHUjK0152.png

解决方案:1.把所有带有黄色感叹号的文件删除,并逐个添加所生成的文件;2,把文件复制到stack_sources目录下,重新导入项目。

6.TwinCAT所遇到的问题及解决方法(情况2)。

产生的原因:下图中所遇到的情况是由于AM243X-LP没有进行SOC的初始化,以及从站未处于初始化状态。此时,TwinCAT无法与主站进行联系,进而无法扫描到从站的I/O。

poYBAGGKRRCAfVXdAABMYDVrZ1w373.jpg

解决方案:重新初始化板子,并设置OSPI BOOT。

审核编辑:金巧

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式处理
    +关注

    关注

    0

    文章

    341

    浏览量

    9883
  • CCS
    CCS
    +关注

    关注

    8

    文章

    169

    浏览量

    39361
  • GEL
    GEL
    +关注

    关注

    0

    文章

    5

    浏览量

    2933
收藏 人收藏

    评论

    相关推荐

    PLC与伺服完美融合:Profinet转EtherCAT网关配置详解

    在本次案例研究中,客户那边使用西门子S7-1200系列PLC与伺服驱动单元的连接问题。由于系统在正常操作过程中需支持EtherCAT通讯协议,并且该PLC被设定为EtherCAT协议下的从站设备
    发表于 04-09 11:38

    基于全志T507-H的Linux-RT + Igh EtherCAT主站案例分享

    本文将为各位工程师演示全志T507-H工业评估板(TLT507-EVM)基于IgH EtherCAT控制伺服电机方法,生动说明Linux-RT + Igh EtherCAT的强大之处!   同时
    的头像 发表于 03-28 09:35 155次阅读
    基于全志T507-H的Linux-RT + Igh <b class='flag-5'>EtherCAT</b>主站案例分享

    TC234LP使用iLLD Flash Demo每次运行到擦出Dflash就会跑飞的原因?

    TC234LP 使用iLLD Flash Demo 每次运行到擦出Dflash就会跑飞
    发表于 02-02 07:07

    通过Profinet转EtherCAT网关将伺服驱动与Profinet通讯

    下一个”按钮。在找到GSD文件后,可以双击该文件,然后按照提示进行安装操作。 找到Profinet转EtherCAT网关模块进行组态是一个重要的步骤,比如Profinet转EtherCAT网关的IP地址
    发表于 01-16 16:54

    CC-LINKIE转EtherCAT协议具体应用

    CCLINKIE转EtherCAT协议应用是一种将CCLINKIE网络与EtherCAT网络进行连接和数据交换的方法。这种应用主要应用于工业自动化领域,可以实现高速、可靠的数据传输,并支持分布式控制
    发表于 12-17 13:02

    工业通讯中CANOPEN转EtherCAT的转换

    CANOPEN转EtherCAT协议转换网关是一款能够将CANOPEN接口设备连接到EtherCAT网络系统的产品。该网关作为EtherCAT网络的从站,可以将CANOPEN设备集成到
    发表于 12-12 11:31

    TCM2-43X+PINTOPIN替代CH-BTM243A PDF资料

    TCM2-43X+PINTOPIN替代CH-BTM243A PDF资料
    发表于 12-12 10:15

    正运动技术EtherCAT扩展模块接线参考以及使用流程

    ZMC408SCAN举例): 二、EtherCAT扩展模块使用步骤 1. 请按照以上接线说明正确完成电源,EtherCAT总线,IO信号等模块的接线; 2. 控制器上电后请选用ETHERNET接口
    发表于 12-05 09:29

    AM335x开发资料

    am335xam335xam335x是ti(德州仪器)基于
    发表于 10-10 06:53

    COM335X如何修改phy及双网络使用说明

    以 lan8720 为例,说明修改步骤。 lan8720 是 rmii 接口的 10/100m 以太网 phy 芯片,其与 com335x 的硬件连接和设计请参考《am335x 底板设计手册》。以下内容为具体步骤
    发表于 10-09 06:30

    HD74HC243 数据表

    HD74HC243 数据表
    发表于 06-27 20:27 0次下载
    HD74HC<b class='flag-5'>243</b> 数据表

    通过EtherCAT转Profinet网关与西门子PLC1200通信

    本案例是EtherCAT转Profinet网关连接MicroflexE190伺服器的配置案例。用到的设备为西门子1200PLC一台,开疆智能EtherCAT转Profinet网关一个
    发表于 05-31 21:33

    经济型EtherCAT运动控制器:EtherCAT总线快速入门

    相关参数的配置,EtherCAT总线初始化操作,以及初始化成功以后的运动控制。 一、XPLC006E功能简介 XPLC006E是正运动运动控制器推出的一款多轴经济型EtherCAT总线运动控制器
    发表于 05-11 09:49

    HD74HC243 数据表

    HD74HC243 数据表
    发表于 05-09 19:06 0次下载
    HD74HC<b class='flag-5'>243</b> 数据表

    AM62x相比AM335x,到底升级了什么?

    Sitara作为TI处理器经典系列,曾推出众多优秀处理器型号(如AM335x)。因其能在相同价位下,提供比市面上其他厂商处理器更优良的性能,并凭借GPMC高速并口、PRU协处理器等个性化硬件资源
    发表于 05-03 23:37