控制器错误¶
控制器不是一个通用的盒子,你可以直接将所有内容连接到它。
它读取传感器、输出控制信号和与主机通信。但电力负载必须通过适当的输出、MOSFET、继电器、SSR 或驱动器供电。
症状¶
控制器或连接问题的典型迹象:
- 电路板无法通过 USB 检测;
- 固件不启动;
- 引脚不响应;
- 控制器重启;
- 控制器明显发热;
- 连接模块后电路板停止工作;
- 打开负载时 ESP32 失去 Wi-Fi;
- 传感器不可见,尽管有电源;
- Klipper 无法连接到 MCU;
- 命令在错误的引脚上工作。
选择了错误的控制器¶
在选择电路板之前,你必须理解任务。
对于一个简单的自主 Wi-Fi 设备,ESP32 可能是一个不错的选择。
对于 Klipper 中的额外 MCU,通常更实用的是查看:
- RP2040;
- STM32;
- 现成的 3D 打印机电路板。
Arduino Uno/Nano 对学习和简单实验很有用,但对于打印机周围的新的认真设备,你很快就会遇到限制。
错误是仅因为"它很受欢迎"而选择一个电路板,而不检查:
- 所需引脚的数量;
- 逻辑电平;
- 电源;
- 固件支持;
- USB/UART/CAN 可用性;
- 对所需库的支持;
- 输出电流;
- 开发环境。
ESP32 作为 Klipper MCU¶
ESP32 作为单独的 IoT/Wi-Fi 设备很有用。
但不要自动期望 ESP32 是 Klipper MCU 的最佳选择。
如果目标是与 Klipper 集成作为额外的 MCU,首先查看 Klipper 的官方和经过验证的选项。对于新的硬件扩展,使用 RP2040 或 STM32 通常更简单更可靠。
如果设备应该:
- 自主工作;
- 有 Wi-Fi;
- 通过 MQTT 或 HTTP 提供数据;
- 有网络界面;
- 与 Home Assistant 通信;
- 独立于 Klipper 工作。
那么 ESP32 很好。
3.3V 和 5V 逻辑¶
许多现代控制器使用 3.3V 逻辑。
例如:
- ESP32;
- RP2040;
- 许多 STM32。
错误是将 5V 信号应用于仅为 3.3V 设计的输入。
这可以:
- 立即损坏引脚;
- 稍后损坏控制器;
- 导致不稳定的操作;
- 破坏看起来还好的模块。
连接前验证:
- 模块电源电压;
- 输入/输出逻辑电平;
- 是否有电平转换器;
- 输入是否接受 5V;
- 技术描述中写的是什么。
GPIO 不给负载供电¶
GPIO 是一个信号引脚。
它不能为以下供电:
- 风扇;
- 伺服;
- 加热器;
- LED 灯带;
- 无驱动的继电器;
- 电磁线圈;
- 电动机。
GPIO 可以发送命令。负载电流必须通过电源输出、MOSFET、驱动器、继电器或单独的模块。
如果负载直接连接到 GPIO,你可能会损坏引脚或整个电路板。
无公共 GND¶
控制器只能在它们有公共参考电平时才能驱动外部模块。
典型的错误:
- 伺服由单独的 5V 供电;
- 信号来自控制器;
GND未连接;- 伺服抖动或不响应。
对于 MOSFET 模块、PWM 风扇、某些传感器和外部电路板也是如此。
不正确的固件¶
电路板可能没问题,但固件不适合。
错误:
- 固件为错误的微控制器闪存;
- 选择了错误的引导加载程序;
- 混淆了 USB 和 UART 固件;
- 选择了错误的串口;
- Klipper 指定了错误的设备路径;
- 配置中的引脚与电路板不匹配;
- 闪存后没有重启固件/主机。
闪存前你必须确切地知道电路板和微控制器型号。
引脚存在于原理图中但不合适¶
并非每个引脚都是相同的。
引脚可能有限制:
- 仅输入;
- 由 USB/UART/SPI 使用;
- 在启动期间使用;
- 与启动模式相关;
- 不支持所需的 PWM;
- 上拉或下拉;
- 与另一个模块冲突。
如果引脚表现不正常,检查电路板文档,而不是仅检查 GPIO 号。
检查什么¶
迷你检查清单:
- 是否为任务选择了正确的电路板?
- 电路板需要什么电源?
- 什么逻辑:3.3V 还是 5V?
- 是否有与外部模块的公共
GND? - 负载是否不由 GPIO 供电?
- 电路板是否支持所需的接口?
- 选择的引脚是否未使用?
- 固件是否正确?
- 电路板是否通过 USB 可见?
- 配置是否与电路板引脚分配匹配?
不要做什么¶
你不能:
- 在没有检查的情况下将 5V 应用于 3.3V 输入;
- 直接将负载连接到 GPIO;
- 闪存"相似"电路板的随机固件;
- 在电源下改变连线;
- 假设任何 GPIO 适合任何任务;
- 忽视控制器加热;
- 在需要时不连接外部模块没有公共地。
关键要点¶
- 控制器控制但不直接为负载供电。
- 3.3V 和 5V 逻辑必须兼容。
- GPIO 是信号,而不是电源。
- 对于 Klipper MCU,你经常查看 RP2040/STM32,ESP32 作为自主 Wi-Fi 设备更方便。
- 固件和引脚分配必须与实际电路板匹配。
- 如果电路板发热或停止被检测到,关闭电源并查找连接错误。
参考资料¶
- Klipper: 安装 - 为 Klipper 准备和闪存 MCU 的通用过程。
- Klipper: 配置参考,MCU -
[mcu]部分、串行/CAN 连接和额外 MCU。 - Arduino: 数字引脚 - 关于数字引脚作为输入/输出的基本解释,而不是电源。
- Espressif ESP32 数据表 - ESP32 的官方电气规格。
- Raspberry Pi Pico 数据表 - 关于 RP2040/Pico、电源和 GPIO 的官方数据。