Autor Tema: Transmitir audio con PWM  (Leído 3401 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Pategrassin

  • PIC10
  • *
  • Mensajes: 2
Transmitir audio con PWM
« en: 20 de Octubre de 2014, 15:11:50 »
¡Hola! Bueno, les cuento sobre lo que estoy haciendo: lo que estoy tratando de hacer es usar un PIC 16F877A como un conversor A/D con PWM; o sea, recibir el audio de un tema de música por una pata del PIC y con el módulo PWM reproducir el mismo tema de manera digital.

El problema es que por encima de 3 KHz ya hay complicaciones: hasta por debajo de esta frecuencia, un ciclo de una onda senoidal está compuesta por varios pulsos de PWM, dándole una buena calidad al sonido. Pero por encima la señal tiene cada vez menos pulsos, y al pasarla por un filtro RC la onda ni siquiera se asemeja a la onda original.

Esto último que expliqué lo realicé usando un generador de onda senoidal con esa frecuencia antes de pasar a la música porque, si no puedo reproducir bien 3 KHz, ni por casualidad voy a poder reproducir un tema.

Este proyecto lo estoy programando en C con el compilador CCS y el Proteus (ISIS) como simulador. Busqué en Internet sobre cómo utilizar este módulo PWM y no encontré mucha información, lo único que pude encontrar es un video que explica cómo usarlo en CCS y un programa corto para usarlo, pero no más que eso. Este es el link del video por si lo quieren:     

Esta es una imagen del programa y esta es una imagen del circuito con el osciloscópio y una onda con una frecuencia de 3 KHz

Esta es una imagen del mismo programa, mismo circuito, mismo todo pero con una onda de 6 KHz

Por último estoy usando como reloj un oscilador de 20 MHz y configuré el PWM para usar una frecuencia de 100 KHz, lo cual debería ser suficiente. Pero algo se me está escapando.

Desde ya muchas gracias a todo aquel que lo lea y aporte con algo, ya que no es su obligación. ¡Buenas tardes!

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Transmitir audio con PWM
« Respuesta #1 en: 20 de Octubre de 2014, 15:35:15 »
la division / 2 ocupa muchos ciclos de reloj, has contado con esto?? Si pones duty=adc>>1 quizas te ahorres unos ciclos.

Desconectado Pategrassin

  • PIC10
  • *
  • Mensajes: 2
Re: Transmitir audio con PWM
« Respuesta #2 en: 20 de Octubre de 2014, 15:47:13 »
Ahí probé y mejoró bastante, aunque sigue faltando bastantes ciclos. Muchas gracias : D


 

anything