TI中文支持网
TI专业的中文技术问题搜集分享网站

MCU-PLUS-SDK-AM243X: EtherCAT没有Syn0/1中断,Beckhoff SCC Demo的DC功能,不能实现

Part Number:MCU-PLUS-SDK-AM243X

各位专家好,我在使用Beckhoff SCC Demo时,采用FreeRTOS任务,模拟PDI和Syn0中断,视乎可以实现EtherCAT的DC功能,但感觉DC功能并不真实,1C32/1C33.20的Sync Error,有错误,且DC同步抖动非常大,基本都大于500us。

然后我换成真实的PDI和Syn0中断,发现,在DC同步模式下,PDI中断可以连续出现,而Syn0中断,只出现了一次,就没有再出现了,请问这是怎么回事,如何才能让Syn0中断,连续出现?

另外,在使用DC功能时,我连续监视EtherCAT的0x0910的DC系统时钟,发现此时钟,在刚开始,可以和TwinCAT的PC时钟一致,但在运行10分钟后,会比PC时钟,快20秒左右,时间越长,快的越多,请问这是怎么回事?谢谢。

Cherry Zhou:

您好,您的问题我们升级到英文论坛看下,有答复尽快给到您。

,

li ljch:

好的谢谢,请问链接是什么,谢谢

,

Cherry Zhou:

您好,

链接如下:

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1242272/mcu-plus-sdk-am243x-ethercat-does-not-have-syn0-1-interrupts-and-cannot-implement-the-dc-functionality-of-the-beckhoff-scc-demo

您请看下工程师的答复。

,

li ljch:

好的,谢谢

,

Cherry Zhou:

您好,

那我们会先将该帖关闭,如需任何帮助您可以随时reopen该贴,谢谢!

,

li ljch:

英文贴,我们用户不是TI的邮箱登录,只能看,不能交流

,

li ljch:

另外,我用的SDK版本是8.06.00.45,最新的。我以前参考的就是这个例子教程修改的SCC源码,我今天再次按教程修改,还是一样的情况,syn0中断只有一次。freeRTOS系统的任务方式,根本就不是真实的中断,是任务轮询,根本不能真正同步,DC时钟抖动都是500us以上

1. Which SDK version are you using here? 

2. Have you modified the stack code, or is it as it is after following steps from https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/08_06_00_43/exports/docs/api_guide_am243x/EXAMPLES_INDUSTRIAL_COMMS_ETHERCAT_SLAVE_BECKHOFF_SSC_DEMO.html#autotoc_md1248 ?

,

li ljch:

PRUICSS_waitEvent((PRUICSS_Handle)arg, evtOutNum);这个函数获取的事件信号,也是虚假的,直接返回一个成功信号,跟Syn0中断,毫无关系

,

li ljch:

ESC_SYSTEMTIME_OFFSET,0x0910,这个系统时间,在开启DC功能后,时钟1个小时,快16分钟。不知DC功能无法正常使用,是否和这部分时钟有关?请专家们帮忙看看,谢谢

,

li ljch:

你好,请问专家们有方案回复吗

,

Annie Liu:

暂时还未回复,我再帮您催一下哦。

,

li ljch:

好的,辛苦,谢谢

,

li ljch:

你好,请问有回复解决方案吗

,

Cherry Zhou:

您好,我们的工程师使用如下配置进行了测试,并没有发现任何问题。您指的真实的sync 0 interrupt是什么?

1. Followed the steps mentioned here: AM243x MCU+ SDK: EtherCAT SubDevice Setup with TwinCAT (ti.com)

2. Enabled sync 0 and Sync 1

3. We could see sync0 ISR hitting everytime and sync pulse is also being generated (SYNC0 and SYNC1)

You see the results below:

,

li ljch:

我现在使用的是去年的样片,XAM2434ASFGGAALX,你们测试平台,是什么型号的芯片?会不会和这个有关系?

,

Cherry Zhou:

我们确认下看看。

,

Cherry Zhou:

li ljch said:我现在使用的是去年的样片,XAM2434ASFGGAALX,你们测试平台,是什么型号的芯片?会不会和这个有关系?

工程师正在使用 E3版本的 AM243-LP。 它具有 F 器件型号。 应该与型号无关。

能否分型下您正在使用的示例项目?

,

li ljch:

我如何给你们呢,有邮箱吗

,

Cherry Zhou:

是否可以直接贴在论坛回复中?如果内容较多您可以整理成文档插入到回复中(建议您可以直接整理为英文版本,这样更加方便工程师帮助您debug)。

,

li ljch:

工程文件比较多,贴在论坛会很乱。你看能否给个邮箱,或者能否把你们针对AM243-LP开发板的测试样例工程给我一份,谢谢。ljchli@126.com

,

Cherry Zhou:

您好,

