1. 项目概述为什么你需要一个自制的MIDI分配器如果你玩电子音乐尤其是手头攒了好几台老合成器、鼓机或者音源模块那你肯定遇到过这个头疼的问题琴房或者演出台上设备越堆越多但你的主控键盘或者音序器只有一个MIDI输出口。想把同一个旋律或者时钟信号同时发给好几台设备要么你得买一堆价格不菲的、带MIDI Thru口的设备来“手拉手”串接要么就得花几百甚至上千块去买一个商业的MIDI分配器MIDI Thru Box。前者受限于设备本身功能后者则是一笔不小的开销尤其是对于学生党或者预算有限的独立音乐人。我自己就是个合成器爱好者工作室里从经典的罗兰到小众的模块林林总总十来台。每次想同时驱动它们进行多轨录制或现场Jam信号路由就成了大麻烦。市面上的成品分配器功能简单的也要好几百带滤波、路由等高级功能的更是价格不菲。于是我决定自己动手做一个。这不仅仅是为了省钱更是一个深入了解MIDI协议底层、锻炼电路设计到产品封装全流程的绝佳项目。今天要分享的就是一个从零开始的八路MIDI分配器制作全记录。它核心功能纯粹而强大将一个MIDI输入信号无损地复制成八份独立的输出。我们将从MIDI的电流环原理讲起用最基础的逻辑门芯片和光耦来搭建电路使用开源的KiCad软件设计PCB最后再用3D打印为它“量身定制”一个结实又美观的外壳。整个项目的成本可以控制在百元以内但获得的性能和知识远超这个价值。无论你是电子工程新手想找个实用项目练手还是资深音乐人想彻底掌控自己的信号链路这篇文章都能给你一份可以直接“抄作业”的详细指南。2. 核心原理与电路设计解析2.1 MIDI信号本质不是电压是电流环在动手画电路图之前必须彻底理解MIDI信号的传输原理。这是整个项目的基石很多DIY失败都源于这里的误解。常见误区很多人会把MIDI信号当成普通的数字信号比如TTL电平的串口UART来处理这是错误的。MIDI协议在物理层上采用的是电流环Current Loop传输方式。原理拆解发送端Output它不直接控制输出电压的高低而是控制一个电流源的“通”与“断”。标准MIDI输出内部有一个5V的电源通过一个220欧姆的限流电阻连接到输出引脚。当逻辑“1”停止位/空闲状态时电流源关闭回路无电流当逻辑“0”起始位或数据位时电流源打开。接收端Input内部是一个光耦合器Optocoupler。电流从发送端流出经过MIDI线缆流入接收端光耦的发光二极管LED使其发光进而触发内部的光敏晶体管导通从而在接收端内部电路产生一个逻辑低电平。没有电流时LED熄灭晶体管关闭内部得到逻辑高电平。核心参数这个电流被设计为大约5mA。220欧姆的电阻就是为了在5V电压下产生约5mA的电流I V/R ≈ 5/220 ≈ 0.023A即23mA但实际设计中考虑到压降和标准通常按5mA设计。光耦的介入实现了完美的电气隔离避免了不同设备间地线噪声的串扰这是MIDI接口非常可靠的关键。重要提示正因为是电流驱动所以MIDI输出具有一定的带载能力限制。一个标准的MIDI输出口理论上最多可以驱动2-3个标准MIDI输入因为每个输入都是一个LED负载。这就是为什么我们不能简单地把多个MIDI输入并联到一个输出上——会导致电流不足所有设备都工作不稳定。分配器的核心作用就是提供信号放大和缓冲让一个输出能驱动多个输入。2.2 分配器核心用逻辑反相器做信号缓冲与复制理解了电流环我们的任务就清晰了把输入端的电流信号经过光耦转换后变成电压逻辑信号高质量地复制成多份然后每一份再通过独立的电流源驱动电路送出去。方案选择实现数字信号复制缓冲最常用、最便宜且可靠的芯片就是六反相器Hex Inverter比如经典的CD4069或74HC04。为什么用反相器而不是缓冲器首先反相器同样具有高输入阻抗和低输出阻抗能提供良好的缓冲作用其次它更常见、成本更低最后信号经过反相器后会倒相但我们可以通过两级反相或者利用MIDI接收端光耦的极性轻松把相位再纠正回来在电路设计上非常灵活。本项目的信号路径设计输入隔离级来自MIDI IN端口的电流信号首先由一颗PC817或类似光耦接收转换成逻辑电平信号假设A点。第一级反相与驱动信号A进入第一个反相器U1A输出反相后的信号B。这一级的主要目的是提供足够的驱动能力去带动后续多路负载。信号复制级信号B被同时送到另外七个反相器U1B到U1F以及另一片芯片上的两个的输入端。这样我们得到了八路完全相同的反相后信号C1-C8。输出级重建电流环每一路信号C1-C8控制一个独立的输出驱动电路。这个电路由一个晶体管如2N2222或专门的驱动芯片构成其作用就是根据逻辑电平接通或断开一个流向MIDI OUT插座第5脚的5mA电流源。同时每个输出端口都包含一个与输入端类似的220欧姆限流电阻以及一个保护用的反向并联二极管防止反向电压击穿。为什么不用一个反相器直接带所有输出因为芯片内每个反相器单元的驱动能力是有限的。74HC04每个输出引脚的标准驱动电流约为4-6mA。如果让它直接驱动多个输出级晶体管的基极电流以及可能的线缆电容会导致边沿变差、上升/下降时间变长在高MIDI速率如31250 bps下可能产生误码。用第一级反相器做缓冲再分配给多个独立的输出级确保了每一路信号都有干净、强劲的驱动。2.3 电源设计为数字与模拟部分提供稳定血液我们的电路包含数字芯片74HC04和模拟/电流输出部分需要一个干净的5V电源。输入电源我们选择了通用的9V DC插座兼容常见的9V电源适配器或电池。电源方案核心LM7805线性稳压器作用将外部输入的7V-12V直流电压稳定地降至5V供整个电路使用。电路要点输入滤波电容C_in在7805的输入端Vin靠近引脚接一个10-100μF的电解电容用于滤除电源适配器带来的低频噪声和纹波。输出滤波电容C_out在输出端Vout靠近引脚接一个10μF的电解电容和一个0.1μF的陶瓷电容。电解电容应对负载电流变化陶瓷电容滤除高频噪声这对数字电路的稳定运行至关重要。散热考虑当输入电压较高、总电流较大时7805上的压降Vin - 5V会产生热量。例如输入9V总电流200mA则功耗为(9-5)*0.20.8W。虽然7805本身有一定散热能力但为了长期稳定建议为其安装一个小型散热片或者将PCB上的GND铜箔面积画大以辅助散热。实操心得电源去耦是数字电路稳定的生命线除了稳压器周围的大电容必须在每一片数字芯片74HC04的电源Vcc和地GND引脚之间最近的位置放置一个0.1μF104的陶瓷去耦电容。这个电容的作用是为芯片瞬间的电流需求提供本地能量库避免电流波动通过电源线影响到其他芯片。少了它电路可能产生奇怪的振荡、误触发甚至无法工作。画PCB时这个电容要像“影子”一样紧贴着芯片电源引脚。3. 从原理图到PCB使用KiCad进行电路板设计3.1 KiCad项目初始化与元件库管理KiCad是一款强大且完全免费的开源PCB设计工具社区活跃资源丰富。对于这个项目我们不需要任何付费软件。第一步创建与规划打开KiCad新建一个项目命名为MIDI_Splitter。在开始画原理图之前先规划板子尺寸。根据之前3D模型的设计我们的PCB需要能放入50mm x 60mm的空间内。我们可以在板框编辑器中先画一个50x60mm的矩形板框这样后续布局时心里有数。第二步绘制原理图Schematic打开原理图编辑器。我们需要的主要元件在KiCad内置库中基本都能找到DeviceR C L用于电阻、电容、电感。DeviceLED用于指示灯可选。ConnectorConn_01x05等用于排针插座。74xx74HC04可能需要在74xx库或74HC库中寻找。OptoDeviceOptocoupler_Phototransistor用于光耦。Regulator_LinearLM7805_TO220用于稳压器。Connector_AudioJack_3.5mm或ConnectorDIN-5等等这里有个关键点重要避坑MIDI连接器的符号与封装MIDI接口使用的是180度的5针DIN插座这在KiCad的标准库里可能没有现成的。你需要自己绘制符号在原理图库编辑器中创建一个新符号命名为MIDI_DIN_5画出5个引脚并正确编号通常引脚4和5是信号和电源需查数据手册确认。关联正确的封装更重要的是封装Footprint。你需要找到或绘制一个180度5针DIN插座的封装例如Connector_AudioJack_5Pin_DIN变体或者去KiCad官方封装库、SnapEDA等网站下载。确保封装中插座的金属外壳有单独的焊盘连接到PCB地平面以提供屏蔽。这是很多DIY项目容易忽略导致噪音或信号不稳定的地方。3.2 原理图绘制细节与电气规则检查按照第2章分析的电路结构在KiCad中绘制原理图。这里分享几个关键点的画法光耦输入部分MIDI_IN_Pin4 ---[220R]--- | [PC817 LED阳极] | MIDI_IN_Pin5 ------------[PC817 LED阴极]---GND注意在LED两端反向并联一个保护二极管如1N4148防止反向电压击穿发光管。反相器链放置一片74HC04它内部有6个反相器。我们使用其中1个作为输入缓冲U1A另外5个作为复制缓冲U1B-U1F。因为需要8路输出所以还需要第二片74HC04上的2个反相器U2A U2B。在原理图上清晰地标出芯片位号U1 U2和单元A B...。将所有反相器未使用的输入端通过一个上拉或下拉电阻接到Vcc或GND避免悬空导致功耗增加或输出不稳定。这是数字电路设计的好习惯。输出级 每一路输出驱动我推荐使用一个NPN三极管如2N2222方案因为它简单可靠反相器输出 ---[1k基极电阻]--- NPN三极管基极 | 三极管集电极 --- MIDI_OUT_Pin4 | [220R限流电阻] | 5V 三极管发射极 --- MIDI_OUT_Pin5 --- GND当反相器输出高电平时三极管导通电流从5V经220R、三极管、MIDI插座引脚5流向外部设备的光耦形成回路。别忘了在每个MIDI OUT的引脚4和5之间也反向并联一个保护二极管。完成绘制后务必运行“电气规则检查ERC”。KiCad会检查未连接的引脚、电源冲突等常见错误。解决所有ERC报错后再进入下一步。3.3 PCB布局与布线实战要点将原理图导入PCB编辑器后真正的挑战开始如何在一块50x60mm的板子上优雅地放下所有元件并正确连接。布局黄金法则信号流导向确定接口位置首先放置所有“不可动”的接口元件。根据你的外壳设计将1个MIDI IN和8个MIDI OUT插座沿着板子边缘排列。通常输入在一边8个输出在另一边或呈扇形排列。同时固定好电源插座和开关的位置。核心元件环绕将稳压器LM7805放在电源插座附近。将两片74HC04芯片放在板子中央区域这样它们到各个输出端的走线距离可以尽量平均。模拟与数字分区虽然电路不复杂但仍有概念上的分区。以光耦PC817为界其左侧的MIDI输入电路可以视为“模拟接口区”右侧是“数字处理与输出区”。尽量让数字部分的电源走线先经过滤波电容再进入芯片。布线核心技巧电源线优先加粗处理先布Vcc5V和GND线。对于这种低频数字电路电源线宽度建议至少0.5mm约20mil。可以使用“填充区Zone”工具为GND创建一个大的覆铜区这能提供稳定的地参考和一定的屏蔽效果。信号线避免直角走线转弯时使用45度角或圆弧避免90度直角这在高频下会影响信号完整性虽然MIDI速率不算极高但养成好习惯。关键信号线短而直从输入光耦到第一级反相器再到其他反相器输入端的信号线应尽可能短以减少噪声耦合和信号延迟。去耦电容必须靠近确保每个74HC04芯片的0.1uF去耦电容真的放在了芯片Vcc和GND引脚最近的地方布线时先连接电容再到芯片引脚。过孔的使用在双面板上灵活使用过孔跳线可以大大简化布线。例如可以将GND网络主要通过底层覆铜连接信号线主要在顶层走。设计规则检查DRC 布线完成后设置合理的设计规则如最小线宽0.3mm最小间距0.3mm然后运行DRC。检查并修正所有报错包括线距、丝印重叠、焊盘间距等。这是送交制板或自行腐蚀前的最后一道质量关卡。输出生产文件 最终通过“文件”-“导出”-“Gerber”生成光绘文件。通常需要导出顶层铜、底层铜、顶层丝印、顶层阻焊、底层阻焊、钻孔文件等。如果你选择嘉立创等国内板厂他们通常有KiCad的插件或直接支持上传.kicad_pcb文件更加方便。4. 外壳设计与3D打印实战电路板是灵魂外壳则是筋骨。一个好的外壳不仅能保护电路更能让作品看起来专业用起来顺手。4.1 基于Autodesk Inventor的建模思路我使用的是Autodesk Inventor但思路适用于Fusion 360、SolidWorks甚至FreeCAD等任何参数化建模软件。第一步精确测量与草图绘制PCB建模将KiCad导出的PCB 2D轮廓DXF或STEP文件导入Inventor或者根据你最终的PCB尺寸50x60mm和固定孔位置在软件中精确绘制一个“虚拟PCB”。别忘了把板子上较高的元件特别是MIDI插座、电源插座、开关和LM7805如果加散热片的高度都建模出来或留出足够空间。这是避免“合不上盖”的关键。元件建模对于标准件如5针DIN插座、DC电源插座、拨动开关可以去GrabCAD等网站下载现成的STEP模型。如果没有就需要用游标卡尺精确测量实物然后创建简化模型通常只需要外部轮廓和安装尺寸。第二步主体外壳设计我的设计是上下盖结构。下壳Box创建一个底板四周拉起墙壁内部净空尺寸略大于PCB为PCB和元件留出至少1.5-2mm的间隙。在底板上根据PCB固定孔位置创建支柱Boss。支柱中间打孔用于穿过M3螺丝。支柱高度要考虑到PCB安装后其背面的焊点不会碰到底板。通常支柱高度等于PCB板厚1.6mm加上一点余量。在侧壁上根据MIDI插座、电源插座、开关的安装位置和尺寸精确开孔。开孔直径要比元件金属部分略大约0.2-0.5mm方便安装但又不能太大导致松动。对于MIDI插座开孔要能允许其带螺母的尾部穿过。关键技巧在需要从内部用螺母固定的位置如MIDI插座、开关设计螺母卡槽。在壳体内部壁上做一个方形或六边形的凹陷其尺寸刚好能放入一个M3螺母并且有轻微的过盈配合或设计一个小卡扣使得螺母能紧紧卡在里面不会跟着螺丝旋转。这样你只需要从外面拧螺丝就能完成固定装配体验极佳。上盖Cover就是一个平板四周有裙边与下壳的墙壁有搭接Overlap结构增加闭合强度和美观度。在上盖对应下壳支柱的位置打沉头孔让M3螺丝的头部可以埋进去使顶面平整。可以在上盖内侧也设计一些限位柱压在PCB上没有元件的区域防止PCB在壳内晃动。第三步考虑打印工艺拔模斜度所有垂直于打印平台Z轴的立面建议添加1-2度的拔模斜度这样打印完成后更容易从打印平台上取下并且表面质量更好。壁厚外壳壁厚建议至少2mm以确保足够的强度。受力部位如螺丝柱可以加到3-4mm。圆角与倒角在所有内外边缘添加小圆角R0.5-R1mm这能消除应力集中让外壳更坚固外观也更柔和避免划手。4.2 切片与打印参数设置将设计好的STL文件导入切片软件如Cura PrusaSlicer 文中的IdeaMaker。材料选择对于这种功能性外壳PLA或PETG是很好的选择。PLA强度比普通PLA高打印容易PETG则更坚韧耐热性和抗冲击性更好但打印时对平台附着和拉丝控制要求高一些。关键切片参数建议层高Layer Height0.2mm是精度和速度的平衡点。追求更精细外观可以用0.16mm如文中用的0.24mm则打印更快。填充密度Infill20%-25%的网格填充Gyroid或Cubic足以提供很好的强度又不会太耗材耗时。壁厚Wall Thickness设置至少3条轮廓线通常线宽0.4mm即1.2mm壁厚与模型本身的2mm壁厚结合确保结实。支撑Support如果外壳内部有悬空结构如螺母卡槽的顶部需要生成支撑。建议使用“仅从构建板生成”并设置适当的支撑悬垂角度如60度。打印平台附着务必启用裙边Skirt或 ** brim**。Brim能提供更强的附着防止打印大型底板时边角翘起。打印后处理去除支撑小心地拆除支撑材料可以用尖嘴钳或专用工具。孔位验证与扩孔用实际要安装的插座、开关轻轻试插每个孔。如果太紧可以用小圆锉刀或电磨头轻轻打磨扩大。宁紧勿松因为打磨扩大容易松了再补救就难了。装配测试在不安装电路板的情况下先将所有插座、开关装到外壳上再把上下盖合起来。确保一切严丝合缝没有干涉。5. 焊接、组装与调试全流程5.1 焊接准备与元件检查拿到PCB后别急着上烙铁。目检PCB检查板子有无明显的断线、短路、孔未打通等瑕疵。用万用表通断档快速检查电源Vcc和地GND网络之间是否短路——这是最致命也最常见的焊接前故障。元件清单核对对照BOM表清点所有元件。特别要注意电阻、电容的值以及二极管、三极管、芯片的方向。用万用表测量一下关键电阻的阻值尤其是那几颗220欧姆的限流电阻值错了会直接影响电流大小。焊接顺序原则遵循“先矮后高先里后外”的原则。先焊接高度最低的贴片元件如果有然后是电阻、二极管等接着是IC插座如果用了插座、电容最后是高大的连接器排针、MIDI座、电源座。使用IC插座是个好习惯方便日后更换损坏的芯片。5.2 分步焊接与关键操作电源部分先行首先焊接电源插座、开关、LM7805及其输入输出滤波电容。焊接完成后先不要插芯片进行首次上电测试。将万用表调到直流电压档。连接一个9V电源可用电池到板子的电源输入端。打开开关测量LM7805的输出脚中间为地确认好数据手册应该是非常稳定的5V±0.1V。如果电压不对或7805急剧发热立即断电检查。焊接逻辑芯片与去耦电容确保电源正常后断电焊接74HC04芯片或其插座。务必注意芯片方向芯片上的凹槽或圆点应对应PCB丝印上的标记。紧接着焊接紧挨着芯片的0.1uF去耦电容。焊接输入输出接口电路焊接输入光耦PC817注意其内部二极管方向阳极接限流电阻。焊接每个输出通道的三极管和周边电阻、保护二极管。三极管的三个引脚E B C千万不要焊错对照PCB丝印和数据手册确认。最后焊接所有MIDI插座。这些插座焊盘较大需要烙铁温度足够350-380°C并使用足够的焊锡确保焊点饱满。焊接心得焊点质量是关键对于双面通孔板焊接时烙铁头要同时接触元件引脚和焊盘待焊锡熔化并流动覆盖整个焊盘后再移开烙铁。焊点应呈光滑的圆锥形避免虚焊焊锡只挂在引脚上未与焊盘融合或冷焊表面粗糙无光泽。焊接完成后用放大镜检查是否有焊锡桥两个相邻焊盘被焊锡意外连接特别是芯片引脚之间。用万用表通断档复查。5.3 系统组装与功能测试板级测试将所有元件焊接完毕再次检查无误后进行板级功能测试。准备一台有MIDI输出的设备如键盘、音序器和一台有MIDI输入的设备如合成器。将输入设备连接到分配器的MIDI IN。将一台输出设备连接到分配器的任意一个MIDI OUT。上电在输入设备上弹奏或发送时钟信号。观察输出设备是否有反应。逐一测试所有8个输出口确保每一个都能正常工作。装入外壳将测试好的PCB用M3螺丝固定在底壳的支柱上。螺丝不要拧得过紧防止压裂PCB或支柱。将MIDI插座、电源座的螺母从外壳外侧拧紧固定好面板元件。连接好面板元件到PCB的导线如果用了排线。合上上盖拧紧四周的螺丝。整机压力测试连接尽可能多的输出设备至少4-5台。发送密集的MIDI数据如快速的连续音符、系统独占信息等。用MIDI监视软件如MIDI-OX或在接收设备上监听检查是否有音符丢失、卡顿或乱码现象。长时间运行如1小时触摸LM7805和74HC04芯片检查温升是否在可接受范围微温正常烫手则需检查负载或散热。6. 常见问题排查与进阶优化即使按照指南操作也可能会遇到一些问题。这里列出一些常见故障和解决方法。6.1 故障排查速查表故障现象可能原因排查步骤完全无反应所有输出无效1. 电源未接通或故障。2. 核心芯片74HC04损坏或方向焊反。3. 输入光耦损坏或接反。4. 电源稳压部分故障。1. 测电源插座电压测7805输出是否为5V。2. 断电检查芯片方向测Vcc引脚是否有5V。3. 检查输入光耦方向用万用表二极管档测LED端。4. 检查7805及输入输出电容。部分输出口无效1. 对应输出通道的三极管损坏或焊错。2. 该路反相器损坏。3. 对应限流电阻虚焊或值错误。4. MIDI插座引脚虚焊。1. 对比正常通道测量三极管各极电压。2. 用逻辑笔或示波器测反相器输入输出信号。3. 测量该路220欧姆电阻值。4. 补焊MIDI插座。信号不稳定时有时无1. 电源纹波大去耦电容失效或未焊。2. 存在虚焊或焊锡桥。3. MIDI线缆接触不良。4. 接地不良。1. 用示波器看5V电源纹波检查所有0.1uF电容。2. 仔细检查所有焊点特别是芯片引脚。3. 更换MIDI线测试。4. 检查GND覆铜连接是否完好。通信距离短或易受干扰1. 输出驱动电流不足。2. MIDI线缆质量差或过长。3. 设备间地线环路引入噪声。1. 确认输出限流电阻为220欧姆检查三极管放大倍数是否过低。2. 使用屏蔽好、线径粗的MIDI线长度不超过15米。3. 确保所有设备共地良好或尝试使用带隔离的分配器本项目已通过光耦隔离输入。6.2 进阶优化与扩展思路这个基础版本已经非常实用但你可以根据自己的需求进行升级增加状态指示灯在原理图中我们预留了LED输出。可以在PCB上增加一个LED和限流电阻连接到第一级反相器输出后。当有MIDI信号通过时LED闪烁非常直观。注意LED电流一般5-10mA需计算合适的限流电阻R (5V - LED压降) / 所需电流。升级为智能分配器使用一颗单片机如ATmega328P STM32替代逻辑芯片。这样可以实现通道过滤例如只转发特定通道的信息、通道重映射、MIDI合并等高级功能。需要学习简单的单片机编程和MIDI库的使用。改善电源使用更高效的DC-DC降压模块如MP1584替代LM7805减少发热兼容更宽的输入电压范围如12V-24V。增强保护在电源输入端加入反接保护二极管和自恢复保险丝。在MIDI输入/输出端口加入TVS瞬态电压抑制二极管防止静电或浪涌损坏芯片。美化外壳打印完成后可以用砂纸打磨层纹然后喷涂底漆和面漆。甚至可以使用水转印或贴纸来个性化你的设备。制作这样一个MIDI分配器最大的收获远不止一个工具。它让你透彻理解了每天在用的MIDI线背后流淌的电流与逻辑让你掌握了从电路构思、PCB设计到机械封装的全流程技能。下次再遇到设备间的信号问题你看到的将不再是黑盒而是一个个清晰的电路节点。这种掌控感才是DIY硬件最迷人的地方。