14
\ \ begingroup \美元

如果没有连接到VCC或GND,微控制器输入GPIO管脚的逻辑读数(1或0)可能会浮动;有人说是因为周围的射频干扰。

当一个浮动的GPIO输入引脚电压受到射频干扰的影响,使其落在未定义的逻辑范围内(例如树莓派的0.8V - 2.2V),它会导致浮动引脚的逻辑值发生变化。

我想知道这个问题是否可以通过微控制器的设计来解决。即扩大逻辑电压范围,低> <6V高>6V。因为干扰很少能达到如此高的电压。

\ $ \ endgroup \ $
6.
  • 9.
    \ \ begingroup \美元 无论开关阈值是什么,如果输入上没有驱动器,那么它将需要一个上拉或下拉或类似的东西,以迫使它到一个已知和有效的水平。一般来说,如果射频噪声是一个问题,电容器是一个更好的解决方案,而不是拉上或拉下。但是上拉/下拉仍然需要确保输入处于正确的状态。 \ $ \ endgroup \ $-MKEITH. 19年12月27日4点34分
  • \ \ begingroup \美元 所以你将开关的一端连接到12V,另一端连接到输入引脚。你按下开关,现在输入引脚看到12V和读取高。你松开开关,输入引脚仍然看到12V,因为它是一个电容。所以它的读数仍然很高。然后呢? \ $ \ endgroup \ $-User253751. 12月27日13:18
  • \ \ begingroup \美元 这并不一定是射频干扰造成的,这对我来说是一个新问题。因此,试图修复mcu设计的结果是不正确的路径。你可以用电阻来解决这个问题,这也是为什么它们有时被包含在gpio板中的部分原因。 \ $ \ endgroup \ $-老旧的计时器 19年12月27日14:35
  • 2
    \ \ begingroup \美元 "...然后它会导致逻辑读取浮动。我想知道这个问题能不能解决……”-这对逻辑阅读来说不是问题。如果输入是浮动的,那么它的状态是未定义的正确,软件应该忽略逻辑层-就像它应该忽略内部寄存器中未定义的位一样。它可能会导致电流增加或电磁干扰注入的干扰,但这些不是逻辑问题。 \ $ \ endgroup \ $-布鲁斯·阿伯特 19年12月27日17:05
  • 2
    \ \ begingroup \美元 射频干扰?有时,只需在具有浮动I/O输入的MCU上轻轻一挥,就可以切换其逻辑状态。这只需要很少的静电荷。 \ $ \ endgroup \ $-glen_geek 12月27日23:14
29
\ \ begingroup \美元

博士tl;因为有一些现实问题阻止我们随意设置I/O标准和其他规范。如果情感表达是如此简单,我们很多人就不会有工作或论文项目了。

要开始,有很多实际原因,为什么我们不仅增加I / O电压。它并不像一些人在一张纸上交叉3.3V并写12V那么简单。用于处理器的现代CMOS工艺旨在为快速,低压装置创建薄栅极氧化物。生长厚栅极氧化物所需的处理步骤既昂贵又对性能和产量产生不利影响。大量廉价IC的好处是他们有一个简单的过程 - 3V3芯片可能具有所生长的所有栅极氧化物,以承受3.3V +安全系数。您现在推出了多个新的掩模(加上光致抗蚀剂和蚀刻步骤),也许是倍增或三倍的价格。

同样,高速电路的功耗也是个问题。特别是对于快速信号,由于电容和串联阻抗,高电压波动意味着高功率耗散(在电压平方的顺序上)。此外,如果您必须将核心保持在3.3v以保持在功率/热预算内,您将需要添加电平移动,这本身会产生额外的热量,消耗额外的功率,并导致用户产生额外的成本。

你的阈值也是相当随意的——一个尖锐的6V阈值需要一个电压比较器,这导致了它自己的不稳定性问题,在某些反馈结构可能很好地出现在浮动引脚。对于一个合理的I/O缓冲器,阈值将反映缓冲器中晶体管的门限值电压,这与我们的制造限制有关。你会遇到同样的穿透问题,但现在更糟糕了,因为两个fet所在的区域更宽了,这要归功于更高的轨道,而且供电电压更高,导致更多的功率损耗。你使问题变得更糟而不是更好。

现在,随着所有的说法,只需使I / O阈值更高即可解决浮动信号问题。鉴于栅极氧化物的惊人电阻,浮动销可以容易地达到6V - 特别是在附近有一个> 6V轨道!

当所有这些都说并完成时,我们在一年内推迟了筹码生产,同时开发了制造过程,并建立了在1V2和12V I / O中具有高性能核心的混合电压系统的合同。我们已经推动了电力预算,这意味着我们必须购买更昂贵的散热器和粉丝以及更大的电池和电源,我们也没有可靠地修复了这个问题。

或者,您可以在Digikey上购买10000个上拉/下拉电阻的胶带/卷轴,或者在深圳少。您的PCB制造合作伙伴比不是没有,您的PCB制造合作伙伴手上已有一些标准的上拉/下拉电阻,装入其拾取机器,并准备放置。或者,您的芯片可能已经包括上拉/下拉,因为这些可以在使用弱MOSFET的某些过程中公平地制造。

\ $ \ endgroup \ $
3.
  • \ \ begingroup \美元 谢谢你,莫妮卡,我刚接触情感表达。我不明白“考虑到栅极氧化物惊人的高电阻,一个浮动引脚可以轻易达到6V”是什么意思。同时,我看到增加阈值电压有很多缺点,我们真的不想把这个变成现实。然而,似乎增加阈值电压真的可以避免环境因素导致逻辑读数过高,对吗?阈值电压越高,环境因素越难使输入引脚达到逻辑高? \ $ \ endgroup \ $-mannok 21:24 12月27日
  • 4.
    \ \ begingroup \美元 @mannok这不正确。当浮动接地恰好是最低电压导轨时,引脚可以在任何任意电压下按照惯例.浮动引脚可以像逻辑低一样容易地读取逻辑,或者它可以在导轨之间存在一些不幸的电压。本身的地铁没有什么魔法。没有什么比该引脚的杂散电荷表示,必须使销电压更靠近VSS轨道而不是VDD轨道。 \ $ \ endgroup \ $-纳米拉德 21:33 12月27日
  • 1
    \ \ begingroup \美元 公平地说,老板本可以找一个更合理的稻草人来问同样的问题。“为什么芯片本身不包含一个拉上/下电阻,如果一个总是需要的,考虑到放入芯片可能比放入一个单独的分立组件更便宜”)。除了“这不是标准”之外,我不确定我知道这个问题的答案。 \ $ \ endgroup \ $-abligh 19年12月28日18:35
11
\ \ begingroup \美元

它已经解决了。一些微控制器内置于可以通过软件启用的上拉和/或下拉电阻。但是,当微控制器没有固件时,这些都不是活动的,所以您可能仍然希望在供电,重置或固件下载期间保持外部电阻以保持稳定状态。

\ $ \ endgroup \ $
    9.
    \ \ begingroup \美元

    微控制器的逻辑读数(1或0)在不连接VCC或GND的情况下,可能会在输入GPIO管脚上浮动,有人说这是由于周围的射频干扰。

    是的,还有静电荷。

    当受RF干扰影响的电压使得GPIO输入引脚电压下降在未定义的逻辑范围内(即覆盆子PI 0.8V - 2.2V),因此它导致逻辑读数浮动。

    是的,这可能会导致内部问题。在图1下的输入阶段,未定义的逻辑状态可能导致上、下晶体管同时打开。(在适当的逻辑级别下,每次只有一个是打开的。)结果是一个叫做“穿透”的条件,一个高电流(对设备来说)将流过设备。如图2所示。这将导致闸门过热。

    在此输入图像描述

    图1和2来自TI的申请报告慢速或浮动CMOS输入的含义

    文章接着解释道:

    CMOS和BiCMOS家族都有CMOS输入结构。这种结构是一个逆变器,由一个p通道到VCC.并且如图1所示的N频道到GND。利用低电平输入,P沟道晶体管接通,N沟道关闭,导致电流从V流过CC.把节点拉到高状态。在高电平输入时,n通道晶体管打开,p通道关闭,电流流向GND,将节点拉低。在这两种情况下,没有来自V的电流流动CC.接地。但是,当从一个状态切换到另一个状态时,输入交叉阈值区域,使n沟道和pChannel同时打开,在V之间产生电流路径CC.和GND。这种电流浪涌是有害的,这取决于输入处于阈值区域(0.8到2 V)的时间长度。电源电流(ICC)可以升至每次输入的几毫安,达到大约1.5 V VI的峰值(见图2)。这不是在特定设备中推荐操作条件表中指定的数据表指定的输入转换时间限制内切换状态时的问题。[强调我的。]

    所以,他们说,“(1)驱动输入到定义的逻辑级别。(2)快速切换逻辑电平。”

    我想知道这个问题是否可以通过微控制器的设计来解决。即扩大逻辑电压范围,低> < 6v高> 6v。因为干扰很少能达到如此高的电压。

    那会使事情变得更糟。

    • CMOS门的输入阻抗是如此之高,达到6v并不困难。
    • 现在任何射门都成了一个更严重的问题。在图2中,我们可以看到在5v电源上的峰值电流是4ma。由P = V × I可以计算出栅内的峰值功率耗散为20 mW。如果我们使用12v逻辑,峰值功率将增加到48mw在4毫安-但实际电流可能会更高。
    • 即使有良好的逻辑水平和快速的转换,芯片内部产生的热量也会随着频率的增加而增加,因为每秒有更多的转换。

    多年来,随着器件变得越来越小,逻辑电源电压一直在降低,以解决功率密度问题。5 V逻辑一度是标准逻辑,现在我们有3.3 V或更低的逻辑,以减少功耗和管理热量。

    TI的这篇文章值得一读。(而且你的英语读起来很好。)

    \ $ \ endgroup \ $
    6.
    • \ \ begingroup \美元 嘿@Transistor,非常感谢你的解释。看了您的答案,我在想,增加阈值电压确实可以解决逻辑输入的不明确,因为射频干扰和静电荷很少能达到如此高的电压水平,对吗?然而,尽管这可以修复模糊的逻辑阅读,但也有缺点。即在射穿范围内消耗更多的能量,产生更多的热量等。 \ $ \ endgroup \ $-mannok 19年12月27日6点11分
    • \ \ begingroup \美元 这将有助于解释为什么在CMOS级PMOS和NMOS晶体管都应该在阈值区域打开……如果这造成了问题(“VCC和GND之间的当前路径”)。 \ $ \ endgroup \ $-电路幻想家 19年12月27日6点11分
    • 3.
      \ \ begingroup \美元 @mannok Transistor直接回答了这个问题,并说你的假设是错误的:“CMOS门的输入阻抗太高了很难达到6v。”如果你连答案都不听为什么还要问这个问题呢? \ $ \ endgroup \ $-sdenham 21:17 12月27日17:17
    • \ \ begingroup \美元 @sdenham,没有输入电压取决于我的电源? \ $ \ endgroup \ $-mannok 21:31 12月27日
    • \ \ begingroup \美元 是的,逻辑阈值电压会随着电源电压增加而增加,但那又怎样呢?你仍然有一个非常高的输入阻抗。在任何情况下,由于上述原因,电压下降的趋势是。 \ $ \ endgroup \ $-晶体管 12月27日23:07
    6.
    \ \ begingroup \美元

    在电子学中有一个非常重要的规则:从不让任何事情失控.因此,如果没有严格地在数据表中写输入有一个内部上拉或下拉,不要让这个输入有未定义的状态。如果你不需要这个输入,将它连接到接地或Vcc,永远不要离开浮动。这种未定义的状态可能会导致一些或少或多的意外问题,很难调查和解决-这是不值得花几个小时的斗争,因为你想节省一个小电阻的成本。这是非常糟糕的做法。这就像开车一样:在路上停下来之前一定要看看镜子。

    注意:在现代MCU的情况下,通过配置(编程)未使用的I / O引脚作为输出可以解决问题,因此无需将其连接到任何地方。但是,如果您更改了I / O引脚方向输入,并且在MCU内没有上拉/下拉,则必须小心翼翼地保留正确的拉动自己。浮动状态为我们的archenemy;);););)

    \ $ \ endgroup \ $
    4.
    • 4.
      \ \ begingroup \美元 我还没有看到一个MCU默认所有的gpio输出。这样的概念在真正的设计中是行不通的,外部电路想要驱动输入引脚。 \ $ \ endgroup \ $-迈克尔·卡拉斯 19年12月27日3点44分
    • \ \ begingroup \美元 这取决于;)但总的来说你是对的。谢谢,我正在修改我的答案。 \ $ \ endgroup \ $-VillageTech 12月27日12:01
    • 2
      \ \ begingroup \美元 谢谢你的纠正。我已经删除了我的反对票 \ $ \ endgroup \ $-迈克尔·卡拉斯 19年12月27日14:59
    • \ \ begingroup \美元 非常感谢移除:) \ $ \ endgroup \ $-VillageTech 12月27日19日16:58
    3.
    \ \ begingroup \美元

    输入免疫以杂散A / M B场噪声或V / M E场噪声不是由DC电压阈值确定的,而是噪声阻抗和串扰的电压或电流确定。串扰是电流噪声和电压尖峰噪声的电容。它对DC不敏感,也不是直流提高免疫力。

    只有说出施密特触发范围的阈值和输入阻抗定义了噪声抗扰度。否则,信号循环阻抗与驱动器阻抗,ZOL = VOL(MAX)/ IOL(MAX)和最近的输入阈值最坏情况的余量定义生成假触发所需的电源。

    这也是为什么司机阻抗根据行业标准设计的CMOS制造商的Vdd最大范围降低,以保持噪声抗扰性。

    这3个主要家庭是

    • 3~18V CMOS,驱动阻抗最高,从300欧姆开始,Vdd越低越高。
    • 5.5V Logic Max为50至66欧姆+/- 50%
    • 3.6V逻辑MAX为25至33欧姆+/- 50%

    施密特触发输入是嘈杂的高阻抗源的优选。

    <120欧姆终止阻抗线是优选具有差分输入的高速噪声抗扰度。

    \ $ \ endgroup \ $
      0.
      \ \ begingroup \美元

      当输出不被激活时,“上拉”或“下拉”电阻提供了一条通往负(通常是接地)和正(通常是供电电压)的电气路径。它保持输出管脚在那个电位,这样它就不会有虚假的输出或不需要的狂野振荡。一个不稳定的逻辑芯片或运放经常会过热并自毁,如果负载能够高速跟踪振荡,那么也很可能自毁。(想想机械执行器或阀门在天知道什么频率下工作!!)

      它只是让事情保持稳定。当输出由逻辑处理器驱动时,它干净地改变高电平到低电平,反之亦然......(取决于逻辑,并且输出是否'高或低)....当它意味着改变状态。

      \ $ \ endgroup \ $
      3.
      • 4.
        \ \ begingroup \美元 欢迎来到ee.se.上拉在输入上使用,而不是输出。它们出现在开放的收集器或三状态输出上,但它们的功能是当开路收集器输出关闭时将以下输入拉到已知的逻辑电平。 \ $ \ endgroup \ $-晶体管 19年12月28日3点04分
      • \ \ begingroup \美元 @transistor。当TTL不得不驱动CMOS输入时,将使用上拉。上拉在CMOS'高的范围内将输出的“高”级别带到了更多。但这也可以被认为是一个输入问题。如果没有公共汽车驱动程序处于活动状态,共同的公交车通常有拉起以防止浮动。 \ $ \ endgroup \ $-user105652 12月29日22:54
      • \ \ begingroup \美元 @Sparky,我来自那些日子。我记得! \ $ \ endgroup \ $-晶体管 12月29日23:06

      你的答案

      点击“发布答案”,您同意我们的同意服务条款隐私政策饼干的政策

      不是您要找的答案?浏览其他标记的问题问你自己的问题