DIY - Encoder BISS-C de MIGE : encoder relatif avec index ou pas ?

Votez pour l'image du mois
  • Au début de la routine de calcul du PWM, celle qui prend plus de 25µs d'après le code de VESC, qui est appelée dans l'ISR de l'ADC je suppose, tu lances le transfert SPI grâce au DMA. Le transfert se fait en tâche de fond pendant que VESC fait tous ces calculs. Peu de temps après cette routine, l'ISR du DMA doit être appelée indiquant la fin du transfert SPI, c'est dans cette ISR que tu fais tes calculs en fonction des valeurs lues sur le SPI et que tu mets à jour la variable de l'angle du rotor.

    A 35kHz, ça doit te laisser dans les 30µs avant le prochain ISR ADC (si comme indiqué dans le code on saute un cycle PWM).

    Mais avant tout, mesure le temps d'exécution de ta routine, hors IT.

    Message modifié 3 fois, dernière modification par Mizoo (7 octobre 2021 à 12:42).

  • Ah ok, compris.

    Pour bien faire il faudrait que je chaine le timer des interruptions des encoders avec celle du VESC, sinon j'ai peur qu'il refuse l'addon. Et maintenir une version du vesc à la main, j'ai fait dans le passé, c'est chiant au possible.

    Par contre si je coordonne les deux, ca apporte de la valeur par rapport à ce qu'il fait, et ca, ca a des changes d'etre accepté.

    Sinon la version que j'ai sera aussi accepté, j'utilise la même mécanique que celle existante pour d'autres BISSC.

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

  • L'avantage de synchroniser avec l'ADC c'est d'être parfaitement déterministe et avoir une latence constante entre la mesure de la position du rotor et la mise à jour de la correction du flux statorique.

    Message modifié 2 fois, dernière modification par Mizoo (7 octobre 2021 à 15:48).

  • Hello,

    Premier tests très concluant à 10khz de lecture d'encoder non synchronisée avec l'ADC, les erreurs mesurés sont tellement faible que je n'ai pas l'impression que ca joue sur le rendu. Mathématiquement et intellectuellement ce n'est pas satisfaisant, mais physiquement je ne ressens pas de problème (vibration, bruit électronique) probablement avec l'inertie mécanique du moteur.

    Vincent

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)