# Duda: ¿Cómo eliminar datos de un latch (74x373)?



## Metallick (Abr 20, 2012)

Buenas estimados, me dirijo a ustedes para plantearles mi duda y a ver si me pueden ayudar.

Resulta que estoy usando un octal D latch (74x373) para controlar 8 relés y poder hacer un conmutador de loops para mis efectos de guitarra. La parte del octal latch la hice de la siguiente manera:





Bueno hasta acá todo bien, pero ahora necesito hacer que el latch borre los datos guardados, es decir, que todas las salidas sean 0. Para esto me plantié dos posibilidades:

1.- Agregar un noveno switch que haga entrar un 1 por el pin 11 (LE) y no ingrese dato en ninguna entrada Dn, de esta manera, se actualicen todas las salidas. Si consideramos que no se ha presionado ningún otro switch, todas las entradas Dn serán 0 por lo cual al actualizar los datos del larch cada salida Qn debería volverse 0.

2.- Hacer entrar un 1 por el pin 1 (OE) puesto que al negarlo me dará un 0 que al hacer un AND con las salidas hará que todas se vuelvan a 0. (Pensamiento del momento: mientas estaba posteando me cuestioné esta alternativa, porque me imagino que el AND entre OE' y la salida Qn se hace posterior a que el latch haya "leido" las entradas, es decir, posterior a ingresar un 1 por el pin 11. No se que tan correcto sea mi razonamiento, espero correcciones o aclaraciones)

Problema, hago las simulaciones en el multisim y ninguna de mis dos alternativas funciona. Es por esto que me gustaría saber de que manera se puede "resetear" un latch D.

Esperando sus respuestas, se despide con un saludo cordial,

Atte. Metallick


----------



## Daniel Meza (Abr 20, 2012)

Saludos y bienvenido al foro... ¿porqué no optar por un registro que tenga entrada de RESET?, como el 74273


----------



## Black Tiger1954 (Abr 20, 2012)

Vayamos por partes. Esos 8 relés se tienen que poder encender y apagar de forma individual?

PD:
Un 74LSxxx con 9 volts....... no lo creo.
El 74LS373 actualiza el dato con el flanco de subida en LE (Latch Enable). Por ende, primero aparece el dato en la entrada correspondiente, luego el pulso de subida del LE, luego baja el pulso LE y por último ya es indiferente el dato de entrada, pero este dato tiene que estar hasta que baje LE. Tal como lo estás proponiendo, eso no sucede.
Tu circuito aunque llegase a funcionar, solo haría que se vayan encendiendo los relés de acuerdo a que botón pulsás.

Como idea, por qué no usás flip-flops que con cada pulso cambia de estado. Con esto podrías usando el mismo botón encender o apagar el que desees.

Otro detalle es que el 74LS en estado alto, solo te entrega 2.6 mA. A duras penas vas a encender un LED.


----------



## Metallick (Abr 21, 2012)

Buenas, primero que todo, muchas gracias por las respuestas. Ahora a responder algunas cosas.

1.- Con respecto a lo que comenta Daniel: No uso flip-flops porque la verdad es que según entiendo estos se actualizan por reloj y no en el momento que yo desee, por lo cual en su momento me hizo inclinar por el latch.

2.- Con respecto a lo que comenta Black Tiger: Eso de activar y desactivar con el mismo botón no es lo que busco. lo que busco son dos posibilidades, una de bypass (no activado ningún relé, y es lo que quiero hacer con el reset del latch, es decir, todas las salidas del latch en 0) y otro estado en el que uno y sólo uno de los canales esté activo en cada momento, de modo que al presionar el switch 1 se active el canal 1, luego al activar el switch 2, se desactive el canal 1 y se active el canal 2 y así para los 8 canales. Ahora, cada canal (salida del latch) pasa por un dipswitch de 8 interruptores que determina que relés se ativarán, es decir, un interruptor activará sólo una salida del latch, la cual pasará por un dipswitch que determinará cuales de los 8 relés se activarán.

Espero se entienda mejor ahora.

Saludos y gracias por sus respuestas.

PD: el 373 lo alimento con 9v y no me da ningún problema. De hecho pongo un video de como funciona.


----------



## Black Tiger1954 (Abr 21, 2012)

Ahora quedó claro. Sin dudas la forma de poner todo en 0 es sin oprimir ningún pulsador, pasar a estado alto el LE. Verificá que la tensión sea muy baja en esta pata, quizás reduciendo el valor de la resistencia que va a masa.
Con respecto a la tensión, en la hoja de datos la tensión máxima que declara son 5.5 volts si mal no recuerdo. Si te funciona, queda a tú criterio.


----------



## Metallick (Abr 21, 2012)

Claro, pero una vez que ya activé un canal?, lo que me comentas me hace sentido en un tiempo t0 justo después de alimentar el circuito, pero luego, cuando el latch ya tomo un valor, el hecho de bajar la tención del LE no produciría cambio, puesto que no se activaría el latch. Al menos así entiendo yo el funcionamiento del bicho este, LE da la orden de escuchar las entradas y setear las salidas, por mucho que tenga datos en las entradas si LE es 0 no actualiza. Es más, por el hecho de que me permita controlar el momento de "escucha" es que lo elegí antes de un flip-flop que según entiendo setea su momsnto de "escucha" por un reloj (espero no estar equivocado, si lo estoy agradecería corregirme).

Ahora, la idea es poner un noveno interruptor/switch que le indique de algún modo al latch que borre el dato que tenga guardado en cualquier momento.

Saludos y muchas gracias por la respuesta y la paciencia.


----------



## Black Tiger1954 (Abr 21, 2012)

No dije bajarla, si no pasar a estado alto LE, con eso toma los valores que estén los datos, y si no hay oprimido ningún pulsador, los datos son 0.


----------



## Metallick (Abr 21, 2012)

En estricto rigor, si hago algo de esta forma:

v+ -> interruptor -> diodo -> pin 11 (LE)

estoy haciendo justamente lo que me dices no?


----------



## Black Tiger1954 (Abr 21, 2012)

Acá te dejo como lo simulé. Así funciona y hace lo que vos querés. El interruptor S2 es el "clear".

PD: te dejo también como yo lo haría, un poco más simplificado. Si hay rebote en los contactos no importa, ya que el circuito queda enclavado, por eso quité los condensadores de los interruptores.


----------



## Metallick (Abr 21, 2012)

Muchisimas gracias Black Tiger, de verdad gracias por el tiempo dedicado, básicamente mi idea:


> 1.- Agregar un noveno switch que haga entrar un 1 por el pin 11 (LE) y no ingrese dato en ninguna entrada Dn, de esta manera, se actualicen todas las salidas. Si consideramos que no se ha presionado ningún otro switch, todas las entradas Dn serán 0 por lo cual al actualizar los datos del larch cada salida Qn debería volverse 0.



Estaba bien planteada pero mal simulada o mas bien, mal llevada al circuito, finalmente, hice todo el circuito nuevamente en el multisim y si funcionó tal como lo hiciste tu (cambiando algunos valores de resistencias y cosas para la simulación de los 8 canales), ahora, creo que mi problema estaba en la impedancia que le daba al pin 11.

En cuanto a lo del rebote, la verdad no lo había pensado, lo hice así más que nada por que el artículo en el cual me basé para este diseño planteaba algo de esa forma y además acostumbrado a esto por el molesto pop que genera el switch al activarlo cuando se trabaja con audio, de todos modos realizaré las pruebas con o sin la resistencia, porque en realidad, como dices tu en esta parte no debería afectar.

En fin, problema resuelto, reitero mis agradecimientos.

Un saludo cordial,

Atte. Metallick


----------



## fernandob (Abr 21, 2012)

Black Tiger1954 dijo:


> Con respecto a la tensión, en la hoja de datos la tensión máxima que declara son 5.5 volts si mal no recuerdo. Si te funciona, queda a tú criterio.


 
cuando te deje de funcionar todo (muerto) recorda estas famosas letras.


----------



## Black Tiger1954 (Abr 22, 2012)

Bueno, me alegro que haya llegado a buen término (al menos en la simulación ).
Los TTL son así de "caprichosos", necesitan resistencias pull-up o pull-down que drenen bastante corriente. Saludos.

PD: según la hoja de datos que ahora la miré, es 5.25V, mi memoria no es tan buena


----------



## Metallick (Abr 22, 2012)

Si con respecto a los 9V, hará una fuente conversora de 9V a 5V con un regulador típico de 5V no recuerdo el nombre pero los típicos esos , veré si consigo relés de 5V si no, en último caso alimento esta parte con 5V y la de los relés con 9V y ya.

Saludos


----------



## fernandob (Abr 22, 2012)

Metallick dijo:


> si no, en PRIMER CASO  alimento esta parte con 5V y la de los relés con 9V y ya.
> 
> Saludos



las cosas s ehacen como se deben hacer.


----------



## chclau (Abr 23, 2012)

Un apoyo a fernandob y me extraña, Tiger, por lo que veo das siempre das buenos consejos, pero esta vez no. No le digas a alguien que superar los límites de la hoja de datos queda a su criterio. Que funcione, no quiere decir nada. También funciona un motor de auto sin aceite... la pregunta es solamente, cuánto falta hasta que explote.


----------



## Metallick (Abr 23, 2012)

A lo de en último caso, me refería a que si no pillo relés de 5V que no produzcan ruido al activarse (porque los necesito para una aplicación de audio, por lo cual que introduzcan ruido no es lo que necesito ) alimento la parte de control con 5V y el resto con 9V sin problemas. Lo de los 5V del latch la verdad es que se me paso totalmente por alto, pero ciertamente lo corregiré en la próxima revisión, es más, ya está corregido, porque la revisión ya la hice .

Saludos y gracias por las observaciones.


----------



## Black Tiger1954 (Abr 23, 2012)

Chclau: cuando hago algún que otro aporte, digo como debe ser a mí criterio y no entro en discusiones. El queda a tu criterio significa, hacelo y si se rompe, a "llorar al San Ponciano" (frase local de La Plata), yo te avisé.


----------



## lukatosh (Jun 5, 2013)

Como podriamos hacerlo para que este circuito al conectarlo a la alimentacion parta con todos los datos en las salidas con un nivel bajo?

Gracias a la explicacionde black tiger, se logro mediante un switch hacer una funcion de "reset"... Pero me pasa que cuando echo a correr la simulacion todos los leds a la salida aparecen encendidos.

como poder hacerlo para que no se active ninguna salida al recien conectar el circuito a la alimentacion?

Por otra parte...segun lei, era necesario el uso del cd4049 para proteger al 74LS373 ante no recuerdo que cosa...


----------



## Scooter (Jun 6, 2013)

Necesitas usar el 273 que si que tiene reset, pero es por flanco no por nivel.


----------



## lukatosh (Jun 6, 2013)

La verdad,necesito usar latch para que cambien de estado al momento que yo dese (presionar un switch)

Lo que me ocurre es que al simular el efecto, al iniciar la simulacion salen todas las salidas del latch activadas (leds encendidos ) esto pues, les llega un 0 desde los 4049...  

vuelvo a repetir porsiacaso... el uso de 4049 es necesario para proteger las entradas del latch

Mi simulacion, es la imagen que esta al comienzo del hilo...

Un abrazo!


----------



## Daniel Meza (Jun 6, 2013)

Puedes usar el 273 disparado por flanco y aprovechar su entrada reset, solo habría que agregar a la salida de los diodos en común un capacitor para retrasar un poco el flanco de subida y así obtener el mismo efecto que con el 373


----------



## lukatosh (Jun 6, 2013)

mmm Es la unica forma?

No habria posibilidad entonces de hacerlo con ese circuito?


----------



## Daniel Meza (Jun 6, 2013)

Vamos, seguramente la hay pero sería más lío. Por ejemplo, para hacer lo que quieres tendría que idearse un circuito auxiliar que mantenga las entradas en bajo al momento de conectarse la alimentación además de generar un pulso de EN para almacenar esas entradas, esto se me ocurre implementarlo con redes RC en las entradas tanto de datos como en la de EN


----------



## lukatosh (Jun 6, 2013)

Estimado... 

gracias por responder.

Como bien dices, al conectar el circuito a la alimentacion, el latch recibe un 1 por parte de todas las entradas puesto que el nivel bajo de estas es negado con el 4049...

Si yo  mediante un interruptor llego con un nivel alto  a la pata 11 se logra un efecto de "reset"...

tomando encuenta la solucion que me indicaste tu, Conecte una red rc a fin de obtener un pequeño tiempo de retraso y lo conecte a la pata 11.

(9v a resistencia->*->condensador->tierra) desde el *  me conecte a la pata 11

con esto logro retrasar el que llegue un nivel alto al latch, entonces cuando el condensador se carga, llega un alto a la pata 11 y como en ese momento no hay ningun switch presionado logro hacer que encienda con todo apagado...

Se te ocurre alguna posibilidad de implementar algo, que haga que  mediante un pequeño retraso llegue un alto  a la pata 11 ( lo que actualmente estoy haciendo con la red RC) PERO, que luego de unos pocos segundos se apague ( entregue un nivel bajo ) y desde ese estado no salga?, es decir que luego de unos segundos tome un nivel bajo permanente...

algo asi como un timmer, que luego de unos pocos segundos se corte y no suba mas...

asi, lograriamos "resetear" el latch durante un brevisimo instante de tiempo y luego todo vuelve a la normalidad...

nose si me explique bien... espero me puedas entender...

un abrazo!

habria que hacer algo con un 555 y un rele...

EDIT: o... con un 2c3906 hacer la fuuncion de switch off...

en multisim salen switch controlados por voltaje... como andan esos en "la vida real"... quiza con la red RC pueda pasar de  on (pata 11 conectada a V+ - "reset" ) a un efecto off (se desconecta pata 11 de v+ y sigue todo normalment )


----------



## Daniel Meza (Jun 6, 2013)

A todo eso me refería con mi comentario anterior de "más lío", pero veamos... el "circuito auxiliar" no puede hacer que la entrada 11 se quede en bajo ya que esto impediría la generación del pulso alto proveniente de los diodos, lo correcto es que el circuito auxiliar entre en "alta impedancia" para que no estorbe en un futuro. 
Me viene a la mente utilizar un PNP con su emisor a +5V (Recuerda cambiar toda la alimentación a 5V si no destruirás el integrado), su colector a la terminal 11 y en la base el circuito temporizador, de esta manera al "cortar" el transistor el nivel en alto generado inicialmente no afectaría a los diodos... haré un diagrama para explicarme mejor

Algo así es la idea del diseño


----------



## lukatosh (Jun 6, 2013)

muchisimas gracias!!

edit: que funcion cumplen la resisntecias de 56k y el condensador de 100nf?


----------



## Daniel Meza (Jun 6, 2013)

Ese resistor y el capacitor es la red RC de temporización para mantener la entrada en bajo durante la inicialización, la otr red RC en la base del transistor es otra red de temporización para generar el pulso en alto inicial en la entra EN del 373. Hay que considerar que para que funcione este circuito es necesario tener en serie a las salidas del 4049 un resistor que cargue lentamente al C1


----------



## lukatosh (Jun 6, 2013)

Estimado...muchas gracias por tu tiempo...

Pero sabes, como dices tu es un leseo mas o menos el modificar todo el circuito y se complica un poco la cosa...

Otra opcion, es que solo un canal este activo al conectar el circuito a la alimentacion. Esto es, si ves la imagen original al comiezo del post, que al conectar la alimentacion solo encienda el led conectado a Q0 (D9).

Esto, segun lei, se soluciona cambiando uno de los condensadores que van junto al interruptor de cada canal... Los valores de todos esos condensadores es de 0.01uF, y lei que colocandole a UNO solo, un valor de 0.047, solo ese canal salia activo al conectar la alimentacion...

El problema es que en el simulador no me anda... se te ocurre que poder hacer ahi? quiza es mas facil que hacer todo el otro jaleo...


----------



## Daniel Meza (Jun 6, 2013)

Mejor ármalo físicamente, los simuladores no creo que consideren bien los transitorios iniciales. Agrandar ese capacitor se verá reflejado solamente en la duración en alto de la salida respectiva del 4049. Viendo la solución desde otro enfoque se podría invertir el efecto de los capacitores del 4049, es decir hacer que la red RC entregue un estado alto inicial de tal manera que al 373 ingrese un estado bajo. 
De esta manera solo nos preocuparíamos por hacer la red RC de retardo en la entrada EN del 373.

Para lograr tal efecto basta con intercambiar la posición de R1 Y C1 (como ejemplo para el pulsador 1)


----------



## lukatosh (Jun 6, 2013)

Si intercambio las posiciones de R1 y C1, la entrada del 373 siempre recibe un alto :/


----------



## Daniel Meza (Jun 6, 2013)

Entonces intenta quitando los capacitores y solo deja el resistor de puesta en alto


----------



## lukatosh (Jun 6, 2013)

no pasa nada

adjunto el link del archivo simulado en multisim por si se te ocurre algo

https://www.dropbox.com/s/wb8rbjq8g1zjqt6/Design1.ms11

gracias por tu ayuda!!


----------



## Daniel Meza (Jun 6, 2013)

No dispongo de MULTISIM... si lo puedes mejor poner en imágen para ver las conexiones por favor


----------



## lukatosh (Jun 6, 2013)

Estimado, te adjunto un pdf con el funcionamiento del circuito... 

https://www.dropbox.com/s/nllfpcntiu2ohnc/Funcionamiento.pdf

aca lo mismo, pero con valores en el diseño.

https://www.dropbox.com/s/zsxz3ebwd3o893p/8 loops switcher.pdf


Debo mencionar que ambos archivos son hechos por completo por felipe @metallik, quien fue el que inicio este proyecto...

para que entiendas que es lo que queremos hacer, puedes ver este video...almenos como idea general.

https://www.youtube.com/watch?v=wP2qMPLumFY

El circuito presentado, felipe lo trabajo desde cero... ya que no tenemos acceso a documentacion en relacion a como se fabrico la unidad original.

De ahi surge el hacer todo lo que esta en el PDF.

El unico punto de tropiezo, para que todo este ok... es como hacer que el efecto parta en bypass, esto es... ningun rele activado o dicho de otro modo, como lo hemos estado viendo hasta el momento. Todas las salidas del 373 anivel bajo.

nuevamente gracias por tu tiempo

La unidad original, al conectar la alimentacion y encender el switch on/off, comienza de este modo... sin ningun canal activo. todos apagados.


----------



## Daniel Meza (Jun 6, 2013)

Ya entiendo, podemos retormar la idea de inhabilitar las salidas del 373 al inicio de la operación. Se me ocurre el siguiente circuito:



Quitando las redes RC de los pulsadores las salidas del 4049 serán bajas polarizando inversamente a los diodos. Al mismo tiempo C1 permanecerá descargado manteniendo en corte al transistor y de esta manera la terminal OE en alto desactivando las salidas del 373.
Tan pronto se active un interruptor el nivel alto en su respectiva salida del 4049 cargara a C1 y saturará al transistor mandando a bajo la terminal OE y permancerá así hasta que C1 se descargue. 
El problema está si llegase a descargarse C1 todas las salidas se desactivarían si hay un intervalo largo entre pulsaciónes. Al escribir esto se me ocurre sustituir el 2n3904 por algún MOSFET para aumentar el tiempo de descarga de C1


----------



## lukatosh (Jun 6, 2013)

Claro... El intervalo puede ser o muy corto o MUY largo... incluso si no llego a presionar nunca un switch, el canal activo debe permanecer activo...



No logro entender por que el implementar un "timer" a off con un 2n3906 no andubo... quiza refinando eso, consigamos que llegue un alto a la pata 11 solo por unos brves segundos... suficiente para conseguir "que parta bypaseado"


----------



## Daniel Meza (Jun 6, 2013)

> No logro entender por que el implementar un "timer" a off con un 2n3906 no andubo... quiza refinando eso, consigamos que llegue un alto a la pata 11 solo por unos brves segundos... suficiente para conseguir "que parta bypaseado"



Aumenta el valor de C o de R


----------



## lukatosh (Jun 7, 2013)

estimado, cambiando los valores de R  y C andubo... el latch inicia en bypass!!

pero jeje... ( esto de no quedar nunca satisfecho jeje )

Como puedo descargar el condensador (que usamos para crear el retraso) de modo que cuando yo desconecte la alimentacion y la vuelva a conectar este se vuelva a cargar? y no quede cargado?

gracias!



edit: algo asi como que pasa si apago y enciendo nuevamente el asunto... ya no comienza en bypass, comienza con el jaleo de las luces... la idea es que apagarlo y prenderlo nuevamente se vuelva a producir el tiempo de retraso gracias a la red RC


----------



## Daniel Meza (Jun 7, 2013)

Eso se logra poniendo en paralelo al resistor de la red RC un diodo polarizado en inversa, cuando se desenergiza el circuito la carga almacena en el capacitor se "escapa" fácilmente por el diodo hacía la línea de Vcc. Este es el circuito


----------

