Manuel d'utilisation du pilote Linux STMicroelectronics UM2375

Logo STMicroelectronics

Pilote Linux® pour les interfaces NFC hautes performances ST25R3911B et ST25R3912/14/15

Introduction

Le pilote Linux® STSW-ST25R009 permet au Raspberry Pi 4 de fonctionner avec le X-NUCLEO-NFC05A1, qui contient le dispositif universel NFC hautes performances ST25R3911B.

Ce package porte la couche d'abstraction RF (RFAL) sur une plate-forme Linux Raspberry Pi 4 pour fonctionner avec le micrologiciel X-NUCLEO-NFC05A1. Le forfait fournit commeampl'application détectant différents types de NFC tags et les téléphones portables prenant en charge le P2P. Le RFAL est le pilote standard ST pour les circuits intégrés de lecteur ST25R NFC/RFID ST25R3911B, ST25R3912, ST25R3913, ST25R3914 et ST25R3915. Il est utilisé, par exemple, par le firmware ST25R3911B-DISCO (STSW-ST25R002) et par le firmware X-NUCLEONFC05A1 (X-CUBE-NFC5).

STSW-ST25R009 prend en charge tous les protocoles de couche inférieure ST25R3911B ainsi que certains protocoles de couche supérieure pour la communication. Le RFAL est écrit de manière portable, il peut donc fonctionner sur une large gamme d'appareils basés sur Linux®. Ce document décrit comment la bibliothèque RFAL peut être utilisée sur un système Linux standard (dans ce cas, le Raspberry Pi 4) pour la communication NFC/RF. Le code est hautement portable et fonctionne avec des modifications mineures sur n'importe quelle plate-forme Linux.

Figure 1. Bibliothèque RFAL sur plate-forme Linux

Figure 1 Bibliothèque RFAL sur la plate-forme Linux

Surview

