D Flip Flop Toggle -- Q en Hex Inversor en D, Salida inestable, Ayuda

esquemático

simular este circuito : esquema creado con CircuitLab

Creé el circuito anterior. Esencialmente hay un interruptor que normalmente es alto. Presiono un botón. Usando un inversor hexagonal NTE4049T, creo una transición de borde bajo a alto. Esto proporciona la entrada clk a un flip flop 74HCT175 D. Todo se ejecuta en TTL, 5 voltios. La salida del flip flop D se alimenta a otro inversor hexagonal NTE4049T para luego alimentar la entrada D del flip flop.

Idealmente, cuando se presiona el botón, crearía una alternancia de la línea de salida Q.

Esto no sucede. De hecho, hay alguna oscilación en la salida de la señal, pero no hay una transición finita de estado.

Me doy cuenta de que esto es el resultado de un cambio continuo/mal diseño. ¿Cómo se resuelve este problema? Si encadeno la salida del flip flop D a otro flip flop, también cronometrado en el mismo borde, para luego generar una salida invertida para el primer flip flop, ¿eso resolvería las oscilaciones de estado? ¿Puedo pasar la salida a través de una serie de búferes para crear un retraso de tiempo?

La primera foto es la forma de onda del interruptor con la red rc. Hay una caída instantánea cuando se presiona el interruptor. Esta caída, a través de un inversor, es lo que hace que mi señal clk suba.

Las siguientes imágenes muestran una vista de alto nivel de la salida de la señal Q, así como una imagen ampliada en la cola, donde la señal Q vuelve a ser baja. Creo que en esta sección de la cola se está cargando el capacitor. No estoy seguro de por qué haría que el flip flop d se disparara nuevamente. ¿No debería haber un flanco ascendente?

La línea azul claro representa la señal de transición del reloj en el flip flop. La línea amarilla representa la señal D que se alimenta al flip flop. La línea azul oscuro representa la señal Q del flip flop, justo antes de entrar en el inversor. La salida invertida volverá a alimentar el flip flop con una D.

¿Cómo se resuelve un problema como este en la práctica si no puedo resolverlo en el diseño anterior? Gracias

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Busque "interruptor antirrebote": los interruptores mecánicos no cambian limpiamente, los contactos traquetean durante unos pocos ms. Puedes verlo en tu rastro. Ordene eso primero y vea qué sucede luego :)
Convierta sus inversores en inversores Schmitt Trigger. Si 74LS04, por ejemplo, use 74LS14. Los disparadores Schmitt proporcionan antirrebote del interruptor.
@StainlessSteelRat Todavía necesita una red RC: al observar los excelentes rastros de Jeffrey (+1 para eso), los rebotes son lo suficientemente profundos como para hacer que la salida cambie a pesar del margen adicional que proporciona la histéresis. Un buen enlace: pubweb.eng.utah.edu/~cs5780/debouncing.pdf
De hecho, tenía un condensador en el circuito como una red RC. No se muestra en la foto de arriba. Editaré y publicaré una foto de la forma de onda activada al presionar el interruptor. La razón por la que no incluí la tapa en el diagrama fue porque pensé que no importaba en esta versión de mi prueba de circuito. Con la tapa, la caída de voltaje de la presión del interruptor es instantánea, luego sigue una acumulación gradual de voltaje con el tiempo (0,3 segundos más o menos) . La caída de voltaje de la presión del interruptor, a través de un inversor es lo que crea mi reloj.
Gracias por la edición: intente reducir los valores del condensador o la resistencia en un factor de 10, la constante RC probablemente sea demasiado alta, por lo que la entrada al inversor está en una región indefinida demasiado tiempo.

Respuestas (1)

Para completar un poco los comentarios, el problema (sospecho) es que su circuito RC antirrebote tiene un tamaño incorrecto. Con C = 3.3   m F y R = 100   k Ω da una constante de tiempo de 0.33   s . Sus huellas muestran que cuando cierra el interruptor, obtiene un borde limpio y agradable (como era de esperar). Cuando suelta el interruptor, el capacitor comienza a cargarse. Usando la ecuación V C = V i norte ( 1 mi t R C ) , puedes reorganizar para encontrar t = R C en ( 1 V C V i norte ) . Usando los valores de V I L = 1   V (entrada lógica máxima BAJA) y V I H = 4   V (entrada ALTA lógica mínima) de la hoja de datos del inversor muestra que la entrada del inversor está en un estado indefinido ( V I L < V i norte < V I H ) durante unos 460 ms. Esto es consistente con que vea una transición adicional en el punto medio del borde posterior. Intente reducir el valor de cualquiera R o C por un factor de 10, e idealmente también use un inversor de entrada de disparador Schmitt como se sugiere en los comentarios.

Gracias. Probaré lo que dices. Calculé .33 así como alrededor de 5RC (1.65) para cargar el límite, lo que probablemente sea demasiado largo. Reduciré los valores y conseguiré un inversor de gatillo schmit.