Auteur Sujet: MFRC 522  (Lu 3115 fois)

pn200

  • Newbie
  • *
  • Messages: 28
    • Voir le profil
MFRC 522
« le: août 29, 2022, 09:37:12 pm »
Bonsoir,
A quoi sert la broche IRQ. J'ai cherché mais c'est en anglais, et avec les traducteurs c'est un peu confus.

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : MFRC 522
« Réponse #1 le: août 30, 2022, 09:36:39 am »
IRQ signifie « interrupt request »
La traduction du chapitre 8.4 de la fiche technique de NXP dit :
« Le MFRC522 indique certains événements en définissant le bit IRq du registre Status1Reg et, s'il est activé, par la broche IRQ. Le signal sur la broche IRQ peut être utilisé pour interrompre l'hôte en utilisant ses capacités de gestion des interruptions. Cela permet la mise en œuvre d'un logiciel hôte efficace.« 
Cela veut dire que la pin IRQ peut être utilisée par une routine d’interruption quand elle est activée, ce qui nécessite la programmation d’un registre spécial du MFRC522.

C’est un processus assez compliqué pour ne pas être utilisé dans les usages basiques que l’on fait. C’est pour cela que les exemples d’application n’utilisent pas cette broche.
Cordialement,
Dominique

chris_bzg

  • Global Moderator
  • Sr. Member
  • *****
  • Messages: 310
    • Voir le profil
Re : MFRC 522
« Réponse #2 le: août 30, 2022, 10:16:01 am »
Dominique a répondu pour l'essentiel et ce qu'il faut retenir, c'est que nos applications n'utilisent pas cette broche.
Si cependant tu veux entrer dans le détail, il faut savoir qu'un signal peut être généré sur cette broche et donc utilisé par Arduino dans le cadre normal d'une interruption externe. Huit événements peuvent créer ce signal et ils sont repérés par le tableau 18 de la datasheet (page 29). Pour discriminer quel événement a créé l'interruption, il faut aller examiner le registre ComIrqReg décrit au paragraphe 9.3.1.5 (page 37). Par exemple, les données sont échangées via un buffer FIFO (First In First Out) : le fait que ce buffer soit presque plein ou bien presque vide peut être un événement, ou bien que ce buffer ait été complètement traité, ou bien encore qu'une erreur ait été détectée.
Mettre en oeuvre toutes ces techniques demande une grande connaissance de la structure de la puce, de ses registres et de leur mise en oeuvre. Cela requiert une étude approfondie de la datasheet du composant (MFRC 522) mais ceci reste vrai pour n'importe quel composant électronique. C'est pour cela qu'on utilise des bibliothèques qui nous évitent d'entrer dans ces détails, d'autres l'ayant fait pour nous.

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : MFRC 522
« Réponse #3 le: août 30, 2022, 10:52:57 am »
Pour savoir à quoi servent les Interruptions et comment on s'en sert, il y a d'excellents articles à commencer par celui-ci :

https://www.locoduino.org/spip.php?article64
Cordialement,
Dominique

pn200

  • Newbie
  • *
  • Messages: 28
    • Voir le profil
Re : MFRC 522
« Réponse #4 le: août 30, 2022, 10:12:34 pm »
Bonsoir,
Merci pour la réponse et l'explication.
Je pensais qu'en mettant cette broche à 0 ou à 1 ça pouvait marcher. J'ai essayé  de débrancher la broche RST ou SCK pour neutraliser un MFRC522 dans le sens normal puis de le remettre en contre sens, mais ça ne marche pas l'ensemble ne fonctionne plus.
J'ai fait le montage de la détection, voir photo.

chris_bzg

  • Global Moderator
  • Sr. Member
  • *****
  • Messages: 310
    • Voir le profil
Re : MFRC 522
« Réponse #5 le: août 31, 2022, 09:51:14 am »
La broche IRQ est une sortie ; vous ne pouvez donc pas la mettre à 0 ou à 1.
C'est le contrôleur MFRC522 qui la gère et l'événement peut être repris par un Arduino pour exécuter une séquence de programme.
Dans les montages décrits dans LOCODUINO, nous n'utilisons pas cette possibilité.