Caractéristiques
  • Pilote d'espace utilisateur Linux complet (couche d'abstraction RF) pour créer des applications compatibles NFC à l'aide des interfaces NFC hautes performances ST25R3911B/ST25R391x avec une puissance de sortie allant jusqu'à 1.4 W
  • Communication hôte Linux avec le ST25R3911B/ST25R391x à l'aide de l'interface SPI
  • Abstraction RF/NFC complète (RFAL) pour toutes les principales technologies et protocoles de couche supérieure :
    • NFC-A (ISO14443-A)
    • NFC-B (ISO14443-B)
    • NFC-F (FeliCa™)
    • NFC-V (ISO15693)
    • P2P (ISO18092)
    • ISO-DEP (protocole d'échange de données ISO, ISO14443-4)
    • NFC-DEP (protocole d'échange de données NFC, ISO18092)
    • Technologies propriétaires (Kovio, B', iClass, Calypso®, …)
  • Sampl'implémentation disponible avec la carte d'extension X-NUCLEO-NFC05A1, branchée sur un Raspberry Pi 4
  • Sample application pour détecter plusieurs NFC tag types et téléphones mobiles prenant en charge le P2P
  • Conditions de licence conviviales et gratuites
Architecture logicielle

La figure 2 montre les détails de l'architecture logicielle de la bibliothèque RFAL sur une plate-forme Linux®.

Le RFAL est facilement portable sur d'autres plates-formes en adaptant la plate-forme dite files.

L'en-tête file rfal_platform.h contient des définitions de macros, qui doivent être fournies et implémentées par le propriétaire de la plate-forme. En outre, il fournit des paramètres spécifiques à la plate-forme tels que l'affectation GPIO, les ressources système, les verrous et les IRQ, qui sont nécessaires au bon fonctionnement du RFAL.

Cette démonstration implémente les fonctions de la plate-forme et fournit un portage de la bibliothèque RFAL dans l'espace utilisateur de Linux®. Une bibliothèque partagée file est généré, qui est utilisé par l'application de démonstration pour présenter les fonctionnalités fournies par la couche RFAL.

L'hôte Linux® utilise l'interface sysfs disponible à partir de l'espace utilisateur Linux® pour permettre la communication SPI avec le périphérique ST25R3911B. Dans le noyau Linux®, l'interface SPI sysfs utilise le pilote du noyau Linux® spidev pour envoyer/recevoir des trames SPI vers/depuis ST25R3911B.

Pour gérer la ligne d'interruption de ST25R3911B, le pilote utilise la libgpiod pour être averti des changements sur cette ligne.

Figure 2. Architecture logicielle RFAL sous Linux

Figure 2 Architecture logicielle RFAL sous Linux

Configuration materielle

Plateforme utilisée

Une carte Raspberry Pi 4 avec Raspberry Pi OS est utilisée comme plate-forme Linux pour créer une bibliothèque RFAL et interagir avec ST25R3911B via SPI.
ST25R3911B permet à une application sur la plate-forme Linux de détecter et de communiquer avec des périphériques NFC.

Configuration matérielle requise
  • Raspberry Pi 4
  • Carte micro SD de 8 Go pour démarrer Raspberry Pi OS
  • Lecteur de carte SD
  • Carte pont pour connecter X-NUCLEO-NFC05A1 avec l'adaptateur Raspberry Pi Arduino pour Raspberry Pi, numéro de pièce ARPI600.
  • X-NUCLEO-NFC05A1. Reportez-vous aux dernières exigences du système d'exploitation Raspberry Pi.

Connexions matérielles

La carte adaptateur ARPI600 Raspberry Pi vers Arduino est utilisée pour connecter le X-NUCLEO-NFC05A1 au Raspberry Pi. Il est nécessaire de modifier les cavaliers de la carte adaptateur pour la connecter au X-NUCLEO-NFC05A1.

Prudence: L'ARPI600 fournit incorrectement 5 V à la broche Arduino IOREF. Fixer directement le X-NUCLEO-NFC05A1 renvoie 5 V sur certaines broches, cela peut endommager la carte Raspberry Pi. Il y a des rapports en particulier sur la destruction de Raspberry Pi 4B +. Pour éviter cette situation, adaptez soit l'ARPI600 (opération assez difficile) soit le X-NUCLEO-NFC05A1 (opération plus facile).

La solution la plus simple consiste à couper la broche CN6.2 (IOREF) sur le X-NUCLEO-NFC05A1, comme illustré à la figure 3.

Couper cette broche n'affecte pas le fonctionnement en conjonction avec les cartes Nucleo (NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB, etc.).

Figure 3. Correctif de connexion matérielle

Figure 3 Correction de la connexion matérielle

Réglage du cavalier

Les cavaliers pour A5, A4, A3, A2, A1 et A0 illustrés à la Figure 4 doivent être remplacés par P23, P22, P21 et CE1. Avec ces paramètres de cavalier, la broche GPIO numéro 7 de Raspberry est utilisée comme ligne d'interruption pour X-NUCLEO-NFC05A1.

Figure 4. Position des cavaliers A5, A4, A3, A2, A1 et A0 sur la carte adaptateur

Figure 4 Position des cavaliers

Actuellement, ce port de bibliothèque RFAL utilise la broche GPIO7 comme ligne d'interruption, selon les paramètres du cavalier. S'il est nécessaire de changer la ligne d'interruption de GPIO7 à un GPIO différent, le code spécifique à la plate-forme (en file pltf_gpio.h) doit être modifié pour changer la définition de la macro "ST25R_INT_PIN" de 7 à la nouvelle broche GPIO, à utiliser comme ligne d'interruption.

Avec les paramètres de cavalier ci-dessus, la carte adaptateur peut être utilisée pour connecter X-NUCLEO-NFC05A1 à la carte Raspberry Pi, comme illustré à la Figure 5.

Figure 5. Haut de la configuration matérielle view

Figure 5 Haut de la configuration matérielle view

Figure 6. Côté configuration matérielle view

Figure 6 Côté configuration matérielle view

Configuration de l'environnement Linux

Démarrage de Raspberry Pi

Pour configurer l'environnement Linux, la première étape consiste à installer et démarrer le Raspberry Pi 4 avec Raspberry Pi OS comme expliqué ci-dessous :

Étape 1

Téléchargez la dernière image du système d'exploitation Raspberry Pi à partir du lien :

Choisissez Raspberry Pi OS avec bureau. Pour les tests ci-dessous, la version suivante a été utilisée : septembre 2022 (2022-09-22-raspios-bullseye-armhf.img.xz).

Étape 2

Décompressez l'image du Raspberry Pi et écrivez-la dans la carte SD en suivant les instructions disponibles dans la section intitulée "Ecrire une image sur la carte SD".

Étape 3

Connectez le matériel :

  • Connectez le Raspberry Pi à un moniteur à l'aide d'un câble HDMI standard.
  • Connectez la souris et le clavier aux ports USB du Raspberry Pi.

Il est également possible de travailler avec Raspberry Pi en utilisant ssh. Dans ce cas, il n'est pas nécessaire de connecter le moniteur, le clavier et la souris au Raspberry Pi. La seule exigence est d'avoir le PC avec ssh dans le même réseau que le Raspberry Pi et de configurer l'adresse IP en conséquence.

Étape 4

Démarrez le Raspberry Pi avec la carte SD.

Après le démarrage, un bureau Linux basé sur Debian apparaît sur le moniteur.

Remarque : Parfois, on observe qu'après le démarrage de Raspberry Pi, certaines touches du clavier ne fonctionnent pas. Pour les faire fonctionner, ouvrez le file /etc/default/keyboard et définissez XKBLAYOUT="us" et redémarrez le Raspberry Pi.

Activer SPI sur Raspberry Pi

Le pilote SPI à l'intérieur du noyau communique avec X-NUCLEO-NFC05A1 via SPI. Il est important de vérifier si SPI est déjà activé dans la configuration Raspberry Pi OS/noyau.
Vérifiez si /dev/spidev0.0 est visible dans l'environnement Raspberry Pi. S'il n'est pas visible, activez l'interface SPI à l'aide de l'utilitaire « raspi-config » en suivant les étapes décrites ci-dessous.

Étape 1

Ouvrez un nouveau terminal sur le Raspberry Pi et lancez la commande « raspi-config » en tant que root :

sudo raspi-config

Cette étape ouvre une interface graphique.

Étape 2

Sélectionnez dans l'interface graphique l'option nommée « Options d'interfaçage ».

Étape 3

Cette étape répertorie diverses options.
Sélectionnez l'option nommée "SPI".
Une nouvelle fenêtre apparaît avec le texte suivant :
"Voulez-vous que l'interface SPI soit activée ?"

Étape 4

Sélectionner dans cette fenêtre pour activer SPI.

Étape 5

Redémarrez Raspberry Pi.
Les étapes ci-dessus activeront l'interface SPI dans l'environnement Raspberry Pi après un redémarrage.

Construction de la bibliothèque et de l'application RFAL

La démo RFAL de Linux est fournie dans une archive. Supposons que son nom est :
ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz.
Pour créer la bibliothèque et l'application RFAL sur Raspberry Pi, suivez les étapes ci-dessous :

Étape 1

Décompressez le package sur Raspberry Pi à l'aide de la commande ci-dessous depuis le répertoire d'accueil :

tar -xJvf ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz

Étape 2

Si ce n'est déjà fait, installez cmake en utilisant la commande ci-dessous :

apt-get installer cmake

La bibliothèque RFAL et le système de construction d'applications sont basés sur cmake, pour cette raison, il est nécessaire d'installer cmake pour la compilation du package.

Étape 3

Pour construire la bibliothèque et l'application RFAL, allez dans le répertoire "build":

CD ST25R3911B_v2.8.0_Linux_demo_v1.0/Linux_demo/build

et exécutez la commande ci-dessous à partir de là :

faire ..

Dans la commande ci-dessus, ".." indique que CMakeLists.txt de niveau supérieur existe dans le répertoire parent, c'est-à-dire
ST25R3911B_v2.8.0_Linux_demo_v1.0.

La commande cmake crée le makefile qui est utilisé à l'étape suivante pour créer la bibliothèque et l'application.

Étape 4

Exécutez la commande "make" pour créer la bibliothèque et l'application RFAL :

faire

La commande « make » construit d'abord la bibliothèque RFAL, puis construit l'application par-dessus.

Comment exécuter l'application

Une accumulation réussie génère un exécutable nommé "nfc_demo_st25r3911b" à l'emplacement suivant :
/build/applications.

Par défaut, l'application doit être exécutée avec les droits root à partir du chemin : ST25R3911B_v2.8.0_Linux_demo_v1.0/linux_demo/build :

sudo ./demo/nfc_demo_st25r3911b

L'application commence à interroger NFC tags et les téléphones portables. Il affiche les périphériques trouvés avec leur UID, comme illustré à la figure 7.

Figure 7. Affichage des appareils trouvés

Figure 7 Affichage des appareils trouvés

Pour terminer l'application, appuyez sur Ctrl + C.

Historique des révisions

Tableau 1. Historique des révisions du document

Tableau 1 Historique des révisions du document

Liste des tableaux

Tableau 1. Historique des révisions du document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Liste des figures

Figure 1. Bibliothèque RFAL sur plate-forme Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Figure 2. Architecture logicielle RFAL sous Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Figure 3. Correctif de connexion matérielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Figure 4. Position des cavaliers A5, A4, A3, A2, A1 et A0 sur la carte adaptateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Figure 5. Haut de la configuration matérielle view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figure 6. Côté configuration matérielle view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figure 7. Affichage des appareils trouvés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dix

AVIS IMPORTANT – À LIRE ATTENTIVEMENT

STMicroelectronics NV et ses filiales (« ST ») se réservent le droit d'apporter des modifications, des corrections, des améliorations et des perfectionnements aux produits ST et/ou au présent document à tout moment et sans préavis. Les acheteurs doivent se procurer les dernières informations pertinentes sur les produits ST avant de passer commande. Les produits ST sont vendus conformément aux conditions générales de vente de ST en vigueur au moment de l'accusé de réception de la commande.

Les acheteurs sont seuls responsables du choix, de la sélection et de l'utilisation des produits ST et ST n'assume aucune responsabilité pour l'assistance à l'application ou la conception des produits des acheteurs.

Aucune licence, expresse ou implicite, sur aucun droit de propriété intellectuelle n'est accordée par ST ici.

La revente de produits ST avec des dispositions différentes des informations énoncées dans le présent document annulera toute garantie accordée par ST pour ce produit.

ST et le logo ST sont des marques déposées de ST. Pour plus d'informations sur les marques déposées de ST, consultez www.st.com/marques. Tous les autres noms de produits ou de services sont la propriété de leurs propriétaires respectifs.

Les informations contenues dans ce document remplacent et annulent les informations précédemment fournies dans toutes les versions antérieures de ce document.

© 2023 STMicroelectronics – Tous droits réservés

Documents / Ressources

Pilote Linux STMicroelectronics UM2375 [pdf] Manuel de l'utilisateur
Pilote Linux UM2375, UM2375, pilote Linux, pilote

Références

Laisser un commentaire

Votre adresse email ne sera pas publiée. Les champs obligatoires sont marqués *