当前位置: 首页 > news >正文

一种多功能调试工具设计方案开源

一种多功能调试工具设计方案开源

  • 设计初衷
  • 设计方案
  • 具体实现
    • HUB芯片采用沁恒微CH339W。
      • TF卡功能
      • 网口功能
      • SPI功能
      • IIC功能
      • JTAG功能
      • 下行USB接口
    • 安路FPGA烧录器功能
    • Xilinx FPGA烧录器功能
    • Jlink OB功能
    • 串口功能
      • RS232串口
      • RS485和RS422串口自适应接口
    • CAN功能
    • 烧录器功能
  • 目前进度
  • 后续计划

设计初衷

工作中由于用到的调试工具比较多,很多时候会发现接口不够用,所以设计综合多种工具,做了一个多功能的调试工具。

设计方案

实现框图如下所示。
在这里插入图片描述
实现的具体功能如下

1.支持Type-C和Type-B输入;
2. 支持安路CPLD、FPGA等器件烧录,JTAG接口支持外部输入或内部3.3V电压;
3. 支持ARM-Cortex M系列ARM芯片烧录,Jlink接口电压支持外部输入或内部3.3V电压;
4. 支持Xilinx、复旦微、高云、Lattice、Intel等FPGA芯片烧录,JTAG接口电压支持外部输入或内部3.3V电压;
5. 支持CAN 2.0B;
6. 支持RS422和RS485自适应;
7. 支持3路RS232接口;
8. 支持1路LVTTL(3.3)UART;
9. 支持1路可变电平UART;
10. 支持烧录SPI Flash和EEPROM;
11. 支持TF卡读卡器动能;
12. 支持1路100M以太网接口;
13. 支持一路可变电平的IIC、SPI和JTAG接口;
14. 支持1路下行USB接口;

具体实现

HUB芯片采用沁恒微CH339W。

CH339 是符合USB2.0协议规范的7端口多功能USB HUB控制器芯片,单芯片集成7口USB HUB、USB 百兆以太网、USB高速SD读卡器、USB PD和USB转SPI、USB转JTAG、USB转UART、USB转I2C接口等功能。CH339上行端口支持USB2.0高速和全速,下行端口支持USB2.0高速480Mbps、全速12Mbps和低速1.5Mbps,另有USB网卡、USB高速读卡器、USB转JTAG等多个内部直达通道。CH339支持高性能的并发处理MTT模式,采用工业级设计,外围精简,可应用于计算机和工控机主板、扩展坞、外设、嵌入式系统等场景。
在这里插入图片描述

TF卡功能

采用TF卡接口,可以直接进行TF卡的读写,采用TF卡转eMMC工装,可以直接烧录eMMC芯片。

网口功能

百兆网口,支持指示灯功能。

SPI功能

可变电平,电压支持外部输入或内部3.3V。

IIC功能

可变电平,电压支持外部输入或内部3.3V。

JTAG功能

可变电平,电压支持外部输入或内部3.3V。

下行USB接口

一路下行USB接口。

安路FPGA烧录器功能

具体实现参考安路开发板的图纸,具体采用一颗STM32F103C8T6实现JTAG功能,在此不详细描述。

具体电路参考安路开发板

Xilinx FPGA烧录器功能

采用FT2232H方案,也属于市面上比较常见的方案,通过烧录不同的固件,可以实现Xilinx、Intel、复旦微、lattice等FPGA的程序烧录。
其中A路实现JTAG功能,B路实现可变电平的串口功能,串口电平可以由外部电压输入。

Jlink OB功能

Jlink OB功能参考Segger官网的Jlink OB的参考图纸,固件已经烂大街了,自行搜索。

串口功能

