ESP32-S3初始化TWAI时出现错误帧问题求助
ESP32-S3 TWAI总线复位后出现错误帧问题
问题现象
TWAI总线可正常收发数据帧,但复位ESP32-S3后会触发总线错误帧。经排查,TWAI驱动初始化阶段(twai_driver_install函数执行时),ESP_TX引脚会发送一个短暂负脉冲,该脉冲导致总线进入错误状态。
相关截图说明:
- 逻辑分析仪截图:GPIO11(TWAI_TX引脚)在驱动初始化过程中出现明显的短暂低电平脉冲
- CAN工具截图:复位后总线持续上报错误帧
硬件与软件环境
- 开发板:ESP32-S3-DevKitC-1 v1.0
- ESP-IDF版本:platform-espressif32 6.4.0
- CAN收发器:SN65HVD232DR
- TWAI引脚分配:
- TX引脚:GPIO_NUM_11
- RX引脚:GPIO_NUM_12
TWAI初始化代码
// Initialize configuration structures using macro initializers twai_general_config_t g_config = TWAI_GENERAL_CONFIG_DEFAULT(CAN_TX, CAN_RX, TWAI_MODE_NORMAL); g_config.tx_queue_len = 10; twai_timing_config_t t_config = TWAI_TIMING_CONFIG_100KBITS(); twai_filter_config_t f_config = TWAI_FILTER_CONFIG_ACCEPT_ALL(); // Install TWAI driver // negative pulse occurs in next function if (twai_driver_install(&g_config, &t_config, &f_config) == ESP_OK) { printf("Driver installed\n"); } else { printf("Failed to install driver\n"); return; } // Start TWAI driver if (twai_start() == ESP_OK) { printf("Driver started\n"); } else { printf("Failed to start driver\n"); return; }
已尝试的无效方案
初始化前手动将TX引脚配置为输出并置高,但twai_driver_install函数会重新配置引脚,该操作无法阻止负脉冲产生。
求助
请问如何解决初始化阶段TX引脚负脉冲导致的总线错误问题?
内容的提问来源于stack exchange,提问作者CedricFW
相关产品推荐
相关产品推荐

