 Bonjour, c'est Nicolas de ST My Colectronics. Dans cette vidéo, je vais vous enseigner comment utiliser les STM32 timers pour protéger les conversions ADC périodiquement. L'objectif de cet exercice est d'utiliser un STM32 timer pour protéger les conversions ADC à une fréquence de sample configurable. Nous allons contrôler le GPIO pour toutes les conversions pour montrer que l'ADC s'ample à la fréquence expectante. Pour cet exercice, nous allons utiliser l'équipement suivant. Un Nucléo H745, comme shown ici, un microUSB cable, pour pouvoir et programmable, et un oscilloscope pour vérifier les résultats. Dans la description de cette vidéo, j'ai ajouté un lien pour downloader un file Zip qui contient tous les matériaux nécessaires pour performer les hands-on. Donc, s'il vous plait, s'il vous plait, ajoutez le file Zip et extractez-le quelque part sur votre disque. Nous allons utiliser le contenu de cet exercice durant cet exercice. Le software que nous allons utiliser est l'ADC STM32 QxID. C'est donc un tool ST, qui intégrerait l'ADC STM32 QxMx et est aussi une bonne idée. Nous allons commencer. Nous allons ouvrir l'ADC STM32 QxID. Donc, double-click sur l'icône sur votre desktop ou sur la menu de départ. Maintenant, sélectionnez un directeur en workspace. Dans mon cas, je sélectionne un directeur temp. Et puis, pressons Launch. Nous allons créer un projet STM32. Pour cela, il faut que vous cliquez ici ou vous pouvez aussi cliquer le file STM32. Pour sélectionner notre target, nous allons aller au selecteur de la boîte et cliquez ou type « Nucleo H745 » et sélectionnez le « H745 ZiQ ». Et maintenant, cliquez ici, sélectionnez ici et pressons Next. Maintenant, donnez un nom à votre projet. Dans mon cas, je vais l'appeler STM32 en utilisant les timers pour contrôler l'ADC. Et puis, pressons Finish. Nous voulons commencer par les modèles défautes ou des modèles défautes de la perronne. Donc, nous allons pressons Yes. Pour configurer notre projet, nous avons besoin de switcher à notre « Configuration Tool ». Donc, pressons Yes ici pour changer l'aspectif. Tout d'abord, nous allons configurer l'IO ou le GPIO que nous allons contrôler après chaque conversion. Donc, pour faire cela, nous allons aller au System Core, sélectionner le GPIO, expliquer un petit peu. Donc, l'IO que nous allons utiliser est celui connecté au LD1, qui est le « Green LED » sur votre « Nucleo Board ». Ce que nous voulons faire, c'est que nous allons changer l'assignement contexte de Cortex-M7. Donc, armes Cortex-M7. Donc, il y a deux cores dans ce micro. Et nous allons seulement utiliser la Cortex-M7 pour cet exercice. Donc, s'il vous plait, sélectionnez Armes Cortex-M7. Nous allons configurer l'ADC maintenant. Donc, en analogue, sélectionnez l'ADC1. C'est l'ADC que nous allons utiliser. Et l'Enable, donc, premièrement, le « Runtime » c'est la même chose. Donc, sélectionnez la Cortex-M7. Et l'Enable, l'un de la chaîne. Pour cet exercice, nous allons utiliser « Input 2 ». Donc, un « Single Ended » de la chaîne. Maintenant, on va au « Parameter Settings » et expliquer un petit peu. Donc, nous ne allons pas changer les « Command Settings ». Nous allons le garder par défaut. Nous ne allons pas changer les « ADC Settings ». Nous allons le garder par défaut. La première chose que nous allons changer ici, c'est le « Conversion Mode ». Vous vous souvenez, notre objectif est de « Trigger » les « ADC Conversion » avec un « Timer ». Donc, nous allons changer le « Trigger Mode » ici, la conversion excellente. Et nous allons sélectionner le « Timer 1 ». Donc, sélectionnez le « Timer 1 ». « Trigger Out Event ». Donc, nous utilisons le « Timer 1 » pour « Trigger » les « Conversions ». Vous pouvez sélectionner la « Rising Edge » ou la « Falling Edge ». Donc, nous voulons « Trigger » un « I.O. » après chaque conversion ADC. Donc, pour faire cela, le meilleur moyen est d'améliorer l'interrupte de l'ADC, l'interrupte globale. Et basically, nous allons faire le « Trigger » de l'I.O. dans la fonction « Callback » de l'ADC ISR. Donc, interrupte le « Service Routine ». Pour la configuration « Clock » nous allons au tab « Clock Configuration » ici. Donc, comme vous pouvez voir, c'est un issue. Donc, pour résoudre l'issue, pressez « Yes ». Donc, nous allons mettre la configuration « Clock » comme nous voulons. Donc, nous devons avoir 480 MHz. Donc, c'est le maximum de la fréquence pour le contexte M7 et 240 MHz pour le contexte M4. Nous voyons que notre « APB-1 » « Timer Clock » est installé jusqu'à 240 MHz. Donc, c'est très important d'utiliser ça comme « Input Clock » pour le timer et ensuite, mettre le timer accordé. C'est maintenant le temps de configurer le timer. Donc, on va dans le « Pinout » et le « Configuration » tab. On peut ouvrir ça. On ouvre ça. On ouvre le timer. Et on va sélectionner le « Timer-1 » pour « Trigger » parce que vous savez que c'est celui qui est sélecté pour l'ADC. Donc, nous devons configurer le « Timer-1 » maintenant. Nous allons sélectionner une génération PWM avec aucun outil parce que le timer est sélectionné à l'ADC interne. On n'envient pas le contexte de runtime pour le contexte M7. Et ensuite, sélectionner le « Channel-1 » avec une génération PWM mais pas de outil besoin. Nous pouvons sélectionner le registre auto-reload ARR aussi connu comme « Counter-Period ». Nous allons le sélectionner à 24 000 qui est équivalent à 10 kHz de sélection. Réfléchissez-vous que la clé d'input de la « Timer-1 » était sélectionnée à 240 MHz. La sélection de la sélection de la « Timer-Clock » est sélectionnée par le registre auto-reload ARR. Donc, si vous voulez 10 kHz, vous allez sélectionner 240 MHz par 24 000 MHz. Entrez 24 000 MHz pour le registre auto-reload ou le « Counter-Period ». Entrez 24 000 MHz. Second, changez le output de la « Triggao » parmi les paramètres. Nous allons changer la sélection de la sélection de la « Triggao » et nous allons sélectionner de la « Reset » pour les événements. Parce que, dans la configuration ADC, nous avons sélectionné l'événement de la « Timer-1 » pour les sélectionner. Nous avons terminé la configuration du projet. Nous pouvons maintenant sauver le projet pour générer le code. Donc, pressez « Yes ». Changez la perspective pour un « C » et un « C++ » perspective pour ajouter un code. Maintenant, il est temps d'ajouter un code pour notre projet. Pour faire ça, nous allons utiliser la « Zip file » que vous avez downloadée pour la description de la vidéo. Donc, s'il vous plait, le file de Zip, dans le file de Zip, vous trouverez un file de texte avec le code pour être ajouté. C'est ce que nous allons utiliser après. Juste pour vous montrer, nous avons un autre file de Zip qui est le projet, le projet complet ou le projet finalisé de cet exercice. Et puis, tous les étapes pour suivre si vous voulez le faire encore. Donc, j'ai ajouté le PDF sur tous les étapes mais maintenant, nous allons l'utiliser dans ce file. Donc, s'il vous plait, et c'est ce que nous allons ajouter pour notre projet de génération. Tout d'abord, nous allons ajouter la déclaration d'un variable qui va contenir la conversion de l'ADC de la chaîne 2. Ce que nous allons faire. Donc, nous allons ajouter ceci dans la main.c de la Cortex CM7, donc la Cortex CM7 projet qui a juste été générée en cube ID. Donc, copying ce variable ici et nous allons ajouter pour notre projet de cube ID. Retournons à notre projecte de la Cortex CM7 de la cube ID. Donc, ceci est le projet généré là-bas. Nous allons avoir un look. Donc, vous avez un projet pour la Cortex CM4 et un projet pour la Cortex CM7. Nous ne serons pas touchés sur la CM4, donc la Cortex CM4 et nous allons ajouter notre code pour le projet de la CM7. Donc, nous allons l'expandir. Nous allons voir pour la main.c Donc, ceci est located ici, double-click sur ça. Et maintenant, nous allons ajouter le variable. Donc, le variable de value de ADC dans cette section, la section PV. Donc, nous allons scroller un petit peu ici. Donc, paste puis ajouter cette code d'usage ici. Nous allons ajouter dans la section de code d'usage 2. Donc, c'est là où nous allons calibrer l'ADC et nous allons commencer les conversions d'ADC et nous allons aussi commencer le timer. Maintenant, nous allons ajouter le reste de code. Donc, nous avons dit dans la section de code d'usage 2 qui est ici. Donc, après la configuration de l'ADC et des timers, nous allons ajouter ceci pour calibrer et commencer l'ADC et aussi commencer le timer. La dernière partie de la code est la fonction de conversion d'ADC. Donc, chaque fois il y a une interruption sur la fin de conversion. Donc, ça va générer une interruption que nous allons coller la routine service interrupte et l'ASR va coller cette fonction de callback. C'est là où nous allons sauver la valeur convertie de l'ADC et aussi le toggle 1.io qui est l'LED l'LED gris sur votre tableau de nouveau. Donc, copie et paste ce tout code que nous allons ajouter à la section de code d'usage 4. Ici sauve le projet et le construire. Comme ça. OK, 0, 0, 0 warnings. C'est bien. Maintenant, nous allons construire le projet pour la CM4 et le default qu'on n'a touché. Donc, construis-le aussi. Le projet est aussi construit. 0, 0, 0, 0 warnings. C'est bien, c'est magnifique. Maintenant, c'est temps de charger ce code dans la tableau. S'il vous plait connectez votre tableau de nucléaire à votre machine host en utilisant l'USB cable. Quand c'est connecté, premièrement, nous allons charger le projet CM4. Pour faire ça, le debug a et l'application d'application. OK. Donc, ça va programmer le projet CM4. On va changer pour aller vers le interface de debug et on peut terminer parce que nous voulons juste programmer le code. Maintenant, nous allons faire le même pour le projet CM7. Donc, on va ici debuger et le projet de application de CM4. OK. Le même chose. On va changer et terminer. On va programmer le projet CM4 et le projet CM7. Vous pouvez maintenant reset votre bord et si vous probez pb0, donc, sur votre bord, sur le connecteur sur le côté, vous pouvez trouver pb0. Donc, pb0 est l'I.O. que nous prétendons après chaque conversion de l'ADC. Et nous devons attendre que c'est prétendant chaque 100 micro-seconds, ce qui est 10 kHz. Et c'est le cas. Donc, c'est ce que je regarde, ce que je vois sur ma scope. Et après prober pb0, donc, ce qui est la green LED, et, comme vous pouvez le voir, c'est étudier à la frequency de 10 kHz que j'ai attendue. Il y a des liens utiles. Donc, d'abord, une note d'application, donc, AM4013, qui parle des timers de CM4. Donc, sur toutes les séries, donc, des timers avancés pour les timers plus simples. Puis, j'ai également le CM4 H745 référence manuel et la spécification du CM4. Merci beaucoup d'avoir regardé.