声明:请遵守开源协议,禁止商用,转载请注明出处
项目简介:为什么要做这个嵌入式调试器工具?
在本人学习嵌入式和做项目的过程中,一直存在几个痛点:
- 嵌入式调试工具冗杂,且一般一个模块只能实现一个功能,接线杂乱
- 笔记本接口普遍较少,不接拓展坞的情况下难以插接多个调试模块
- 大学生学习嵌入式时难以配齐所有工具,且部分工具价格较高
所以为了解决这些问题,我耗时三个月,基于ESP32S3和LVGL,制作了这款多功能嵌入式调试工具,具有DAPlink、逻辑分析仪、串口助手、数控电源、无线下载调试器等十余种不同的功能,涵盖了大部分嵌入式的调试场景,实测可以有效且优雅地解决以上的痛点,最关键的是,所有器件均采用容易购买且性价比高的器件,制作成本控制在百元以内
产品渲染图
产品实物图
硬件说明
系统框图:
PCB结构:
项目由两块PCB构成,电源控制板为四层板,信号板为两层板,采用分立叠板设计,通过1.27mm排针连接
- 电源控制板:主要负责调试器与电脑的通信、数控电源、简易示波器、屏幕显示、无线下载器等功能
- 信号板:主要负责逻辑分析仪和DAPlink等功能
关于系统电源:
项目的电源输入存在三种情况:电脑usb的5v输入、使用pd充电器的12v诱骗电压输入、使用内部电池输入。
首先考虑前两种情况,电源由typec接口输入后分为两路,一路经由MP28167变换为5v送入ip5306电池充放电管理芯片,为3.7v锂电池充电的同时提供5v电压,经过SY8120B变换为3.3v为各个芯片供电;另一路经由TPS5450提供数控可调电源,需要注意的是,使用数控电源时需要12v的诱骗电压,所以必须要配合支持pd诱骗的充电器使用。
关于数控电源和电压测量:
项目实现数控电源的方法是基于数字电位器和功率监测芯片实现的,通过数字电位器作为电源芯片的反馈电阻,单片机通过i2c协议控制数字电位器的阻值来控制输出电压,INA226将测得的功率数据反馈给单片机。
这里在数控电源的输出控制端采用了双PMOS背靠背连接的电路,实现了电源的双向关断,所以我们可以通过关闭双PMOS实现外界输入的电压测量,打开双PMOS时则是内部的数控电源向外输出。
关于USB:
项目采用CH334F将一路usb信号拓展至四路,其中ESP32S3、RP2040和CH549G各连接一路,另外的一路由一个usbA口引出,可以外接usb设备同时为开发板或者手机供电。
关于元件选型:
-
主控采用ESP32S3主要是看重单片机的无线能力,ESP32S3内置有低功耗蓝牙和wifi模块,可以实现无线串口和无线下载器的功能,240MHz的主频可以实现较快的数据处理。
-
FLASH内存芯片采用W25Q128JVPIQ,从ESP32S3的数据手册得知ESP32S3最大支持外挂16MB也就是128Mb的FLASH芯片,这里直接上最大的容量,SRAM直接使用单片机内部自带的PSRAM空间共8MB。
-
逻辑分析仪采用的是基于树莓派RP2040的方案,支持八通道(原方案是24通道,本项目引出了八通道)最大100MHz采样率,外挂FLASH为W25Q16JVSSIQ,2MB容量。
-
DAPLink采用的是CH549G的方案,支持ARM和RISCV单片机下载调试,支持一路usb虚拟串口。理论上DAPLink和逻辑分析仪都可以使用ESP32S3来实现,采用分立器件实现这两个功能成本较高,但好处是可以通过USBHUB并行使用这些功能。
-
功率监测芯片采用的是INA226,最大支持20v的电压测量,我这里使用的采样电阻为0.05欧姆,改变采样电阻会改变采样电流分辨率,同时需要修改电流计算部分的代码。
-
屏幕采用的是1.69寸的电容触摸屏,驱动芯片为ST7789V(spi接口),触摸驱动为CST816T(i2c接口),采样排线插接的方式安装。
-
天线采用IPEX座插接的2.4g天线,为了保证信号质量,需要将天线贴在外壳底面,实测无线信号良好,连接稳定。
关于电路防护:
项目所有的外接IO口均使用ESD器件和限流电阻保护,防止静电击穿,电源供电部分串联自恢复保险丝,防止过流。