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

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

3天内不再提示

基于AM243X-LP与EtherCAT的Demo操作说明

星星科技指导员 来源:TI 作者:TI 2023-03-17 10:30 次阅读

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所示。

pYYBAGQT0H2AE-TMAADt9DP7zZQ266.png

图1 AM243X-LP的板子及连接示意图

图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-LP原理图,如图3所示。

pYYBAGQT1uqAZV26AAF40GMHTvg091.png

图2 OSPI BOOT MODE

poYBAGQT0H-AGoUqAADaqt4t7HY422.png

图3 AM243X-LP原理图

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

pYYBAGQT0ICAVjCyAAAdjc5Kl10184.jpg

图4 正常上电的AM243X-LP

2.2环境配置与所需软件

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

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

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

安装的软件 描述
CCS 10.3.1 用于程序烧录、调试与通讯
SysConfig 1.8.1 makefiles操作需要,如若CCS则无需安装
TI CLANG compiler toolchain 1.3.0.LTS ARM 编译器
Python 3.x. 设置UART 和BOOT MODE
{SDK_INSTALL_PATH}/SDK SDK /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所示。

poYBAGQT1viABdVFAAGRXtoFBuw396.png

图5 UART BOOT MODE

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

pYYBAGQT0IyAKcGgAAAacYDjgZw106.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是否安装成功。

poYBAGQT1xaAJeWnAAArowhS0vc481.png

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

pYYBAGQT1x2AHdDMAABWoEb5SNA371.png

C:Users{your username}AppDataLocalProgramsPythonPython39。此为Python 3.9.6安装的默认路径。

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

pYYBAGQT0JeAYFLuAADRWIbWljI285.png

poYBAGQT0JmAYrP8AACkO86PFws387.png

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

pYYBAGQT0JqAb_BgAAAJ7yDg9ms582.jpg

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

poYBAGQT0JuAKId4AAAj1um8i_A589.jpg

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

poYBAGQT0JyAP9qvAABAgcSfRZg110.jpg

poYBAGQT0J2AcjYmAAA9pP48m-k285.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所示。

pYYBAGQT0J6AP_QxAAGhfU32HsM132.png

图6 OSPI BOOT MODE

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

poYBAGQT0KCAYx3vAABm4gMl1UA687.png

图7 Console界面打印信息

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

pYYBAGQT0KGARgmbAABvcHdfTv4067.jpg

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

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

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

pYYBAGQT0KKATcmfAAB4W0ySa1c575.png

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

poYBAGQT0KOAEvrzAAG7pc-awiA078.png

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

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

具体参照链接Create Target Configuration

pYYBAGQT0KSAenMMAABNLMQvqiE880.png

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

pYYBAGQT0KaAGEDcAACDAW9Qkq0641.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中,来自脚本自身的日志,如下图所示。

pYYBAGQT0KeALeYnAAB2staW870488.png

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

poYBAGQT0KiAI4ujAADEix9i8mk337.png

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

pYYBAGQT0KmASzXsAAE1YKXONeQ131.png

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

pYYBAGQT0KmAWrtRAABJ7N2M5QA950.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_21exampleskerneldplhello_worldam243x-lpr5fss0-0_freertosBuild 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文件)。

pYYBAGQT0KqAWAZbAABR54oioDY879.png

Step2:选择TI AM243x/AM64x Sample

pYYBAGQT0KuAfj_0AABzuFHdGRg326.png

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

poYBAGQT0KyAJtk0AACMVMGCjoQ334.png

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

pYYBAGQT0K2ALadOAADH6PRHlaU131.png

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

poYBAGQT0K2AW0XwAAB6pVrT-8g949.png

2.CCS Debug模式

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

pYYBAGQT0K6ALGQwAAAzMKWVotI954.jpg

3.TwinCAT上位机设置

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

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

poYBAGQT0K-AU4JjAAAwXALIN-g305.jpg

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

pYYBAGQT0K-AMULCAAAfTzZtWn4603.jpg

poYBAGQT0LCAWf8QAAAsw6QbvYY849.png

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

poYBAGQT0LGAI1UKAAAyupwKJO8365.png

pYYBAGQT0LGAYbJyAAAy9Q7tGOU722.png

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

pYYBAGQT0LKATjrqAAByvVhTaS8722.png

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

poYBAGQT0LOAU7RtAAAwisK9TmU189.jpg

3.3结果输出

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

pYYBAGQT1z6AR1vwAAHBT-j7aM0922.png

图9 TwinCAT控制前LED灯的状态显示

poYBAGQT0LWAXBp9AAGELroPg-4990.png

图10 TwinCAT控制后四个LED灯全亮的状态显示

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初始化时,出现下图情形可直接转到闪存工具安装错误总结和解决方案。

pYYBAGQT0LaAGE-GAADHNDn0NPA239.png

解决方案:首先,使用 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)。

poYBAGQT0LeACzsWAAEJ98C4HAk285.png

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

poYBAGQT0LeAAvP1AAB7KsHUjK0186.png

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

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

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

pYYBAGQT0LiAemQPAABMYDVrZ1w917.jpg

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

审核编辑:郭婷

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

    关注

    48

    文章

    7551

    浏览量

    151392
  • 芯片
    +关注

    关注

    455

    文章

    50785

    浏览量

    423457
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17143

    浏览量

    351112
