Manual de usuario del controlador de Linux STMicroelectronics UM2375

Controlador Linux® para as interfaces NFC de alto rendemento ST25R3911B e ST25R3912/14/15
Introdución
O controlador STSW-ST25R009 Linux® permite que a Raspberry Pi 4 funcione co X-NUCLEO-NFC05A1, que contén o dispositivo universal NFC de alto rendemento ST25R3911B.
Este paquete leva a capa de abstracción de RF (RFAL) a unha plataforma Linux Raspberry Pi 4 para operar co firmware X-NUCLEO-NFC05A1. O paquete ofrece comoampaplicación que detecta diferentes tipos de NFC tags e teléfonos móbiles compatibles con P2P. O RFAL é o controlador estándar ST para os IC lectores ST25R NFC/RFID ST25R3911B, ST25R3912, ST25R3913, ST25R3914 e ST25R3915. Utilízase, por exemplo, polo firmware ST25R3911B-DISCO (STSW-ST25R002) e polo firmware X-NUCLEONFC05A1 (X-CUBE-NFC5).
STSW-ST25R009 admite todos os protocolos de capa inferior ST25R3911B e tamén algúns protocolos de capa superior para a comunicación. O RFAL está escrito de forma portátil, polo que pode executarse nunha ampla gama de dispositivos baseados en Linux®. Este documento describe como se pode usar a biblioteca RFAL nun sistema Linux estándar (neste caso o Raspberry Pi 4) para a comunicación NFC/RF. O código é altamente portátil e funciona con pequenos cambios en calquera plataforma Linux.
Figura 1. Biblioteca RFAL na plataforma Linux

