
Gravação de áudio e reprodução usando DMA e CIPS
Esta demonstração é baseada na plataforma Nano PIC18F57Q43 Curiosity Nano. Ele detalha o uso do ADC para gravação de som, SPI para interface com o módulo de memória externa, DAC para reprodução, DMA para transferências de dados e o uso de temporizadores para definir a frequência de amostragem. O aplicativo também demonstra o uso do Timer2 HLT e CLC para o interruptor de interruptor, e o comparador e o PWM para a amplificação de energia da Classe D.
Documentação relacionada
- Gravação de áudio e reprodução usando acesso direto à memória e periféricos independentes do núcleo (AN3548)
Software usado
- Mplab® x IDE 6.15 ou mais recente (microchip.com/mplab/mplab-x-ide)
- MPLAB® XC8 2.45 ou um compilador mais recente (microchip.com/mplab/compilers)
- Configurador de código MPLAB® (MCC) 5.3.7 ou mais recente (microchip.com/mplab/mplab-code-configurator)
- Bibliotecas de dispositivos MPLAB® Code Configurator (MCC) PIC10 / PIC12 / PIC16 / PIC18 MCUS (microchip.com/mplab/mplab-code-configurator)
- Microchip Pic18F-Q Suporte ao dispositivo da série (1.23.425) ou mais recente (packs.download.microchip.com/)
Hardware usado
- PIC18F57Q43 Kit de avaliação de nano de curiosidade (DM164150)
- Base Nano de Curiosidade para Boards de Click ™ (AC164162)
- MIC Click (Mikroe-2563)
- Flash 2 Clique (Mikroe-2267)
- Amplificador de potência implementado em um proto clique (mikroe-1507)
Configuração de hardware
As conexões necessárias entre a placa Nano Curiosity PIC18F57Q43 e as placas de cliques necessárias são mostradas abaixo:
- A expansão de clique 1 se conecta à placa de clique de microfone. Isso usa o pino AN1 para transferir o sinal de voz analógico para o ADC em bordo do PIC18F57Q43. O clique do microfone tem um circuito de condicionamento e filtragem de sinal a bordo
- A expansão de clique 2 se conecta à placa Flash 2 Click. Esta placa possui o chip de memória flash sst26vf064b por microchip e usa SPI para se comunicar com o microcontrolador
- A expansão do clique 3 se conecta a um circuito de amplificador de energia de classe D personalizado em um proto clique
Conexões de Nano Curiosity Nano Board

Circuito de clique em Proto

Configuração completa do sistema

Proto clique

Configuração de software
MCC é usado para configurar o seguinte. Consulte o projeto MPLAB X para obter detalhes e configurações para cada componente.
- Configuração do sistema - CPU e interrupções
- TMR0 - Usado para gerar 10 kHz de timer de amostragem
- ADCC - usado para amostragem e quantização do sinal de áudio analógico
- DAC1 - usado para gerar o sinal de áudio analógico
- SPI1 - usado para se comunicar com o módulo de memória externa
- DMA (DMA1, DMA2, DMA3, DMA4, DMA5, DMA6) - Operações de transferência de dados
- PWM1 - usado para criar uma forma de onda de dente de serra para o amplificador de áudio
- CMP1 - Usado para comparar a forma de onda de dente de serra com a saída DAC de deslocamento DC para produzir sinal PWM para acionar o alto -falante de áudio
- TMR2/4 - junto com CLC1/2, são usados para debarçar botões
- CLC1/2 - junto com o TMR2/4, são usados para debarçar botões
- UART1 - usado para enviar e receber mensagens de depuração
Operação
Para executar o aplicativo, use o botão na placa Nano Curiosity.
- Por padrão, o aplicativo está no modo "inativo".
- Pressione duas vezes o botão para inserir o modo "gravar". O sistema continuará gravando até que o botão seja pressionado novamente para parar ou ficar sem memória. Se uma memória externa estiver presente, a gravação será armazenada lá. Caso contrário, a gravação será armazenada na memória flash interna.
- Pressione o botão uma vez para inserir o modo "reprodução". O sistema continuará jogando o áudio gravado armazenado na memória até que o botão seja pressionado novamente para parar ou se a gravação inteira for reproduzida.
- Pressione o botão por muito tempo para inserir o modo "Agarrar" e apagar toda a gravação da memória.
Um botão especial está disponível no proto clique junto com o amplificador. Pressione este botão por muito tempo para inserir o modo "Passhrough" no qual o sistema atua como um amplificador simples e não grava e armazena o áudio. Pressione este botão especial novamente para deixar o modo "Passhrough".
O áudio será reproduzido através do amplificador de classe D no Proto Click. Existem dois jumpers a bordo do clique proto:
- O Jumper J1 seleciona a fonte de entrada de áudio entre o microfone de microfone e o microfone de fone de ouvido. (Sempre selecione MIC Clique quando o fone de ouvido não estiver conectado ao conector de áudio de 3,5 mm)
- O Jumper J2 seleciona a saída de áudio entre o alto -falante externo e a tomada de áudio de 3,5 mm. Um alto -falante externo ou um fone de ouvido pode ser conectado à tomada de áudio de 3,5 mm.
NOTA: Recomenda -se evitar a seleção de fones de ouvido para saída de áudio e entrada de microfone juntos no modo "repasse" para evitar a indução de ruído.
Resumo
O DMA é uma ótima maneira de transferir dados entre registros, RAM e flash em diferentes configurações. Permite velocidade e facilidade de uso, além de liberar a CPU para executar outras tarefas.
O DAC permite uma reprodução muito melhor de sinais de áudio amostrados devido à maior resolução de 8 bits. A saída em buffer do DAC forma uma ótima conexão com diferentes periféricos diretamente, sem degradar o sinal. Isso pode ser usado junto com o PWM e o comparador para formar um excelente amplificador de potência da Classe D.
O Timer2 HLT pode ser combinado com o CLC para uma excelente técnica de debousing sem interruptor sem código.