Entrée 12 V sur GPIO 3,3 V, TVS baissé ou Schottky levé?

12

Je construis mon propre API qui doit accepter des entrées permanentes jusqu'à 30 V CC dans un STM32F avec des entrées 3,3 V.

L'entrée commutée devra fonctionner avec 8-30 V, mais 90% du temps, la tension d'entrée sera fixée à 12 V ou 24 V. Les entrées ne seront que des interrupteurs tels que des interrupteurs de fin de course, donc je ne me soucie pas de détecter entrées inférieures à 8 V ou entrées de capteurs, etc., je ne m'inquiète pas non plus de la vitesse car, de façon réaliste, le plus rapide que les commutateurs se déplaceront est toutes les 1 s; Je dois juste être sûr que mon microcontrôleur est protégé.

Je veux un circuit universel que je peux utiliser dans plusieurs produits / projets de types similaires, donc le nombre de composants, le coût et l'espace PCB doivent être au minimum, donc je ne veux pas vraiment utiliser des optocoupleurs.

Deux ingénieurs en électronique ont recommandé ce qui suit, mais je ne suis pas trop sûr de la meilleure façon:

Entrez la description de l'image ici

Dois-je utiliser celui du haut ou celui du bas? Pourquoi?

Terry Gould
la source
5
Je ne dis généralement pas cela, mais cela ressemble à un bon endroit pour un optocoupleur.
Matt Young
@MattYoung pourriez-vous mettre à jour votre commentaire pour dire pourquoi un optocoupleur serait nécessaire?
Richard Chambers
1
Le circuit que je pose dans cette question est un circuit d'entrée provenant d'un automate de grande marque.
Ron Beyer

Réponses:

17

Il s'agit en fait d'un problème séculaire avec les automates et pas aussi simple que vos solutions prévues.

Le plus gros problème que vous ayez est qu'ayant également une grande variété de tensions logiques potentielles que vous devez pouvoir gérer, les niveaux logiques réels peuvent être beaucoup plus élevés que le rail 3,3 V que vous utilisez en interne. Certains capteurs et appareils ont des seuils logiques supérieurs à 5 V. Ainsi, le simple fait d'utiliser un circuit de coupure comme vous l'avez indiqué ne détectera pas le niveau bas de ces capteurs.

L'étape d'entrée des automates doit être beaucoup plus flexible.

Même si le niveau logique de bas niveau est acceptable, ces circuits souffrent chacun de problèmes différents.

Limitation Zener / TVS.

entrez la description de l'image ici

Ce circuit présente l'avantage que, pour une tension d'entrée connue, le zener peut être dimensionné pour ne jamais permettre à la tension de dépasser la tension du rail. Normalement, vous choisiriez un zener avec une tension inverse plus petite que le rail, mais supérieure au seuil logique de haut niveau.

Cependant, le zener passera une grande partie de sa vie à polarisation inverse, en tant que tel, vous payez une pénalité sous la forme d'un temps de récupération inverse lorsque le signal d'entrée diminue, ce qui retardera votre signal d'un peu.

VIH

Diode de limitation Over-Rail

entrez la description de l'image ici

L'utilisation de la diode jusqu'au rail présente le problème que la tension de sortie dépassera toujours Vcc, ne serait-ce que légèrement. Cependant, cela peut toujours être préjudiciable à l'entrée. De plus, dans ce cas, le temps de récupération inverse signifie que, pour les fronts d'entrée rapides, une tension élevée le fera très brièvement.

Donc

VOL

Alternatives


Opto-couplage.

Une méthode courante utilisée par les API consiste à utiliser des optocoupleurs.

schématique

simuler ce circuit - Schéma créé à l'aide de CircuitLab

Cette méthode vous offre l'avantage supplémentaire de l'isolement et de la séparation du sol. Le problème est que vous avez besoin d'une certaine forme de conditionnement du signal entre le capteur et l'entrée pour vous assurer que la LED est allumée au bon seuil et que la bonne quantité de courant est envoyée à travers la LED. Ce conditionnement pourrait être la simple résistance illustrée ci-dessus, ou un circuit complexe qui comprend un comparateur quelconque.

La vitesse de l'opto-coupleur est également un facteur limitant. Cependant, cette méthode est couramment utilisée car elle vous donne une flexibilité totale.

Conditionnement des entrées analogiques

