Ecat从站SSC代码与GD32H75E接口的适配注意事项

关于Ecat的代码,SSC TOOL的官方文件写的很好,详细讲解了Ecat的原理,代码架构,处理流程,CIA402的格式等,非常值得从头到尾看一遍学习。文件名是AN_ET9300_V1i10.pdf。(因为不确定是否需要版权才能使用,所以文档就不附上了)。

这里仅分析SSC TOOL生成的代码与用户自定义代码之间的交互部分,方便移植时弄清楚接口。

其中SSC为官方生产的代码,USER为用户适配SSC所做的接口。

这里以GD32H75E为例,代码可以在官网下载到。

在接口中,重点实现4个中断:

1、每1ms的周期处理Ecat状态的中断

复制代码
/*!
    \brief      Timer 2 ISR (1ms) - Handles timer-based tasks for EtherCAT
    \param[in]  none
    \param[out] none
    \retval     none
*/
void TimerIsr(void)
{
    if(timer_interrupt_flag_get(TIMER2, TIMER_INT_FLAG_UP) != RESET) {
        ECAT_CheckTimer();
        ECAT_TIMER_ACK_INT;
    }
}

2、Ecat的中断,这是由AL_EVENT的8种类型中断触发的。在GD32H75E中,Ecat模块的IRQ引脚接到的PJ10上,因此是一个外部中断。

复制代码
/*!
    \brief      interrupt service routine for the PDI interrupt from the EtherCAT Slave Controller
    \param[in]  none
    \param[out] none
    \retval     none
*/
void EcatIsr(void)
{
    if(exti_interrupt_flag_get(EXTI_10) != RESET) {
        PDI_Isr();
        ACK_ESC_INT;
    }

    /* interrupts from SYNC0 */
    if(exti_interrupt_flag_get(EXTI_13) != RESET) {
        Sync0_Isr();
        ACK_SYNC0_INT;
    }
}

3、SYNC0同步信号0中断,这是使能了DC模式后才会有的。同样是外部中断输入。

复制代码
void Sync0Isr(void)
{

}

4、SYNC1的同步信号1中断,这是使能了DC模式后才会有的。同样是外部中断输入。

复制代码
/*!
    \brief      interrupt service routine for the interrupts from SYNC1
    \param[in]  none
    \param[out] none
    \retval     none
*/
void Sync1Isr(void)
{
    if(exti_interrupt_flag_get(EXTI_3) != RESET) {
        Sync1_Isr();
        ACK_SYNC1_INT;
    }
}

其余为SSC规定的用户需要实现的接口,这在AN_ET9300_V1i10.pdf都有介绍。

这里补充说明下,GD32H75E的ESC采用核封的方式,挂在OPSI1上面,也就是说获取ESC的数据要通过OSPI1读写操作,因此在代码实现上与其他挂在总线上的方案不同。

更多知识分享:

b站,知乎同名:沧海一条狗

咸鱼ID:tb764914262

相关推荐
LCG米6 小时前
STM32串口接收卡死根因排查:ORE溢出标志陷阱、错误标志清除顺序与中断恢复实测
stm32·单片机·嵌入式硬件·串口·嵌入式
创界工坊工作室8 小时前
38-基于单片机的老人健康监测系统
单片机·嵌入式硬件·51单片机·proteus
三佛科技-1341638421210 小时前
20W~200W副边反馈SSR隔离方案HN1562+碳化硅MOS(含光耦817,431)
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
恒锐丰科技林技术员11 小时前
EG2103 高压 MOS/IGBT 驱动芯片解析:半桥驱动的高性价比之选
经验分享·嵌入式硬件·硬件工程
_Ningye13 小时前
STM32 — 11.5 硬件SPI读写W25Q64
stm32·单片机·嵌入式硬件
inrichtt14 小时前
第九课时:STM32 SPI实战:按键消抖与FLASH断电保护
stm32·单片机·嵌入式硬件
优信电子14 小时前
STM32 驱动 SHT35 温湿度传感器:从 I²C 通信到 CRC 校验的完整实战
单片机·嵌入式
尼喃16 小时前
两节两串锂电池保护板原理图+充电电路二合一电路图
嵌入式硬件
深圳市恒锐丰科技杨生16 小时前
SS6208L 12V 集成 MOS 半桥功率芯片|LeadPower 率能半导体
嵌入式硬件·硬件工程
女神下凡17 小时前
芯参谋(61):PMSM永磁同步电机驱动电路设计指南
arm开发·单片机·嵌入式硬件·硬件工程·设计规范