DDS: Convertidor de Fase a Seno

Direct Digital Synthesis - Explicación Detallada

Diagrama DDS - Convertidor de Fase a Seno
fa = (M / MMAX) × fC

fa = Frecuencia de salida (OUTPUT)

M = Tamaño de Salto (Tuning Word)

MMAX = 248 = 281,474,976,710,656 (resolución del acumulador)

fC = Frecuencia del Clock de Muestreo

1. Phase Accumulator (Acumulador de Fase - 48 bits)

El acumulador de fase es el corazón del sistema DDS. Funciona como un contador que avanza en pasos controlados. Imagina un velocímetro digital que en lugar de sumar 1 en cada ciclo, suma un valor personalizado (M).

¿Cómo funciona?
En cada ciclo del reloj de muestreo, el acumulador suma el valor M a su contenido actual. Cuando "da la vuelta" (overflow), comienza de nuevo desde cero. La velocidad con la que da vueltas completas determina la frecuencia de salida.

¿Por qué 48 bits?

Ejemplo práctico:
Clock (fC) = 100 MHz
Si M = 1 → fa = 0.00035 Hz (casi DC)
Si M = 2,862,835 → fa = 1,000 Hz (1 kHz exacto)
Si M = 143,165,576,500 → fa = 50 MHz (mitad del clock)

2. Phase Register (Registro de Fase - 14 bits)

El registro de fase es un compromiso inteligente entre precisión y eficiencia. Toma solo los 14 bits más significativos (los de la izquierda, bits 34-47) del acumulador de 48 bits.

¿Por qué descartar bits?
Los 34 bits menos significativos (LSB) cambian muy lentamente y aportan poca información útil para la forma de onda. Los 14 bits más significativos (MSB) cambian rápidamente y representan la posición actual en el ciclo de la onda con suficiente precisión.

La magia de la reducción:

Analogía:
Imagina un reloj con 281 billones de marcas (48 bits). Sería imposible leerlo. Lo reducimos a un reloj con 16,384 marcas (14 bits). Sigue siendo muy preciso (menos de 0.02 grados entre marcas) y mucho más práctico.

3. Lookup Table (Tabla de Consulta - 16 bits)

La Lookup Table (LUT) es una memoria ROM que contiene los valores precalculados de una onda senoidal. Es como tener una tabla de senos en la memoria, pero optimizada para acceso ultrarrápido.

¿Qué contiene exactamente?
Para cada uno de los 16,384 valores posibles de fase (0 a 16,383), la tabla almacena el valor de sen(2π × fase / 16384). Estos valores se calculan una sola vez durante el diseño y se graban en la memoria.

Características clave:

Ejemplo de valores:
Fase = 0 → sen(0°) = 0 → Valor = 32,768 (centro, representado en 16 bits)
Fase = 4,096 → sen(90°) = 1 → Valor = 65,535 (máximo)
Fase = 8,192 → sen(180°) = 0 → Valor = 32,768 (centro)
Fase = 12,288 → sen(270°) = -1 → Valor = 0 (mínimo)

4. DAC (Digital-to-Analog Converter)

El DAC es el puente entre el mundo digital y el analógico. Convierte cada valor digital de 16 bits de la tabla lookup en un voltaje analógico real que puede ser usado por otros circuitos.

¿Cómo genera la onda continua?
El DAC recibe un nuevo valor digital en cada ciclo del clock de muestreo. Mantiene ese voltaje constante hasta que llega el siguiente valor (efecto "sample and hold"). Un filtro paso bajo posterior suaviza los escalones, creando una onda senoidal continua.

Aspectos importantes:

Proceso completo:
1. Clock = 100 MHz → cada 10 ns llega un nuevo valor
2. DAC recibe: 32,768 → 33,500 → 34,200 → ... → 65,535 → ...
3. Voltaje de salida: 1.65V → 1.69V → 1.73V → ... → 3.3V → ...
4. Filtro suaviza los escalones → Onda senoidal perfecta de 1 MHz

Ventajas Clave del DDS

Limitaciones a Considerar