Aller au contenu
Langue : FR

Pourquoi un module de lecteur amateur rate-t-il des tags ?

Trois causes, par ordre de fréquence : la puce n'implémente pas le protocole que parle ce tag, la petite antenne de la platine laisse peu de marge, et la bibliothèque posée par-dessus n'expose qu'une fraction de ce que la puce sait faire. Le tag est rarement le problème.

Le protocole que la puce n'a jamais eu

Commencez par la fiche technique de la puce posée sur la platine, pas par la page produit du module. Une puce bâtie pour ISO/IEC 14443 A ne répondra pas à un tag ISO/IEC 15693, et aucune antenne, aucun câblage et aucune bibliothèque n'y change quoi que ce soit. Une pièce multiprotocole le dit sans détour : la fiche du TRF7970A de TI liste 15693, 18000-3, 14443 A et B et FeliCa, et une puce dont la liste est plus courte est plus courte sur le terrain.

Identifiez le tag avant d'accuser le module, ce que la page de l'identification de la puce fait avec un téléphone en une minute. Un module qui lit trois de vos quatre familles de tags se comporte exactement comme sa fiche technique l'annonce.

Une petite antenne et aucune marge

Les antennes de module sont petites, et la portée suit la boucle. La note d'adaptation d'antenne de TI donne une règle de travail pour une antenne de lecteur : comptez environ deux fois la diagonale de l'antenne, ce qui pour une platine de quelques centimètres fait un contact et non une distance. La page de la taille d'antenne explique pourquoi la bobine du tag compte tout autant.

Il y a ensuite ce qui l'entoure. La même note demande d'éloigner les plans de masse des pistes de l'antenne, et un module vissé au-dessus d'une pile, d'un écran ou d'une plaque de métal rencontre le désaccord que tout tag rencontre sur du métal. Un module qui lit sur l'établi et échoue dans le boîtier n'a pas changé : son antenne, si.

La bibliothèque au-dessus de la puce

Entre votre programme et la puce se trouve du code qui expose une partie des registres et des commandes que la fiche technique documente. Un module qui ne sait pas lire un type de tag que sa puce prend en charge est souvent une bibliothèque qui ne l'a jamais implémenté, et la façon de le savoir est de comparer la liste de commandes de la fiche à ce que la bibliothèque offre.

Ce site ne nomme aucune bibliothèque. Il suffit de dire que la puce est la référence et que la bibliothèque en est une implémentation partielle, et qu'un projet dont le besoin sort de cette partie doit atteindre la puce directement.

L'ordre dans lequel tester

Testez le protocole en premier, avec un tag de chaque famille et un téléphone comme témoin : un tag que votre téléphone lit et que votre module ne lit pas est un problème de module, et un tag qu'aucun des deux ne lit est un problème de tag.

Testez l'antenne en second, hors du boîtier et loin du métal, à la distance que prédit la règle empirique plutôt qu'à celle que vous espériez.

Testez la bibliothèque en dernier, en envoyant une commande que la fiche technique documente et en lisant la réponse. C'est le plus lent des trois et celui qui produit une réponse définitive, ce qui explique qu'il vienne après les deux qui terminent souvent la recherche.

Questions fréquentes

Mon module lit un tag et pas un autre de la même taille. Pourquoi ?

Ce sont probablement deux types de tags différents. La puce implémente les protocoles que sa fiche technique liste, et les deux tags ne parlent pas le même.

Une antenne plus grande réglerait-elle le problème ?

Seulement si la panne est une affaire de portée. Un protocole que la puce n'implémente pas reste illisible à n'importe quelle distance.

Pourquoi cela marche-t-il sur l'établi et échoue-t-il dans le boîtier ?

Le métal et les plans de masse proches de l'antenne déplacent son accord. Testez dans le boîtier, puisque c'est là que cela doit marcher.

Le tag est-il en cause ?

Rarement. Vérifiez-le d'abord avec un téléphone : un tag qu'un téléphone lit est un tag, et c'est le module qui reste à expliquer.