Convierta una señal de audio analógica a digital con un PIC y envíe los datos a través de una serie a una PC [cerrado]

0

Quiero convertir una señal de audio analógica a una señal digital y enviarla a la entrada serial en mi computadora. ¿Cómo puedo hacer esto?

Microcontrolador utilizado: PIC18f452

    
pregunta Thulana Vimukthi

2 respuestas

6

Ese PIC puede hacer 50 ksps, lo que es bueno para un ancho de banda de 20 kHz, aunque la limitación de 10 bits no le dará calidad de alta fidelidad, por supuesto. 50 ksps \ $ \ times \ $ 10 bit es una salida de 500 kbps o 800 kbps si envía cada muestra en 2 bytes.

No quieres ir a través de EIA-232 a tu PC. Muchas PC ya ni tienen EIA-232. El estándar hoy en día es el USB. El PIC18F452 no tiene USB a bordo, pero afortunadamente hay FTDI :-). Los circuitos integrados de FTDI se han convertido en el estándar de facto para conectar fácilmente los microcontroladores a USB. Todo lo que necesita es esto (o algo similar):

A la izquierda puede ver las conexiones RxD, TxD y GND que van a la UART del PIC, el conector va a la PC. El IC es un FT232R, que admite velocidades de datos de hasta 3 Mbps, por lo que es suficiente para su aplicación.

Si nos dice cómo se ve la señal de audio (particularmente a nivel), podemos decirle cómo conectarla al PIC.

Y luego es solo un muestreo, y en cada EOC (Fin de la conversión) envía dos bytes al UART.

    
respondido por el stevenvh
1

Su pregunta no es lo suficientemente específica para dar detalles, sino para responder simplemente:

  • Elija un PIC con periféricos ADC y USART (casi cualquier PIC, aparte del PIC10F de gama baja y posiblemente algunos PIC12F) Cualquier cosa desde PIC16F debe ser adecuada (exactamente lo que dependerá de la resolución y la frecuencia de muestreo que necesite) , pero no incluyó esa información)

  • Escriba un código para muestrear a la velocidad deseada usando el ADC y almacénelo en un búfer

  • Envíe el contenido del búfer a la PC usando USART (necesitará algo como Max232 para cambiar los niveles de PIC a los niveles de RS232)

respondido por el Oli Glaser

Lea otras preguntas en las etiquetas