El oscilador de cristal que usa 7404 es inestable

Actualmente estoy construyendo un pequeño sistema de microprocesador Z80 y necesito algún tipo de generación de reloj. No es mi primer diseño: anteriormente usé un pin Arduino que generaba un reloj lento o un temporizador 555. Sin embargo, los diseños anteriores solo incluían el Z80 y algo de RAM y ROM.

Ahora quiero ampliar eso e incluir periféricos. Es por eso que elegí un Quarz de 3686.4 kHz, para poder dividirlo más tarde a través de un divisor de frecuencia para generar no solo el reloj de mi procesador sino también el reloj de mi UART.

Investigué un poco en Internet, leí algunos libros y esquemas y descubrí que la mayoría usa un oscilador de perforación o un oscilador resonante en serie. Para mi diseño, quiero usar chips simples 74xx o 74LSxx, porque los tengo disponibles y listos para usar. Afortunadamente, la mayoría de los libros para el Z80 y los sitios web también los crearon con chips 74xx. Así que traté de reconstruirlos. Mi diseño de perforación no funcionó en absoluto, así que cambié rápidamente mi configuración a un oscilador resonante en serie.

Para mi oscilador utilizo un único inversor 7404 que tiene un condensador de desacoplamiento de 100 nF conectado entre 5V y GND. Luego simplemente copié y pegué el circuito de la página 94 de "Construya su propia computadora Z80". Agregué el capacitor después de verlo en muchos esquemas y sin él, no comenzó a oscilar de todos modos. Adjunté mi esquema a continuación (no muestra el condensador de desacoplamiento entre 5V y GND)

Esquema de mi oscilador con un 7404

Ahora, cuando aplico algo de voltaje a este circuito, de hecho comienza a oscilar. Sin embargo, la frecuencia no es estable en absoluto, parece estar 200 kHz por debajo de la indicada y el ciclo de trabajo no es en absoluto del 50%. Puede ver la salida de mi analizador lógico a continuación.Salida del analizador lógico

Mientras que el estado lógico alto parece ser bastante estable con un ciclo inestable visible en el extremo derecho del gráfico, el estado desactivado varía bastante.

Hablando con franqueza, no sé cómo solucionar esto ya que no tengo mucha experiencia con los osciladores. Sin embargo, tengo la sensación de que el condensador tiene una gran influencia. Cuando lo cambié de 100 pf a 22 pf, la frecuencia era completamente inestable. Cuando lo cambié a un valor más alto, no vi mucha diferencia. También traté de cambiar el 7404 con un 74LS04 como lo usan algunos esquemas, pero eso no cambió nada.

Si alguien me puede señalar mi error, estaría muy contento.

Información adicional: La hoja de datos de las llamadas de cristal indica CL=20pf y Rr < 120 Ohm.

Consulte electronics.stackexchange.com/questions/363305/… respuestas. Funciona mucho mejor con puertas CMOS.
@ crj11 Es posible que el OP quiera permanecer "retro" con la compilación. Solo el hecho de tener un 7404 en la mano me lo sugiere. Pero también podría ser ignorancia y solo ver diagramas Z80 antiguos.
Trunyx, como ya se dijo, probablemente desee cambiar a un circuito paralelo. Además, tenga en cuenta que las resistencias que van de la salida del inversor a la entrada del inversor establecen el punto de polarización. Cuando empiece a usar un arreglo paralelo, también puede ser importante que trabaje para obtener el punto de polarización donde lo necesita para obtener períodos estables e iguales de encendido y apagado. (En realidad, también es importante para su circuito existente).
@jonk Sí, de hecho tengo la intención de permanecer "retro". Sé que con soluciones más modernas algunas cosas serían más fáciles, pero estoy bastante fascinado con la tecnología más antigua. Mis construcciones anteriores usaban piezas más actualizadas, pero tampoco incluían un circuito oscilador. En este momento, me cuesta hacer que la configuración en paralelo funcione, ya que no entiendo muy bien cómo elegir las resistencias para el punto de polarización. estoy siguiendo esta guia
Dado que tiene experiencia previa, asumo que sabe lo suficiente como para no usar un prototipo sin soldadura para un oscilador como este.
@Trunyx: los valores del capacitor mencionados en el texto son 100 n F, 22 p F y 100 p F, el valor en el diagrama es 100 p F. ¿Cuál es el valor que usó actualmente?
@Curd Como se sugirió en una respuesta, ahora uso 10 nF. Empecé con 100 nF y luego cambié a valores más pequeños para observar el efecto que tiene.

