 Bonjour et bienvenue à cette présentation de Cordic in Practice. Dans cette vidéo je vais vous montrer des exemples pour comment utiliser la fonction phase et modulus avec la STM32 Cordic Peripheral. Dans cette présentation je vais vous donner des préquisites réquires pour aller dans cette vidéo afin de reproduire l'exemple et démonstrer comment utiliser la fonction de phase et modulus en DMMode. Avant d'entraîner plus de détails, c'est recommandé de voir la première partie de cette vidéo, une série appelée Cordic Overview. Pour reproduire l'exemple même montré dans cette vidéo, vous devez installer STM32CubeMX, STM32CubeID et STM32CubeMonitor. Finalement, cette vidéo a été faite en utilisant une Nucléo G474RE. La fonction de la phase et de la modulité de Cordic takes 2 arguments et génère 2 résultats. La première argumentation est la coordinate X qui est la magnitude de la vectore en direction de l'axis X. Si la valeur absolue de X est plus de 1, un scaling doit être appliqué en software pour adapter à la range Q131 de l'argument 1. La seconde argumentation est la coordinate Y qui est la magnitude de la vectore en direction de l'axis Y. Si la valeur absolue de Y est plus de 1, un scaling doit être appliqué en software pour adapter à la range Q131 de l'argument 2. La première résultat est la phase angle theta de la vectore V. La phase angle 1 doit être multipliée par pi pour obtenir l'angle en ordinateur. Note que la valeur close à pi peut parfois râter à minus pi par la nature circulaire de la phase angle. La résultat de la poignée REST2 est la modulée. Drees par la valeur absolue de V, elle est Equal à la dimension de la rotation de X2 plus de Y2. Si la valeur absolue de V est plus de 1, le résultat de la variable REST2 est saturé à 1. Dans le cas où la fonction des modulées est utilisée, La capacité REST1 et REST2 batchent la Switch. La capacité REST1 portera la valeur de la modulée et la capacité REST2 portera la valeur de la phase de la fonction points à minus 1, à 1. Notez que même si le paramétre scale n'est pas appliqué, il doit être configuré à 0. La précision de l'équipement de la périférale est définie par le nombre d'intérations configurées pour générer le résultat de l'output. Dans le cas de la fonction face modulée, la meilleure précision que l'équipement de la périférale pourrait bénéficier est quand il est configuré avec 24 intérations ou 6 cycles pour 2 à la puissance de minus 19 maximum résiduel. Nous allons maintenant utiliser STM32 Cubamex afin de générer un template projet pour l'exemple de la périférale face modulée dans l'exemple de DMMA. 1. Cliquez sur l'accès à la bouton de l'aéroport sélecteur. 2. Cliquez sur STM32 G4 et cliquez sur Nucléo G474RE. 3. Cliquez sur l'accès à la périférale et cliquez sur Cliquez sur l'accès à la périférale. Quand le dialogue de la réplique se trouve, cliquez continue de tout de suite. En même temps, dans l'accès à la périférale et la configuration, cliquez sur l'accès à la périférale, et cliquez sur l'activité de la périférale. Dans la section de configuration, cliquez sur l'accès à la périférale, cliquez sur l'accès à la périférale et cliquez sur l'accès à la périférale. 4. Cliquez sur l'accès à la périférale et cliquez sur l'accès à la périférale. 5. Cliquez sur l'accès à la périférale. 32 quubes id et cliquez sur générer code. Quand la code génération dialog shows up, cliquez sur le bouton ouvert et quand le projet est bien importé, l'opération compétite dialogue va vous montrer, cliquez sur le bouton OK. Notre projet est maintenant prêt à utiliser. La fosorincode montre un exemple des fonctions phasques et modulées dans DMMode. Le paramètre input est déjà defini sur l'angle avec des valeurs definées entre minus 1 et plus 1, en établissant les résultats dans le paramètre résultat. Comme avant, nous avons choisi de prendre le bénéfice de la meilleure précision offert par le code pour cette fonction par prendre six cycles pour concruter chaque résultat. Nous avons installé le paramètre scale à 0, comme l'on l'a mentionné. Et le nombre de freins et de l'alimentation pour 2 pour chaque angle 131 pour les résultats phasques et modulées. Nous avons pris le bénéfice de la fonction de callback pour procéder les résultats alors que le code est procédé dans le prochain set de données. Pour utiliser cette fonction, nous allons définir la fonction f32 à q31 par la fonction q31 à f32 incluisant le mat.h libraire définir une structure coordinate pour stocker 360 coordinates pour chaque opération d'DMA définir une structure face modulée définir une phase cordale et modulée modulée flowd variable une définition data qui dit le data q31 et le nombre de structures Nous allons définir un callback qui s'appelle phase modulée data processing qui basiquement converte chaque data de q31 à f32 format et puis, dans le code user begin 3 nous allons compter chaque value de phase modulée pour chaque x et y coordinates 360 à un moment. Nous pouvons maintenant construire notre projet. Lorsque le projet s'est réussi à construire nous pouvons maintenant lancer notre code grâce à Dodebugger cliquez sur OK le code est chargé cliquez sur le bouton switch quand le dialogue de l'expectif confirmé est monté freinir l'application et déconnecter le Dodebugger de l'application Nous pouvons maintenant switch au STM32 cube monitor afin d'enmonter les variables sur notre bord Nous allons maintenant charger dans le STM32 cube monitor le code de phase modulée DMA binary Nous cherchons à voir le code de DMA binary ici et nous allons sélectionner les variables de code modulée et de phase de code Il peut l'émerger Dans le code de phase modulée nous devons définir une phase de phase 10x qui est une phase de phase de phase 10x et une phase de modulée 10x qui est une phase de modulée 10x le switch va filtrer les valeurs de code et nous devons apparaître la phase de phase de phase 10x et la phase de modulée 10x pour la triconomie Nous pouvons ensuite déployer notre design et lancer le dashboard On peut cliquer sur l'accueillissement de start et nous allons avoir le même résultat que avant Merci