以前做项目时碰到个典型痛点:手头外设有的只认 IIC,有的专吃 UART,但主控板接口资源紧俏。
索性搭了个双接口转接模块,既能实现两种接口的模式切换,还能兼容不同电平的外设,下面聊聊这个电路的设计细节和实际调试里踩的坑。
这个模块的核心逻辑是 “接口选通 + 电平适配”:
左侧 P1 是对外通用接口,兼容 IIC(SCL/SDA)和 UART(TX/RX)信号;
中间 Q1、Q2(2N7002 MOS 管)做信号选通,避免两种接口的信号串扰;
U5、U6 负责电平转换,解决外设与主控的 3V/5V 电平差异;
右侧 U4(STM8S003)做模式切换逻辑、状态检测,搭配按键、拨码开关做配置。
1
接口选通:用 MOS 管替代专用开关芯片
一开始想直接用电平开关芯片,但成本偏高,且我们的信号速率不高(IIC≤400kHz、UART≤115200bps),最终选了 2N7002 N 沟道 MOS 管,导通电阻仅几欧姆,信号损耗可以忽略。
电路里 Q1、Q2 的栅极配合通道切换信号:当 S1 拨到 IIC 档时,MOS 管导通,SCL/SDA 信号通到 P1;切 UART 档时则断开 IIC,通 TX/RX。
这里踩过三极管的坑:之前用 NPN 管做选通,截止态漏电流偶尔会触发 IIC 总线误动作,换 2N7002 后,其截止态漏电流<1μA,串扰问题直接解决。
2
电平转换:双向适配的关键
U5、U6 是双向电平转换芯片,SEL 脚接 S1 开关实现通道切换:S1 拨 IIC 档时 SEL 高电平,芯片切 IIC 通道;拨 UART 档时 SEL 低电平,切 UART 通道。
电源脚 VDD 接 3V(主控电平),配合 MOS 管可实现 “外设 5V→主控 3V” 或 “主控 3V→外设 5V” 的双向转换。
电源脚旁的 100nF 去耦电容必须贴紧芯片引脚,我画 PCB 时一开始把电容放远了,上电时电压波动导致电平转换出错,挪到芯片脚旁后稳定性立刻提升。
这个模块成本控制在十几块,试接 IIC 温湿度传感器和 UART 蓝牙模块都很顺畅。
我要赚赏金
