Necesito diseñar un circuito para retrasar una señal de entrada en una cantidad de tiempo determinada (alrededor de un segundo, recortable). El retardo debe establecerse mediante el uso de componentes pasivos (resistencias o condensadores). La señal de entrada es básicamente un nivel TTL que se eleva en un momento determinado, se mantiene alto durante algún tiempo (100ms debería ser un buen valor), y luego vuelve a bajar.
No puedo utilizar un micro u otro dispositivo programable porque el proceso de certificación del firmware es demasiado caro.
Realicé una solución de trabajo que utiliza una red RC alimentada en un comparador disparado por Schmidt (con una referencia de tensión fija colocada en la entrada contra el nivel de tensión RC). No estoy muy satisfecho con esta solución por dos razones principales:
- el retardo necesario implica grandes tapones que son bastante imprecisos;
- el nivel alto de la señal de entrada tiene que durar al menos tanto como retardo';
Requisitos generales:
- duración del retardo 1 segundo +/- 500 ms precisión +/- 10%
- El evento retrasado debe durar un tiempo razonable, digamos al menos 100ms (y menos de 200ms).
4 votos
O podría utilizar un registro de desplazamiento, si dispone de alguna señal de reloj adecuada
0 votos
No tengo una fuente de reloj interna.
0 votos
¿con qué frecuencia puede repetirse el pulso? ¿Quieres que ambos bordes de la entrada sean retrasados por el tiempo de retardo? Si es así, y el retardo es mayor que la longitud del pulso, entonces se hace muy difícil, o fácil si usas un uC.
0 votos
El evento se supone que debe ocurrir sólo una vez desde el encendido hasta el apagado. @Neil_Uk como mencioné en la pregunta el uso de un micro es económicamente restringido. El evento de retraso debe durar una cantidad de tiempo fija no relacionada con la duración del evento original.
1 votos
Creo que tienes que dibujar un diagrama de la señal de entrada y la señal de salida, anotando qué causa qué, y cuáles son los requisitos para la señal de salida. No está claro lo que quieres decir con "señal", si es sólo el borde de entrada +ve, o sólo el borde -ve, o ambos, y lo que sucede cuando el tiempo entre ellos cambia. Un monoestable como el HC123 podría ser lo que necesitas, o no, dependiendo de lo que quieras.
3 votos
¿Qué tal el viejo temporizador 555?
9 votos
La afirmación "Mi firmware necesita ser certificado" no encaja bien con "No sé cómo retrasar una señal digital". ¿Puedes darnos tu propia estimación de la experiencia que tienes? (En serio, escribir un buen firmware suele ser más fácil que diseñar una buena circuitería analógica, y si la certificación es un requisito para un sistema de vida crítica, preferiría que no diseñaras la parte analógica si no sabes cómo implementar un retardo)
0 votos
Si tienes que certificar el código con normas como la DO-178C, descubrirás que incluso codificar una tarea sencilla como esa puede resultar muy caro (tengo bastante experiencia en la codificación de firmware).
0 votos
@Marcus Muller Si lees mi mensaje no tengo ningún problema en diseñar dicho circuito Estoy buscando un diseño más "preciso" porque el que estoy usando no es tan preciso como me gusta.
0 votos
Y para que quede claro, el diseño que propuse es sólo el más sencillo que ya hice porque también hay que tener en cuenta la complejidad del circuito en la evaluación de la seguridad. Entre otras cosas, probé con almas basadas en microcontroladores (no rechazadas por el análisis de seguridad, sino por otras razones)
0 votos
Es sólo que en mi experiencia, verificar un circuito es realmente más difícil (y por lo tanto, más tiempo y dinero) que simplemente escribir un par de líneas de firmware, especialmente si ya hay un microcontrolador en su sistema. Si no lo hay, bueno, no quieres cruzar esa frontera, y puedo entenderlo.
1 votos
Pero: ¿dónde acaba el hardware y empieza el software? Una solución muy viable, especialmente si se trata de más de una señal digital que necesita ser enrutada, de todos modos, y si se necesita ahorrar en el número de componentes y en el espacio de la placa, es simplemente diseñar un diseño mínimo de CPLD con un reloj y un contador internos, y pedir estas piezas (a menudo disponibles preprogramadas, incluso). Entonces, ¿se trata de hardware configurado, no de software? Estoy seguro de que sus normas lo definen.
0 votos
(por cierto, la C requerida se reduce si eliges una R mayor en tu paso bajo RC ;) - es lo que yo haría, si el 10% es todo lo que necesitas)
1 votos
@MarcusMüller ¿Tienes experiencia en DO214C? No es una provocación sólo una pregunta... en mi expriencia certificar código al grado solicitado para esta aplicación puede costar hasta 1000$ x línea de código. Y además las APIs deben ser certificadas también... además no todos los uCs pueden ser fácilmente certificados.
1 votos
No, en realidad no puedo decir que haya trabajado bajo la norma DO-178C - sólo tengo experiencia en sacar los errores de un diseño analógico/circuito en comparación con sacar los errores de un firmware de MCU moderno con todos sus depuradores de hardware de lujo, herramientas de limpieza de código, RTOS y perros guardianes... Por lo tanto, mi afirmación se basa puramente en "lo difícil que es hacer que sea realmente fiable", no en "lo difícil que es certificar que es fiable", y usted necesita lo segundo, no lo primero :)
0 votos
@MarcusMüller 10% de precisión no es el único requisito...
0 votos
(Mientras tanto, creo que muchos principiantes pueden encontrar después tu pregunta sobre el retardo, y pensarán que en general no es viable usar un paso bajo RC para hacer ese retardo; publicaré una respuesta -por favor, no la aceptes- que explica que puedes bajar el C aumentando R)
1 votos
¡POR FIN LO HE ENCONTRADO! Tal vez esta respuesta mía anterior a una pregunta algo similar sea de alguna ayuda: electronics.stackexchange.com/questions/373138/
0 votos
@MarcusMüller El camino de los locos ¡toda la vida!