
Gatilho ADC usando o gerador PWM

Aprendendo a usar o PWM e o ADC dos dispositivos MP DSPIC33C, Laboratório 7: Exemplo de Código para dispositivos DSPIC33CK e DSPIC33CH mostrando uma configuração básica de geradores PWM desencadeando entradas ADC. Dentro da rotina de serviço de interrupção do ADC (ISR), um pino de teste alternado para permitir que o usuário observe os atrasos na resposta do gatilho. Além disso, geração de interrupção precoce, registro de trabalho alternativo com atributos do compilador e o recurso de otimização de ajuste do tempo de amostragem é usado para ajustar o tempo de resposta do gatilho.
Verifique sempre as folhas de dados mais recentes nos respectivos sites de produtos:

Após a programação do dispositivo e o MCU é iniciado, o PWM1H aciona o núcleo adc dedicado 0. Após cerca de 277Ns Trigger Response Atraso, o indicador de pino de teste do núcleo do ADC O ISR TP55 Alternantes, consulte a captura da tela abaixo. O atraso da resposta do gatilho é otimizado, pois o gerador de interrupção precoce do núcleo ADC 0 está ativado.
Ao pressionar o usuário do botão de bordo na placa de desenvolvimento de energia digital, o PWM2H desencadeia o núcleo do ADC dedicado 1. Após cerca de 265Ns Trigger Response atraso, o indicador de pino de teste do núcleo 1 do ADC 1 TP53 Alternos, consulte a captura da tela abaixo. O atraso da resposta do gatilho é reduzido ainda mais porque, além do gerador de interrupção precoce está ativado, o ISR do Core 1 do ADC usou o atributo de contexto do compilador para associar o ISR ao conjunto de registros alternativos.
Ao pressionar o usuário do botão de bordo novamente, o PWM3H desencadeia o núcleo 6. A configuração do ADC compartilhado é a mesma com o Core 1 dedicado ADC, exceto que o tempo de amostragem do ADC compartilhado é definido como 8 TADCORE. Ao contrário dos núcleos de ADC dedicados anteriores, o ADC Core 6 compartilhado não possui pino analógico dedicado. Isso exigiu estender o tempo de amostragem para garantir que o ADC se conecte ao pino analógico e prove o sinal de entrada adequadamente antes da conversão. No entanto, esse tempo de amostra adiciona atraso na resposta do gatilho.
Consulte o firmware da seção Guia de partida rápida abaixo para obter mais informações sobre o processo de inicialização e a estrutura de código.

Este exemplo de código se baseia em exemplos de código anteriores, mostrando como usar o Microchip Code Configurator (MCC) para configurar os domínios do relógio do dispositivo. Embora a MCC também suporte ferramentas de configuração para o módulo PWM e ADC, a configuração PWM e ADC neste exemplo se baseia em drivers periféricos genéricos para ajudar os usuários a entender melhor a arquitetura periférica e os principais aspectos de configurações específicas e modos de operação. Em cada projeto de código de exemplo PWM e ADC, o procedimento de configuração PWM e ADC está localizado no arquivo de usuário pwm.c e adc.c, onde cada bit de registro necessário para alcançar/ativar a função ou modo de interesse específico é definido e sua função descrita com comentários. Depois que os usuários estão familiarizados com a arquitetura, recursos e recursos, as duas opções de configuração (biblioteca periférica genérica ou MCC) podem ser usadas.
O projeto contém quatro subdiretos
No disco rígido, main.c/h estão localizados no diretório do projeto MPLAB X. Todos os outros arquivos do usuário, incl. Drivers periféricos, estão localizados nas fontes subdiretórias. Os arquivos gerados pela MCC estão sempre localizados em seu próprio subdiretório MCC_Generated-Files
Os arquivos de driver periférico PWM e ADC P33C_PWM.C/H e P33C_ADC.C/H fornecem estruturas de dados que representam os conjuntos de registro de função especial (SFR) de instância PWM e ADC, bem como o módulo Base PWM e ADC. Esses objetos 'virtuais' PWM e ADC são usados para carregar, ler e modificar configurações de PWM e ADC sem a necessidade de instruções codificadas, o que tornaria o código difícil de migrar de um periférico para outro ou mesmo entre os dispositivos. Para simplificar as configurações de PWM e ADC, nesses exemplos, cada registro é redefinido para um estado padrão conhecido antes que a configuração do interesse seja definida. Assim, apenas a configuração de registro que realmente importa para um determinado recurso/função é mostrada.
Para saber mais sobre o PWM genérico e o driver ADC, seus recursos suportados e casos de uso pretendido, leia os comentários dentro de p33c_pwm.c e p33c_adc.c
Este código foi gravado para iniciar e executar automaticamente a função de interesse. Leia as instruções de demonstração sobre o arquivo main.c para saber mais sobre o exemplo do código, pontos de teste, sinais esperados e operação no modo de demonstração.
© 2020, Microchip Technology Inc.