Quiero construir un generador de señales usando un ATmega 328P en un Arduino. De qué manera sería mejor. ¿Usar uno de los temporizadores (8 bits o 16 bits) incorporados para generar un PWM y luego filtrarlo por paso bajo, o usar un sistema de escalera R2R?
Me importan más los armónicos que la frecuencia, pero espero unos 10 kHz o más.
Gracias por su consejo.
Si le preocupan los armónicos, definitivamente debe evitar PWM. Las ondas rectangulares están repletas de armónicos que se extienden hasta donde lo permiten las velocidades de giro de los pines. Aunque el filtrado de paso bajo eliminará fácilmente las cosas de orden superior, las cosas de orden inferior serán más difíciles de eliminar sin un filtrado serio. No especifica con cuánta distorsión armónica podría vivir o qué rango de frecuencia y formas de onda está tratando de generar (10kHz me hace pensar que está tratando de hacer un generador de forma de onda de audio), pero está librando una batalla perdida que va a terminar con la necesidad de componentes activos externos de todos modos, entonces, ¿por qué no agregar un DAC?
También voy a suponer que no desea escribir ningún código, por lo que un rápido Google muestra que Adafruit ofrece una placa de conexión MCP4725 con una biblioteca y un tutorial preescritos. El MCP4725 es un DAC de 12 bits. A pesar de que su INL deja algo que desear, estará mucho mejor que incluso sus mejores esfuerzos con el PWM integrado.
Como dice Leon Heller, si realmente desea generar señales de alta calidad (y en un rango de frecuencia mucho más amplio), puede optar por una solución DDS. Los dispositivos analógicos hacen algunos buenos con SRAM integrado para el almacenamiento de forma de onda arbitraria, por lo que simplemente configura el chip, le dice que funcione y listo, sin necesidad de un flujo de datos constante. Sin embargo, esto probablemente esté más allá de sus requisitos en esta etapa. También hay un montón de placas chinas baratas basadas en el AD9850 en todo eBay que podrían ser de interés.
Es difícil decir definitivamente cuál es mejor, ya que depende de cómo implementes cada técnica. En general, diría que PWM es el camino a seguir, ya que R2R requiere muchos pines, resistencias bien adaptadas, rara vez se usa para mucho más de 8 bits y aún necesita filtrado.
Como se mencionó, optaría por un DAC dedicado si desea buenos resultados, pero si es para fines de aprendizaje, seguir la ruta del módulo de temporizador/PWM con un filtro decente más opamp debería dar resultados medio decentes y obtendrá algunas cosas en el proceso. Hay muchos tutoriales sobre generadores de señales PWM para ayudarlo a comenzar.
Dzarda
leon heller