2026-9-19 15:45 LAN9252 连接STM32的中断引脚是哪个以及与ET1100区别
当 ESC 的 AL Event Request 寄存器(
0x0220)中有任何一位被置起,且对应的 AL Event Mask 位已使能时,ESC 会通过 IRQ 引脚向 MCU 发出 PDI 中断信号。MCU 的中断入口函数(如
EcatIsr())会调用 SSC 协议栈提供的 PDI_Isr()。| 中断类型 | 触发源 | 优先级要求 | 核心职责 |
|---|---|---|---|
| PDI 中断 | ESC 的 AL Event | 最高 | 处理邮箱通信、SM 事件、状态机切换 |
| SYNC0 中断 | DC 同步信号 | 次高 | 过程数据同步执行、控制算法触发 |
| SYNC1 中断 | DC 同步信号 | 次高 | 可选的次级同步任务 |
| 1ms Timer 中断 | MCU 内部定时器 | 最低 | 看门狗检查、LED 状态更新 |
LAN9252 连接STM32的中断引脚是哪个?


LAN9252 连接 STM32 的中断引脚是 IRQ#(部分文档也写作 INT# 或 INT_N),它对应 LAN9252 芯片的 Pin 31(64引脚QFN/TQFP封装)。
🔌 核心引脚说明
表格
| LAN9252 引脚 | 引脚编号 | 方向 | 功能说明 |
|---|---|---|---|
| IRQ# / INT# | Pin 31 | 输出 | 主机中断请求,低电平有效,通知 STM32 处理 EtherCAT 事件(SM/PDO/AL状态变化等) |
| SYNC0 | Pin 33 | 输出 | DC 分布式时钟同步脉冲 0,用于精确同步控制 |
| SYNC1 | Pin 34 | 输出 | DC 分布式时钟同步脉冲 1(可选) |
💡 硬件连接与配置要点
1. 引脚映射(示例)
IRQ# 可以连接到 STM32 的任意 EXTI 引脚,常见方案如下:
表格
| 方案 | LAN9252 | STM32 | 说明 |
|---|---|---|---|
| 方案 A | IRQ# (Pin 31) | PA0 (EXTI0) | 常用,中断优先级高 |
| 方案 B | IRQ# (Pin 31) | PB0 (EXTI0) | 根据 PCB 布线灵活选择 |
| 方案 C | IRQ# (Pin 31) | PA3 (EXTI3) | 避开其他外设占用的引脚 |
如果启用了 DC 同步模式,还需要将 SYNC0 和 SYNC1 也连接到 STM32 的定时器 ETR 输入引脚(如 TIM1_ETR / TIM2_ETR),用于触发精确的同步中断。
2. STM32CubeMX 配置
- GPIO 模式:配置为外部中断模式(
GPIO_EXTI) - 触发方式:下降沿触发(Falling Edge),因为 IRQ# 是低电平有效
- 上拉/下拉:建议上拉(Pull-up),确保空闲状态为高电平
- 中断优先级:IRQ# 的中断优先级应设为最高(如 NVIC 优先级 0),保证 EtherCAT 通信的实时性;SYNC0 中断次之
3. 中断服务函数框架
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if (GPIO_Pin == LAN9252_IRQ_Pin) { // 处理 EtherCAT 事件(SM/PDO/AL 状态变化) PDI_Isr(); return; } if (GPIO_Pin == LAN9252_SYNC0_Pin) { // DC 同步中断,执行控制算法 DISABLE_ESC_INT(); // 关中断,防止嵌套 Sync0_Isr(); ENABLE_ESC_INT(); // 开中断 return; } if (GPIO_Pin == LAN9252_SYNC1_Pin) { DISABLE_ESC_INT(); Sync1_Isr(); ENABLE_ESC_INT(); return; } }
⚠️ 注意事项
- IRQ# 必须实现:这是 EtherCAT 通信的核心中断,所有 SM 事件、PDO 更新、AL 状态变化都通过它通知 STM32。
- SYNC0/SYNC1 可选:仅在启用 DC 分布式时钟模式时才需要连接和配置,纯 Free-Run 模式可以不接。
- 中断使能时机:三个中断的使能必须由协议栈控制(在 AL 状态机流转到对应状态时动态使能/失能),不能一上电就全部打开,否则会导致状态机紊乱。
- 与 ET1100 的区别:ET1100 只有一个 PDI 中断引脚,而 LAN9252 将 IRQ 和 SYNC 分开,硬件上多引了两根线,但软件上可以更精细地分离通信事件和同步事件。
中断引脚搞清楚了,不过实际调试时最容易踩坑的其实是 IRQ# 触发后的事件分发逻辑——如果事件没正确清除,会导致中断风暴把 MCU 卡死。
浙公网安备 33010602011771号