[Numérique] Interruption Synchrone vs Asynchrone sur un µC
Répondre à la discussion
Affichage des résultats 1 à 19 sur 19

Interruption Synchrone vs Asynchrone sur un µC



  1. #1
    AmigaOS

    Interruption Synchrone vs Asynchrone sur un µC


    ------

    Bonjour

    Je souhaite réveiller un PIC16F1779 du sleep mode dès qu'on appuie sur un bouton parmi 4 OU quand il apparait un front montant sur un 5ème PIN(qui lui ne va pas sur un bouton).
    Dans le datasheet du µC je vois qu'il est possible de faire des interruptions synchrones et asynchrones. Ça fait plusieurs heures que je cherche à comprendre la différence en lisant le datasheet mais je ne trouve pas.

    Merci

    -----

  2. #2
    gcortex

    Re : Interruption Synchrone vs Assynchrone sur un µC

    Pour moi si l'interruption vient de l'extérieur, ce que tu souhaites, c'est asynchrone.
    Par contre, si tu souhaites réveiller toutes les secondes, c'est plutôt synchrone.

  3. #3
    AmigaOS

    Re : Interruption Synchrone vs Assynchrone sur un µC

    Par contre, si tu souhaites réveiller toutes les secondes, c'est plutôt synchrone.
    Pourquoi ?

    Enfaite il n'y a qu'un PIN pour faire des interruptions asynchrones alors que j'ai 5 signaux qui doivent pouvoir le faire.
    Mais il y a 25 PINs pour faire des interruptions synchrones...

  4. #4
    jiherve

    Re : Interruption Synchrone vs Assynchrone sur un µC

    bonjour
    pour moi une interruption asynchrone est une interruption sur état et une synchrone sur front mais chez MC cela semble être l'inverse !
    Stricto sensu dans tous les cas de figures l'événement est asynchrone du processeur mais est ensuite resynchronisé pour éviter bien des désagréments.
    JR
    l'électronique c'est pas du vaudou!

  5. A voir en vidéo sur Futura
  6. #5
    Vincent PETIT
    Animateur Électronique

    Re : Interruption Synchrone vs Assynchrone sur un µC

    Salut,
    Citation Envoyé par AmigaOS Voir le message
    Pourquoi ?
    Parce que pour faire ce que gcortex donne comme exemple ; réveiller toutes les secondes on se servirait du Timer interne qui est synchrone au signal d'horloge interne du PIC.

    Citation Envoyé par AmigaOS Voir le message
    Enfaite il n'y a qu'un PIN pour faire des interruptions asynchrones alors que j'ai 5 signaux qui doivent pouvoir le faire.
    Mais il y a 25 PINs pour faire des interruptions synchrones...
    J'ai lu que l'entrée INT permettait de faire une interruption asynchrone mais comme gcortex pour moi aussi toutes interruptions venant d'un événement extérieur sont forcément asynchrones au signal d'horloge interne du PIC (ce qui n'est pas le cas pour le I2C, le SPI, le Timer etc...)
    Dernière modification par Vincent PETIT ; 14/12/2019 à 22h12.
    Là où il n'y a pas de solution, il n'y a pas de problème.

  7. #6
    AmigaOS

    Re : Interruption Synchrone vs Assynchrone sur un µC

    dans tous les cas de figures l'événement est asynchrone du processeur mais est ensuite resynchronisé pour éviter bien des désagréments.
    Du coup pourquoi il existe les deux ?

    C'est bizarre, ça me semble être plutôt important quand il s'agit de programmer un µC, mais je ne trouve rien dessus sur internet.

  8. #7
    AmigaOS

    Re : Interruption Synchrone vs Assynchrone sur un µC

    Donc si je comprends bien, à tous les entrées "IOC" (Interrupt-on-Change), peuvent être assigné via RxyPPS les fils pour I2C, SPI, Timers etc...
    Alors que si je veux réveiller le circuit je vais être obligé de mettre une grosse porte OR à 5 entrées dont la sortie va sur l'entrée INT ?

  9. #8
    Vincent PETIT
    Animateur Électronique

    Re : Interruption Synchrone vs Assynchrone sur un µC

    Citation Envoyé par AmigaOS Voir le message
    Du coup pourquoi il existe les deux ?
    Car en synchrone, par exemple un timer qui compte sous entendu au rythme du signal d'horloge interne qu'on aurait plus ou moins divisé, l'interruption détectée plus rapidement. Avec un événement extérieur sous entendu non corrélé au signal d'horloge interne, l'interruption sera réellement détectée au prochain coup d'horloge, d'où cette petite différence en terme de cycle de prise en compte.

    Citation Envoyé par AmigaOS Voir le message
    Donc si je comprends bien, à tous les entrées "IOC" (Interrupt-on-Change), peuvent être assigné via RxyPPS les fils pour I2C, SPI, Timers etc...
    Alors que si je veux réveiller le circuit je vais être obligé de mettre une grosse porte OR à 5 entrées dont la sortie va sur l'entrée INT ?
    IOC ne concerne que les périphériques utilisés en GPIO, si tu es en mode périphérique (I2C, SPI, etc) c'est d'autres registres qu'on doit regarder.
    Là où il n'y a pas de solution, il n'y a pas de problème.

  10. #9
    AmigaOS

    Re : Interruption Synchrone vs Assynchrone sur un µC

    "périphériques utilisés en GPIO" Ça peut être un bouton ?

  11. #10
    Vincent PETIT
    Animateur Électronique

    Re : Interruption Synchrone vs Assynchrone sur un µC

    Oui par exemple.
    Là où il n'y a pas de solution, il n'y a pas de problème.

  12. #11
    AmigaOS

    Re : Interruption Synchrone vs Assynchrone sur un µC

    Donc j'ai pas besoin d'une porte à 5 entrées relié sur INT et je peux relié les 4 boutons + l'autre signal sur les entrées IOC...
    Du coup je ne comprends toujours pas la différence entre les IOC et INT. Ma question aurait plutôt dû être celle ci.

  13. #12
    Vincent PETIT
    Animateur Électronique

    Re : Interruption Synchrone vs Assynchrone sur un µC

    Non, tu règles 5 GPIO en entrées, disons le port A pour l'exemple, ensuite tu configures en mettant à 1 IOCAP0 à IOCAP4 (PA0 à PA4 sur détection sur front montant) puis IOCIE à 1 pour déclencher une interruption ci tôt que une des 5 broches a vu passer un front montant.

    Dans le programme d'interruption il faut aller lire les bits IOCAF0 à IOCAF4 pour savoir quelle entrée exactement, a vu passer ce front.

    Tout est écrit au chapitre 13.
    Là où il n'y a pas de solution, il n'y a pas de problème.

  14. #13
    AmigaOS

    Re : Interruption Synchrone vs Assynchrone sur un µC

    Oui ça c'est ce que j'ai compris maintenant et que je vais faire, mais je ne comprends pas la différence entre les IOC et INT.

  15. #14
    antek

    Re : Interruption Synchrone vs Assynchrone sur un µC

    Les fonctions sont identiques -> interruption !
    IOC et INT sont validés par des bit différents, ce qui permet de sélectionner les interruptions actives (comme pour d'autres interruptions).
    C'est quand même plus intéressant que de les valider toutes ou aucune.
    L'électronique c'est comme le violon. Soit on joue juste, soit on joue tzigane . . .

  16. #15
    Vincent PETIT
    Animateur Électronique

    Re : Interruption Synchrone vs Assynchrone sur un µC

    Citation Envoyé par AmigaOS Voir le message
    je ne comprends pas la différence entre les IOC et INT.
    Comme dit antek, INT est juste une autre entrée d'interruption. Ci dessous, on voit la logique des interruptions INT et IOC sont gérées de la même façon.

    Nom : ellipse3380.png
Affichages : 234
Taille : 25,0 Ko
    Là où il n'y a pas de solution, il n'y a pas de problème.

  17. #16
    invite2c278084

    Re : Interruption Synchrone vs Asynchrone sur un µC

    hello,

    dans un processeur les interruptions sont forcément synchrones, c'est à dire prises en compte sur un front de l'horloge interne quelque part dans la puce car le séquenceur interne doit pointer sur une autre adresse, ce qui ne se fait que par par l'horloge

    la prise en compte de l'interruption n'est latchée (mémorisée) que lors d'un front d'horloge et un signal d'interruption peut ne pas être pris en compte si le signal disparaît avant que l'horloge n'arrive
    C'est peut-être là qu'on pourrait faire une différence interruption synchrone/asynchrone ?

    le marketing d'un type de µ va appeler par exemple interruptions internes ou interruptions externes ( terminologie Atmel AVR tiny ou mega) selon qu'il s'agit d'une pin externe ou pas de pin

    je ne vois pas de latch dans l'exemple de V Petit, peut-être ailleurs que dans l'extrait d'image, on le voit clairement dans la datasheet Atmel mega328 §12,1

    Nom : Screenshot_2019-12-15 ATmega328P - Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet p.png
Affichages : 207
Taille : 46,2 Ko

    le paramétrage du compilateur permet de sauvegarder plus ou moins de registres selon ce paramètre, et de donc perdre plus ou moins de temps avant d'exécuter le programme voulu : il y a toujours un délai de prise en charge.

    le polling (scrutation) est plus rapide puisqu'on attend l'arrivée du signal, les registres n'étant pas à sauvegerder. C'est l'approche la plus "temps réel" possible du µ, mais qui mobilise le µ dans les tranches de temps concernées.
    voir papier http://www.hackerschicken.eu/www/ele...SR_polling.pdf

    saluts

  18. #17
    Vincent PETIT
    Animateur Électronique

    Re : Interruption Synchrone vs Asynchrone sur un µC

    Bravo pour cette étude de cas cependant attention, ici tu compares interruption et polling sur quelque chose qui n'est pas le but ni la finalité de l'interruption.

    C'est tout à fait normal qu'il y ait un temps de latence avec l'interruption puisque comme tu l'as dit dès le début de ton document, il y a empilement pour exécuter le programme d'interruption puis dépilement pour revenir au programme principal. Ce temps d'appel de la pile sera toujours supérieur à un programme faisant la même chose mais sans appel à la pile. Dans ta conclusion ce que tu as surligné en jaune c'est justement la mesure des appels de la pile. Tu aurais surement mesuré des résultats très proches de ceux-ci entre un programme faisant une certaine tâche et un autre programme faisant la même chose mais dans une fonction.

    L'interruption c'est fait pour autre chose, c'est fait pour ne pas rater un événement ce qui est très différent de le détecter le plus vite possible.

    Avec du polling plus le programme est grand et plus on multiplie les chances de louper l'événement car on fait, aussi, autre chose. Si l'événement extérieur arrive pendant le "autre chose", on l'a loupé. Le polling fonctionne bien pour des boutons ou autres actions liées à un utilisateur car celui-ci va appuyer dessus pendant un temps assez long en revanche si par exemple on veut compter des impulsions, plus on va écrire du code et plus on s'approchera du problème de l'impulsion qui va tomber au moment où on fait autre chose que scruter.
    Là où il n'y a pas de solution, il n'y a pas de problème.

  19. #18
    invite2c278084

    Re : Interruption Synchrone vs Asynchrone sur un µC

    hello,

    je n'ai jamais dit le contraire !
    mais bien précisé que l'interruption, si elle est non latchée (ce qui pourrait être le cas de ta figure partielle) peut être perdue si elle est trop brève l'idéal étant une bascule RS en entrée avec RAZ dès la prise en compte synchrone

    et j'ai aussi voulu mettre en évidence l'effet des paramètres donnés au compilateur : nombre de registres sauvegardés

    et rappeler la possibilité de ce mécanisme, qui, car il est rarement appliqué, est facilement oublié

    saluts

  20. #19
    jiherve

    Re : Interruption Synchrone vs Asynchrone sur un µC

    Bonsoir
    Les interruptions sont conçues pour éviter le polling, avec un programme en assembleur il ne faut que quelques cycles pour entrer dans le programme d'IT mais il faut aussi savoir gérer les IT pendant les IT!
    Si vous voulez expérimenter un µC sans IT : propeller Parallax c'est qqs fois sportif mais il y a 8 coeurs!
    JR
    l'électronique c'est pas du vaudou!

Discussions similaires

  1. synchrone & asynchrone
    Par inviteafa9cf6f dans le forum Électronique
    Réponses: 5
    Dernier message: 18/09/2011, 17h37
  2. machine synchrone et asynchrone
    Par invite191a4727 dans le forum Électronique
    Réponses: 2
    Dernier message: 30/05/2010, 14h24
  3. DS-CDMA synchrone et asynchrone
    Par invite6f7bbc07 dans le forum Électronique
    Réponses: 0
    Dernier message: 19/05/2010, 11h07
  4. Moteurs synchrone & asynchrone
    Par inviteec0556c7 dans le forum Électronique
    Réponses: 3
    Dernier message: 26/09/2009, 12h33
  5. bascule D synchrone ou asynchrone ?
    Par invite16676d67 dans le forum Électronique
    Réponses: 5
    Dernier message: 08/11/2008, 17h35
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...