设计初衷
在我们日常嵌入式开发与工业设备现场调试的时候,常常需要借助UART、RS485或CAN总线等接口进行数据交互与故障排查。传统调试方式存在以下的不便:
调试设备可能远离工位,需频繁拔插电脑上的电源、HDMI、扩展坞等外设才能移动
若需长时间记录现场数据,又需要专门放置一台电脑在其旁边
普通USB转串口模块功能单一,无法离线工作,更缺乏协议解析与可视化能力
正是这些“小麻烦”催生了本项目的诞生——我希望设计一款便携、独立运行、多协议兼容的调试助手。
项目介绍
围绕“多功能便携式调试工具”的定位,我设计了以下的功能:
支持的外设:UART、485和CAN
支持使用USB/USB-UART有线的方式进行数据的查看
支持使用蓝牙无线的方式进行数据的查看
支持将数据保存到SD卡中在电脑中查看
支持将数据实时显示在屏幕上进行查看
支持RS485模拟Modbus Master
支持RS485模拟Modbus Slave
视频演示:
【 2025 DigiKey 杯】多功能便携式调试工具_哔哩哔哩_bilibili
原理图介绍
如下是硬件框架图

电源系统:三种输入方式(CN1 6-28V、Type-C USB 5V、Type-C直连MCU),通过二极管选择避免电源冲突,采用MP1584EN-LF-Z DCDC降压芯片输出5V/3A,AMS1117稳定3.3V系统电源。
主控系统:采用STM32F407(ARM Cortex-M4内核,168MHz主频)作为核心控制器,实现高性能数据处理。
显示系统:搭载4英寸CL40BC264-40C彩色TFT液晶屏,HVGA分辨率(320×480),支持16M色显示。
通信系统:
BLE:KT6368A蓝牙5.1芯片实现无线数据传输
通讯接口:CAN和两路RS485均采用隔离设计,内置120Ω终端电阻和拨码控制
数据存储:TF卡支持离线数据保存,无需依赖电脑上位机。
下面是详细的介绍
Power
电源输入有三种方式:
1、通过接线的方式从CN1输入,支持6~28V。通过MP1584EN-LF-Z这个DCDC降压芯片,输出5V电源,最大支持3A的电流

2、Type-C的方式一般默认都是5V的,本来想在加一个PD诱骗的,但是以及有接线的方式了非常的自由,所以就将其修改成了USB转UART

3、这个Type-C是直连MCU的,用于和MCU进行USB的通讯,理论速率应该比USB转串口快,可以实现更大的吞吐量

最后通过三个二极管来选择使用哪一路的电,是为了放置电源冲突短路。最将通过一颗AMS1117将系统电源稳定在3.3V

MCU
主控使用STM32F407是基于ARM® Cortex®-M4 内核的高性能32位微控制器,最高主频168MHz

最小系统的相关外围电路,包括BOOT模式的选择、复位、外部低速晶振、外部高速晶振

屏幕
CL40BC264-40C是一款采用非晶硅TFT(薄膜晶体管)作为有源开关器件的彩色有源矩阵TFT液晶模块。该模块具有4.0英寸对角线测量的有源区域,具有HVGA分辨率(320水平× 480垂直像素阵列)。每个像素被分成红色、绿色、蓝色的点,这些点排列成垂直条纹,这个模块可以显示16M种颜色。
下面是显示驱动板连接到MCU的引脚,包括数据位、电源、触摸、地址、读写使能、背光等等。

BLE
KT6368A芯片是一款支持蓝牙双模的纯数据芯片,蓝牙5.1版本。简单明了的透传和串口AT控制功能。使用了板载陶瓷天线,在PCB布线的时候要将其放在板边,并且需要禁止附件铺铜

通讯接口
对外接收数据的一路CAN和两路RS485都进行了隔离,使用5V转5V的一个小型电源模块,确保在使用的过程不会将整个系统烧毁掉。

CAN
ISO1050DUBR是由德州仪器生产的隔离式CAN收发器,在MCU的CAN控制器与物理CAN总线之间提供电气隔离和信号电平转换。它支持最高1 Mbps的通信速率。
CAN配备了一个120欧姆的终端电阻,可以通过拨码来控制

RS485
ISO1500DBQR是由德州仪器生产的隔离式RS485收发器,具备:
电气隔离功能,可有效防止地电位差引起的干扰或损坏。
具备低功耗、高抗噪能力,适用于工业环境。
内置失效保护和热插拔保护功能。
两路485的电路完全相同,并且都配备了一个120欧姆的终端电阻,分别都可以通过拨码来控制

TF卡
可以用于离线保存数据,无需电脑上位机挂着实时查看

代码介绍
使用STM32CubeIDE + GUI-Guider。前者是代码配置、编写以及烧录,后者是LVGL的图形化配置工具。
STM32CubeIDE
初始化系统、时钟、外设以及LVGL

不断的轮询当前的设备和模式来判断当前处于一个什么状态

GUI-Guider
主界面

Modbus主机的界面

Modbus从机的界面

花絮
因为经验不太多,想要板子进可能的小,所以在顶层和底层都放了元器件,但是感觉又不太好焊接,而且屏幕的尺寸比板子大很多,所以后面又进行了修改,因此硬件就设计了两个版本
这是V1.0版本的


这是V2.0的


两次PCB打板的记录


收到的板子,可以扫码查看这两块板子的相关信息。


焊接组装完成


总结
本项目想要设计一款面向嵌入式开发和工业调试场景的便携式工具,通过集成多协议通信、数据存储与可视化功能,尝试提供更加便捷的现场调试方案。受限于开发周期与资源条件,当前版本(V2.0)在功能完整性和稳定性方面仍有提升空间,后面将会持续优化迭代。
当前不足与改进方向
硬件层面:
性能瓶颈:STM32F407在高频率CAN总线或多通道485数据采集时可能出现处理延迟
扩展性限制:现有PCB布局未预留I2C、SPI等接口扩展空间
软件层面:
协议深度:Modbus功能仅覆盖基本常用的寄存器读写,复杂指令尚未实现
用户交互:图形界面操作逻辑较基础,未集成数据分析,自定义解码设置的数据
固件更新:缺乏OTA(CAN、485等)升级机制,只能通过UART或者SWD进行下载程序
系统流畅:使用的是STMF4+GUI Guider生成的LVGL,在接收大量数据的时候会卡顿
V3.0升级规划:
升级性能更加强大主控芯片
扩展锂电池供电模块,增强离线工作能力
优化LVGL的交互界面和逻辑
增加温度/电压监测模块,实时预警异常工况
集成Python脚本引擎,允许用户自定义协议解析规则
增加云端数据同步功能,支持通过Wi-Fi上传调试日志
