Generador de esquema aleatorio de 8 bits sincronizado para sintetizador CMOS

Alana Herrero
Alana Herrero

Un generador de ruido aleatorio es bastante útil cuando se trabaja con música, y construir uno con un microcontrolador puede ser bastante trivial. Así que es agradable cuando alguien viene y lo construye a partir de algunas partes analógicas y digitales. [acidbourbon] construyó su generador de patrones aleatorios con reloj de 8 BIT para CMOS Synth inspirado y motivado por el reciente artículo Logic Noise: Sweet, Sweet Oscillating Sounds de [Elliot Williams]. Es una salida de 8 bits que se puede utilizar como secuenciador aleatorio para sintetizadores CMOS DIY.
Este generador de plantillas es adecuado para su uso en combinación con un multicanal analógico de 4051-8 canales. Pero suena bastante interesante por sí solo (más agradable en estéreo, mira el video después del descanso). Después de construir algunos circuitos de sintetizador CMOS, [acidbourbon] pasó a hacer algunos secuenciadores y multicomputadoras, que luego le permitieron inventar este generador de patrones aleatorios que podría ser controlado por una señal de reloj.

El principio básico es sencillo: generar ruido, amplificarlo, aplicar un reloj para controlar el ruido de entrada. Sus opciones de proyectos para las distintas secciones están bien explicadas, basadas en los límites con los que tuvo que trabajar. Todo tiene que funcionar a 5V, pero su circuito generador de ruido necesita 12V para funcionar. Eligió usar una bomba de carga para generar -5V, lo que resultó en un suministro de 10V que fue apenas suficiente, pero funcionó. Un acelerador puede haber funcionado mejor para generar 12V, pero tal vez ya tenía el IC de la bomba de carga ICL7660 en su caja. El resto del circuito utiliza dispositivos CMOS / TTL estándar y [acidbourbon] proporciona todos los archivos del proyecto para lo que parece una PCB de una cara ordenada, creada fácilmente mediante el método de transferencia de tóner.

