前言
串口相关产品往往要求有数据收发时LED闪烁,我们经常会用软件实现,在MCU内注册一个定时器,有数据发送时就闪烁一段时间。软件点灯这种方式存在两个缺陷,一是接收方向不好实现;二是定时器一般用固定频率,不好表达数据传输有快有慢的效果。在网上看到一个纯硬件实现的闪灯电路,经实践证明可行,记录在这里。
串口数据传输指示灯电路
如上图,最左边是TTL电平串口的Tx, Rx 管脚,两个闪灯电路是一样的,LED的颜色可以不一样,此时BOM也不一样。S8550 是 PNP三极管,E极(2脚)电压比B极(1脚)电压高到一定门限,三极管导通。
串口无数据传输时,TTL 电平被拉到高电平(3.3v),并保持,三极管Q5(Q13)断开。在上电的过程中,电容 C20(C24) 被3.3V电源充电,LED也会亮。当电容电压升高后,三极管Q1(Q9)也断开,LED灭,并一直保持。
当有数据收发时,串口TTL电平会有高有低。被拉低的时候,三极管Q5(Q13)导通,电容C20(C24)开始放电,放电过程中电压不断减小,低到一定程度,三极管Q1(Q9)被导通,此时LED灯亮。当串口TTL电平再被拉高时,两个三极管依次被断开,LED灭。
这个电路有两个参数要调节的:
- LED灯颜色不一样,往往电阻和电压要求不一样,硬件要调整出预期的亮度。
- C20/C24 这个电容的值对闪灯的效果有影响,电容值跟串口波特率一起调整,看效果,然后找到合适的电容值。
总结:
- 纯硬件实现,省了MCU pin脚。代价是增加了物料成本和 PCB layout面积。
- 闪烁效果好,LED闪烁快慢长短跟数据速率和吞吐量相关联。
- 这个电路对数据收发质量影响很低,测试过3M的波特率,收发正常。
(END)