收藏 人收藏

    评论

    相关推荐

    AM243x-LP快速上手手册

    的boot环节,以及多核调试带来的挑战,本文以AM243x-LP评估板为例,对AM243x的booting相关内容进行了初步的介绍…
    发表于 11-04 08:04

    PC如何与AM243X-LP进行EtherCAT通讯

    帮助系统集成商在其工业设计中达到IEC 61508标准的安全完整性等级SIL 3(Safety Integrity Level, SIL)要求。总之,AM243X芯片最大优势在于强大的处理能力、实时控制和工业物联、以及支持多协议应用(如EtherNet/IP、EtherCAT
    发表于 11-04 07:30

    使用 LP8733xx 和 TPS65218xx PMIC 为 AM64xAM243x Sitara 处理器供电

    摘要本应用手册讨论了为 AM64xAM243x Sitara™ 处理器系列供电的 LP8733xx 的两种型号和 TPS65218xx 电源管理 IC (PMIC) 的两种型号。该报告着重介绍
    发表于 04-14 16:40

    AM243x/AM64x 单芯片伺服电机控制实现和基准测试

    AM243x/AM64x 单芯片伺服驱动器演示表明,AM243x/AM64x 器件可支持完全集成式实时伺服驱动器控制和通信路径。该路径可通过以下方式进行扩展:从接收用于扭矩/转速/位
    发表于 04-14 16:42

    AM243X-LPEtherCATDemo操作说明

    系统集成商在其工业设计中达到IEC 61508标准的安全完整性等级SIL 3(Safety Integrity Level, SIL)要求。总之,AM243X芯片最大优势在于强大的处理能力、实时控制和工业物联、以及支持多协议应用(如EtherNet/IP、EtherCAT
    的头像 发表于 01-12 13:53 2337次阅读
    <b class='flag-5'>AM243X-LP</b>与<b class='flag-5'>EtherCAT</b>的<b class='flag-5'>Demo</b><b class='flag-5'>操作</b><b class='flag-5'>说明</b>

    AM243x-LP快速上手—Booting SBL和板载OSPI Flash烧录

    。 在这类多核异构MCU / CPU产品开发中,由于芯片在电源轨上的复杂性以及外设的丰富程度,不可避免的会接触到系统复杂的boot环节,以及多核调试带来的挑战,本文以AM243x-LP评估板为例,对AM243x的booting相关内容进行了初步的介绍…
    的头像 发表于 02-15 13:36 5053次阅读
    <b class='flag-5'>AM243x-LP</b>快速上手—Booting SBL和板载OSPI Flash烧录

    AM64x/AM243x多协议Demo项目搭建

    AM64x/AM243x多协议Demo,其中AM64x A53核上跑Linux系统并运行Codesys runtime system,可以用来当作Codesys主站(可以理解为软PLC
    的头像 发表于 07-01 11:36 2321次阅读
    <b class='flag-5'>AM64x</b>/<b class='flag-5'>AM243x</b>多协议<b class='flag-5'>Demo</b>项目搭建

    一文详解AM64x/AM243x多协议Demo搭建

    AM64x/AM243x多协议Demo,其中AM64x A53核上跑Linux系统并运行Codesys runtime system,可以用来当作Codesys主站(可以理解为软PLC
    的头像 发表于 07-11 16:09 4134次阅读
    一文详解<b class='flag-5'>AM64x</b>/<b class='flag-5'>AM243x</b>多协议<b class='flag-5'>Demo</b>搭建

    AM64x/AM243x多协议Demo搭建与详解

    AM64x/AM243x多协议Demo搭建与详解
    发表于 10-28 11:59 2次下载
    <b class='flag-5'>AM64x</b>/<b class='flag-5'>AM243x</b>多协议<b class='flag-5'>Demo</b>搭建与详解

    AM243x-LP 快速上手 --- Booting SBL 和板载 OSPI Flash 烧录

    AM243x-LP 快速上手 --- Booting SBL 和板载 OSPI Flash 烧录
    发表于 10-28 11:59 3次下载
    <b class='flag-5'>AM243x-LP</b> 快速上手 --- Booting SBL 和板载 OSPI Flash 烧录

    基于AM243X-LPEtherCATDemo操作说明

    基于AM243X-LPEtherCATDemo操作说明
    发表于 10-28 12:00 0次下载
    基于<b class='flag-5'>AM243X-LP</b>与<b class='flag-5'>EtherCAT</b>的<b class='flag-5'>Demo</b><b class='flag-5'>操作</b><b class='flag-5'>说明</b>

    AM64x/AM243x多协议Demo搭建与详解

    / Profinet IRT,EtherNet/IP,EtherCAT和IO-Link。本文档详细介绍了AM64x/AM243x多协议演示,其中Linux系统和Codesys运行时系统运行在
    的头像 发表于 03-16 10:32 2885次阅读
    <b class='flag-5'>AM64x</b>/<b class='flag-5'>AM243x</b>多协议<b class='flag-5'>Demo</b>搭建与详解

    AM64x/AM243x延长开机时间应用说明

    电子发烧友网站提供《AM64x/AM243x延长开机时间应用说明.pdf》资料免费下载
    发表于 09-11 09:18 0次下载
    <b class='flag-5'>AM64x</b>/<b class='flag-5'>AM243x</b>延长开机时间应用<b class='flag-5'>说明</b>

    使用LP8733xx和 TPS65218xx PMIC为AM64xAM243x Sitara处理器供电应用说明

    电子发烧友网站提供《使用LP8733xx和 TPS65218xx PMIC为AM64xAM243x Sitara处理器供电应用说明.pdf》资料免费下载
    发表于 09-12 09:19 0次下载
    使用<b class='flag-5'>LP</b>8733xx和 TPS65218xx PMIC为<b class='flag-5'>AM64x</b>和<b class='flag-5'>AM243x</b> Sitara处理器供电应用<b class='flag-5'>说明</b>

    AM64x/AM243x评估模块

    电子发烧友网站提供《AM64x/AM243x评估模块.pdf》资料免费下载
    发表于 11-14 14:13 0次下载
    <b class='flag-5'>AM64x</b>/<b class='flag-5'>AM243x</b>评估模块