开源-基于ch9374b的KVM设计

news2024/11/25 12:59:41

文章目录

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

简介

平时总有一种需求,就是我在调试树莓派的时候,经常要在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.coloradmin.cn/o/824446.html

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

相关文章

浅谈Struts2请求解析过程

0x00前言 在使用Struts2的时候需要在web.xml中配置一个过滤器,来拦截用户发起的请求,并进行一些预处理,根据配置文件把请求分配给对应的action并将请求中的参数与action中的字段进行对应赋值。例如下面的例子,通过配置StrutsPrepa…

二叉树的前,中,后序的非递归实现(c++)

前言 对于二叉树来说,遍历它有多种方式,其中递归遍历是比较简单的,但是非递归的实现就有一定的难度,在这里介绍一种非递归实现二叉树遍历的方式。 1.前序遍历 1.1思路 其实对于二叉树的非递归实现,实际上就是用代码来…

Spring中Bean的实例化详细流程

还是举个例子,我有一个朋友小汪他远赴南方某城市打工。然后安定下来后他的朋友很想来家里玩,但是呢我这个朋友家里搞的很乱,所以他不好意思请朋友来家里玩。这时我的另一个朋友说那请一个保姆把家里好好整理一下就可以了,然后给他…

【LeetCode】一、链表反转

题目 题目:给定单链表头节点,将单链表的链接顺序反转过来 例: 输入:1->2->3->4->5 输出:5->4->3->2->1 要求:按照两种方式实现 解决办法 方式一:(直接迭…

腾讯云服务器CVM镜像操作系统大全_win_linux

腾讯云CVM服务器的公共镜像是由腾讯云官方提供的镜像,公共镜像包含基础操作系统和腾讯云提供的初始化组件,公共镜像分为Windows和Linux两大类操作系统,如TencentOS Server、Windows Server、OpenCloudOS、CentOS Stream、CentOS、Ubuntu、Deb…

大一python编程题库和答案,大一python基础编程题库

大家好,小编来为大家解答以下问题,大一python编程题库和答案山东理工大学,大一python编程题库和答案解析,今天让我们一起来看看吧! 单项选择题 第一章python语法基础 1. Python 3.x 版本的保留字总数是C A 27 …

Python(五十七)列表生成式

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

Delphi 开发不一样的窗体标题栏:TTitleBarPanel

目录 TTitleBarPanel 的使用 TTitleBarPanel 的使用进阶 一、设置标题栏高度、颜色 二、个性化标题栏的关闭等按键 我们在用Delphi开发程序的时候,窗体的标题栏一般都是标准的windows标题栏,上面包括:程序图标、标题、最小化、最大化、关闭…

TypeC拓展设计方案|TypeC转HDMI设计方案|CS5261/CS5265芯片设计参数对比

集睿智远CS5261/CS5265都可以用于设计TypeC转HDMI方案,低成本TypeC扩展坞设计方案,而两者也有些差异:1.CS5261支持DP1.4输入,一个HDMI1.4输出,即HDMI输出为4K30HZ ;CS5265DP1.4到HDMI2.0转换芯片,即HDMI输出…

Linux之 环境变量

什么是环境变量 windows中也有个 Linux 环境变量 env linux和windows环境变量,功能类似的, windows系统的环境变量,在cmd中可以之间调用程序运行。这些程序的执行程序的路径,一般编辑在path变量中 环境变量都分全局的&#xff…

Android性能优化—ANR问题分析

一、ANR是什么? ANR(Application Not responding),是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR。可以简单的理解为应用…

网络入侵探测器Pi.Alert

什么是 Pi.Alert ? Pi.Alert 是 WIFI/LAN 入侵探测器。通过扫描连接到您的 WIFI/LAN 的设备,提醒您未知设备的连接。它还警告断开“始终连接”的设备。 Pi.Alert 使用了三种扫描方式 方式1:arp-scan。arp扫描系统实用程序用于使用 arp 帧搜索…

【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight 3

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…

CommunityToolkit.Mvvm8.1 viewmodel使用-旧式写法

0.说明 CommunityToolkit.Mvvm8.1有一个重大更新的功能:源生成器功能,它极大简化我们的mvvm代码 但是本篇先总结一下原写法,下篇再总结源生成器功能 1.模型定义 必须继承:ObservableObject 2.viewmodel代码实现 几个关键点: SetProperty是给属性赋值,并且通知更改通知 But…

钉钉对接打通金蝶云星空获取流程实例列表详情(宜搭)接口与其他应收单接口

钉钉对接打通金蝶云星空获取流程实例列表详情(宜搭)接口与其他应收单接口 对接系统钉钉 钉钉(DingTalk)是阿里巴巴集团专为中国企业打造的免费沟通和协同的多端平台,提供PC版,Web版和手机版,有考…

Linux知识点 -- VS Code远程连接服务器协助开发

Linux知识点 – VS Code远程连接服务器协助开发 文章目录 Linux知识点 -- VS Code远程连接服务器协助开发一、VS Code的使用1.使用VS Code进行C语言编译与运行2.使用VS Code进行C代码的编译与运行 二、使用VS Code连接云服务器三、使用VS Code进行GDB调试 一、VS Code的使用 1…

Redis的基础知识

目录 一、什么是Redis 二、关于Redis的一些基本知识 (1)set命令 (2)get命令 三、Redis中的一些常用命令 (1)keys (2)exists (3)type (4…

vite+typescript项目 :找不到模块“./***.vue”或其相应的类型声明——解决方案

vue3ts报错&#xff1a; 找不到模块“./App.vue”或其相应的类型声明。ts(2307) 解决方法&#xff1a; 1、在src文件夹找到 vite-env.d.ts 加入以下代码&#xff1a; declare module *.vue {import type { DefineComponent } from vueconst vueComponent: DefineComponent<…

Nodejs 第六章(npx)

npx是什么 npx是一个命令行工具&#xff0c;它是npm 5.2.0版本中新增的功能。它允许用户在不安装全局包的情况下&#xff0c;运行已安装在本地项目中的包或者远程仓库中的包。 npx的作用是在命令行中运行node包中的可执行文件&#xff0c;而不需要全局安装这些包。这可以使开…

手机python编程软件怎么用,手机python编程软件下载

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;手机python编程软件保存的代码在哪里&#xff0c;手机python编程软件怎么运行&#xff0c;现在让我们一起来看看吧&#xff01; 原标题&#xff1a;盘点几个在手机上可以用来学习编程的软件 前天在悟空问答的时候&#…