EtherCAT 从站&ESC AX58100

所用软件&硬件
Nucleo-F446ZE;AX58100 ;STM32CubeMX;STM32CubeIDE;SSC5.11;Twin CAT3
1.SSC设置&文件生成
【注意】:默认情况下SSC工具会有隐藏条目,如:ESC_CONFIG_DATA;可按照以下操作将其显示出来,以便进行必要的编辑。【Tool】->【Options】->【Editor】->【Show advanced setting】。
》打开SSC tool,【File】->【New】选择Default选项,下图1。

SlaveInformation部分:从站的自身属性信息,根据需要设置。
Generic部分:如下图2所示。

EL9800_HW置1(在生成的此文件基础上进行修改,适配stm32f4); CONTROLLER_32BIT置1(32位MCU); ESC_16BIT_ACCESS置1; ESC_EEPROM_SIZE填写EEPROM的字节容量; ESC_CONFIG_DATA是配置ESC的重要属性值,写在EEPROM的开始地址空间内;将【050E03440A0000000000】默认值改为【050E03CC640000000000】;第4字节 44->CC,将SYNC0和SYNC1添加映射到PDI IRQ上;第5字节 0A->64,调整SYNC0/1信号的脉冲宽度调整到1us;此条目值的各字节功能/含义详见AX58100数据手册。 其他条目配置见下图3。

EtherCAT State Machine设置见下图。

AL_EVENT_ENABLE置1:与PDI_IRQ相关。 SC_SUPPORT置1:与DC功能SYNC0/1相关。 ECAT_TIMER_INT置1:决定着从站使用1ms定时器中断为刷新;若为0,则使用非中断查询计数值的方式来实现。 其他参数属性值保持默认。
Application设置见图5,其中APPLICATION_FILE留空,当导入对象excel表格后,此内容自动补全。

Mailbox按需设置,可默认,如需EOE,FOE可自行设置。
》对象填写、导入和生成SSC程序
首次创建SSC,无excel文件,通过下图6所示,创建新表格,excel会自动打开。

此例中,在0x6nnx和0x7nnx中添加PD对象,如下图。注意16bit对齐,M列属性正确填写等,通常情况错误会在导入后的检查中标红以提示。

首次创建excel并关闭后会自动导入SSC工具;如之后对excel表格做了额外修改,按图6所示使用import功能导入excel表格,使所设置OD对象生效;之后使用下图8所示的功能到处从站堆栈程序。此时在存放该SSC工程的路径中有一【Src】文件夹,图9,其存放从站SSC程序文件,这些文件会添加到STM工程中,以实现完整从站功能。


2. MCU配置【STM32】
》使用STM32CubeMX配置外设,与ESC能正常工作密切相关的配置
SPI接口:使用SPI3,软件控制CS信号,非中断模式。PC10,PC11,PC12,PA15(CS)


1ms定时器:启用自动重装载功能

增加三个GPIO,EXIT模式,连接AX58100 ESC的PDI_IRQ,SYNC0,SYNC1外部中断信号。

》其他功能与,用户测试用的外设/接口相关设置
LED(3个);Button(1个);ADC(1个通道);DAC(1个通道);SWD(debug);时钟配置。
3. 生成的SSC程序与STM32适配
新建STM32Cube IDE工程,基于STM32CubeMX自动生成。
添加SSC生成的程序,初次编译会报错误,主要集中在el9800hw.c中,为此添加ssc_bsp.c/h文件,提供el9800hw.c/h所需函数或宏定义。

运行情况:ESM进入OP正常;input mapping(PD)接收正常(绿色);output mapping(PD)发送控制正常。


👆👆👆👆👆👆