番外二:使用 UART 接口连接主板通讯参考文档:https://klipper.wiki/index.php/UART 除了使用传统的USB数据线连接上位机,我们还可以使用UART,它支持所有主板。 通过UART连接的优点是: 缺点: 大多数开发板以及部分电视盒子拥有 UART 接口可以直接使用,而树莓派比较特殊,所以单独叙述。 1.1 树莓派树莓派有一个 miniuart 接口,还有一个全功能 UART 接口。前者有些限制所以不适用于 Klipper,后者有时候被板载的蓝牙模块占用。另外不同版本的树莓派也有差异,具体可以参考 RPi UART 文档 。 复制代码 隐藏代码
sudo raspi-config# 【3 Interface Options】 - 【P6 Serial Port】 - 【NO】 - 【Yes】sudo nano /boot/config.txt##enable_uart=1 # 没有则添加
dtoverlay=disable-bt # 除 RPi3 的其他版本树莓派
core_freq=250# dtoverlay=pi3-disable-bt ##sudo systemctl disable hciuart.service
sudo systemctl disable bluetooth.service#sudo reboot 注意:disable-bt | 关闭蓝牙设备
sudo systemctl disable hciuart | 关闭蓝牙服务
miniuart-bt | 不要使用该 overlay。设置蓝牙设备使用 mini UART, 但会降低最大可用串口通讯波特率
force_turbo=1 或 core_freq=250 | 设置 VPU 核心时钟来固定频率
对应的配置文件如下: 复制代码 隐藏代码
[mcu] serial: /dev/ttyAMA0restart_method: command 接线方式: 树莓派GND(Pin6/9)GPIO14(TX,Pin8)GPIO15(RX,Pin10)GPIO26(Pin37)*3.3v(Pin1)*MCUGNDRXTXboot03.3v 注意:使用前3个引脚即可以通讯 后2个标记星号的为可选,用于刷写引导和固件。GPIO26 也可以换成其他未使用的引脚。
1.2 香橙派等其他设备这些设备一般拥有独立的调试串口和额外 UART ,具体请参考其手册,使用调试串口需要关闭终端和内核信息输出功能。采用传统的接线方式即可。 以 Armbian 为例,修改 /boot/armbianEnv.txt 并添加对应的 overlays 。它们的设备好可以通过 ls /dev/ttyS* 查看。 
【MKS Robin Nano v1.2 接线示意图】 请注意,有些主板的 UART 接口用于连接 WiFi模块后者其他设备。 番外三:不需要 microSD 卡的线刷模式目前大多数32位主板需要通过拷贝固件到 SD卡刷来更新固件。那么有没有办法不用每次升级时要打开盖子插拔SD卡呢? 1. 官方伪线刷方法(SD updates)Klipper 提供了一种伪线刷的方式,具体可以参考官方文档 SDCard updates,目前支持的主板可以通过 ~/klipper/scripts/flash-sdcard.sh -l 进行查询。kiauh 助手默认支持这种方式,但是需要插一张 SD 卡在主板上。 2. 新的线刷方法在上面学习为STM32烧录引导和固件的过程中,我们联想到将树莓派的 GPIO引脚与最小系统的 BOOT0 引脚连接,即可以通过网页控制,切换MCU的boot0状态,闭合为高电平(ISP烧录模式),断开为低电平(正常运行模式),从而实现不需要microSD卡的固件线刷。 是否可行,我们验证一下。此外,由于 Klipper 包括上位机和下位机才能运行和读写引脚,所以我们不能在 printer.cfg 里面进行设置,这里使用 moonraker 进行控制。 复制代码 隐藏代码
[power boot0]type: gpiopin: gpiochip0/gpio26 off_when_shutdown: Trueinitial_state: off 
2.1 UART 模式通讯此种模式除了 boot0 线之外,需要额外的三根线连接:GND、Rx、Tx。 此种方式适用于引出 boot0 的设备,比如 monster8 主板,否则无法使用,比如 boot0 接地的 robin nano v2 
此时选择 No bootloader ,并且会覆盖之前烧录的 stm32duino bootloader 晶振频率请根据实际情况选择,可以在原理图上找到,我这里是 8 MHz 通讯端口我这里选择 USART1 Serial ,对应引脚为 PA10(Rx)和 PA9(Tx),也可以选择其他 UART 引脚 一定要确认通讯过程中良好接线

复制代码 隐藏代码
# 点击右上角 power,闭合开关使 boot0 为高信号,断开并重新给主板上电,使其进入 ISP 烧录模式# 查看设备信息sudo stm32flash /dev/ttyAMA0# 刷入固件sudo stm32flash -w ~/klipper/out/klipper.bin -v -g 0 /dev/ttyAMA0# 刷入 bootloader,这里不需要,会被覆盖# sudo stm32flash -w generic_boot20_pc13.bin -v -g 0 /dev/ttyAMA0 
2.2 USB 模式通讯此种模式除了 boot0 线之外,需要通过 USB 数据线与树莓派连接。 此种方式由于可以自定义进入 bootloader 的按键,所以不需要引出 boot0 也可以使用。但是需要主板支持使用 SWD 协议刷入引导。话说回来,有些主板既没有引出 boot0,又没有引出 SWD 引脚,SD卡又是通过 SDIO 协议通讯的,这种乖乖用 microSD 卡更新吧,说的就是 MKS Robin Nano v1/v2。 
|
还没有评论,来说两句吧...