Respuestas (5)

Algo con lo que debe tener cuidado al usar el dispositivo Saleae es que toma muestras , no mediciones continuas. A 24 MHz, toma una muestra cada 41 ns más o menos. El período de su reloj de 3,686 MHz es de 271 ns. Esperaría ver algún aliasing ya que la proporción entre los dos es 6.6:1.

Un osciloscopio sería una mejor opción de prueba.

Esto es solo para enseñarle por qué su oscilador TTL falla en este modo resonante de la serie Pierce, tiene que ver cómo funciona TTL.

Arreglos

  • cambie 100pF a 10nF para eliminar el cambio de fase a 3,5 MHz
  • agregue una entrada de 2,4 k a tierra para extraer la salida >> 2,0 V hacia 2,4 V (opcional)

La impedancia de 100pF es demasiado alta y = 1 k a 3,5 MHz, por lo que obtiene un mal cambio de fase de 45 dos veces y el bucle no inversor ya no está en fase para satisfacer los criterios de Barkhausen para oscilar. (Av>1 a 0 grados .)

Este es el diseño del TTL Inverter 7404 con 2 resistencias agregadas en la entrada y la tapa de acoplamiento.

ingrese la descripción de la imagen aquí

Cambiaron las corrientes, los valores de resistencia y los métodos de polarización más tarde con diodos Schottky, pero las relaciones de corriente siempre fueron 10: 1 y el umbral de entrada fue / es siempre 2 caídas de diodo o caídas de Vbe = 1.5V +/- 0.1 dependiendo de la corriente de polarización y la temperatura. .

Los XTAL OSC o XO resonantes en paralelo se utilizan mejor con CMOS de hasta 20 MHz y los XO de transistores resonantes en serie por encima de esta f para evitar la sensibilidad a la capacitancia parásita.

Gracias por tu explicación. Sin embargo, parece que mi cristal no está hecho para funcionar en un oscilador resonante en serie, sino en un oscilador resonante en paralelo. Así que tendré que cambiar fundamentalmente mi circuito

Busqué un viejo diseño de computadora Z80 de los años 80 (la computadora mc CP/M). También usó un oscilador con 7404 puertas:

Oscilador del mc-CP/M-Computer

El condensador utilizado allí es 10nF. Así que supongo que los valores en el rango de pF son demasiado pequeños.

Tiene un oscilador resonante en serie, y el cristal está diseñado para usarse con un oscilador resonante en paralelo, ya que requiere una capacidad de carga de 20pF. Cambie a un oscilador resonante paralelo o cambie el cristal a uno destinado a la resonancia en serie.

Tengo un cristal de 2 MHz y uno de 4 MHz, no su 3.impar MHz. Con contactos impares en una placa de prueba, primero no pude hacer que su circuito funcionara, pero tengo uno que es casi como el suyo, simplemente quitando ese capacitor por completo. Y funciona perfectamente cada vez sin ese condensador.

Cuando te uso 100 pF obtengo una señal muy sucia en los 2 MHz. Si aumento la capacitancia a 10 nF, como alguien sugirió, se ve mejor. Pero luego, cuanto mayor es la capacitancia allí, a frecuencias de MHz, más se aproxima a no tener capacitancia en absoluto.

Uno comentó en mi versión anterior de esta respuesta que decía que mi circuito aquí no funciona, pero lo hace, solo tenía la configuración de mi alcance analógico incorrecta, así que medí una frecuencia 4 veces mayor. Pero eso fue solo un error de operador de novato.

Francamente, no veo el sentido de todas estas cosas adicionales si esto aquí funciona mucho más confiable y simple. No hay condensadores que preocuparse por la frecuencia.

esquemático

simular este circuito : esquema creado con CircuitLab

No sé por qué todo el mundo está mostrando los esquemas más complejos y más difíciles de trabajar. Posiblemente tenga algo que ver con el desgaste del cristal.

Según su propia pregunta aquí , este circuito no funciona como se esperaba.
Fue el único que funcionó para mí, aunque en una frecuencia extraña. :)
De hecho, ¡funcionó al 100% a la perfección! Al igual que con esa otra pregunta, la respuesta real no fue nada mágica en absoluto, simplemente no tenía la configuración correcta de mi alcance y con gusto publiqué una imagen y con gusto @glen_geek descubrió mi error. Entonces, sí, este circuito funciona perfectamente para mí y ninguno de los otros lo hizo hasta ahora.