Manual d'usuari del controlador de Linux STMicroelectronics UM2375

Controlador Linux® per a les interfícies NFC d'alt rendiment ST25R3911B i ST25R3912/14/15
Introducció
El controlador STSW-ST25R009 Linux® permet que el Raspberry Pi 4 funcioni amb el X-NUCLEO-NFC05A1, que conté el dispositiu universal NFC d'alt rendiment ST25R3911B.
Aquest paquet porta la capa d'abstracció de RF (RFAL) a una plataforma Linux Raspberry Pi 4 per funcionar amb el firmware X-NUCLEO-NFC05A1. El paquet proporciona comampl'aplicació que detecta diferents tipus de NFC tags i telèfons mòbils compatibles amb P2P. El RFAL és el controlador estàndard ST per als CI lectors ST25R NFC/RFID ST25R3911B, ST25R3912, ST25R3913, ST25R3914 i ST25R3915. S'utilitza, per exemple, pel microprogramari ST25R3911B-DISCO (STSW-ST25R002) i pel microprogramari X-NUCLEONFC05A1 (X-CUBE-NFC5).
STSW-ST25R009 és compatible amb tots els protocols de capa inferior ST25R3911B i també alguns protocols de capa superior per a la comunicació. El RFAL està escrit de manera portàtil, de manera que es pot executar en una àmplia gamma de dispositius basats en Linux®. Aquest document descriu com es pot utilitzar la biblioteca RFAL en un sistema Linux estàndard (en aquest cas el Raspberry Pi 4) per a la comunicació NFC/RF. El codi és altament portàtil i funciona amb canvis menors a qualsevol plataforma Linux.
Figura 1. Biblioteca RFAL a la plataforma Linux

