硬件定位
PipeMonitor 的硬件是一块以 STM32F103VCT6 为核心的传感器采集板,包含两路独立 RS485 通道、USB 串口和 SWD 调试接口。不使用 CubeMX 生成代码,引脚依据 RT-Thread 代码和寄存器配置手工整理。
关键连接
MCU 与时钟
- 主控:STM32F103VCT6,LQFP-100 封装
- 时钟:8 MHz 3225 贴片晶振接 OSC_IN/OSC_OUT,负载电容 0805 封装
双 RS485 通道
板上设计了两路独立 RS485,分别用于传感器总线和上行 DTU:
| 通道 | 收发器 | USART | TX | RX | DE/RE |
|---|---|---|---|---|---|
| 传感器 | MAX3485 | USART2 | PA2 | PA3 | PB12 |
| 上行 | MAX3485 | USART3 | PB10 | PB11 | PB14 |
两路 RS485 物理隔离,传感器总线和上行链路互不干扰。终端电阻(120R)默认 DNP(不焊接),需要时手工补焊。
USB 串口
USB-C 接口接 CH340C(SOP-16),TXD 接 PA10(USART1_RX),RXD 接 PA9(USART1_TX)。用于固件下载和调试日志输出。
SWD 调试
J4 接线端子引出 SWD 信号:+3V3、PA13(SWDIO)、PA14(SWCLK)、GND。固件禁用 JTAG,保留 SWD,节省 PA15/PB3/PB4 给 GPIO 使用。
电源设计
- 输入:USB-C VBUS 和 J6 外部 5V 接线端子,分别经 SS14 肖特基二极管汇到板内 +5V。两路同时接入不会反灌。
- 稳压:AMS1117-3.3(SOT-223),板内 +5V 输入,输出 +3V3 供 MCU 和 MAX3485。
- BOOT:BOOT0 通过 R15 默认下拉,J5 可跳到 +3V3 进入 ISP 模式。BOOT1/PB2 通过 R16 默认下拉。
LED 指示
- D1(PB4)、D2(PB5):低电平点亮,可编程控制
- D3:电源指示灯
MAX3485 使用注意事项
MAX3485 是 3.3V 供电的 RS485 收发器,RO 输出直接接 MCU 的 3.3V 容忍引脚,DI/DE 由 3.3V MCU 直驱——不需要电平转换。
与现有固件的适配
当前 F103 版本固件已裁剪显示屏和外部 Flash 存储,原理图不再放置相关接口和信号。上行 RS485 使用 USART3 PB10/PB11 + PB14 DE/RE,与 rtconfig.h 和 board.c 的引脚配置一致。
物料清单
核心元件:
| 元件 | 型号 | 封装 | 数量 |
|---|---|---|---|
| MCU | STM32F103VCT6 | LQFP-100 | 1 |
| USB 串口 | CH340C | SOP-16 | 1 |
| RS485 收发器 | MAX3485 | SOP-8 | 2 |
| 稳压器 | AMS1117-3.3 | SOT-223 | 1 |
| 肖特基二极管 | SS14 | SMA | 2 |
| 晶振 | 8 MHz 3225 | 3225 | 1 |
完整元件清单见 元件清单.csv。
设计决策备忘
- 双 RS485 隔离:传感器和上行使用独立 USART 和 MAX3485,避免一条总线故障影响另一条
- 终端电阻 DNP:默认不焊,只有总线距离长或节点多时才手工补焊,避免短距离总线因终端电阻导致信号衰减
- 不使用 CubeMX:原理图直接依据 RT-Thread 代码整理,引脚分配与
rtconfig.h、board.c保持一致 - BOOT 跳线:默认下拉从 Flash 启动,需要 ISP 时跳线帽切换到 +3V3,调试方便
- PCB 暂未同步:当前只更新了原理图和符号库,
PipeMonitor.kicad_pcb待后续布局布线