跳转至

控制器错误

控制器不是一个通用的盒子,你可以直接将所有内容连接到它。

它读取传感器、输出控制信号和与主机通信。但电力负载必须通过适当的输出、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 号。

检查什么

迷你检查清单:

  1. 是否为任务选择了正确的电路板?
  2. 电路板需要什么电源?
  3. 什么逻辑:3.3V 还是 5V?
  4. 是否有与外部模块的公共 GND
  5. 负载是否不由 GPIO 供电?
  6. 电路板是否支持所需的接口?
  7. 选择的引脚是否未使用?
  8. 固件是否正确?
  9. 电路板是否通过 USB 可见?
  10. 配置是否与电路板引脚分配匹配?

不要做什么

你不能:

  • 在没有检查的情况下将 5V 应用于 3.3V 输入;
  • 直接将负载连接到 GPIO;
  • 闪存"相似"电路板的随机固件;
  • 在电源下改变连线;
  • 假设任何 GPIO 适合任何任务;
  • 忽视控制器加热;
  • 在需要时不连接外部模块没有公共地。

关键要点

  • 控制器控制但不直接为负载供电。
  • 3.3V 和 5V 逻辑必须兼容。
  • GPIO 是信号,而不是电源。
  • 对于 Klipper MCU,你经常查看 RP2040/STM32,ESP32 作为自主 Wi-Fi 设备更方便。
  • 固件和引脚分配必须与实际电路板匹配。
  • 如果电路板发热或停止被检测到,关闭电源并查找连接错误。

参考资料