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:
好的,谢谢