串口芯片采用沁恒的CH344Q,CH344 是一款USB总线的转接芯片,实现USB转四个异步串口UART0/1/2/3功能,用于为计算机扩展异步串口,或者将普通的串口设备或者MCU直接升级到USB总线。
在这里插入图片描述
CH344Q特点

 CH344Q为480Mbps高速USB设备接口,CH344L为12Mbps全速USB设备接口。内置固件,仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串口。 计算机端Windows操作系统下的串口应用程序完全兼容,无需修改。支持免安装的操作系统内置CDC类驱动程序或者多功能高速率的VCP厂商驱动程序。  硬件全双工串口,内置独立的收发缓冲区。CH344Q支持通讯波特率1200bps~6Mbps,CH344L支持1200bps~2Mbps。串口支持8个数据位,支持奇校验、偶校验以及无校验。 每个串口内置2048字节的接收FIFO,1024字节的发送FIFO。支持常用的MODEM联络信号。  l 支持CTS和RTS硬件自动流控。支持半双工,提供串口正在发送状态指示TNOW,可用于控制RS485收发切换。  支持最多16路GPIO输入输出功能。 通过外加电平转换器件,支持RS232、RS485、RS422等接口。内置EEPROM,可配置芯片VID、PID、最大电流值、厂商和产品信息字符串等参数。  单一3.3V供电。提供LQFP48无铅封装,兼容RoHS。

RS232串口

CH344Q的A、B和C实现3路RS232串口。

RS485和RS422串口自适应接口

CH344Q的D实现RS422和RS485自适应接口。

CAN功能

采用开源方案,支持CAN2.0B,波特率支持最大1Mbps。

烧录器功能

采用CH341A方案,也是开源的方案,不详细描述。

目前进度

目前已经完成图纸绘制及PCB绘制,BOM整理及外壳设计,可以投板了。
在这里插入图片描述

安装外壳之后的形态在这里插入图片描述

如果有朋友对这个工具感兴趣,可私信我哦。

后续计划

设想中的这个工具应该是无线的方式,USB线缆也不再需要,可通过WIFI连接这个设备,那么此时这个工具就需要增加电池、无线等功能啦,有想法的朋友可以私信。

相关文章:

一种多功能调试工具设计方案开源

一种多功能调试工具设计方案开源 设计初衷设计方案具体实现HUB芯片采用沁恒微CH339W。TF卡功能网口功能SPI功能IIC功能JTAG功能下行USB接口 安路FPGA烧录器功能Xilinx FPGA烧录器功能Jlink OB功能串口功能RS232串口RS485和RS422串口自适应接口 CAN功能烧录器功能 目前进度后续计…...

鸿蒙NEXT开发笔记(十九)仿抖音快手App的相对布局

上一节我们利用photoAccessHelper实现了从相册挑选视频的功能,但在短视频APP界面,视频画面上还叠加了若干交互图标,包括但不限于:点赞、收藏、评论、分享等等。那么在某个组件上叠加显示其他组件,就用到了相对布局这个…...

微信小程序px和rpx单位互转方法

js代码如下 Page({data: {width: 0,width2: 0},onLoad: function (options) {let px this.pxToRpx(380)let rpx this.rpxToPx(730.7692307692307) // 检查两个互转是否是相同即可,例如pxToRpx(380)转成730.7692307692307 则rpxToPx(730.7692307692307)如果是380则代表互转没…...

WPF+LibVLC开发播放器-LibVLC在C#中的使用

LibVLC在C#中的使用 安装包Nuget使用控件使用播放器初始化加载视频文件 视频教程: 使用WPFLibVLC快速开发一个播放器 安装包Nuget 安装下面两个包,必须安装两个 一个是相关框架对应的包,Winform就安装LibVLCSharp.Winform;WPF就安装LibVLCSharp.WPF&am…...

【Unity基础】Unity中Transform.forward的详解与应用

在Unity中,Transform.forward 是一个常用属性,它表示物体的“前方”方向,即物体本地坐标系中 Z 轴(蓝色轴)在世界坐标系中的方向。它动态反映物体的旋转情况,非常适合用于移动、检测、方向控制等场景。 什么…...

01-树莓派基本配置-基础配置配置

树莓派基本配置 文章目录 树莓派基本配置前言硬件准备树莓派刷机串口方式登录树莓派接入网络ssh方式登录树莓派更换国内源xrdp界面登录树莓派远程文件传输FileZilla 前言 树莓派是一款功能强大且价格实惠的小型计算机,非常适合作为学习编程、物联网项目、家庭自动化…...

Milvus×OPPO:如何构建更懂你的大模型助手

01. 背景 AI业务快速增长下传统关系型数据库无法满足需求。 2024年恰逢OPPO品牌20周年,OPPO也宣布正式进入AI手机的时代。超千万用户开始通过例如通话摘要、新小布助手、小布照相馆等搭载在OPPO手机上的应用体验AI能力。 与传统的应用不同的是,在AI驱动的…...

《Python基础》之Pandas库

目录 一、简介 二、Pandas的核心数据结构 1、Series 2、DataFrame 三、数据读取与写入 1、数据读取 2、数据写入 四、数据清洗与处理 1、处理缺失值 2、处理重复值 3、数据转换 五、数据分析与可视化 1、统计描述 2、分组聚合 3、数据可视化 六、高级技巧 1、时…...

LeetCode Hot100 31~40

链表 31. K个一组翻转链表 题目不难理解 主要是怎么写出清晰易懂的代码 可以先分成K组 再排序 class Solution { public:ListNode* reverseKGroup(ListNode* head, int k) {ListNode* dummyHead new ListNode();dummyHead->next head;// 首先查看需要翻转几次int count…...

C语言(分支练习)

1.输⼊你的⾝⾼和体重,测试你的健康状况。 计算bmi的值, bmi (体重(kg)/⾝⾼(m)的平⽅) 如果bmi ⼩于18.5, 则显⽰“偏瘦,注意加强营 养” 如果bmi 在18.5和23.9之间&a…...

指针(上)

目录 内存和地址 指针变量和地址 取地址(&) 解引用(*) 大小 类型 意义 const修饰 修饰变量 修饰指针 指针运算 指针- 整数 指针-指针 指针的关系运算 野指针 概念 成因 避免 assert断言 指针的使用 strl…...

(笔记)vue3使用Element Plus全局引入icons

如果你想要在项目中直接使用 Element Plus 的图标 icons,而不需要在每次使用的时候都要引入,那么你可以参考本文。 1、图标下载 在使用 Element Plus 的图标前,需要先下载图标库。 npm $ npm install element-plus/icons-vue yarn $ ya…...

基于Matlab卡尔曼滤波的GPS/INS集成导航系统研究与实现

随着智能交通和无人驾驶技术的迅猛发展,精确可靠的导航系统已成为提升车辆定位精度与安全性的重要技术。全球定位系统(GPS)和惯性导航系统(INS)在导航应用中各具优势:GPS提供全球定位信息,而INS…...

大学阶段matlab期末考试所有一定会考的函数及其基本格式

1.矩阵操作相关函数 zeros函数 基本功能:创建全零矩阵。基本格式:A zeros(m,n),其中m和n分别表示矩阵的行数和列数,例如创建一个3X4的全零矩阵A,可以写为A zeros(3,4)。 ones函数 基本功能:创建全 1 矩…...

【linux】(23)对象存储服务-MinIo

MinIO 是一个高性能的对象存储服务,兼容 Amazon S3 API。 Docker安装MinIo 前提条件 确保您的系统已经安装了 Docker。如果还没有安装 Docker,可以参考 Docker 官方文档进行安装。 1. 拉取 MinIO Docker 镜像 首先,从 Docker Hub 拉取 Mi…...

Nginx学习-安装以及基本的使用

一、背景 Nginx是一个很强大的高性能Web和反向代理服务,也是一种轻量级的Web服务器,可以作为独立的服务器部署网站,应用非常广泛,特别是现在前后端分离的情况下。而在开发过程中,我们常常需要在window系统下使用Nginx…...

前端:localstorage, session

学习帖子 —总结— 要快速掌握 localStorage 和 sessionStorage 的核心知识,以下是最重要的20%,这将帮助你理解和操作80%的功能: 基本概念: localStorage 和 sessionStorage 是 Web Storage API 的一部分,用于在客户端…...

剖析一下自己的简历第二条

剖析一下自己的简历第二条 背景前置说明可能会被问到的问题 背景 剖析一下自己简历, 增加对一些专业知识的掌握. 我的简历第二条是这样写的: “2. 熟悉JVM、JMM,包括内存模型,垃圾回收机制,了解其基本调优技巧并具备线上调优经验。”. 前置…...

利用Docker一键发布Nginx-Tomcat-MySQL应用集群

Docker简介,可以看上一篇文章: 为什么互联网公司离不开Docker容器化,它到底解决了什么问题?-CSDN博客 Docker体系结构 docker核心就是镜像和容器: 镜像就是应用程序的安装文件,包含了所有需要的资源&…...

九,[极客大挑战 2019]LoveSQL1

进入靶场 随便输输 试试字符 报错了 根据以上4张图知是单引号闭合 还以为这是flag呢,白激动一场,,,,,,,,自闭了 有个搞笑的点,其实可以用sqlmap 不过咱不用哈…...

17 go语言(golang) - 错误处理

错误处理 错误处理是编程中用于识别、响应和恢复程序运行时出现的错误和异常情况的过程。其目的是确保程序的鲁棒性(一个系统、模型或函数在面对错误输入、工作压力、意外情况或故意攻击时仍能保持稳定性和可靠性的能力),即使在出现错误的情…...

前端跳转路由的时候,清掉缓存

清除路由缓存的方法 ‌使用 $router.push() 方法‌:在跳转路由时,可以通过传递一个包含 replace: true 属性的对象来实现清除路由缓存。例如: this.$router.push({ path: "/new-route", replace: true }); ‌使用 $router.replace…...

CentOS使用chrony服务进行时间同步源设置脚本

CentOS使用chrony服务进行时间同步源设置脚本 #!/bin/bash# Created: 2024-11-26 # Function: Check and Set OS time sync source to 10.0.11.100 # FileName: centos_set_time_source_to_ad.sh # Creator: Anster # Usage: # curl http://webserver-ip/scripts/centos_set…...

AI RPA 影刀基础教程:开启自动化之旅

RPA 是什么 RPA 就是机器人流程自动化,就是将重复的工作交给机器人来执行。只要是标准化的、重复的、有逻辑行的操作,都可以用 RPA 提效 准备 安装并注册影刀 影刀RPA - 影刀官网 安装 Chrome 浏览器 下载链接:Google Chrome 网络浏览器 …...

深入解析Java集合框架:List集合及其实现类的应用与原理

|| 持续分享系列教程,关注一下不迷路 || || B站视频教程:墨轩大楼 || || 知识星球:墨轩编程自习室 || Java集合框架是Java编程语言中一个非常重要的组成部分&#xff0c…...

MySQL需掌握到何种程度?才能胜任工作

大家好,我是袁庭新。星友问:MySQL需要学到什么程度?才能胜任日常的软件开发工作呢!以下是一些建议的学习目标和程度,这些目标旨在帮助你在工作中高效地使用MySQL。 数据库的基本概念、MySQL的安装及配置、SQL的概念、S…...

如何使用brew安装phpredis扩展?

如何使用brew安装phpredis扩展? phpredis扩展是一个用于PHP语言的Redis客户端扩展,它提供了一组PHP函数,用于与Redis服务器进行交互。 1、cd到php某一版本的bin下 /usr/local/opt/php8.1/bin 2、下载 phpredis git clone https://githu…...

力扣hot100道【贪心算法后续解题方法心得】(三)

力扣hot100道【贪心算法后续解题方法心得】 十四、贪心算法关键解题思路1、买卖股票的最佳时机2、跳跃游戏3、跳跃游戏 | |4、划分字母区间 十五、动态规划什么是动态规划?关键解题思路和步骤1、打家劫舍2、01背包问题3、完全平方式4、零钱兑换5、单词拆分6、最长递…...

时间同步服务器--Linux中

时间同步服务器 1. 时间同步服务 时间同步:多主机协作工作时,各个主机的时间同步很重要,时间不一致会造成很多重要应用的故障,如:加密协议,日志,集群等,利用NTP(Network Time Protocol )协议使网络中的各…...

银河麒麟V10-SP1设置redis开机自启

前言: redis安装请看:银河麒麟V10-SP1离线安装redis5.0.1_银河麒麟v10 redis5.0-CSDN博客 一、编辑自启文件 vim /etc/systemd/system/redis.service [Unit] DescriptionRedis In-Memory Data Store Afternetwork.target [Service] Typeforking ExecS…...

JVM 之垃圾回收器

一、GC 的分类 1.1 串行 VS 并行 串行回收:指在同一时间段内只允许有一个 CPU 用于执行垃圾回收操作,此时工作线程被暂停,直至垃圾回收结束 在单 CPU 处理器或者较小的应用内存等硬件平台不是特别优越的场合,串行回收器的超过并…...

基于Java Springboot宠物咖微信小程序

一、作品包含 源码数据库全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 微信开发者工具 数…...

求助——AssertionError: Attribute pipeline is missing from configuration.json.

我在本地运行Sunsimiao大模型的时候遇到了“AssertionError: Attribute pipeline is missing from configuration.json.”的问题。在网上找了很多问题都没有解决,求助一下广大网友。有什么好的解决方法吗? 本地环境如上所示,不知是哪里出…...

LearnOpenGL学习(光照 -- 颜色,基础光照,材质,光照贴图)

光照 glm::vec3 lightColor(0.0f, 1.0f, 0.0f); glm::vec3 toyColor(1.0f, 0.5f, 0.31f); glm::vec3 result lightColor * toyColor; // (0.0f, 0.5f, 0.0f); 说明:当我们把光源的颜色与物体的颜色值相乘,所得到的就是这个物体所反射的颜色。 创建…...

vulnhub靶场【哈利波特】三部曲之Aragog

前言 使用virtual box虚拟机 靶机:Aragog : 192.168.1.101 攻击:kali : 192.168.1.16 主机发现 使用arp-scan -l扫描,在同一虚拟网卡下 信息收集 使用nmap扫描 发现22端口SSH服务,openssh 80端口HTTP服务,Apach…...

【开发语言】层次状态机(HSM)介绍

层次状态机(Hierarchical State Machine, HSM),从基本原理、结构设计、实现方法以及如何结合 Qt 进行具体实现等方面进行分析。 1. 层次状态机的基本原理 层次状态机是一种用于管理复杂系统行为的状态机模型,它通过将状态组织成…...

Midjourney Imagine API 申请及使用

Midjourney Imagine API 申请及使用 Midjourney 是一款非常强大的 AI 绘图工具,只要输入关键字,就能在短短一两分钟生成十分精美的图像。Midjourney 以其出色的绘图能力在业界独树一帜,如今,Midjourney 早已在各个行业和领域广泛…...

Function Arguments and Function Parameters (函数的实参和函数的形参)

Function Arguments and Function Parameters {函数的实参和函数的形参} 1. Object-Oriented Programming Using C2. Function Arguments and Function ParametersReferences 1. Object-Oriented Programming Using C https://icarus.cs.weber.edu/~dab/cs1410/textbook/index…...

【C语言】递归的内存占用过程

递归 递归是函数调用自身的一种编程技术。在C语言中,递归的实现会占用内存栈(Call Stack),每次递归调用都会在栈上分配一个新的 “栈帧(Stack Frame)”,用于存储本次调用的函数局部变量、返回地…...

六、文本搜索工具(grep)和正则表达式

一、grep工具的使用 1、概念 grep: 是 linux 系统中的一个强大的文本搜索工具,可以按照 正则表达式 搜索文本,并把匹配到的行打印出来(匹配到的内容标红)。 2、语法 grep [options]…… pattern [file]…… 工作方式…...

spaCy 入门与实战:强大的自然语言处理库

spaCy 入门与实战:强大的自然语言处理库 spaCy 是一个现代化、工业级的自然语言处理(NLP)库,以高效、易用和功能丰富著称。它被广泛应用于文本处理、信息提取和机器学习任务中。本文将介绍 spaCy 的核心功能,并通过一…...

嵌入式硬件实战提升篇(三)商用量产电源设计方案 三路电源输入设计 电源管理 多输入供电自动管理 DCDC降压

引言:本文你能实际的了解到实战量产产品中电源架构设计的要求和过程,并且从实际实践出发搞懂电源架构系统,你也可以模仿此架构抄板到你自己的项目,并结合硬件篇之前的项目以及理论形成正真的三路电源输入设计与开发板电源架构块供…...

常用排查工具使用

1.spy++ Microsoft Spy++是一个非常好的查看Windows操作系统的窗口、消息、进程、线程信息的工具,简单易用,功能强大。 在vs的工具中默认安装,还可以监控到隐层窗口,通过查看窗口的属性可以获得更多信息,包括规格、窗口、类、进程等信息,可以帮助排查相关窗口的问题。 2…...

用三维模型的顶点法向量计算法线贴图

法线贴图的核心概念是在不增加额外多边形数目的情况下,通过模拟细节来改善光照效果。具体流程包括: 法线的计算与存储:通过法线映射将三维法线向量转化为法线贴图的 RGB 值。渲染中的使用:在片段着色器中使用法线贴图来替代原有的…...

基于Matlab高速动车组转臂定位橡胶节点刚度对车辆动力学影响仿真研究

本研究针对高速动车组转臂定位系统中橡胶节点的刚度对车辆动力学性能的影响进行仿真研究。随着高速铁路的发展,动车组的运行稳定性和舒适性成为设计和运营的核心问题,其中,转臂定位系统作为动车组悬挂系统的重要组成部分,其性能对…...

PostgreSQL认证培训需要什么条件

PostgreSQL认证培训通常没有严格的前置条件,但以下几点可以帮助你更好地准备和通过认证考试: 1、基础知识:具备基本的数据库知识和经验,特别是对SQL有一定的了解。如果你Oracle、MySQL等基础知识,对对你学习PostgreSQ…...

Rust 图形界面开发——使用 GTK 创建跨平台 GUI

第五章 图形界面开发 第一节 使用 GTK 创建跨平台 GUI GTK(GIMP Toolkit)是一个流行的开源跨平台图形用户界面库,适用于创建桌面应用程序。结合 Rust 的 gtk-rs 库,开发者能够高效地构建现代化 GUI 应用。本节将详细探讨 GTK 的…...

Spring中每次访问数据库都要创建SqlSession吗?

一、SqlSession是什么二、源码分析1)mybatis获取Mapper流程2)Spring创建Mapper接口的代理对象流程3)MapperFactoryBean#getObject调用时机4)SqlSessionTemplate创建流程5)SqlSessionInterceptor拦截逻辑6)开…...

【数据分析】布朗运动(维纳过程)

文章目录 一、概述二、数学布朗运动2.1 数学定义2.2 布朗运动的数学模型2.21 标准布朗运动2.22 布朗运动的路径2.23 布朗运动的方程 三、布朗运动在金融学中的应用四、数学构造(以傅里叶级数为例)4.1 傅里叶级数的基本思想4.2 构造布朗运动 一、概述 布…...

静态页面 和 动态页面(Java Web开发)

1. 静态页面 1.1 什么是静态页面? 静态页面是指 HTML 文件直接存放在服务器上,不依赖后端逻辑处理而生成内容。客户端浏览器请求静态页面时,服务器直接将文件发送到客户端,浏览器负责渲染页面。 特点: 固定内容&am…...