Acabatview
Característiques
- Controlador complet d'espai d'usuari de Linux (capa d'abstracció de RF) per crear aplicacions habilitades per NFC utilitzant les interfícies NFC d'alt rendiment ST25R3911B/ST25R391x amb una potència de sortida de fins a 1.4 W
- Comunicació de l'amfitrió Linux amb ST25R3911B/ST25R391x mitjançant la interfície SPI
- Abstracció completa de RF/NFC (RFAL) per a totes les tecnologies principals i protocols de capa superior:
- NFC-A (ISO14443-A)
- NFC-B (ISO14443-B)
- NFC-F (FeliCa™)
- NFC-V (ISO15693)
- P2P (ISO18092)
- ISO-DEP (protocol d'intercanvi de dades ISO, ISO14443-4)
- NFC-DEP (protocol d'intercanvi de dades NFC, ISO18092)
- Tecnologies pròpies (Kovio, B', iClass, Calypso®, …)
- SampImplementació disponible amb la placa d'expansió X-NUCLEO-NFC05A1, connectada a un Raspberry Pi 4
- Sampl'aplicació per detectar diversos NFC tag tipus i telèfons mòbils compatibles amb P2P
- Condicions de llicència gratuïtes fàcils d'utilitzar
Arquitectura del programari
La figura 2 mostra els detalls de l'arquitectura del programari de la biblioteca RFAL en una plataforma Linux®.
El RFAL és fàcilment portàtil a altres plataformes adaptant l'anomenada plataforma files.
La capçalera file rfal_platform.h conté definicions de macro, que han de ser proporcionades i implementades pel propietari de la plataforma. A més, proporciona configuracions específiques de la plataforma com l'assignació de GPIO, els recursos del sistema, els bloquejos i les IRQ, que són necessaris per al correcte funcionament del RFAL.
Aquesta demostració implementa les funcions de la plataforma i proporciona un port de la biblioteca RFAL a l'espai d'usuari de Linux®. Una biblioteca compartida file es genera, que l'aplicació de demostració utilitza per mostrar les funcionalitats que ofereix la capa RFAL.
L'amfitrió Linux® utilitza la interfície sysfs disponible a l'espai d'usuari de Linux® per permetre la comunicació SPI amb el dispositiu ST25R3911B. Dins del nucli Linux®, la interfície SPI sysfs utilitza el controlador del nucli Linux® spidev per enviar/rebre trames SPI a/des de ST25R3911B.
Per gestionar la línia d'interrupció de ST25R3911B, el controlador utilitza el libgpiod per rebre notificacions dels canvis en aquesta línia.
Figura 2. Arquitectura del programari RFAL a Linux

Configuració del maquinari
Plataforma utilitzada
Una placa Raspberry Pi 4 amb el sistema operatiu Raspberry Pi s'utilitza com a plataforma Linux per crear una biblioteca RFAL i interactuar amb ST25R3911B a través de SPI.
ST25R3911B permet que una aplicació a la plataforma Linux detecti i es comuniqui amb dispositius NFC.
Requisits de maquinari
- Raspberry Pi 4
- Targeta micro SD de 8 GB per arrencar el sistema operatiu Raspberry Pi
- Lector de targetes SD
- Placa pont per connectar X-NUCLEO-NFC05A1 amb adaptador Arduino Raspberry Pi per a Raspberry Pi, número de peça ARPI600.
- X-NUCLEO-NFC05A1. Consulteu els darrers requisits del sistema operatiu Raspberry Pi.
Les connexions del maquinari
La placa adaptadora ARPI600 Raspberry Pi a Arduino s'utilitza per connectar el X-NUCLEO-NFC05A1 amb el Raspberry Pi. Cal modificar els ponts de la placa adaptadora per connectar-la amb el X-NUCLEO-NFC05A1.
Precaució: L'ARPI600 subministra incorrectament 5 V al pin Arduino IOREF. En connectar directament el X-NUCLEO-NFC05A1 es retroalimenta 5 V en alguns pins, això pot danyar la placa Raspberry Pi. Hi ha informes especialment de Raspberry Pi 4B+ que s'ha destruït. Per evitar aquesta situació, adapteu l'ARPI600 (operació bastant difícil) o l'X-NUCLEO-NFC05A1 (operació més fàcil).
La solució més fàcil és tallar el pin CN6.2 (IOREF) al X-NUCLEO-NFC05A1 tal com es mostra a la figura 3.
Tallar aquest pin no afecta el funcionament conjuntament amb les plaques Nucleo (NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB, etc.).
Figura 3. Correcció de connexió de maquinari

Configuració del pont
Els ponts per a A5, A4, A3, A2, A1 i A0 que es mostren a la figura 4 s'han de canviar per P23, P22, P21 i CE1. Amb aquesta configuració de pont, el pin GPIO número 7 de Raspberry s'utilitza com a línia d'interrupció per a X-NUCLEO-NFC05A1.
Figura 4. Posició dels ponts A5, A4, A3, A2, A1 i A0 a la placa adaptadora

Actualment, aquest port de biblioteca RFAL utilitza el pin GPIO7 com a línia d'interrupció, segons la configuració del pont. Si hi ha un requisit per canviar la línia d'interrupció de GPIO7 a un GPIO diferent, el codi específic de la plataforma (en file pltf_gpio.h) s'ha de modificar per canviar la definició de la macro "ST25R_INT_PIN" de 7 al nou pin GPIO, per utilitzar-lo com a línia d'interrupció.
Amb la configuració del pont anterior, la placa adaptadora es pot utilitzar per connectar X-NUCLEO-NFC05A1 amb la placa Raspberry Pi, tal com es mostra a la figura 5.
Figura 5. Configuració del maquinari superior view

Figura 6. Càrrec de configuració del maquinari view

Configuració de l'entorn Linux
Arrencada de Raspberry Pi
Per configurar l'entorn Linux, el primer pas és instal·lar i arrencar el Raspberry Pi 4 amb el sistema operatiu Raspberry Pi tal com s'explica a continuació:
Pas 1
Baixeu la darrera imatge del sistema operatiu Raspberry Pi des de l'enllaç:
Trieu el sistema operatiu Raspberry Pi amb escriptori. Per a les proves següents es va utilitzar la versió següent: setembre de 2022 (2022-09-22-raspios-bullseye-armhf.img.xz).
Pas 2
Descomprimiu la imatge de Raspberry Pi i escriviu-la a la targeta SD seguint les instruccions disponibles a la secció anomenada "Escriure una imatge a la targeta SD".
Pas 3
Connecteu el maquinari:
- Connecteu el Raspberry Pi a un monitor mitjançant un cable HDMI estàndard.
- Connecteu el ratolí i el teclat als ports USB de Raspberry Pi.
També és possible treballar amb Raspberry Pi mitjançant ssh. En aquest cas, no cal connectar el monitor, el teclat i el ratolí amb Raspberry Pi. L'únic requisit és tenir el PC amb ssh dins de la mateixa xarxa que el Raspberry Pi i configurar l'adreça IP en conseqüència.
Pas 4
Inicieu el Raspberry Pi amb targeta SD.
Després d'arrencar, apareix un escriptori Linux basat en Debian al monitor.
Nota: De vegades, s'observa que després d'arrencar Raspberry Pi, algunes tecles del teclat no funcionen. Perquè funcionin, obriu el file /etc/default/keyboard i configureu XKBLAYOUT="us" i reinicieu el Raspberry Pi.
Habiliteu SPI a Raspberry Pi
El controlador SPI dins del nucli es comunica amb X-NUCLEO-NFC05A1 mitjançant SPI. És important comprovar si SPI ja està habilitat a la configuració del sistema operatiu/nucli de Raspberry Pi.
Comproveu si /dev/spidev0.0 és visible a l'entorn Raspberry Pi. Si no és visible, activeu la interfície SPI mitjançant la utilitat "raspi-config" seguint els passos que es descriuen a continuació.
Pas 1
Obriu un nou terminal al Raspberry Pi i executeu l'ordre "raspi-config" com a root:
sudo raspi-config
Aquest pas obre una interfície gràfica.
Pas 2
Seleccioneu a la interfície gràfica l'opció anomenada "Opcions d'interfície".
Pas 3
Aquest pas enumera diverses opcions.
Seleccioneu l'opció anomenada "SPI".
Apareix una nova finestra amb el text següent:
"Voleu que la interfície SPI estigui habilitada?"
Pas 4
Seleccioneu en aquesta finestra per habilitar SPI.
Pas 5
Reinicieu Raspberry Pi.
Els passos anteriors habilitaran la interfície SPI a l'entorn Raspberry Pi després d'un reinici.
Construcció de la biblioteca i l'aplicació RFAL
La demostració RFAL de Linux es proporciona en un arxiu. Suposem que el seu nom és:
ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz.
Per crear la biblioteca i l'aplicació RFAL a Raspberry Pi, seguiu els passos següents:
Pas 1
Descomprimiu el paquet a Raspberry Pi mitjançant l'ordre següent des del directori d'inici:
tar -xJvf ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz
Pas 2
Si no ho heu fet abans, instal·leu cmake, utilitzant l'ordre següent:
apt-get install cmake
La biblioteca RFAL i el sistema de compilació d'aplicacions es basa en cmake, per aquest motiu cal instal·lar cmake per a la compilació del paquet.
Pas 3
Per crear la biblioteca i l'aplicació RFAL, aneu al directori "build":
cd ST25R3911B_v2.8.0_Linux_demo_v1.0/Linux_demo/build
i executeu l'ordre següent des d'allà:
fes..
A l'ordre anterior ".." indica que CMakeLists.txt de nivell superior existeix al directori principal, és a dir
ST25R3911B_v2.8.0_Linux_demo_v1.0.
L'ordre cmake crea el makefile que s'utilitza en el següent pas per crear la biblioteca i l'aplicació.
Pas 4
Executeu l'ordre "make" per crear la biblioteca i l'aplicació RFAL:
fer
L'ordre "make" crea primer la biblioteca RFAL i després crea l'aplicació a sobre.
Com executar l'aplicació
La compilació correcta genera un executable anomenat "nfc_demo_st25r3911b" a la ubicació següent:
/build/aplicacions.
Per defecte, l'aplicació s'ha d'executar amb drets d'arrel des del camí: ST25R3911B_v2.8.0_Linux_demo_v1.0/linux_demo/build:
sudo ./demo/nfc_demo_st25r3911b
L'aplicació comença a enquestar NFC tags i telèfons mòbils. Mostra els dispositius trobats amb el seu UID tal com es mostra a la figura 7.
Figura 7. Visualització dels dispositius trobats

Per finalitzar l'aplicació, premeu Ctrl + C.
Historial de revisions
Taula 1. Historial de revisions de documents

Llistat de taules
Taula 1. Historial de revisions de documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Llista de figures
Figura 1. Biblioteca RFAL a la plataforma Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Figura 2. Arquitectura del programari RFAL a Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Figura 3. Correcció de connexió de maquinari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Figura 4. Posició dels ponts A5, A4, A3, A2, A1 i A0 a la placa adaptadora. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Figura 5. Configuració del maquinari superior view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figura 6. Càrrec de configuració del maquinari view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figura 7. Visualització dels dispositius trobats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
AVÍS IMPORTANT - LLEGIU ATENCIÓ
STMicroelectronics NV i les seves filials ("ST") es reserven el dret de fer canvis, correccions, millores, modificacions i millores als productes ST i/o a aquest document en qualsevol moment sense previ avís. Els compradors haurien d'obtenir la informació rellevant més recent sobre els productes ST abans de fer comandes. Els productes ST es venen d'acord amb els termes i condicions de venda de ST vigents en el moment del reconeixement de la comanda.
Els compradors són els únics responsables de l'elecció, selecció i ús dels productes ST i ST no assumeix cap responsabilitat per l'assistència a l'aplicació o el disseny dels productes dels compradors.
ST no concedeix cap llicència, expressa o implícita, a cap dret de propietat intel·lectual.
La revenda de productes ST amb disposicions diferents de la informació que s'estableix aquí anul·larà qualsevol garantia concedida per ST per a aquest producte.
ST i el logotip de ST són marques comercials de ST. Per obtenir informació addicional sobre les marques comercials ST, consulteu www.st.com/trademarks. Tots els altres noms de productes o serveis són propietat dels seus respectius propietaris.
La informació d'aquest document substitueix i substitueix la informació proporcionada anteriorment en qualsevol versió anterior d'aquest document.
© 2023 STMicroelectronics – Tots els drets reservats
Documents/Recursos
![]() |
Controlador de Linux STMicroelectronics UM2375 [pdfManual d'usuari Controlador de Linux UM2375, UM2375, Controlador de Linux, Controlador |




