[Programmation] STM32G474 - HRTIM High Resolution Timer - Single-Shot
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

STM32G474 - HRTIM High Resolution Timer - Single-Shot



  1. #1
    ATdevice

    STM32G474 - HRTIM High Resolution Timer - Single-Shot


    ------

    Bonjour,

    Je suis en train de jouer avec la carte d'eval STM32 Nucleo-G474RE dans le but d'utiliser le Timer "Haute Resolution" (HRTIM) pour générer une impulsion sur évènement externe (détection front sur GPIO).

    Dans les différentes configurations, il y a un mode qui s'appelle Single-Shot Non Retriggerable, qui correspond exactement à ce que je cherche à faire!

    Pour le moment j'ai réussi à l'utiliser en génération PWM (mode Freerun), déjà pour me faire un peu à l'environnement STM32CubeMX et STM32CubeIDE et aussi pour commencer par quelque chose de simple. Donc j'arrive à générer un signal PWM, configurer la fréquence et le rapport cyclique, cool.

    Pour la seconde étape, j'ai commencé à configurer le Timer High Res en mode Single-Shot (non retriggerable). Et là où je bloque c'est que je ne sais pas comment faire intervenir la détection de front sur GPIO. Mon idée première était d'utiliser l'Event 1 (je vois bien la pin HRTIM1_EEV1 apparaître sur la représentation graphique du microcontrôleur au niveau du port PC12).

    A partir de là je ne sais pas comment faire intervenir la détection d'évènement avec le Reset du Timer, les seules applications que je trouve utilisent le mode Freerun...

    Je vous joins l'archive du projet : HRTIM_Test2_Pulse.zip

    Merci

    -----

  2. #2
    jiherve

    Re : STM32G474 - HRTIM High Resolution Timer - Single-Shot

    bonjour
    comme d'habitude il faut récupérer la data sheet qui va bien :https://www.st.com/resource/en/refer...lectronics.pdf
    et aller à :
    27.3.19 Synchronizing the HRTIM with other timers or HRTIM instances
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    ATdevice

    Re : STM32G474 - HRTIM High Resolution Timer - Single-Shot

    Le problème c'est que depuis CubeMX (le configarateur pour les nuls comme on dit) je ne trouve pas comment avoir accès/vérifier la valeur des différents registres et je ne connais pas assez les STM32 pour taper dans les registres à la volée, c'est la première fois que je joue avec ces processeurs.

    Donc là j'ai seulement des ComboBox où je sélectionne les différentes fonctions sans savoir ce que ça remplit dans les registres.

    Là où je galère un peu c'est pour faire le rapport entre le Timer Master et le Timer A. Il ne semble pas y avoir de sortie dédiée pour le Timer Master. Dans mon premier projet j'utilisais uniquement le Timer A en PWM (Master disabled).

    J'essaye plusieurs configurations mais je ne vois pas comment la synchro du Master peut faire Reset Timer A...
    Dernière modification par ATdevice ; 29/09/2021 à 14h18.

  4. #4
    ATdevice

    Re : STM32G474 - HRTIM High Resolution Timer - Single-Shot

    Bon du coup j'ai à peu près trouver la bonne config, mais pour le moment le "temps de propagation" ne me convient pas, je vais voir si j'arrive à gagner quelques nanosecondes ou pas, sinon exit la solution microcontrôleur...

  5. A voir en vidéo sur Futura
  6. #5
    chipperolo

    Re : STM32G474 - HRTIM High Resolution Timer - Single-Shot

    Bonsoir,
    as tu essayer d'utiliser une des pattes configuré en entée d'interruption pour lancer l'un des timer ?

  7. #6
    ATdevice

    Re : STM32G474 - HRTIM High Resolution Timer - Single-Shot

    Je n'ai pas encore trouvé comment utiliser les évènements dédiés au Timer A, mais j'ai pu mettre en oeuvre la synchro du Timer maître pour déclencher un single shot sur le Timer A. Ça fonctionne et j'arrive même à une fréquence de répétition de 40 MHz mais avec beaucoup de gigue et certainement un phénomène de repliement, mais je n'arrive pas à bien observer le phénomène à l'oscilloscope à cause de la gigue importante. Le temps entre l'évènement externe et le changement d'état de la sortie est d'environ 10ns ce qui est beaucoup trop important pour mon application. Je n'ai pas encore utilisé la DMA mais je doute que ça permette de descendre en dessous, à voir.
    Dernière modification par ATdevice ; 04/10/2021 à 08h30.

  8. #7
    jiherve

    Re : STM32G474 - HRTIM High Resolution Timer - Single-Shot

    Bonjour,
    pour taquiner des temps de réponse inférieur à 10ns il va falloir que tu quittes les µC pour les FPGA, le ticket d'entrée peut être salé!
    LE DMA n'a rien à voir la dedans.
    Pour info pour réagir à un événement extérieur sur une machine synchrone propre il faut au minimum 2 periode d'horloge d'où si tu désires un temps de réponse <10nS il faut une horloge de 200MHz min(la moitié avec une resynchronisation H,#H).
    Quel est ton but exactement?
    JR
    l'électronique c'est pas du vaudou!

  9. #8
    ATdevice

    Re : STM32G474 - HRTIM High Resolution Timer - Single-Shot

    Le but c'est de faire un générateur d'impulsion de largeur variable (1ns -> 20ns avec un step de 500 ps) triggable sur front asynchrone avec au minimum un niveau électrique LVTTL/LVCMOS.
    J'avais déjà fait un système avec une puce spécialisée dans la génération de fréquence Ethernet Gb et PCIe, le seul problème c'est qu'il était impossible de le déclencher sur des évènements aléatoires.

    La largeur d'impulsion aurait pu fonctionner en déphasant 2 sorties et faire un ET logique. En abaissant un peu la fréquence d'horloge CPU j'aurais pu avoir un multiple de 200 ou 250 ps par exemple au lieu des 170 initiaux. Par contre le temps de propagation est un point critique pour l'application finale car la ligne à retard sera utilisée pour générer un signal de reset après évènement. Anciennement c'était réalisé avec une bascule D et un réseau R-C mais on ne dépassait pas 20 MHz de répetition. Aujourd'hui on veut toujours plus rapide avec moins de jitter, donc j'explore les différentes solutions simples, on ne peut pas utiliser des FPGA Telecom à 2k€ non plus...

  10. #9
    jiherve

    Re : STM32G474 - HRTIM High Resolution Timer - Single-Shot

    bonsoir,
    le jitter sera toujours lié à ta période d'horloge et le temps de réponse aussi, restent les solutions en combinatoire pur avec la largeur du pulse définie par des lignes à retard physique.
    mais un XC2C32A (Xilinx) capable de tourner à 300MhZ + ne coute que moins de 3€.
    JR
    l'électronique c'est pas du vaudou!

  11. #10
    JulienL

    Re : STM32G474 - HRTIM High Resolution Timer - Single-Shot

    Bonjour,
    Je dois réaliser à peu près la même chose, vers quelle solution vous êtes vous tourné ?
    Julien

Discussions similaires

  1. [Programmation] Timer one-shot NodeMCU ESP12 en C (IDE Arduino)
    Par inviteabf9a731 dans le forum Électronique
    Réponses: 5
    Dernier message: 29/10/2016, 08h57
  2. Programmation en C avec Timer 0 et Timer 1
    Par invite6844fe5f dans le forum Électronique
    Réponses: 43
    Dernier message: 20/04/2010, 13h27
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...