Processing math: 100%

5 votos

¿Cómo generar una onda sinusoidal de frecuencia controlada usando un microcontrolador como el PIC18F4550?

Estoy diseñando un emulador de rueda fónica. Tengo un PIC18F4550 y las siguientes fuentes de alimentación: +5V, -5V, 12V. Necesito generar una onda sinusoidal de frecuencias cercanas a 500Hz hasta aproximadamente 8kHz. La forma no tiene que ser un seno perfecto, pero la amplitud tiene que ser de al menos 10V o más para todas las frecuencias.

El control de las frecuencias puede hacerse manualmente o digitalmente (significa que la persona puede variar la frecuencia utilizando un potenciómetro o tecleando la frecuencia en el dispositivo)

Pensé en generar una onda cuadrada por el microcontrolador y usar un filtro activo para filtrar los armónicos de alto orden, pero creo que no es un buen enfoque porque la banda de frecuencia es relativamente amplia. He oído hablar de la tabla de búsqueda sinusoidal y del DAC, pero el PIC18F no tiene módulo DAC.

Leí sobre el LTC1066-1 en la mejor respuesta elegida para esta pregunta . Pero no entendí muy bien, parece que usa un PLL y un LTC1066, me pareció un poco caro y complejo.

Otro enfoque es uno que encontré aquí . Pero parece ser aún peor porque no tiene una explicación de las señales que requiere sólo un esquema eléctrico con algunas entradas de señales que no sé de dónde vienen.

¿Existe una forma más simple y no costosa de alcanzar este propósito? ¿Alguien tiene alguna sugerencia?

3 votos

Te recomiendo que eches un vistazo a algunas viejas notas de aplicaciones de Microchip para generar tonos DTMF usando un pequeño y viejo PIC de 8 bits (que yo recuerde incluso más viejo y lento que el 18F4550 que estás usando). En el pasado he utilizado código de allí para producir con bastante éxito señales sinusoidales a través de un PWM filtrado en un rango razonable de ajuste de frecuencia.

2 votos

AN543 fue en el que basé la mayor parte de mi trabajo, y lo he implementado en unos 10 PICs diferentes, incluyendo el 18F4550 que estás usando.

1 votos

Si quieres ir por la ruta DDS puedes construir un R2R DAC de algunos de los pines GPIO

2voto

newothegreat Puntos 86

Puedes usar un IC DAC externo y hacer que el PIC hable con él usando SPI, I2C, o alguna otra interfaz. Como mencionaste, usarías una tabla de búsqueda en el firmware. Para cambiar la frecuencia, sólo tienes que cambiar la velocidad a la que se actualiza el DAC con una nueva muestra de la tabla de consulta. Alternativamente, puedes mantener la tasa de actualización igual, pero omitir entradas en la tabla de búsqueda para cambiar la frecuencia.

Si necesitas una amplitud pkpk > 10V, ata la referencia DAC a +12V si usas un DAC unipolar. O puedes usar un DAC bipolar y atar Vref+ a +5V y atar Vref- a -5V, lo que debería darte cerca de 10V pkpk.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X