ATmega328 - dos salidas de reloj

0

Estoy usando un ATmega328P para proporcionar un reloj de 2, 4 u 8 MHz seleccionable por software a mi SBC hecho en casa. Esto funciona bien. Sin embargo, estoy agregando un generador de sonido programable (PSG) a la placa y requiere un reloj de 1-2MHz.

Quiero mantener la placa simple y evitar divisores de reloj de flip-flop y selecciones de salida debido a la velocidad de reloj variable del sistema, así que esperaba poder configurar el ATmega328P para proporcionar un segundo reloj de 2 MHz (no variable) para el PSG.

El problema es que no tengo experiencia con los AVR y sus fusibles de temporizador y ni siquiera sé si esto es posible con el ATmega328P. Si es así, ¿cómo puedo configurar otro pin y su temporizador para proporcionar la señal de reloj de 2 MHz?

Pregunta de

bonificación (casi no relacionada): ¿Puede un AVR de 20 MHz proporcionar un pulso de reloj de 8 MHz, ya que no es un factor de 20?

EDITAR: Solo para aclarar un par de puntos:

1) El ATmega328 se ejecuta a 16 MHz. Estoy usando una salida de reloj / temporizador para producir el reloj requerido de 8 MHz que necesito para la placa principal.

2) Necesito un reloj de 2 MHz separado (pero idealmente en el paso con el reloj de 8 MHz) para el PSG. ¿Esperaba poder configurar otra salida de reloj desde el ATmega328?

    
pregunta nockieboy

1 respuesta

0

No estoy lo suficientemente integrado en la familia atmega, pero probablemente puedas hacer el 1MHz con una unidad PWM. Estos son programables, por lo que puede ajustarlos a diferentes relojes del sistema si es necesario.

Los 8 MHz serán más difíciles, pero si puede generar factores enteros de 20 MHz:

  • generar onda cuadrada de 4 MHz
  • convierte la onda cuadrada (que tiene muchos armónicos de orden impar) en onda sinusoidal con un filtro de paso bajo RC o LC muy simple
  • rectificar la señal de onda sinusoidal »con contenido de frecuencia al doble de la frecuencia del seno (entre otros)
  • filtre la onda sinusoidal rectificada a solamente que contenga la onda sinusoidal de 8MHz deseada
  • use el comparador o el activador Schmitt para convertir la onda sinusoidal en onda cuadrada, si se desea esta última
respondido por el Marcus Müller

Lea otras preguntas en las etiquetas