Une autre méthode consiste à accepter le signal sous une forme analogique, à le comparer à une référence variable avec hystérésis et à générer le niveau logique de cette façon.

schématique

simuler ce circuit

De toute évidence, les composants, y compris le comparateur, doivent être choisis pour s'adapter aux tensions d'entrée maximales. Le circuit illustré est assez simple, il peut devenir beaucoup plus complexe avec des filtres, des régulateurs, une protection ESD etc.

Combinaison

Pour des raisons d'isolement, vous pouvez combiner ce qui précède et faire en sorte que le comparateur alimente un pilote à courant constant à la LED d'un optocoupleur.

Si je développais un produit, j'assemblerais tout cela sur un petit module enfichable qui pourrait être branché sur des prises de bord de carte sur une carte "mère", comme ils utilisent pour les cartes dans les PC. De cette façon, vous pouvez facilement les remplacer en cas de friture. Cette méthode vous permet également de mettre à disposition d'autres types d'entrée, par exemple une entrée à fibre optique.

Trevor_G
la source
2
Un BJT ou un FET ne serait-il pas un bon moyen sûr et bon marché de le faire? OK, le signal serait inversé, mais le logiciel réglerait cela. Véritable question, n'essayant pas d'être intelligent.
DiBosco
VOL
Merci pour votre réponse très détaillée, je viens de mettre à jour ma question pour répondre à certains des problèmes que vous avez mentionnés. La tension d'entrée sera de 8-30 V avec une fréquence maximale de 1 s
Terry Gould
@TerryGould cool, alors je vous ai déjà montré à peu près tout ce que vous devez savoir :)
Trevor_G
Cela changerait-il beaucoup si l'entrée était tolérante à 5 V? Beaucoup sur STM32F le sont, avec un maximum absolu à 5,3V. Vih est également de 0,7 * Vdd donc 2,3 V pour un rail de 3,3 V.
Jan Dorniak
5

100k est beaucoup trop élevé. Il se déclencherait à partir de presque n'importe quel relais ou opération de commutation à proximité. Pas vraiment fiable pour un automate si vous me demandez.

Il existe en fait des normes et des réglementations pour les API . Comme vous voudriez que tous les fournisseurs d'automates aient un comportement similaire dans les installations, et ce serait bien si divers modèles pouvaient être connectés les uns aux autres sans problème.

Par exemple, l'entrée ne considère que ce un sur quand il enfonce au moins ~ 2 mA et il est au- dessus de 10V. (CEI 61131-2) iec 61131-2

Vous ne pouvez pas obtenir cela précisément avec des passifs, c'est pourquoi il existe des pièces comme SN65HVS880.

Dans ma réponse précédente, j'ai donné un exemple schématique sur la façon dont vous pouvez essayer de vous rapprocher de ce comportement avec les passifs *.

Un simple 100K et un BAT54S ne seront pas fiables, je peux vous le dire par expérience.

exemple d'entrée plc
réponse précédente

* déclencheur schmitt séparé non essentiel

Jeroen3
la source
2

Les deux sont acceptables. Vous devrez vous assurer que la résistance est correctement dimensionnée afin que le courant d'entrée ne fasse pas chuter la tension d'entrée en dessous de V_IH, mais avec CMOS, cela est trivial car le courant d'entrée est si petit (100k est presque certainement bien)

Avec la seconde, la seule mise en garde est que vous devrez vous assurer que la charge totale sur 3,3 v n'est jamais inférieure à 30 V / 100 k (fois le nombre d'entrées que vous avez), sinon le rail 3,3 V pourrait être tiré jusqu'à un tension qui pourrait endommager les appareils qui s'y trouvent. Si vous mettez le micro en mode veille, il pourrait en tirer un peu.

L'autre mise en garde est que dans les deux cas, la résistance de 100 k agit avec la capacité d'entrée comme un filtre passe-bas, ce qui ralentit les entrées. S'il y a une capacité d'entrée de 10pF, ils auront un taux de basculement maximum d'environ 100 kHz et un retard d'environ 2 microsecondes.

τεκ
la source
VOL
"Ni l'un ni l'autre ne fonctionne si le VOL du capteur connecté> 1,5 V ou plus." - ajouter une résistance de GPIO à la masse pour former un diviseur de tension. Problème résolu!
Bruce Abbott