Acabadoview
Características
- Controlador de espazo de usuario completo de Linux (capa de abstracción de RF) para crear aplicacións habilitadas para NFC usando as interfaces NFC de alto rendemento ST25R3911B/ST25R391x con potencia de saída de ata 1.4 W
- Comunicación do host Linux co ST25R3911B/ST25R391x mediante a interface SPI
- Abstracción completa de RF/NFC (RFAL) para todas as tecnoloxías principais e protocolos de capa superior:
- NFC-A (ISO14443-A)
- NFC-B (ISO14443-B)
- NFC-F (FeliCa™)
- NFC-V (ISO15693)
- P2P (ISO 18092)
- ISO-DEP (protocolo de intercambio de datos ISO, ISO14443-4)
- NFC-DEP (protocolo de intercambio de datos NFC, ISO18092)
- Tecnoloxías propietarias (Kovio, B', iClass, Calypso®, …)
- Sampimplementación de le dispoñible coa placa de expansión X-NUCLEO-NFC05A1, conectada a un Raspberry Pi 4
- Sample para detectar varios NFC tag tipos e teléfonos móbiles compatibles con P2P
- Condicións de licenza gratuítas fáciles de usar
Arquitectura de software
A Figura 2 mostra os detalles da arquitectura do software da biblioteca RFAL nunha plataforma Linux®.
O RFAL é facilmente portátil a outras plataformas adaptando a chamada plataforma files.
A cabeceira file rfal_platform.h contén definicións de macro, que deben ser proporcionadas e implementadas polo propietario da plataforma. Ademais, ofrece configuracións específicas da plataforma como a asignación de GPIO, recursos do sistema, bloqueos e IRQ, que son necesarios para o correcto funcionamento do RFAL.
Esta demostración implementa as funcións da plataforma e proporciona un porto da biblioteca RFAL ao espazo de usuario de Linux®. Unha biblioteca compartida file xérase, que é usado pola aplicación de demostración para mostrar as funcionalidades proporcionadas pola capa RFAL.
O host Linux® usa a interface sysfs dispoñible no espazo de usuario de Linux® para habilitar a comunicación SPI co dispositivo ST25R3911B. Dentro do núcleo Linux®, a interface SPI sysfs usa o controlador do núcleo Linux® spidev para enviar/recibir tramas SPI a/desde ST25R3911B.
Para xestionar a liña de interrupción de ST25R3911B, o controlador usa o libgpiod para recibir notificacións dos cambios nesta liña.
Figura 2. Arquitectura de software RFAL en Linux

Configuración de hardware
Plataforma utilizada
Unha placa Raspberry Pi 4 con Raspberry Pi OS úsase como plataforma Linux para construír a biblioteca RFAL e interactuar con ST25R3911B a través de SPI.
ST25R3911B permite que unha aplicación na plataforma Linux detecte e se comunique con dispositivos NFC.
Requisitos de hardware
- Raspberry Pi 4
- Tarxeta micro SD de 8 GBytes para iniciar o sistema operativo Raspberry Pi
- Lector de tarxetas SD
- Placa de puente para conectar X-NUCLEO-NFC05A1 con adaptador Arduino Raspberry Pi para Raspberry Pi, número de pieza ARPI600.
- X-NUCLEO-NFC05A1. Consulte os últimos requisitos do sistema operativo Raspberry Pi.
Conexións de hardware
A placa adaptadora ARPI600 Raspberry Pi a Arduino úsase para conectar o X-NUCLEO-NFC05A1 co Raspberry Pi. É necesario modificar os puentes da placa adaptadora para conectala co X-NUCLEO-NFC05A1.
Atención: O ARPI600 proporciona incorrectamente 5 V ao pin IOREF de Arduino. Ao conectar directamente o X-NUCLEO-NFC05A1 retroalimenta 5 V nalgúns pinos, isto pode danar a placa Raspberry Pi. Hai informes sobre todo de que Raspberry Pi 4B+ foi realmente destruído. Para evitar esta situación, adapte o ARPI600 (unha operación bastante difícil) ou o X-NUCLEO-NFC05A1 (operación máis sinxela).
A solución máis sinxela é cortar o pin CN6.2 (IOREF) no X-NUCLEO-NFC05A1 como se mostra na Figura 3.
O corte deste pin non afecta o funcionamento en conxunto coas placas Nucleo (NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB, etc.).
Figura 3. Corrección de conexión de hardware

Configuración do puente
Os puentes para A5, A4, A3, A2, A1 e A0 mostrados na Figura 4 deben cambiarse por P23, P22, P21 e CE1. Con esta configuración de puente, o pin GPIO número 7 de Raspberry úsase como liña de interrupción para X-NUCLEO-NFC05A1.
Figura 4. Posición dos puentes A5, A4, A3, A2, A1 e A0 na tarxeta adaptadora

Actualmente, este porto de biblioteca RFAL usa o pin GPIO7 como liña de interrupción, segundo a configuración do puente. Se hai un requisito para cambiar a liña de interrupción de GPIO7 a un GPIO diferente, o código específico da plataforma (en file pltf_gpio.h) debe modificarse para cambiar a definición da macro "ST25R_INT_PIN" de 7 ao novo pin GPIO, que se utilizará como liña de interrupción.
Coa configuración do puente anterior, a placa adaptadora pódese usar para conectar X-NUCLEO-NFC05A1 coa placa Raspberry Pi, como se mostra na Figura 5.
Figura 5. Parte superior de configuración de hardware view

Figura 6. Lado de configuración de hardware view

Configuración do entorno Linux
Arranque de Raspberry Pi
Para configurar o ambiente Linux, o primeiro paso é instalar e iniciar o Raspberry Pi 4 co sistema operativo Raspberry Pi como se explica a continuación:
Paso 1
Descarga a última imaxe do sistema operativo Raspberry Pi desde a ligazón:
Escolla o sistema operativo Raspberry Pi con escritorio. Para as probas seguintes utilizouse a seguinte versión: setembro de 2022 (2022-09-22-raspios-bullseye-armhf.img.xz).
Paso 2
Descomprime a imaxe de Raspberry Pi e escríbea na tarxeta SD seguindo as instrucións dispoñibles na sección "Escribindo unha imaxe na tarxeta SD".
Paso 3
Conecta o hardware:
- Conecte o Raspberry Pi a un monitor usando un cable HDMI estándar.
- Conecte o rato e o teclado aos portos USB de Raspberry Pi.
Tamén é posible traballar con Raspberry Pi usando ssh. Nese caso non é necesario conectar o monitor, o teclado e o rato con Raspberry Pi. O único requisito é ter o PC con ssh dentro da mesma rede que o Raspberry Pi e configurar o enderezo IP en consecuencia.
Paso 4
Arranque o Raspberry Pi cunha tarxeta SD.
Despois do arranque, aparece un escritorio Linux baseado en Debian no monitor.
Nota: Ás veces, obsérvase que despois de iniciar Raspberry Pi, algunhas teclas do teclado non funcionan. Para facelos funcionar, abra o file /etc/default/keyboard e configure XKBLAYOUT="us" e reinicie o Raspberry Pi.
Activar SPI en Raspberry Pi
O controlador SPI dentro do núcleo comunícase con X-NUCLEO-NFC05A1 a través de SPI. É importante comprobar se SPI xa está activado na configuración do sistema operativo/núcleo de Raspberry Pi.
Comproba se /dev/spidev0.0 está visible no ambiente Raspberry Pi. Se non está visible, active a interface SPI mediante a utilidade "raspi-config" seguindo os pasos descritos a continuación.
Paso 1
Abre un novo terminal no Raspberry Pi e executa o comando "raspi-config" como root:
sudo raspi-config
Este paso abre unha interface gráfica.
Paso 2
Seleccione na interface gráfica a opción denominada "Opcións de interface".
Paso 3
Este paso enumera varias opcións.
Seleccione a opción chamada "SPI".
Aparece unha nova xanela co seguinte texto:
"Quere activar a interface SPI?"
Paso 4
Seleccione nesta xanela para activar SPI.
Paso 5
Reiniciar Raspberry Pi.
Os pasos anteriores habilitarán a interface SPI no ambiente Raspberry Pi despois dun reinicio.
Creación da biblioteca e aplicación RFAL
A demostración RFAL de Linux ofrécese nun arquivo. Supoñamos que o seu nome é:
ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz.
Para crear a biblioteca e a aplicación RFAL en Raspberry Pi, siga os seguintes pasos:
Paso 1
Descomprime o paquete en Raspberry Pi usando o seguinte comando desde o directorio de inicio:
tar -xJvf ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz
Paso 2
Se non se fixo antes, instale cmake, usando o seguinte comando:
apt-get install cmake
A biblioteca RFAL e o sistema de compilación de aplicacións baséanse en cmake, por iso é necesario instalar cmake para a compilación do paquete.
Paso 3
Para construír a biblioteca e a aplicación RFAL, vaia ao directorio "build":
cd ST25R3911B_v2.8.0_Linux_demo_v1.0/Linux_demo/build
e executa o seguinte comando desde alí:
facer..
No comando anterior “..” indica que CMakeLists.txt de nivel superior existe no directorio pai, é dicir
ST25R3911B_v2.8.0_Linux_demo_v1.0.
O comando cmake crea o makefile que se usa no seguinte paso para construír a biblioteca e a aplicación.
Paso 4
Execute o comando "make" para construír a biblioteca e a aplicación RFAL:
facer
O comando "make" primeiro constrúe a biblioteca RFAL e despois constrúe a aplicación encima dela.
Como executar a aplicación
A compilación exitosa xera un executable chamado "nfc_demo_st25r3911b" na seguinte localización:
/build/applications.
Por defecto, a aplicación debe executarse con dereitos de root desde a ruta: ST25R3911B_v2.8.0_Linux_demo_v1.0/linux_demo/build:
sudo ./demo/nfc_demo_st25r3911b
A aplicación comeza a buscar NFC tags e teléfonos móbiles. Mostra os dispositivos atopados co seu UID como se mostra na Figura 7.
Figura 7. Visualización dos dispositivos atopados

Para finalizar a aplicación, prema Ctrl + C.
Historial de revisións
Táboa 1. Historial de revisións de documentos

Lista de táboas
Táboa 1. Historial de revisións de documentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Lista de figuras
Figura 1. Biblioteca RFAL na plataforma Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Figura 2. Arquitectura de software RFAL en Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Figura 3. Corrección de conexión de hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Figura 4. Posición dos puentes A5, A4, A3, A2, A1 e A0 na tarxeta adaptadora. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Figura 5. Parte superior de configuración de hardware view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figura 6. Lado de configuración de hardware view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figura 7. Visualización de dispositivos atopados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
AVISO IMPORTANTE - LEA ATENTAMENTE
STMicroelectronics NV e as súas subsidiarias (“ST”) resérvanse o dereito de realizar cambios, correccións, melloras, modificacións e melloras nos produtos ST e/ou neste documento en calquera momento sen previo aviso. Os compradores deben obter a información relevante máis recente sobre produtos ST antes de facer pedidos. Os produtos ST véndense de acordo cos termos e condicións de venda de ST existentes no momento do recoñecemento da orde.
Os compradores son os únicos responsables da elección, selección e uso dos produtos ST e ST non asume ningunha responsabilidade pola asistencia á aplicación ou o deseño dos produtos dos compradores.
ST non concede ningunha licenza, expresa ou implícita, a ningún dereito de propiedade intelectual.
A revenda de produtos ST con disposicións diferentes da información aquí establecida anulará calquera garantía concedida por ST para tal produto.
ST e o logotipo de ST son marcas comerciais de ST. Para obter información adicional sobre as marcas rexistradas ST, consulte www.st.com/trademarks. Todos os outros nomes de produtos ou servizos son propiedade dos seus respectivos propietarios.
A información deste documento substitúe e substitúe a información proporcionada anteriormente en calquera versión anterior deste documento.
© 2023 STMicroelectronics – Todos os dereitos reservados
Documentos/Recursos
![]() |
Controlador Linux STMicroelectronics UM2375 [pdfManual do usuario Controlador UM2375 Linux, UM2375, Controlador Linux, Controlador |




