发新帖本帖赏金 20.00元(功能说明)我要提问
返回列表
打印
[电路/定理]

给你的串口装个眼睛

[复制链接]
13833|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 Gavin3389 于 2021-6-19 14:20 编辑

但凡是做MCU开发的,那入门课程必定是环境搭建,IO点灯,串口收发数据。。。。。。
从小白满头大汗的实现了点亮LED的喜悦,
到串口助手能收发MCU数据的洋洋自得,
是每一个工程师入门的体验课。

在跨入门槛之后,开始各种模块的学习。。。

再之后,参与了项目,
把毕生所学,熔炼于一体,弄得遍体鳞伤仍不能满足BOSS的一个眼神。。
终于,咬咬牙,放一滴精血,瞬间突破,蜕变成型,交付试用,一群江湖人士围观品头论足。。。
欢呼声中,刚刚得到一丝释放,正准备稳固修为。

然而,前方现场的一个电话,迎来了噩梦,又坠深渊。。。

喂,客户说不通讯啊,怎么办?
不会啊,咱在家里都试过了,是不是他们改协议了?
不知道,反正客户说,他们不知道,让咱们解决。@#%……!¥!……
那个#!¥加电了么?要不。。。你连电脑看下。。。要不,换个板子试试。。。。。

刚刚准备名扬江湖。。。哎,不成想成了反派。。。。

今天准备介绍下自己设计中,使用的一个小技巧,非常简单,却减少了不少现场的麻烦。

         -----给自己的串口,按个眼睛

此处,默认大家已精通IO和串口的使用。(大神请沉默,小白请参照开发板例程自行学习。)
什么是眼睛呢,就是给串口增加个LED指示收发状态。

先说下IO
IO驱动LED,硬件电路都怎么连接呢?
一般有两种接法,AB两种接法,都可以实现我们的目的。但是,我一般选择B
为什么呢?
A, IO为高时,LED亮,IO为低时,LED灭。电阻为上拉电阻,IO驱动LED亮灭。IO电流加载到LED上,长期点亮LED,会发现有些发烫。
B, IO为高时,LED灭,IO为低时,LED亮。由电源驱动LED,IO不带负载。LED常亮,也基本不会发热。

说完了IO,回到主题,说我们的串口,我们的串口,功能是通信,绝对不允许任何辅助功能影响到通讯的稳定性,也不要给串口带来压力。

MCU的IO是TTL电平,我们使用的串口是标准的232,给串口加个眼睛,放到哪个环节比较合适呢?经过上面驱动IO的引入,想必已经知道了,我打算加载到UART处,即与TTL相连。原理如下:


在这里,采用上述B的方式连接电路,不会对串口收发产生影响。
抓一张成品板工作时候的照片,效果一般。
实际效果好的多,一排排LED闪烁起来,让一些人不明觉厉啊。特别的有科技感。


自从加了这个LED之后,现场再打电话来
喂,串口又连不上了,咋回事?
啊?看看灯在闪么?
有个蓝灯闪,绿灯不闪。@#%”
检查下波特率匹配的对么?然后查查连接线
线没事啊?。。。我去,波特率设错了,没事了,没事了。。。
嘟。。嘟。。嘟。。

没准哪天boss过来,那给谁来一下,客户说最近咱们现场支持的不错,有问题响应很快嘛。。

会计过来,那给谁,这是你这个月的工资条。。。。

哈哈哈哈。。。。。


当然了,采用这种方法,只是直观的给我们一种视觉反馈,并不能解读数据收发的内容。
但这种简单的形式,给交流和问题判断上,提供不少帮助。
串口真的很简单,但是又真的出一些问题,不是每一个人都是工程师,但作为设计人员,给自己,给别人一种方便,或许也是一种提升。


最后,蓝色的LED会显得板子高大尚很多,推荐用蓝色配合黄绿色,区别收发状态。




使用特权

评论回复

打赏榜单

21小跑堂 打赏了 20.00 元 2021-06-21
理由:恭喜通过原创文章审核!请多多加油哦!

相关帖子

沙发
deerdda| | 2021-6-23 07:57 | 只看该作者
如果大规模量产,老板可不高兴,最起码把蓝色灯换个绿色的,那也可以节省不少

使用特权

评论回复
板凳
forrest11| | 2021-6-24 09:38 | 只看该作者
A 接法LED比B接法发热更多?这是胡说。长亮时,功耗基本一样的。

使用特权

评论回复
地板
Gavin3389|  楼主 | 2021-6-24 17:59 | 只看该作者
forrest11 发表于 2021-6-24 09:38
A 接法LED比B接法发热更多?这是胡说。长亮时,功耗基本一样的。

你可以试试,只是建议,选择权在你。
不是指LED的功耗,是看LED的电流是哪里提供的。

使用特权

评论回复
5
zchong| | 2021-6-25 05:23 | 只看该作者
不是胡说,是不能按照A这么干。

使用特权

评论回复
6
forrest11| | 2021-6-25 18:23 | 只看该作者
是不能按照A的方法做,因为A方法是错误的做法。这样IO为高时,直接驱动LED. 没有任何电阻限流。

使用特权

评论回复
7
Gavin3389|  楼主 | 2021-6-26 10:30 | 只看该作者
forrest11 发表于 2021-6-25 18:23
是不能按照A的方法做,因为A方法是错误的做法。这样IO为高时,直接驱动LED. 没有任何电阻限流。 ...

也不能说A是错的,有很多人都在这么用,我自己的电路也有这么用的,
因为这个电路太简单了,反而被忽略了,没有大的问题,但是不好。

就像你说的,IO直接驱动LED,这样的话,IO管脚是带一定负载的。
而如果是B,可以看成是电源驱动LED。

可以试试,
目前我的所有电路,都选用了B

使用特权

评论回复
8
Gavin3389|  楼主 | 2021-6-28 08:49 | 只看该作者
king5555 发表于 2021-6-27 18:29
A不好吧,输出Hi必须是高阻抗。电阻串联在LED就正确了。

恩,是不好。

使用特权

评论回复
9
xxdcq| | 2021-7-1 12:00 | 只看该作者
加入灯后会不会引起电平不匹配,不要把所有用户的设备串口都想成硬刚,特别是老外的东西,他为什么要这么设计

使用特权

评论回复
10
hutashenzhou| | 2021-7-1 16:41 | 只看该作者
额,要是经常 长时间 点亮的灯,A方案就是错的! 还有直接从串口上引LED,可能会引起误码的,尤其是波特率高时,还有使用波特率有点误差的单片机时!

使用特权

评论回复
11
caizhiwei| | 2021-7-2 08:03 | 只看该作者
这种软文,就是混混赏金的,说实话,电路设计不合理,这样会影响串口数据波形的,波特率高一点就完蛋了~

使用特权

评论回复
发新帖 本帖赏金 20.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

536

帖子

3

粉丝