【EtherCAT从站开发】 STM32F446+LAN9252+FreeRTOS,CiA402

项目场景:

纯新手
EtherCAT从站开发 STM32F446+LAN9252+FreeRTOS,CiA402


问题描述

有参考例程是F405的,移植到F446,无法进入OP状态,主站报错误码0x0001、0x0002等等

原因分析:

例程里EtherCAT部分基本可以不动,代码太多了全看完也很费时间,只需要改一点配置就行,报错的主要原因:
1、SPI以及外部中断的配置及对应引脚配置不对;
2、时钟配置不对;
3、堆栈大小不够。

解决方案:

我发现原因的方法比较笨,是试出来的,实在没办法了可以一试:
直接用例程的程序烧写到F446里,只改了我的引脚配置,结果是可以进入OP状态;
接下来改stm32的.c文件,换成最新版,发现_rcc.c不能改,说明我之前的程序里时钟配置可能不对,单独把这个文件改回来;
然后尝试把device里的器件换成F446,可以进入OP状态;
在C/C++里把预定义改为F446xx的,可以进入OP状态;
更改启动文件,报错误码0x0002-no memory,说明启动文件有问题,对比发现堆栈大小设置差别很大,把F446的启动文件堆栈改大,可以进入OP状态;
回到我原本报错的程序,把堆栈改了就全好了!!!

回到原话题,报错之后主要检查三个地方:
1、仔细检查SPI以及外部中断的配置及对应引脚配置,看有没有没改全的地方;
2、时钟配置,找不到问题所在就找一个例程看看里面怎么配置的,复制过来,我用了HAL库所以直接用STMCubeX配置好了,不容易出错;
3、在启动文件里把堆栈大小改大,我之前的EtherCAT普通IO通信是可以的,换成CiA402就小了。

#题外话
第一次发,打了两遍,前面不知道咋回事系统给我删了,很细的东西不想打了,这些我记录一下,也希望对大家有帮助。下次可以交流一下XML文件和用EtherCAT做电机驱动程序。

STM32是一种微控制器系列,具有广泛的应用领域。EtherCATEthernet for Control Automation Technology)是一种常用于工业自动化领域的实时以太网通信协议。STM32 EtherCAT开发是指在STM32平台上实现EtherCAT通信协议的从功能开发STM32 EtherCAT开发的主要步骤包括接口硬件设计、EtherCAT协议栈集成、从配置和应用程序开发等。 首先,要根据具体的硬件需求设计EtherCAT接口电路。通常包括PHY芯片、串行EEPROM以及与STM32之间的连接电路等。具体的电路设计需要参考EtherCAT硬件规范和硬件参考设计。 其次,需要将EtherCAT协议栈集成到STM32开发环境中。EtherCAT协议栈是一种通信协议软件,主要负责处理EtherCAT通信的各种功能和协议规范。常用的EtherCAT协议栈包括开源的SOEM和商业版的EtherCAT Master Stack等。在集成EtherCAT协议栈时,需要根据具体的硬件平台和开发环境进行配置和编译等操作。 然后,进行从配置。从配置是指设置从的各种参数和功能,如从的ID、PDO配置、对象字典定义等。这些配置通常通过EtherCAT配置工具进行操作,如ESI文件编辑器和EtherCAT配置工具等。通过配置工具,可以生成从的配置文件,并将其下载到从中。 最后,进行应用程序开发。在应用程序开发中,需要根据具体的应用需求,编写相应的代码实现从的各种功能。例如,处理PDO数据、接收和解析主发来的命令、数据处理和控制等。在开发过程中,可以参考EtherCAT应用手册和样例代码,以及相关的开发工具和调试工具进行验证和调试。 总体而言,STM32 EtherCAT开发需要对硬件、协议栈和应用程序进行综合的设计和开发,确保从能够正确地与主进行通信,并实现所需的功能和性能。这需要具备一定的硬件设计和软件开发经验,以及对EtherCAT通信协议的理解和掌握。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值