Video a continuación.

  • 666blah666 dice:

    “Es” es una contracción de “es”.

    • Anool Mahidharia dice:

      ¡Gracias! y editado. Sin embargo, tuve que buscarlo aquí: http://www.its-not-its.info/

      • RunnerPack dice:

        O puedes escuchar la canción A “Word Crimes” de Weird;)

      • Matiaso_H dice:

        Es una salida de 8 bits que se puede utilizar como secuenciador aleatorio para sintetizadores CMOS DIY.
        Pero suena bastante interesante por sí solo

        Ambas veces -> es, no.

  • Heffo dice:

    Esto es realmente asombroso, inmediatamente me recordó la forma de onda de ruido SID. ¡arroja algo de ADSR allí y obtienes algunas explosiones de la vieja escuela!

    • Jim dice:

      Mi reacción inmediata al escucharlo fue “¡Oh, eso es como el ruido de 8 bits de Atari”!

  • Pensador dice:

    Entonces, ¿es esto lo suficientemente aleatorio para una criptografía?

    • Robar dice:

      No. Si lo que está encriptando no importa tanto, tal vez podría hacerlo. El ruido críptico generalmente proviene de un CCD en una caja a prueba de luz con la ganancia hacia arriba.

    • Artenz dice:

      ¿Por sí mismo? Probablemente no.

      ¿Combinado con un generador pseudoaleatorio criptográficamente seguro? Ciertamente. Por ejemplo, puede poner esto en Raspberry Pi y agregar un controlador para ponerlo en el grupo aleatorio, y luego leer los números aleatorios de / dev / urandom.

  • Robar dice:

    2N3904 es un transistor. 2n3904 es 2.3904 * 10 ^ 9

  • Robar dice:

    Editar: 2N3904 es un transistor. 2n3904 es 2.3904 * 10 ^ -9

  • rj dice:

    Por lo que vale, el “ruido F-cero” es LFSR, no una fuente de ruido analógica.

    • Robar dice:

      Además: “Un generador de ruido aleatorio es … y construir uno con un microcontrolador puede ser bastante trivial”.

      Como LFSR, completamente predecible y no accidental.

      es decir, generar un número aleatorio solo usando un código (y sin fuente de entropía) en un microcontrolador ni siquiera es posible, incluso menos trivial.

      • Artenz dice:

        Para generar sonido, el uso de software funciona bien. Para números aleatorios para juegos y simulación, un generador pseudoaleatorio también funciona bien si es de buena calidad. Incluso para fines criptográficos, puede usar un generador pseudoaleatorio si es seguro para criptografía, y puede inicializarlo con suficiente entrada aleatoria.

        • Robar dice:

          Ese es mi punto lol. Un microcontrolador solo puede generar un pseudoaleatorio. No es posible que un microcontrolador genere verdaderos números aleatorios (impredecibles). Si es codificable, por definición se puede predecir y, por lo tanto, NO es aleatorio.

          • Artenz dice:

            La noción de “predecible” depende de cuánto sepa. Es fácil para mí generar números pseudoaleatorios que no puedes predecir. El intercambio de una carta también es pseudoaleatorio, pero es suficiente para los casinos.

          • Robar dice:

            Por definición, los números aleatorios no son predecibles bajo circunstancias ni por ningún medio.

            Si crea un generador de números pseudoaleatorios codificados y me da el código y la semilla, entonces puedo predecir cada número en secuencia. Entonces no es realmente aleatorio.

            Lo que intenté decir es que simplemente no es posible crear números (realmente) aleatorios con un microcontrolador.

          • Artenz dice:

            Esa es una definición, sí, y estoy de acuerdo en que si usa esa definición, entonces un algoritmo de software no es realmente aleatorio.

            Digo que no es una definición muy útil en circunstancias reales donde el conocimiento perfecto y los recursos ilimitados son raros.

          • Koplin dice:

            Este dispositivo utiliza un colapso de diodo de avalancha para una verdadera generación aleatoria. Mire el diagrama de construcción y compárelo con otras fuentes aleatorias que usan daños por avalancha.
            IE: compare la “sección de ruido blanco” de https://acidbourbon.files.wordpress.com/2015/02/project.png
            al hardware RNG http://web.jfet.org/hw-rng.html

            Si de hecho el diodo en el transistor sufre un colapso por avalancha, entonces es un efecto cuántico y por definición es un evento realmente aleatorio.

            Entonces, si dices que el RNG es externo al micro, sí, podría estar de acuerdo con este caso porque el micro no es “aleatorio”, sin embargo, llamo su atención sobre

            http://www.ti.com/lit/an/slaa338/slaa338.pdf Es decir, la plataforma de lanzamiento de TI, esto usa solo el micrófono para hardware RNG.

            Entonces, la afirmación anterior de que no se puede codificar un verdadero aleatorio es falsa. El hecho de que cada hardware tenga pequeñas diferencias entre cada parte proporciona funciones realmente aleatorias para el mismo software con los mismos estados iniciales. Entonces, un generador realmente aleatorio.

            De hecho, lo sé porque he construido varios de ellos. Además de no usar CCD porque el sesgo en el dispositivo incluso después de que se obtuvo la ganancia aún falló en la validación, sin embargo, quitar el filtro de corte IR frente al CCD y colocar una fuente de rayos alfa directamente en frente del CCD dio un resultado realmente aleatorio. generación basada en efectos cuánticos y validación pasada.

            Y todo esto evita los microscopios efectivos con hardware RNG incorporado. Entonces, sí, los microcontroladores pueden y tienen funciones realmente aleatorias disponibles para ellos y no solo pseudoaleatorias. No todo micro, no es tan efectivo, pero funciona.

          • Matiaso_H dice:

            Incluso los AVR más pequeños tienen sensores de temperatura. Solo usa la parte menos significativa y aquí tienes.

          • Robar dice:

            @Koplin

            Cita: “Entonces, la afirmación anterior de que no se puede codificar una coincidencia real es falsa”

            Mi declaración original fue: “Generar un número aleatorio simplemente usando código (y sin fuente de entropía) en un microcontrolador ni siquiera es posible, incluso menos trivial”

            En su ejemplo, usa las diferencias de tiempo en MCU (debido a la temperatura) como fuente de entropía y son exclusivas en mi declaración original.

            Las mismas manzanas con otros “trucos” como leer una entrada analógica de circuito abierto o LSB de un sensor de tiempo. Estos ejemplos utilizan una fuente entrópica además de un “código” específico.

            Estos ejemplos realmente reafirman mi afirmación. Simplemente, ¿por qué usarías estos “trucos” si solo pudieras escribir código para la entropía? La respuesta es simple: “debe” utilizar estos trucos porque es “imposible” escribir código para hacer esto.

            Si es posible, podría darme la fórmula para “aleatorio”.

    • araneoidulo dice:

      No, no lo es, es un generador de ruido de transistor seguido de un amplificador y un registro de desplazamiento, como se muestra en el diagrama de circuito del artículo.

      Sin embargo, LFSR eliminaría la necesidad de una fuente de alimentación de 12 voltios.

      • rj dice:

        Bleh, inglés. La “F cero ruido” en F-Zero, en SNES, usando el SPC700, eso es LFSR.

  • vonskippy dice:

    Ahora, si tan solo la gente hiciera generadores SILENT aleatorios.

    • RunnerPack dice:

      Simplemente ejecute la salida de esto con un inversor

  • Brendan Robert dice:

    FWIW, aquí está el algoritmo para generar el patrón de onda cuadrada de ruido del chip de sonido AY-3:
    // nota: rng se establece originalmente en 0x003333 durante el inicio;
    int newBit17 = (rng y 0x04)> 0 == (rng y 0x01)> 0? bit17: 0;
    rng = novaBit17 + (rng >> 1);
    Lo haría con 1 para el valor de bit utilizado en la generación de sonido para ese ciclo.

  • Brendan Robert dice:

    Incluso si tiene pines ADC sin base, podría probarlos de formas extrañas para obtener una fuente de entropía más aleatoria, pero para la blancura no creo que sea realmente necesario.

    • Elliot Williams dice:

      Los pines sin tierra no son muy aleatorios. El ruido de la línea eléctrica domina y genera un patrón predecible de 50/60 Hz en la mezcla.

      Pero como dices, todo depende del propósito. Si solo necesita algunas entropías, probablemente esté bien. Si necesitas megabytes, las correlaciones te llegarán.

  • cazador de rayos dice:

    Las bombas de carga son simples en comparación con los transformadores de aceleración. Un convertidor rápido requerirá al menos 3 componentes externos, uno de los cuales es un inductor. Esto puede introducir todo tipo de problemas y complejidad del proyecto. En un diseño de baja corriente que solo necesita duplicar el suministro o menos, un convertidor de acelerador simplemente no causa mentalidad.

  • bourbon ácido dice:

    Lo siento si pudiera herir algunos sentimientos nerd con mi referencia a los sonidos de SNES de nuestro pasado lejano.

    • Yarr dice:

      Lamento si sufriera por haber usado el término incorrecto para lo incorrecto.

      • topiarycpu dice:

        ¿Te gusta el pastel de melocotón?

  • Ordev dice:

    Funciona muy bien. Conecté un potenciómetro (2M), un punto al pin 3 del 4049 y el otro a tierra. De esta forma se puede obtener una DENSIDAD DIVERSA DE PUERTAS DESBLOQUEADAS.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *