IIC总线小问题诱发的胡思乱想
2赞昨天又遇到一个和IIC总线相关的小问题,虽不起眼,但还是有点意思的。但是往大了说,这个问题应该属于信号完整性吧。
因为这个小问题,解决之后有那么一丁点的沾沾自喜,完了就是一大堆胡思乱想,记录在此,视为告诫。
变更动机:
要把传感器通过弹簧线从板子上延伸出来,从而在有需要的时候,可以变更传感器和仪器主机之间的距离。
原始状态:
更换连接线之前,仪器能够正常工作,而且精度,重复性,一致性都很好。
变更结果:
换了弹簧线之后,传感器读数出现异常。
思考解决:
看到现象之后,第一反应是时钟线和数据线接反了,量了一下,发现没问题。又担心自己记错了引脚定义,干脆调换了一下时钟和数据线,更换之后,问题依旧。
又想了想,感觉是弹簧线的问题,由于是漆包线,绝缘是OK的;连线也是OK的,信号可以传输;但是,四芯的线距离非常近,几乎是没有间隙,所以怀疑是信号之间存在干扰。
告诉领导之后,领导瞬间悲伤了,以为要重新做方案。这个时候我想到了手头弹簧线结构的特殊性,四根线中,蓝色线是被白色线包裹的,所以一个解决方案成型了。想必聪明的读者也想到了——利用白色线做地线,形成屏蔽层,将时钟线和数据线隔离开来。略微思索了一下,选择将蓝色线定义为IIC总线的SDA,白色线作为GND。抱着试试看的态度,重新接线,问题搞定。
理论依据:
为什么能够快速的解决方案?归功于前一段时间的SHT11(IIC接口)排故,那时候曾仔细研究SHT11的datasheet,里面有一段话是这样说的:“如果SCK和DATA信号线相互平行并且非常接近,有可能导致信号串扰和通讯失败。解决方法是在两个信号线之间放置VDD和/或GND,将信号线隔开,和使用屏蔽电缆。”虽然没能清晰地记住这段话,但还是有些印象的。
浮想联翩:
很多时候我们都喜欢“重点”,就像我们在读中小学的时候,总喜欢或者被要求背诵古诗、名句,但往往不是全首背诵,只是挑名言名句,背诵其中一部分。有的时候真的会不妥,比如所谓的“唯女子与小人难养也”听起来甚至有点侮辱女性,但如果加上后面一句“近之则不逊,远之则怨”,是不是意味瞬间就变了?
还有一句我比较不喜欢的话叫做“以德报怨”,意思不用多说了,很高尚的一种做法。但是,这也是被人曲解出来的,“以德报怨”的原句出自《论语· 宪问》:“或曰:‘以德报怨,何如?’子曰:‘何以报德?以直报怨,以德报德’”。所以,在怨恨的时候,以怨抱怨是无法化解怨恨的,但正确的做法也不见得就非得要求自己用仁厚和慈悲去宽容,正所谓过犹不及,以德报怨又何尝不是一种纵容?所以,为什么不以直报怨呢?只要正直、公正地对待就可以了。付出应该针对那些对自己好的人,而不该浪费在有负于自己的人身上。
跑题是老毛病了,好在不用再考作文了^_^
作为工程师,我们的工作是很严谨的,所以断章取义有时候会是不负责任的做法,所以做事的时候不妨多一点耐心,不要碰到一点点问题就跑到网络上去找人帮忙,据我的个人经验大多数问题都是没有人理会的。只有真正经过查阅资料、思考、尝试解决无果以后,提出有意义的问题(往往还要有一定的普遍性),才会有人去研究和解答。查资料也不能只是简单地挑自己想要的东西看,最好也不要只看别人总结出来的经验文章,就像生病了要对症下药,别人的药也许吃到你嘴里就出事了,当然没那么严重,类比到工作中是也许会多走一些弯路。
说这么多,总归一句话,如果想有所提高,总想捡现成的、没有自己的思考是要不得的。