大家好,又见面了,我是你们的朋友全栈君。
Altium designer WARNING系列: WARNING:Net XXX has no driving source
这篇博客填一下以前一篇关于Altium designer ERROR的坑原文章 本次文章以基于AT89C51的函数信号发生器为例:https://blog.csdn.net/toyjis/article/details/105886632
在我们在画完原理图后,很多人都会选择进行编译,一方面可以检查电气关系是否正确,一方面可以确保在后续PCB设计中不会因原理图出错而返工。但是,在当我们编译后,经常会出现WARNING:Net XXX has no driving source这样的警告,而且这种警告经常会出现在单片机的晶振和复位网络中,本文将会从报错原因,产生原理和解决方案几个部分进行讨论。
下图为编译结果,其中No.4warning和电源有关,详见文章https://blog.csdn.net/toyjis/article/details/105567531
报错原因: 首先,我们尝试翻译一下这个warning是什么意思:Net—网络,RST—我们的复位网络名称,has no—没有/缺少,driving source—驱动源。连起来就是说:在网络RST/XTAL1/XTAL2中,没有驱动源。这就要求我们知道,什么东西是驱动源,如果我们找到驱动源,然后加入到网络中,这个问题估计就会解决。
什么是驱动源呢? 在电路中分为有源器件和无源器件,他们最本质的区别就是内部有无电源,一般的电阻、电容、电感等都是无源器件,ic、模块等都是有源器件。辨别他们的技巧就是:需要加电才能表现特性的称为有源器件,反之,则为无源器件。
在搞明白报错原因后, 我们看一下为什么会有这个warning。
产生原理:
我们可以在messages里双击warning,将错误点在原理图中定位,如下图所示:
我们分析一下为什么会有警告:
1、RST电路。我们看一下RST电路两端的元器件,在MCU部分,RST接入51单片机芯片第九脚(RST),仔细观察芯片表示,RST脚是一个向内的箭头,它代表input(输入),这个脚只能单向输入,肯定不能输出作为一个电源或者信号源。再看复位电路部分,RST分接到了电阻R1、电解电容EC1和开关K0上,前面在报错原因部分我们就已经说了,阻容感都是无源器件,而开关在断开时就是断路,更不可能是驱动源。很显然这个电路没有驱动源。 2、XTAL1/XTAL电路。同理,我们看一下这两个电路,芯片端还是input属性,连接元器件也是无源器件。
通过分析我们已经找到了为什么出现错误,现在我们看看这么解决问题。
解决方案:
1、最生猛的解决方案——直接加上电源。但是很显然这是不行的,RST电路接入电源后一直都是高电平,芯片的复位电路就报废掉了。XTAL是晶振电路,加入电源后整个芯片时钟都会崩溃(错的!!) 2、修改元器件。已知存在有源晶振(oscillator),我们接入其测试一下(省去滤波电容)。
芜湖,换汤不换药,有源晶振也不行。
那么就没办法了么? ——办法还是有的,只不过是很狗的办法
**1、**仿真可以通过,不如直接忽略warning。 **2、**实在嫌弃warning的话,可以放置一个不进行ERC检测命令,例如有源晶振的第一脚。 **3、**还可以修改芯片引脚的属性,改成passive即可,这种方法本质上没改变芯片,但是我个人很少用。
以上三种方法都是比较鸵鸟的行为,算是在某种程度上逃避了warning,但是这种逃避是在我们经过分析后的结果,通过分析我们知道了warning无害,所以我们可以大胆的开始进行PCB设计。而对于那些不知道的warning,我们不妨刨根问底一下!
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/188670.html原文链接:https://javaforall.cn