工程师无法共享示例工程,因为需要生成 Beckoff ETG 堆栈。 如果您这边有Beckoff ETG 堆栈,那么可以直接遵循以下的指南https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/latest/exports/docs/api_guide_am243x/EXAMPLES_INDUSTRIAL_COMMS_ETHERCAT_SLAVE_BECKHOFF_SSC_DEMO.html

来构建项目。 工程师就是这样做的。

,

li ljch:

这个芯片把人快搞疯了,参考步骤有问题,bspInitParams->enhancedlink_enable to TIESC_MDIO_RX_LINK_DISABLE,这个要这样才行:bspInitParams->enhancedlink_enable to TIESC_MDIO_RX_LINK_ENABLE.

另外,我在OSPI引导模式下测试,每次测试后退出,再按正常调试就进不去了,必须要重新烧写bootloader才行。最后使用load_dmsc.js方式,进去发现OSPI-Flash的0x60000000位置,全变成了"E",请问是什么原因???

MAIN_Cortex_R5_0_0: GEL Output: CPU reset (soft reset) has been issued through GEL.MAIN_Cortex_R5_0_0: Trouble Writing Memory Block at 0x0 on Page 0 of Length 0x40: (Error -1065 @ 0x40) Unable to access device memory. Verify that the memory address is in valid memory. If error persists, confirm configuration, power-cycle board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.10.0.00080) MAIN_Cortex_R5_0_0: File Loader: Verification failed: Target failed to write 0x00000000MAIN_Cortex_R5_0_0: GEL: File: ****.out: Load failed.

正常的情况应该是有Boot数据的,应是这个样子:

补充:这个现象,是对于AM243-LP E2板子,使用XAM2434ASFGG才有。

,

li ljch:

最新测试发现,对于新发布的AM2432BSEFHIALXR芯片,要设置成bspInitParams->enhancedlink_enable=TIESC_MDIO_RX_LINK_DISABLE,不能定义MDIO_MANUAL_MODE_ENABLED;而对于AM243-LP E2,必须要设置成bspInitParams->enhancedlink_enable=TIESC_MDIO_RX_LINK_ENABLE,必须定义MDIO_MANUAL_MODE_ENABLED,不知是什么原因?

,

Cherry Zhou:

工程师正在查看中,应该会在下周给到您相关答复。

之前的解答是否对抖动有所改善?

,

Cherry Zhou:

li ljch said:另外,我在OSPI引导模式下测试,每次测试后退出,再按正常调试就进不去了,必须要重新烧写bootloader才行。最后使用load_dmsc.js方式,进去发现OSPI-Flash的0x60000000位置,全变成了"E",请问是什么原因???

能否分享下相关的测试设置信息,可以让我们具体了解您在使用什么或者想要使用什么?

,

li ljch:

抖动变得比较正常了,大部分都在100us以内,还有比较多在100us以上,改动任务周期到20ms,也是,不知道是啥问题,还需要继续看看。谢谢

,

li ljch:

li ljch 说:
另外,我在OSPI引导模式下测试,每次测试后退出,再按正常调试就进不去了,必须要重新烧写bootloader才行。最后使用load_dmsc.js方式,进去发现OSPI-Flash的0x60000000位置,全变成了"E",请问是什么原因???

能否分享下相关的测试设置信息,可以让我们具体了解您在使用什么或者想要使用什么?

这个问题出现在AM243x-LP E2开发板,使用的是XAM2434ASFGG样片,测试时,我先烧录了sbl_ospi.release.tiimage,然后在QSPI启动模式下调试程序,就出现了这个问题,在使用新发布的AM2432BSEFHIALXR芯片开发的自己PCB上,按指南https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/latest/exports/docs/api_guide_am243x/EXAMPLES_INDUSTRIAL_COMMS_ETHERCAT_SLAVE_BECKHOFF_SSC_DEMO.html,是正常的。

不知道是否是,最新发布的芯片,与过去的样片设计变化太大?或是其他什么原因?

,

Cherry Zhou:

我们确认下看看。

,

Cherry Zhou:

li ljch said:最后使用load_dmsc.js方式,进去发现OSPI-Flash的0x60000000位置,全变成了"E",请问是什么原因???

load_dmsc 并不负责 OSPI 或闪存的初始化。 通过 JTAG 加载的应用程序(如果需要闪存)需要执行初始化。

您可以尝试加载 ospi_flash_dma 或 ospi_flash_io 示例。如果这些示例测试失败,那么我们可以帮助您调试设置中的错误,否则需要合理使用上面提到的流程。 

,

li ljch:

好的,谢谢

赞(0)
未经允许不得转载:TI中文支持网 » MCU-PLUS-SDK-AM243X: EtherCAT没有Syn0/1中断,Beckhoff SCC Demo的DC功能,不能实现
分享到: 更多 (0)