一个IO的方波输出一直呈现高电平,排查发现是另一个IO搞的鬼

朋友最近在设计一个项目,硬件设计完成后,他在调试的时候,发现了一个问题。就是电路中有一个IO口是做方波输出的,可是他测试出来的结果却是,这个IO一直都是输出高电平,理论应该输出方波才对。电路如下图。



由上图可以知道,电路实现一个电平转换的功能,把3.3V信号转换成5V信号,3.3V信号的那一端是接到MCU的IO上,软件应该是让这个IO输出方波。我告诉朋友,让他断开Q18,然后测量IO的输出端,看这时候是方波还是高电平。如果是方波,那么前端没有问题,需要排查后端的问题。如果还是高电平,那么就是前端IO输出有问题,需要检查程序设计是否正确。


朋友按照我说的方法去测试了,结果IO输出是一个方波,但是方波的高电平是3.3V,但是低电平是1.68V。怪不得5V信号处一直是高电平,因为Q18是一个NMOS,当低电平1.68V输入到S极时,VGS压降是1.65V,NMOS没有满足导通条件。所以5V信号一直是保持高电平状态。



至于为什么断开Q18后,IO口输出虽然方波,但是低电平是1.68V,不是0V。如果没猜错的话,应该有地方把IO的电平拉住了。我告诉朋友,把R124去掉再试,并且要检查这个网络还有没有连到其它地方去了,或者让软件工程师把IO设置成推挽输出,各种可能都试一下。


过了一段时间后,朋友告诉我,问题解决了。我好奇地问他是什么原因造成的。他告诉我原因:这根net连接了MCU的两个I/O口,一个I/O输出的是方波,另外一个I/O输出的是高电平,高电平+方波输出后的是方波(高电平3.3V,低电平1.68V),断开另外一个I/O就OK了。

举报
评论 0