
ADC Trigger en utilisant le générateur PWM

Apprendre à utiliser les périphériques PWM et ADC des périphériques MP DSPIC33C, Lab 7: Code Exemple pour les périphériques DSPIC33CK et DSPIC33CH montrant une configuration de base des générateurs PWM déclenchant les entrées ADC. À l'intérieur de la routine de service d'interruption ADC (ISR), une broche de test a basculé pour permettre à l'utilisateur d'observer les retards de réponse de déclenchement. En outre, la génération d'interruption précoce, le registre de travail alternatif avec les attributs du compilateur et la fonction d'optimisation de réglage du temps d'échantillonnage sont utilisés pour ajuster le temps de réponse du déclencheur.
Veuillez toujours consulter les dernières fiches techniques sur les sites Web de produits respectifs:

Une fois que l'appareil a été programmé et que le MCU démarre, PWM1H déclenche le noyau ADC dédié 0. Après environ 277NS de retard de réponse de déclenchement, l'indicateur de broche de test ADC Core O ISR TP55 bascule la capture d'écran ci-dessous. Le retard de réponse de déclenchement est optimisé car le générateur d'interruption précoce d'ADC Core 0 est activé.
En appuyant sur l' utilisateur de bouton-poussoir embarqué sur la carte de développement d'alimentation numérique, le PWM2H déclenche l'ADC Core 1 dédié. Après environ 265ns de retard de réponse de déclenchement, l'indicateur de broche de test ISR ADC Core 1 TP53 bascule la capture d'écran ci-dessous. Le délai de réponse de déclenchement est encore réduit car à part le générateur d'interruption précoce est activé, l'ADC Core 1 ISR a utilisé l'attribut de contexte du compilateur pour associer l'ISR à un ensemble de registres alternatif.
En appuyant à nouveau sur l' utilisateur de bouton-poussoir embarqué, le PWM3H déclenche le noyau ADC partagé 6. Après environ 335NS, les bascules de la broche de test ISR 6 ADC Core 6 TP50 Voir la capture d'écran ci-dessous. La configuration de l'ADC partagée est la même avec l'ADC Core 1 dédié, sauf que le temps d'échantillonnage ADC partagé est défini sur 8 Tadcore. Contrairement aux cœurs ADC dédiés précédents, le noyau ADC 6 partagé n'a pas de broche analogique dédiée. Cela a obligé à prolonger le temps d'échantillonnage pour garantir que l'ADC se connecte à la broche analogique et à goûter correctement le signal d'entrée avant la conversion. Cependant, ce temps d'échantillon ajoute un retard de réponse de déclenchement.
Veuillez vous référer à la section Guide de démarrage rapide du firmware pour plus d'informations sur le processus d'initialisation et la structure du code.

Cet exemple de code s'appuie sur des exemples de code précédents montrant comment utiliser le configurateur de code microchip (MCC) pour configurer les domaines d'horloge de périphérique. Bien que MCC prenne également en charge les outils de configuration pour le module PWM et ADC, la configuration PWM et ADC dans cet exemple s'appuie sur des pilotes périphériques génériques pour aider les utilisateurs à mieux comprendre l'architecture périphérique et les aspects clés des configurations spécifiques et des modes de fonctionnement. Dans chaque projet de code PWM et ADC, la procédure de configuration PWM et ADC est située dans le fichier utilisateur PWM.C et ADC.C, où chaque bit de registre requis pour atteindre / activer la fonction ou le mode d'intérêt spécifique est défini et sa fonction décrite avec des commentaires. Une fois que les utilisateurs connaissent l'architecture, les fonctionnalités et les capacités, les deux options de configuration (bibliothèque périphérique générique ou MCC) peuvent être utilisées.
Le projet contient quatre sous-répertoires
Sur le disque dur, main.c / h sont situés dans le répertoire du projet MPLAB X. Tous les autres fichiers utilisateur, incl. Les conducteurs périphériques sont situés dans les sources de sous-répertoire. Les fichiers générés par MCC sont toujours situés dans leur propre sous-répertoire MCC_GÉNÉRÉ-FILES
Les fichiers du pilote PWM et ADC P33C_PWM.C / H et P33C_ADC.C / H fournissent des structures de données représentant les ensembles de registre de fonctions spéciales (SFR) de l'instance PWM et ADC ainsi que le module de base PWM et ADC. Ces objets PWM et ADC «virtuels» sont utilisés pour charger, lire et modifier les configurations PWM et ADC sans avoir besoin d'instructions codées dures, ce qui rendrait le code difficile à migrer d'un périphérique vers un autre ou même à travers les appareils. Pour simplifier les configurations PWM et ADC, dans ces exemples, chaque registre est réinitialisé avec un état par défaut connu avant que la configuration d'intérêt de l'utilisateur ne soit définie. Ainsi, seul le paramètre de registre qui compte vraiment pour une certaine fonctionnalité / fonction est affiché.
Pour en savoir plus sur le pilote générique PWM et ADC, ses fonctionnalités prises en charge et les cas d'utilisation prévus, veuillez lire les commentaires à l'intérieur de P33C_PWM.C et P33C_ADC.C
Ce code a été écrit pour démarrer automatiquement et effectuer la fonction d'intérêt. Veuillez lire les instructions de démonstration en plus de fichier main.c pour en savoir plus sur l'exemple de code, les points de test, les signaux attendus et le fonctionnement du mode de démonstration.
© 2020, Microchip Technology Inc.