开源-基于ch9374b的KVM设计

文章目录

    • 简介
    • 功能特性
    • 设计图
    • 实现功能
    • 开源链接

简介

平时总有一种需求,就是我在调试树莓派的时候,经常要在pc电脑和开发板之间来回操作,因此就需要两套键盘和鼠标,但是我的桌子实在是太小了,两套键鼠不能并排放置,因此需要换来换取,再加上两套键盘手感不同。换起来着实烦气,因此就设计了这个键鼠切换工具。

实现键鼠pc之间的切换有好多种方法。包括软件来实现和硬件来实现,对于硬件来实现也有很多种方法,包括通过使用模拟开关来实现,和采用专业芯片来实现,对于使用模拟开关来实现,除了切换那一对差分信号线外,对上下电顺序也是有要求的,因此总会存在延时,而对于使用专门的芯片,延时将不复存在,就是成本略贵。

本设计基于CH9374B设计的KVM,CH9374B是一款4口USB KVM控制芯片,1套键鼠支持4套主机共享使用,即插即用,无需安装驱动程序。

功能特性

  • 工作电压:5V或3.3V。
  • 晶振频率:24MHz,支持内置晶振,最高主频48MHz。
  • 支持1.5Mbps低速和12Mbps全速USB传输,兼容USB V2.0。
  • 外围电路简单、元器件只需电源退耦电容。
  • 支持Win98/ME/2K/XP/2003/Vista/Win7/Linux/AppleMAC等操作系统。
  • 支持市面上常见品牌的USB键盘和USB鼠标。
  • 支持PS2键盘,预留蓝牙键盘、蓝牙鼠标通信接口。
  • 支持单键轮循切换、多键指定切换、键盘热键切换和鼠标热键切换。
  • 支持红外遥控切换。
  • 支持自动轮询切换模式,便于监控,切换时间间隔可热键设置。
  • 支持开启/关闭自动侦测模式,用于检测插拔自动智能切换。
  • 支持开启/关闭蜂鸣器提示音。
  • 支持开启/关闭全部热键。
  • 支持开启/关闭鼠标穿屏功能。
  • 支持LED指示,指示当前选中的PC。
  • 支持4组不同的键盘切换热键,且可任意切换及掉电保存。
  • 支持DC-DC升压功能。
  • 支持在线升级固件。
  • 提供LQFP-64无铅封装,兼容RoHS。

设计图

只是简单的设计了一下,供自己使用:

PCB 3D图

PCB实物图

实现功能

  • 基于CH9374B设计的KVM,CH9374B是一款4口USB KVM控制芯片,1套键鼠支持4套主机共享使用,即插即用,无需安装驱动程序。
  • 当usb插入pc,且pc处于开机状态,则对应usb口的power灯将会亮起。
  • 通过按下不同通道的按键,键鼠将切换到对应的pc通道,几乎零延时,同时对应通道的link灯将亮起。
  • 各个pc的usb口采用了防倒灌的设计,让各位伙伴即使在华南主板面前也游刃有余。
  • 同时在边上预留了一排排针,以后可以设计一个控制HDMI信号的切换的模块,跟kvm联动,自动控制对应的pc信号输出。

开源链接

  • 立创开源:https://oshwhub.com/zhang0819/kvm-4xusb2-0

公众号 | FunIO
微信搜一搜 “funio”,发现更多精彩内容。
个人博客 | blog.boringhex.top

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/19291.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

13 springboot项目——准备数据和dao类

13.1 静态资源下载 https://download.csdn.net/download/no996yes885/88151513 13.2 静态资源位置 css样式文件放在static的css目录下&#xff1b;static的img下放图片&#xff1b;template目录下放其余的html文件。 13.3 创建两个实体类 导入依赖&#xff1a;lombok <!…

桥接模式(Brige)

桥接模式是一种结构型设计模式&#xff0c; 又称为柄体(Handle and Body)模式或接口(Interface)模式。桥接模式&#xff0c;可将将抽象部分与它的实现部分分离&#xff0c;使它们都可以独立地变化。如将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构&#x…

在CSDN学Golang云原生(持续交付Argo)

一&#xff0c;Argo安装配置 Argo是一个基于Kubernetes的容器本地工作流引擎&#xff0c;可以帮助用户在Kubernetes上创建、运行和维护容器化应用程序。下面是Argo安装配置的步骤&#xff1a; 首先确保你已经安装了kubectl和helm添加chart仓库 $ helm repo add argo https:/…

百度:文心千帆 网页搭建和示例测评

文章目录 官方文档代码示例token获取流式回答官网完整示例 制作一个网页端 官方文档 https://cloud.baidu.com/doc/WENXINWORKSHOP/s/flfmc9do2按照这个操作进行创建一个应用&#xff1a; 代码示例 token获取 # 填充API Key与Secret Key import requests import jsondef ma…

blender的下载安装和配置中文环境

引言 在3D建模和动画设计领域&#xff0c;Blender 作为一款强大且免费的开源软件&#xff0c;一直以优秀的性能和对众多技术的支持赢得了大批用户的喜爱。然而&#xff0c;对于刚接触这款软件的用户而言&#xff0c;其安装和配置过程可能会带来一定困扰&#xff0c;尤其是在设…

【redis】创建集群

