
Grabación de audio y reproducción con DMA y CIPS
Esta demostración se basa en la plataforma PIC18F57Q43 Curiosity Nano. Detalla el uso de ADC para la grabación de sonido, SPI para interactuar con el módulo de memoria externo, DAC para reproducción, DMA para transferencias de datos y el uso de temporizadores para definir la frecuencia de muestreo. La aplicación también demuestra el uso de Timer2 HLT y CLC para el desacuerdo de Switch, y el Comparador y PWM para la amplificación de potencia de Clase D.
Documentación relacionada
- Grabación y reproducción de audio utilizando acceso de memoria directa y periféricos independientes de Core (AN3548)
Software utilizado
- Mplab® X IDE 6.15 o más nuevo (microchip.com/mplab/mplab-x-ide)
- Mplab® XC8 2.45 o un compilador más nuevo (microchip.com/mplab/compilers)
- Configurador de código Mplab® (MCC) 5.3.7 o más nuevo (microchip.com/mplab/mplab-code-configurator)
- Bibliotecas de dispositivos MPLAB® Code Configurator (MCC) PIC10 / PIC12 / PIC16 / PIC18 MCUS (microchip.com/mplab/mplab-code-configurator)
- Soporte de dispositivo de la serie Microchip PIC18F-Q (1.23.425) o más nuevo (paquete.download.microchip.com/)
Hardware utilizado
- PIC18F57Q43 Curiosity Nano Evaluation Kit (DM164150)
- Curiosity Nano Base para Click Boards ™ (AC164162)
- MIC CLIC (Mikroe-2563)
- Flash 2 Haga clic (Mikroe-2267)
- Amplificador de potencia implementado en un Proto Click (Mikroe-1507)
Configuración de hardware
Las conexiones necesarias entre la placa PIC18F57Q43 Curiosity Nano y los tableros de clic requeridos se muestran a continuación:
- La expansión de clic 1 se conecta a la placa de clic del micrófono. Esto usa el pin AN1 para transferir la señal de voz analógica al ADC a bordo del PIC18F57Q43. El clic de micrófono tiene un circuito de acondicionamiento de señal y filtrado en la placa
- La expansión de clic 2 se conecta a la placa Flash 2 Haga clic. Esta placa tiene el chip de memoria flash SST26VF064B por microchip y usa SPI para comunicarse con el microcontrolador
- La expansión de Click 3 se conecta a un circuito amplificador de potencia de clase D personalizado en un clic Proto
Curiosity Nano Board Connections

Circuito de clics de Proto

Configuración completa del sistema

Proto clic

Configuración de software
MCC se usa para configurar lo siguiente. Consulte el proyecto MPLAB X para obtener detalles y configuraciones para cada componente.
- Configuración del sistema: CPU e interrupción
- TMR0 - Se utiliza para generar un temporizador de muestreo de 10 kHz
- ADCC: utilizado para el muestreo y cuantización de la señal de audio analógica
- DAC1: se utiliza para emitir la señal de audio analógica
- SPI1 - Se utiliza para comunicarse con el módulo de memoria externa
- DMA (DMA1, DMA2, DMA3, DMA4, DMA5, DMA6) - Operaciones de transferencia de datos
- PWM1: se usa para crear una forma de onda de diente de sierra para el amplificador de audio
- CMP1: se utiliza para comparar la forma de onda de diente de sierra con la salida DAC de desplazamiento de DC para producir una señal PWM para conducir el altavoz de audio
- TMR2/4, junto con CLC1/2, se utilizan para eliminar los botones
- CLC1/2, junto con TMR2/4, se utilizan para eliminar los botones
- UART1 - Se utiliza para enviar y recibir mensajes de depuración
Operación
Para ejecutar la aplicación, use el botón en la placa Curiosity Nano.
- Por defecto, la aplicación está en modo "inactivo".
- Presione dos veces el botón para ingresar al modo "Registro". El sistema seguirá grabando hasta que se presione nuevamente el botón para detenerse, o se queda sin memoria. Si hay una memoria externa presente, la grabación se almacenará allí. De lo contrario, la grabación se almacenará en la memoria flash interna.
- Presione el botón una vez para ingresar al modo "Reproducción". El sistema seguirá reproduciendo el audio grabado almacenado en la memoria hasta que el botón se presione nuevamente para detenerse, o si se reproduce toda la grabación.
- Presione mucho tiempo el botón para ingresar al modo "borrar" y borrar la grabación completa de la memoria.
Hay un botón especial disponible en el Proto Haga clic junto con el amplificador. Presione este botón para ingresar al modo "Passthrough" en el que el sistema actúa como un amplificador simple y no registra y almacena el audio. Presione este botón especial nuevamente para dejar el modo "Passthrough".
El audio se reproducirá a través del amplificador de Clase D en Proto Click. Hay dos saltadores a bordo del Proto Click:
- Jumper J1 selecciona la fuente de entrada de audio entre el micrófono y el micrófono de auriculares. (Siempre seleccione Mic Mic Haga clic en cuando el micrófono de los auriculares no esté conectado a la Jack de audio de 3.5 mm)
- Jumper J2 selecciona la salida de audio entre altavoz externo y un conector de audio de 3.5 mm. Se puede conectar un altavoz externo o un auricular al conector de audio de 3.5 mm.
Nota: Se recomienda evitar seleccionar auriculares tanto para la salida de audio como para la entrada de micrófono juntos en modo "Passthrough" para evitar la inducción de ruido.
Resumen
El DMA es una excelente manera de transferir datos entre registros, RAM y flash en diferentes configuraciones. Permite la velocidad y la facilidad de uso, además de liberar la CPU para realizar otras tareas.
El DAC permite una reproducción mucho mejor de señales de audio muestreadas debido a la mayor resolución de 8 bits. La salida tamponada del DAC forma una gran conexión con diferentes periféricos directamente, sin degradar la señal. Esto se puede usar junto con el PWM y el comparador para formar un excelente amplificador de potencia de Clase D.
Timer2 HLT se puede combinar con CLC para una excelente técnica de desacreditación de interruptor sin código.