generador de onda cuadrada en 20MHz

0

Necesito un circuito que genere ondas rectangulares. No debería ser lo-hi-lo-hi, pero se necesita una secuencia aleatoria de lo-hi-hi-hi-lo-lo. También tiene que oscilar así, al menos a 20MHz. No me importa obtener un IC especial ... Cualquier cosa para facilitar el trabajo está bien para mí.

Bien, estoy buscando los que son realmente fáciles de usar y por eso le agradezco a Nick por la solución. También estoy considerando algo posiblemente incluso más pequeño.

Por favor desnudo conmigo.

Tal vez pueda usar un oscilador digital ordinario y luego cambiar dinámicamente su frecuencia de oscilación (cambio en la frecuencia también en términos de MHz), de modo que las señales de nivel se dilaten y compriman, dando el efecto de que hemos generado flujos de bits al azar. Aunque tenemos que establecer la frecuencia objetivo (en este caso, 20MHz), como el límite inferior para cambiar las frecuencias.

Algo como esto, un LTC6905 - enlace (ok, no es exactamente barato), y luego varíe la resistencia de configuración en pequeños incrementos / decrementos al azar.

Por supuesto, hay un problema de cambiar aleatoriamente la resistencia que es, al menos, pseudoaleatoria. Así que es hora de volver a la plaza uno. ¿Algún comentario sobre esto?

    
pregunta Dehbop

2 respuestas

3

Suponiendo que desea una secuencia pseudoaleatoria, un Linear Feedback Shift Register es una opción fácil. Puede implementar uno con uno o más registros de desplazamiento y una sola puerta XOR. Luego, simplemente introduzca una señal de reloj en el pasador de seguridad para sincronizarlo. Puede leer la señal de cualquier pin de salida en el registro de desplazamiento.

Si necesita un período más largo que 511 bits, puede agregar registros de desplazamiento adicionales.

La única complicación es que necesita inicializar el registro con al menos un bit establecido. Una forma de hacer esto sería usar un registro de desplazamiento con habilitación de salida, vincular una de las entradas de la puerta XOR a VCC con una resistencia pullup, y usar un circuito RC para asegurar que la habilitación de salida demore un poco en encenderse después de que haya energía. aplicado.

Aquí hay un ejemplo de no probado :

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Nick Johnson
1

Sobre la base de la solución anterior, aquí hay una versión de tres chips y creo que es lo suficientemente barata para que la mayoría de la gente la construya:

simular este circuito : esquema creado usando CircuitLab

El 74LVC1GU04 (" U04 "), 74LVC1G04 (" C04 ") forma el núcleo del oscilador de cristal de 20MHz. Esto registra su LFSR basado en GAL. Si su placa tiene un reloj global, también puede usar eso.

El chip GAL implementa el LFSR de 8 bits. Al implementar todo el LFSR utilizando un chip GAL, se reduce el retraso y el recuento de chips.

Verifique la hoja de datos de su PLD y puede usar su generador de reloj de cristal interno si tiene uno. GAL16V8 no tiene uno, pero de acuerdo con algo de Lattice AN al usar una GAL más grande como GAL22V10 (o ceder algunos bits de etapa) puede construir el reloj desde el PLD así como el LFSR. (aunque mi experimento en ATF16V8B de Atmel demuestra que este es un comportamiento específico del fabricante)

Si terminó usando un GAL, le sugiero que use la versión DIP y la conecte, por lo que si descubre que su generador aleatorio está comprometido (puede ser un problema de seguridad importante), simplemente puede cambiar (o reprogramar) el chip con un nuevo LFSR.

    
respondido por el Maxthon Chan

Lea otras preguntas en las etiquetas