Retarder un signal TTL

9

J'ai besoin de concevoir un circuit pour retarder un signal d'entrée d'une durée donnée (environ une seconde, ajustable). Le retard doit être réglé grâce à l'utilisation de composants passifs (résistances ou condensateurs). Le signal d'entrée est essentiellement un niveau TTL qui monte haut à un certain moment, reste haut pendant un certain temps (100 ms devrait être une bonne valeur), puis revient bas.

Je ne peux pas utiliser un micro ou un autre appareil programmable car le processus de certification du firmware est trop cher.

J'ai réalisé une solution de travail qui utilise une alimentation réseau RC dans un comparateur déclenché Schmidt (avec une référence de tension fixe placée en entrée par rapport au niveau de tension RC). Je ne suis pas très satisfait de cette solution pour deux raisons principales:

  1. le délai nécessaire implique des majuscules assez imprécises;
  2. le niveau élevé du signal d'entrée doit durer au moins autant que «retard»;

Exigences générales:

  • durée du retard 1 sec +/- 500 ms précision +/- 10%
  • L'événement retardé devrait durer un temps raisonnable, disons au moins 100 ms (et moins de 200 ms).

exemples de formes d'onde de signaux d'entrée et de sortie

weirdgyn
la source
4
Ou vous pouvez utiliser un registre à décalage, si vous avez un signal d'horloge approprié disponible
Richard the Spacecat
1
Je pense que vous devez dessiner un diagramme du signal d'entrée et du signal de sortie, annoté avec ce qui cause quoi, et quelles sont les exigences pour le signal de sortie. On ne sait pas exactement ce que vous entendez par `` signal '', que ce soit juste le bord d'entrée + ve, ou juste le bord -ve, ou les deux, et ce qui se passe lorsque le timing entre eux change. Un monostable comme HC123 pourrait être ce dont vous avez besoin, ou pas, selon ce que vous voulez.
Neil_UK
3
Ahem, que diriez-vous du bon vieux minuteur 555?
calcium3000
9
L'énoncé «Mon micrologiciel doit être certifié» ne correspond pas à «Je ne sais pas comment retarder un signal numérique». Pouvez-vous nous donner votre propre estimation de votre expérience? (Sérieusement, écrire un bon firmware est généralement plus facile que de concevoir un bon circuit analogique, et si la certification est une exigence pour un système vital, je préférerais que vous ne conceviez pas la partie analogique si vous ne savez pas comment l'implémenter un retard)
Marcus Müller
1
Mais: où s'arrête le matériel et où commence le logiciel? Une solution très viable, surtout si vous avez affaire à plus d'un signal numérique qui a besoin de routage, de toute façon, et si vous avez besoin d'économiser sur le nombre de composants et l'espace sur la carte, consiste à concevoir simplement une disposition CPLD minimale avec une horloge et un compteur internes , et commandez ces pièces (souvent disponibles préprogrammées, même). C'est du matériel configuré, donc pas du logiciel? Je suis sûr que vos normes le définissent!
Marcus Müller

Réponses:

10

Le Analog Devices / Linear Technology LT6993-1 (voir le circuit ci-dessous) est un générateur d'impulsions déclenché par front positif qui a une fréquence d'horloge programmable par résistance et une valeur et une polarité de diviseur programmable par résistance, avec des retards allant jusqu'à 33 secondes avec une précision de ~ 3%.

Un convertisseur A / N interne convertit la tension d'entrée DIV en un sélecteur de diviseur 8 bits et un sélecteur de polarité 1 bit. La fréquence d'horloge et la valeur du diviseur déterminent la largeur d'impulsion de sortie. Les grands paramètres du diviseur permettent aux résistances de taille raisonnable de générer de longs retards.

Le circuit ci-dessous (à partir de la fiche technique) montre comment utiliser deux des puces pour générer une impulsion retardée en réponse au front montant d'une impulsion d'entrée. Les valeurs de résistance devraient être ajustées pour correspondre à vos retards requis. Les valeurs de résistance DIV suggérées sont indiquées dans le tableau sous le circuit.

entrez la description de l'image ici

entrez la description de l'image ici

crj11
la source
8

Custom Silicon Solutions fabrique le CSS555C , qui est une minuterie 555 mariée à un large compteur. Il vous permet de compter plusieurs cycles de minuterie pour utiliser des résistances de taille raisonnable pour générer de très longs retards. Il a un condensateur interne ajustable pour régler les retards, il n'a donc même pas besoin d'un condensateur externe.

Le circuit ci-dessous montre le mode monostable multi-cycle. Vous auriez besoin de deux des puces. La première puce générerait votre retard d'une seconde et la seconde puce serait déclenchée à la fin du retard pour générer l'impulsion de 100 ms.

Si vous google "CSS55C prix", vous pouvez trouver des sources où vous pouvez acheter la pièce.

configuration mono

crj11
la source
Bonne suggestion (j'ai déjà essayé NE555 mais j'ai eu quelques problèmes) Je vais essayer à nouveau.
weirdgyn
6

La page 14 de la note d'application Texas Instruments 74LS123 présente un exemple de circuit de retard numérique utilisant les deux moitiés du '123. Vous pouvez régler à la fois le retard et la largeur d'impulsion de sortie en faisant varier les valeurs de Rext. Si vous n'avez pas besoin de terminer aléatoirement l'impulsion de sortie, vous pouvez lier les entrées «B» et les entrées claires à un niveau élevé.

BobT
la source
Sonne bien et assez simple ... Je dois essayer.
weirdgyn
3

J'ai réalisé une solution de travail qui utilise une alimentation réseau RC dans un comparateur déclenché Schmidt (avec une référence de tension fixe placée en entrée par rapport au niveau de tension RC).

C'est en effet la manière très standard de mettre en œuvre un retard dans un circuit numérique.

Je ne suis pas très satisfait de cette solution pour deux raisons principales:

  • le délai nécessaire implique des majuscules assez imprécises;

Eh bien, utilisez simplement un R plus grand, alors! Le retard est défini par le produit de R et C, vous pouvez donc échanger l'une contre l'autre - et les résistances de grande valeur sont plus faciles à obtenir que les condensateurs de grande valeur.

  • le niveau élevé du signal d'entrée doit durer au moins autant que «retard»;

Donc, remplacez peut-être votre déclencheur Schmitt prêt à l'emploi par des limites d'hystérésis prédéfinies par un déclencheur avec un seuil haut "marche-arrêt" et un seuil bas "marche-arrêt".

Marcus Müller
la source
3

Une autre solution à 2 puces. L'avantage de cette approche est l'horloge continue qui peut être mesurée et ajustée, peut-être plus facilement que le chronométrage d'un événement ponctuel.

L'impulsion d'entrée définit le verrou NAND qui supprime la réinitialisation du compteur, ce qui lui permet de compter. Après 8 impulsions d'horloge, la sortie passe à l'état haut. L'impulsion d'horloge suivante réinitialise le verrou NAND qui maintient le compteur en réinitialisation, le désactivant.

Les deux autres portes forment un oscillateur RC, les valeurs indiquées devraient le mettre à environ 8 Hz pour un retard de 1 seconde et une largeur d'impulsion de 125 ms.

entrez la description de l'image ici

Presque fini
la source
Je note toujours toute réponse utilisant un 4017 ;-)
nekomatic
2

Le 74HC4538 est celui que j'ai souvent utilisé. 1 seconde en fin de plage. Il s'agit d'un accord unique, car il a deux unités distinctes. Le premier fournirait le retard et sa sortie entraînerait le second, ce qui produirait la largeur d'impulsion finale.

Pour être plus clair, peut-être: le premier serait configuré comme une unité déclenchée par un front positif, et sa sortie Q entraînerait le second one-shot qui est configuré pour la détection de front négatif. La période de la première serait d'une seconde, et la deuxième unité aurait la largeur d'impulsion que vous souhaitez (dans la limite du raisonnable, bien sûr - probablement moins d'une seconde serait bien).

Et si vous craignez d'interfacer TTL à CMOS, ne le soyez pas. En supposant que le CMOS est la seule charge sur une sortie TTL, l'ajout d'une résistance de rappel de 1 k à +5 fera l'affaire sans problème.

WhatRoughBeast
la source