我听说,当配置为输入(相对于默认输出)时,将引脚悬空在MCU上对引脚不利,并且最终可能导致其过早失效。这是真的?注意,在本例中,由于输入视频信号,该引脚悬空在0.3V至1.3V之间。当以3.3V工作时,有时会落在0.8V-2.0V的无人区域内。
我听说,当配置为输入(相对于默认输出)时,将引脚悬空在MCU上对引脚不利,并且最终可能导致其过早失效。这是真的?注意,在本例中,由于输入视频信号,该引脚悬空在0.3V至1.3V之间。当以3.3V工作时,有时会落在0.8V-2.0V的无人区域内。
Answers:
问题:
仅仅因为无法确定引脚的状态,就将引脚配置为输入悬空很危险。就像您提到的那样,由于电路的原因,您的引脚有时处于低电平,有时处于无人区,有时可能变为高电平。
结果:
本质上,浮动输入绝对会导致芯片操作不稳定或不可预测的行为。我注意到,有些芯片只是通过将手靠近电路板而冻结(我没有佩戴ESD腕带),或者有些电路板每次加电时会有不同的启动行为。
原因:
这仅仅是因为如果该引脚上存在外部噪声,则该引脚会振荡,这会耗尽功率,因为CMOS逻辑门在切换状态时会消耗功率。
解决方案:
如今,大多数微控制器也具有内部上拉电阻,因此可以防止这种情况发生。另一个选择是将引脚配置为输出,以免影响内部。
这比仅仅处于未知状态或不必要地切换要差一些。如今的数字电路大多为CMOS类型,其晶体管可在高侧和低侧进行切换。当我们有清晰的1和0时,它们要么截止要么饱和,这是晶体管进入的两个最有效状态。它用于模拟放大器,但效率却不如极限,这意味着浪费更多的功率与晶体管中的热量。在最坏的情况下,高端晶体管和低端晶体管都会泄漏(因为该引脚实际上既不是高电平也不是低电平),然后当它们试图将内部状态都驱动为高电平时,它们会结合在一起以在芯片内产生明显的电流。和低-可能在连锁反应中对下一个门也是如此。即使没有电源,热量也可能成为问题。IntelliChick的解决方案仍然适用。
对于也连接到ADC的引脚,某些微控制器提供禁用数字输入缓冲器的功能,以防止出现此问题和泄漏使信号失真。
实际上,主要作用是增加功耗。如果某个引脚实际上是悬空的,而不是连接到某个不确定的电压源,则可能会发生振荡,这以及增加的功耗可能会在系统的其他部分引入噪声。任何能够用于ADC或比较器输入的引脚都将具有断开数字输入缓冲器的功能,以避免出现此问题。(在AVR上为DIDR,在PIC上为ADCON1 / ANSEL)
通常,将输入引脚悬空是一个坏主意,因为这可能会导致:
a)功能问题-输入状态未知,切换(例如,可能会触发带有未定义ISR的中断,这会导致处理器挂起)
b)功耗增加-输入门极有可能类似于CMOS反相器。采用这种结构,当输入距离任一供电轨足够远时(例如,半电源时),将不断流过大量交叉电流。
c)如果流过交叉电流,则已知为热载流子注入实际上会降低设备寿命的现象。输入门可能设计为仅用于正常开关而不是连续导通,因此设备可能会发生灾难性故障。但是请注意,可能需要在高温下将设备置于这种状态数百小时才能发生。
注意a)和b)是最有可能遇到的实际问题。至于c),发生问题的可能性较小,但为什么要冒险?
根据任何EMI,输入将在0和1之间切换。我不确定这是否会导致输入失败,但会导致使用更多功率,因为从0到1到0的过渡。
将其设置为输出并完成它。