这里介绍的是创建redis集群的方式&#xff0c;一种是通过create-cluster配置文件创建部署在一个物理机上的伪集群&#xff0c;一种是先在不同物理机启动单体redis&#xff0c;然后通过命令行使这些redis加入集群的方式。 一&#xff0c;通过配置文件创建伪集群 进入redis源码…

Spring Boot 应用程序生命周期扩展点妙用

文章目录 前言1. 应用程序生命周期扩展点2. 使用场景示例2.1 SpringApplicationRunListener2.2 ApplicationEnvironmentPreparedEvent2.3 ApplicationPreparedEvent2.4 ApplicationStartedEvent2.5 ApplicationReadyEvent2.6 ApplicationFailedEvent2.7 ApplicationRunner 3. 参…

虚拟机之间配置免密登录

目录 一、配置主机名映射 二、虚拟机配置SSH免密登录 三、验证 一、配置主机名映射 即修改/etc/hosts文件&#xff0c;将几台服务器和主机名进行映射。 注意每台服务器都要进行同样的配置。这样在各自服务器下&#xff0c;我们就可以通过主机名访问对应的ip地址了。 当然&…

宝塔安装ModStart,快速开启高效开发之旅!

宝塔面板是一款强大的服务器管理工具&#xff0c;而ModStart则是基于Laravel的模块化快速开发框架&#xff0c;二者的结合将为您的项目开发带来前所未有的便利和高效。在这篇文章中&#xff0c;我们将为您详细介绍如何在宝塔面板上安装ModStart&#xff0c;让您快速搭建功能丰富…

BGP属性+选路规则

目录 一&#xff0c;BGP的属性—基础属性 1.PrefVal 2.LocPrf 3、优先本地下一跳 &#xff08;NextHop&#xff09; 4、AS-PATH 5、起源属性 6、MED -多出口鉴别属性 二&#xff0c;BGP选路规则 三&#xff0c;BGP的社团属性 一&#xff0c;BGP的属性—基础…

低碳 Web 实践指南

现状和问题 2023年7月6日&#xff0c;世界迎来有记录以来最热的一天。气候变化是如今人类面临的最大健康威胁。据世界卫生组织预测2030年至2050年期间&#xff0c;气候变化预计每年将造成约25万人死亡。这是人们可以真切感受到的变化&#xff0c;而背后的主要推手是碳排放。 …

功率放大器的种类有哪三种类型

功率放大器是一种能将输入信号转换为更高功率输出的电子设备。在电子工程和音频领域中&#xff0c;功率放大器通常被分为三种类型&#xff1a;A类、B类和AB类。下面安泰电子将详细介绍这三种类型的功率放大器及其特点。 A类功率放大器 A类功率放大器是一种基本的线性功率放大器…

Hadoop中命令检查hdfs的文件是否存在

Hadoop中命令检查hdfs的文件是否存在 在Hadoop中&#xff0c;可以使用以下命令检查HDFS文件是否存在&#xff1a; hadoop fs -test -e 其中&#xff0c;是要检查的HDFS文件的路径。 如果文件存在&#xff0c;命令返回0&#xff1b;如果文件不存在&#xff0c;命令返回非0值…

Flask简介与基础入门

一、了解框架 Flask作为Web框架&#xff0c;它的作用主要是为了开发Web应用程序。那么我们首先来了解下Web应用程序。Web应用程序 (World Wide Web)诞生最初的目的&#xff0c;是为了利用互联网交流工作文档。 1、一切从客户端发起请求开始。 所有Flask程序都必须创建一个程序…

【电网技术复现】考虑实时市场联动的电力零售商鲁棒定价策略(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

代码随想录算法训练营之JAVA|第十八天| 235. 二叉搜索树的最近公共祖先

今天是第 天刷leetcode&#xff0c;立个flag&#xff0c;打卡60天&#xff0c;如果做不到&#xff0c;完成一件评论区点赞最高的挑战。 算法挑战链接 235. 二叉搜索树的最近公共祖先https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/descriptio…

QT笔记——生成dump文件

我们经常会遇到崩溃&#xff0c;此时我们需要定位问题再什么地方&#xff0c;这时候我们就会需要用到dump文件 方式一&#xff1a; #include "Windows.h" #include "DbgHelp.h" #pragma comment(lib, "dbghelp.lib")int GenerateMiniDump(PEXCE…

php建造者模式

一&#xff0c;建造者模式&#xff0c;也叫做生成器模式&#xff0c;是创建设计模式的一种&#xff0c;它能将一个复杂的对象的创建过程分离开来&#xff0c;使你能够分步骤的创建对象。建造者模式也允许你使用相同的建造代码创造出不同类型和形式的对象。 建造者模式一般包括四…

sql 参数自动替换

需求&#xff1a;看日志时&#xff0c;有的sql 非常的长&#xff0c;参数比较多&#xff0c;无法直接在sql 客户端工具执行&#xff0c;如果一个一个的把问号占位符替换为参数太麻烦&#xff0c;因此写个html 小工具&#xff0c;批量替换&#xff1a; 代码&#xff1a; <!…

Spring笔记之Spring对IoC的实现

文章目录 IoC控制反转依赖注入set注入注入外部Bean注入内部Bean注入简单类型通过注入方式实现javax.sql.DateSource接口测试简单类型 级联属性赋值&#xff08;了解&#xff09;注入数组注入List集合注入Set集合注入Map集合注入Properties注入null和空字符串不给属性赋值使用 注…