Depende del hardware que tenga disponible y de la profundidad del software que desee utilizar.
Si tiene la potencia de procesamiento y los pines GPIO disponibles, puede salirse con una escalera R-2R muy barata y simple como su DAC (deshacerse del PWM). Luego puede usar una LUT de onda sinusoidal en la memoria de su MCU + un filtro de paso bajo definido por el software. Puede almacenar múltiples LPF en la memoria / cambiar sus características sobre la marcha para obtener la respuesta de frecuencia deseada. La salida del LPF se puede enviar directamente a la escalera R-2R para generar su onda sinusoidal. Este enfoque es un compromiso entre la complejidad del software / la potencia del procesador y la flexibilidad / tamaño y costo de los componentes externos.
Si solo tiene unas pocas frecuencias que desea o si crear una onda sinusoidal perfecta no es tan importante, puede alternar entre unos pocos LPF externos diferentes.