微控制器引脚上的12V输入


8

我正在尝试计算脉冲/秒。在〜5至100Hz范围内的微控制器引脚上。µC可以在5V输入下工作,因此我必须安全降低电压电平。

我想到了一个简单的电阻,但是任何浪涌都直接通向µC pin- meh

我已经找到了这个答案,但是问题仍然在于该电路是否能够“快速”改变100Hz。

是否有一种可靠的,可靠的方式(可能是通过IC?)将5V或3.3V引脚连接到“脏”的 12V输入?我有12V和5V可用来驱动任何“现成的” IC。


2
电阻分压器+齐纳二极管/钳位二极管?
Wesley Lee

2
这真的是一个简单的Google搜索无法回答的问题吗?
Ale..chenski

16
可以回答,但是在非常愚蠢地销毁设备之前,我非常希望获得高质量的回答。让我们安心“安心”吗?
基督徒

8
@AliChen stackexchange旨在成为一个规范的问题和答案库。如果简单的问题可以收集有用的答案,则可能会很好。
韦恩·康拉德

2
100Hz不是很快。
user253751 '17

Answers:


13

使用这样的电路:

schematic

模拟此电路 –使用CircuitLab创建的原理图

R1和R2确定电压范围,并执行初始除法。这些电阻必须具有一定的功率。典型的是MELF 0.4W。其他所有芯片电阻器/电容器。

R3可以防止任何电涌对施密特触发器造成伤害。R4和R5是可选的,以防止产生任何浮动信号。
但是,如果需要,组合R3 / R4也可以用于调整阈值。

C1和C2确定最大速度。R3 / C2组合可以过滤较慢。C1过滤瞬变。

使用单独的施密特触发器,因为您可以使它们变而便宜。而且,它可以防止在较长的走线上路由微弱的信号。同时还是重大浪潮的牺牲品。

我已经根据我在PLC内部看到的内容设计了该电路。以上电路为24V。根据IEC61131-2调节电阻以匹配12V。

iec 61131-2
该标准的概念是确保输入必须吸收最少的电流,然后才能将其视为“ 1”。这三种类型指定了数量,并根据环境噪声进行应用。这样可以防止毛刺触碰毛刺或附近的继电器。缺点是R1 / 2必须具有适当的额定功率和低电阻。


哇。对最初看起来很简单的问题的一个非常彻底的答案。谢谢。
基督徒

我真的对R4和R5很好奇-他们什么时候会做任何有用的事情?无论如何,R2 + R3> R4。是否有任何“重型”组件损坏的情况?

管道R3和R4可帮助配置阈值,同时提供通往逻辑的高阻抗路径。R5在大多数情况下是多余的,但在设计中使用了mcu下拉电阻。如果由于某种原因缓冲区将失败,则mcu输入将不会读取50hz嗡嗡声。(注意:要求提供可靠的信息)
Jeroen3'7

17

我会尝试如下所示的电阻分压器解决方案。

enter image description here

选择电阻器比率,以便在输入处于其标称电压时,分压电压处于适合MCU的水平。当输入超过最大输入时,选择齐纳二极管电压来钳位MCU输入。如果输入恰好为负,则齐纳二极管还将保护MCU。

对于您指定的相对较低的频率范围,该解决方案将非常有用。


1
为什么选择齐纳作为4v7?5v2(5v1?)是更好的解决方案吗?
R.Joshi

7
@ R.Joshi:如果5V微控制器由10%的容限电源(4.5-5.5V VDD)供电,则在该引脚上施加5.2V可能会超过典型的VDD + 0.3V绝对最大值。TTL为2V时为逻辑高电平,而CMOS为2/3 * VDD时为逻辑高电平,因此那里的4V7齐纳二极管没有问题。
汉斯(Hans)

2
我真的希望我可以将两个答案标记为“选择”。您的方式是每天走的路,但是Jeroen的答案只是更深入一点。不过,感谢您抽出宝贵的时间回答。
基督徒

8

我会使用电阻分压器,然后使用5.1v齐纳二极管保护uC

如果将齐纳二极管与10k下拉电阻并联在引脚和地之间,然后将分压后的信号馈入……齐纳二极管不仅足够快而且便宜/容易。

我经常这样做,然后用锅将齐纳钻头分开。

其他选择是链接在一起的,如果您真的担心可以使用光电二极管,如果它不是安全问题,我可以使用上述光电二极管,或者将引脚从5V Vcc正常拉高,然后用FET将其拉低(离开我的头顶) 2N7000应该可以)-但它比齐纳选项简单。


7

如果信号电平为GND和12V(或> 5V),则最简单和100%安全的方法是:

schematic

模拟此电路 –使用CircuitLab创建的原理图

它是否真正有用,取决于12V信号的实际阻抗(应低于R1)以及“脏污”的含义。

同样,正如@MichaelKaras正确指出的那样,µC输入上的低电平可能会上移到12V信号的低电平加上二极管的Vf(约0.7V)。您应该检查这是否是您的问题。如果是这样,您仍然可以尝试使用Vf约为0.35V的肖特基二极管。


在大多数µC上,甚至可以使电阻器掉线并激活该引脚的内部上拉电路。
Janka'7

此处提出的二极管解决方案并不总是最佳或最佳解决方案。通过一个二极管正向压降加上产生0至12V信号的低电平输出电压,提供给MCU的低电平输入电压将高于GND。当信号可能携带噪声并且MCU输入的V <sub> IL </ sub>的TTL类型电压电平指定为一个特别大的问题时。通常,该规格可能仅为0.8V。因此,如果使用此解决方案,请至少要特别注意一个低正向压降二极管,例如BAT54。
Michael Karas'17

@MichaelKaras您对二极管的Vf对低电平的偏移是正确的;这需要考虑。对我而言,对于5V µC,0.8 [V]的V [IL]似乎异常低。我似乎通常会找到0.3Vcc(〜1.5V)的规格。
JimmyB

如果您的MCU具有V <sub> IL </ sub>的CMOS类型规格,则可能工作正常。我仍然想以一种可行的方式进行设计,即使该规格比该规格低得多,也只是为了获得尽可能多的运营利润。如果您选择使用这种类型的电路,即使指定低压降二极管的差异也朝着这一点迈出了很好的一步。对于12V输入可能存在负偏移的情况,您的电路不是特别好。
Michael Karas

我同意。为保证金而设计是一件好事。而且12V信号上的负电压确实可能会在电路上造成麻烦。
JimmyB

5

我会使用一个光电隔离器,100Hz很容易在任何合适的范围内。我想到4n25作为通用部件号,我知道它的性能比100Hz好得多。


使用光电隔离器解决此问题的问题在于,它假定您可以从12V信号中汲取电流。您可以缓冲12V信号,但这将需要额外的电源。
杰森·摩根

我敢肯定,从12v起,您可以获得的光电二极管几乎可以在与微输入相同的电流下发挥作用,这不会给点亮小LED带来太大的负担。
约翰·U

1
数字输入泄漏通常在10nA至1uA之间(取决于温度和过程)。我从来没有遇到过即使工作在1uA的光电耦合器。市场上通常以低功率销售的典型光耦合器,例如Br​​oadcom ACPL-x6xL需要1.6mA。这是电流的1600到160000倍之间。但是然后,正如我在回答中所说的那样,这取决于要用的要求,因此我不会放弃光电解决方案。
杰森·摩根


2

选择的方法部分取决于输入信号的作用,其行为以及如何影响输入电路和读取该信号的代码?

例如,它总是12V吗?有尖峰或噪音吗?它可以驱动多少电流?可以驱动电流吗?吸收电流会影响其他吗?安全关键吗?

因此,永远不可能对这个问题有一个普遍的答案,因为“正确”的解决方案取决于系统其余部分的工作。所选的满足要求的解决方案将具有不同的成本和复杂性。

就是说,正如没有人建议的那样,我将选择FET输入。

可以使用JFET或MOSFET,它们可以是公共源极模式或公共漏极模式。例如,普通排水:

原理图

模拟此电路 –使用CircuitLab创建的原理图

公共漏极模式的优势在于它允许将输入连接到模拟(例如ADC)或数字引脚。如果信号是真正的数字信号,则可以在CPU输入上启用施密特触发器(如果有),或者在CPU的输入引脚上添加外部施密特缓冲器。

优点

  • 输入阻抗很高
  • 部分隔离的输入(可承受+/- 30V,取决于FET选择)
  • 类似的可能
  • 对外部信号的影响最小

1

原理图

模拟此电路 –使用CircuitLab创建的原理图

图1.光电隔离接口。在GPIO上使用内部上拉电路。

光隔离器解决了几个问题。

  • 12 V电路和5 V逻辑之间完全电气隔离。
  • 无危险地处理12 V脏信号。
  • 简单。

1

原理图

模拟此电路 –使用CircuitLab创建的原理图

R1,R2和C1构成带有1kHz低通滤波器的分压器。任何在12V上传播的有害高频信号都可以被滤除。滤波器频率的计算公式为1 /(2 pi R2 C1)。注意:底座至少需要0.7V才能正常工作,调整电阻器时要小心。

正在使用BJT,因为它与mosfet相比非常普遍。如果12V仍处于活动状态,但uC的5V处于下降状态,则BJT不会将电流传递到引脚上并造成损坏。

对于uC编程,请使用从高到低的触发器来计数您的脉冲。由于该电路将使脉冲反向。


-2

通常,只要您的电阻具有最佳值(对于钳位足够高而对于采样来说足够低)并且在VDD和VSS之间具有良好的旁路电容,MCU输入已经受到钳位二极管的保护。担心它。因此,只需一个电阻就足够了。

编辑:感谢PeterJ的评论,我想进一步解释一下。MCU消耗的最低功耗(假设它不休眠),旁路容量,电阻值;当所有这些都处于折衷点时-这很容易,这是非常普遍的情况,仅在使用大约10kOhm的电阻的情况下-唯一的电阻对于OP的简单应用是合适的。


4
我很多年前发现的一个问题是,虽然它可能不会损坏任何东西,但Vcc的内部漂移可能会有点上升(直到二极管导通为止),并且取决于微控制器会抛出诸如ADC读数之类的东西。
PeterJ

@PeterJ如果可以保证至少从电源中取出了这么多电流,它会很好地工作。在最坏的情况下,添加一个虚拟电阻器…
CL。

虽然“讨厌”,但我已经看到许多廉价的消费品都这样做。我曾经修理过一个闹钟,其中电源通过10M电阻作为时序参考馈送到数字输入中。毫不奇怪,芯片已经死了。
杰森·摩根

-5

您可以分别选择5V和3.3V的LM7805 / LM7803稳压器,我假设uC与电流需求的负载隔离(如果有)。


1
很有创意。但是您将无法在高速下运行。如果这是您躺在身边的一切,也许。
Jeroen3
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.