PWM sur une carte TI Delfino

a marqué ce sujet comme résolu.

Bonjour à tous,

Avec des amis nous avons un petit projet en tête que nous souhaiterions réaliser. Nous sommes actuellement dans la phase de test en essayant de mettre en place les différentes parties du projet. Dans toutes ces pièces, il y a la partie embarquée dont je m’occupe. Nous utilisons un MC Delfino F28379D de chez Texas Instruments et nous souhaitons pas changer de MC.

Pour les tests nous avons une carte de développement : LAUNCHXL-F28379D. Je cherche sur cette carte à générer un PWM pour faire tourner un servo (SG90) de 45°. C’est tout. Sur arduino c’est assez simple, on lui passe le Duty Cycle et ça tourne. Sur les TI c’est une autre histoire. J’ai l’impression que ça fonctionne avec des valeurs seuils et quand une des valeurs est atteinte, la carte lance une interruption et appelle une fonction. Je vous met la documentation du PWM ici. Seulement plusieurs questions :

  • Comment générer un signal toutes les 20 ms (50 Hz) avec une durée de 1.75 ms (donc 45° pour le servo) en utilisant ce système d’interruption ?
  • Comment on fait pour s’y retrouver dans le nom de tous ces registres (et encore ce n’est que le module du PWM…) ?
  • Quel est l’ordre de grandeur du temps ? J’ai l’impression que quand la documentation ils parlent temps, c’est en nanosecondes, mais je ne suis pas sûr. :euh:

Merci pour votre aide ! :)

+0 -0

Bonjour,

Plus tu utiliseras un MCU performant, plus il sera compliqué à utiliser. Par exemple, pour la question de la référence de temps, plus tu auras de blocs différents dans le MCU, plus tu auras d’horloges. Sur Arduino, les concepteurs de la carte savent ce qu’ils ont utilisé comme référence (un quartz à 16MHz pour l’Arduino Mega, par exemple) et ils ont pu faire tous les calculs.

Là tu as un processeur qui va à 200MHz, je suppose que la board d’eval utilise le processeur à vitesse max. La datasheet indique que la clock pour les ePWM dépend de la clock du cœur, qu’il faut diviser par 2 si la clock du cœur dépasse 100 MHz (les modules ePWM ne peuvent pas fonctionner avec un clock plus rapide que 100MHz). Il y a donc deux possibilités: soit c’est réglé comme ça, et ta période d’horloge c’est 10ns, soit ce n’est pas réglé, et il faudra le régler comme ça pour avoir une période d’horloge de 10ns.

Ensuite, le module ePWM a beaucoup de fonctions, parmi lesquelles la fonction PWM que tu recherches. Deux possibilités: lire toute la doc pour comprendre de quoi tu as besoin, ou utiliser un code d’exemple. D’après une recherche rapide, l’IDE de TI s’installe avec des codes d’exemple, dont probablement un code d’application pour PWM, pour lequel il suffira d’adapter la période et le rapport cyclique attendus.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte