十四.EtherCAT开发之ST MCU STM32F407ZGt6+ AX58100的开发FOE应用
STM32F407ZGt6与AX58100是 SPI连接,工作在SPI模式。
FoE(File Access over EtherCAT)可实现EtherCAT节点之间的文件传输。
14.1 SSC TOOL配置
boot mode与FOE支持
FOE 说是要在状态机的boot mode下运行,实际测试了在OP模式也能收数据。可能是为了稳定,减少出错把,毕竟是升级固件。
14.1.1 XML支持字段
XML名称—AX58100-UC16-R1.xml
14.1.2 从站STM32F407ZGt6+AX58100参考代码
D:\ethercat_stm32_ec01_master\AX58100从站开发板\04.软件开发指南\2.代码例程\EtherCAT例程\IO-FSMC-58100\IO-FMSC-58100\FMSC Ethercat AX58100\STM32F407 Ethercat\MDK-ARM
14.2 FOE调试问题
14.2.1 FOE问题–twincat foe download 灰色无法执行
TIWNCAT XML 未配置支持FOE以及bootstarp,注意更新XML 后,从机EEPROM要同步更新,否则从机不支持FOE,即使协议栈支持FOE,也收不到FOE数据包
原来是XML未配置支持FOE导致。
14.2.2 ECM为主,从机AX58100,boot状态下FOE数据包无法收到
协议栈代码运行未出现异常错误打印。
ecm主 对58100从,mb 4数据包未收到,无法进入foe流程
XML未配置支持FOE 以及bootstrarp,导致58100 EEPROM 生成字段不支持FOE,从站芯片BOOT下不接收FOE数据包。
XML配置支持FOE以及bootstarp即可。
14.2.3 twincat为主,从机AX58100,boot状态下收到MBXERR_UNSUPPORTEDPROTOCOL
AL_ControlInd stateTrans=0x81
AL_ControlInd result=0 stateTrans=0x81
AL_ControlInd stateTrans=0x13
AL_ControlInd result=0 stateTrans=0x13
INIT_2_BOOT
Entered Bootstrap mode
从机进入BOOT
AL_ControlInd 1462
AL_ControlInd 1472
Entered Bootstrap mode
MailboxServiceInd MBXERR_UNSUPPORTEDPROTOCOL MBX_TYPE=8
MailboxServiceInd MBXERR_UNSUPPORTEDPROTOCOL MBX_TYPE=8
MailboxServiceInd MBXERR_UNSUPPORTEDPROTOCOL MBX_TYPE=8
MailboxServiceInd MBXERR_UNSUPPORTEDPROTOCOL MBX_TYPE=8
MailboxServiceInd MBXERR_UNSUPPORTEDPROTOCOL MBX_TYPE=8
MailboxServiceInd MBXERR_UNSUPPORTEDPROTOCOL MBX_TYPE=8
相关代码如下
UINT8 MailboxServiceInd(TMBX MBXMEM *pMbx)
{
UINT8 result;
/*only FoE is allowed in Boot mode*/
if(bBootMode == TRUE && (MBX_TYPE_FOE != ((pMbx->MbxHeader.Flags[MBX_OFFS_TYPE] & MBX_MASK_TYPE) >> MBX_SHIFT_TYPE )))
{
printf("%s MBXERR_UNSUPPORTEDPROTOCOL MBX_TYPE=%d\r\n",__func__,((pMbx->MbxHeader.Flags[MBX_OFFS_TYPE] & MBX_MASK_TYPE) >> MBX_SHIFT_TYPE ));
return MBXERR_UNSUPPORTEDPROTOCOL;
}
printf("%s %d\r\n",__func__,__LINE__);
还未找到原因,可能是SSC TOOL版本太老生成的协议栈代码,在此基础上参考新版本SSC TOOL生成的支持FOE代码,两个不同版本SSC TOOL 平移相关FOE代码异常导致。