STMicroelectronics UM2375 Linux Driver Brugervejledning

Linux®-driver til ST25R3911B og ST25R3912/14/15 højtydende NFC-frontends
Indledning
STSW-ST25R009 Linux®-driveren gør det muligt for Raspberry Pi 4 at fungere med X-NUCLEO-NFC05A1, som indeholder ST25R3911B højtydende NFC universel enhed.
Denne pakke porterer RF-abstraktionslaget (RFAL) til en Raspberry Pi 4 Linux-platform for at fungere med X-NUCLEO-NFC05A1-firmware. Pakken giver somampen applikation, der registrerer forskellige typer NFC tags og mobiltelefoner, der understøtter P2P. RFAL er ST-standarddriveren til ST25R NFC/RFID-læser-IC'er ST25R3911B, ST25R3912, ST25R3913, ST25R3914 og ST25R3915. Det bruges for eksempel af ST25R3911B-DISCO firmwaren (STSW-ST25R002) og af X-NUCLEONFC05A1 firmwaren (X-CUBE-NFC5).
STSW-ST25R009 understøtter alle ST25R3911B lavere lag protokoller og også nogle højere lag protokoller til kommunikation. RFAL er skrevet på en bærbar måde, så den kan køre på en lang række enheder baseret på Linux®. Dette dokument beskriver, hvordan RFAL-biblioteket kan bruges på et standard Linux-system (i dette tilfælde Raspberry Pi 4) til NFC/RF-kommunikation. Koden er meget bærbar og fungerer med mindre ændringer på enhver Linux-platform.
Figur 1. RFAL-bibliotek på Linux-platform

Overview
Funktioner
- Komplet Linux-brugerpladsdriver (RF-abstraktionslag) til at bygge NFC-aktiverede applikationer ved hjælp af ST25R3911B/ST25R391x højtydende NFC-frontends med op til 1.4 W udgangseffekt
- Linux-værtskommunikation med ST25R3911B/ST25R391x ved hjælp af SPI-interface
- Komplet RF/NFC-abstraktion (RFAL) til alle større teknologier og højere lag protokoller:
- NFC-A (ISO14443-A)
- NFC-B (ISO14443-B)
- NFC-F (FeliCa™)
- NFC-V (ISO15693)
- P2P (ISO18092)
- ISO-DEP (ISO dataudvekslingsprotokol, ISO14443-4)
- NFC-DEP (NFC-dataudvekslingsprotokol, ISO18092)
- Proprietære teknologier (Kovio, B', iClass, Calypso®, …)
- Sampimplementeringen tilgængelig med X-NUCLEO-NFC05A1 udvidelseskortet, tilsluttet en Raspberry Pi 4
- Sampapplikationen til at opdage flere NFC tag typer og mobiltelefoner, der understøtter P2P
- Gratis brugervenlige licensvilkår
Software arkitektur
Figur 2 viser softwarearkitekturdetaljerne for RFAL-biblioteket på en Linux®-platform.
RFAL kan nemt transporteres til andre platforme ved at tilpasse den såkaldte platform files.
Overskriften file rfal_platform.h indeholder makrodefinitioner, som skal leveres og implementeres af platformsejeren. Desuden giver den platformspecifikke indstillinger som GPIO-tildeling, systemressourcer, låse og IRQ'er, som er nødvendige for korrekt drift af RFAL.
Denne demonstration implementerer platformsfunktionerne og giver en port af RFAL-biblioteket til brugerrummet i Linux®. Et fælles bibliotek file er genereret, som bruges af demoapplikationen til at fremvise funktionaliteterne fra RFAL-laget.
Linux®-vært bruger sysfs-grænseflade, der er tilgængelig fra Linux®-brugerplads for at muliggøre SPI-kommunikation med ST25R3911B-enheden. Inde i Linux® kernen bruger SPI sysfs interfacet Linux® kernel driver spidev til at sende/modtage SPI frames til/fra ST25R3911B.
Til håndtering af afbrydelseslinjen i ST25R3911B bruger driveren libgpiod til at få besked om ændringer på denne linje.
Figur 2. RFAL-softwarearkitektur på Linux

Hardware opsætning
Brugt platform
Et Raspberry Pi 4-kort med Raspberry Pi OS bruges som Linux-platform til at bygge RFAL-bibliotek og interagere med ST25R3911B over SPI.
ST25R3911B gør det muligt for en applikation på Linux-platformen at detektere og kommunikere med NFC-enheder.
Hardwarekrav
- Raspberry Pi 4
- 8 GBytes micro SD-kort til at starte Raspberry Pi OS
- SD kortlæser
- Brokort til at forbinde X-NUCLEO-NFC05A1 med Raspberry Pi Arduino Adapter til Raspberry Pi, varenummer ARPI600.
- X-NUCLEO-NFC05A1. Se de seneste Raspberry Pi OS-krav.
Hardware-forbindelser
ARPI600 Raspberry Pi til Arduino adapterkortet bruges til at forbinde X-NUCLEO-NFC05A1 med Raspberry Pi. Det er nødvendigt at ændre jumperne på adapterkortet for at forbinde det med X-NUCLEO-NFC05A1.
Forsigtighed: ARPI600 leverer forkert 5 V til Arduino IOREF-stiften. Direkte tilslutning af X-NUCLEO-NFC05A1 giver 5 V tilbage på nogle ben, dette kan beskadige Raspberry Pi-kortet. Der er rapporter om, at Raspberry Pi 4B+ faktisk er blevet ødelagt. For at undgå denne situation skal du tilpasse enten ARPI600 (en ret vanskelig betjening) eller X-NUCLEO-NFC05A1 (lettere betjening).
Den nemmeste løsning er at skære CN6.2 (IOREF) stiften på X-NUCLEO-NFC05A1 som vist i figur 3.
At skære denne stift påvirker ikke driften i forbindelse med Nucleo-kort (NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB osv.).
Figur 3. Hardwareforbindelse fix

Jumper indstilling
Jumperne for A5, A4, A3, A2, A1 og A0 vist i figur 4 skal ændres til P23, P22, P21 og CE1. Med disse jumperindstillinger bruges Raspberry's GPIO pin nummer 7 som afbrydelseslinje for X-NUCLEO-NFC05A1.
Figur 4. Placering af jumpere A5, A4, A3, A2, A1 og A0 på adapterkortet

I øjeblikket bruger denne RFAL-biblioteksport stiften GPIO7 som afbrydelseslinjen i henhold til jumperindstillingerne. Hvis der er et krav om at ændre afbrydelseslinjen fra GPIO7 til en anden GPIO, skal den platformspecifikke kode (i file pltf_gpio.h) skal ændres for at ændre definitionen af makro "ST25R_INT_PIN" fra 7 til den nye GPIO pin, der skal bruges som interrupt linje.
Med ovenstående jumperindstillinger kan adapterkortet bruges til at forbinde X-NUCLEO-NFC05A1 med Raspberry Pi-kort som vist i figur 5.
Figur 5. Hardwareopsætning øverst view

Figur 6. Hardware setup side view

Linux miljø opsætning
Opstart af Raspberry Pi
For at konfigurere Linux-miljøet er første trin at installere og starte Raspberry Pi 4 med Raspberry Pi OS som forklaret nedenfor:
Trin 1
Download det seneste Raspberry Pi OS-billede fra linket:
Vælg Raspberry Pi OS med skrivebordet. Til testene nedenfor blev følgende version brugt: september 2022 (2022-09-22-raspios-bullseye-armhf.img.xz).
Trin 2
Pak Raspberry Pi-billedet ud og skriv det ind på SD-kortet ved at følge instruktionerne i afsnittet "Skriv et billede til SD-kortet".
Trin 3
Tilslut hardwaren:
- Tilslut Raspberry Pi til en skærm ved hjælp af et standard HDMI-kabel.
- Tilslut mus og tastatur til Raspberry Pis USB-porte.
Det er også muligt at arbejde med Raspberry Pi ved hjælp af ssh. I så fald er det ikke nødvendigt at forbinde skærmen, tastaturet og musen med Raspberry Pi. Det eneste krav er at have pc'en med ssh inde i det samme netværk som Raspberry Pi og konfigurere IP-adressen derefter.
Trin 4
Start Raspberry Pi med SD-kort.
Efter opstart vises et Debian-baseret Linux-skrivebord på skærmen.
Bemærk: Nogle gange er det observeret, at efter opstart af Raspberry Pi, virker nogle tastaturtaster ikke. For at få dem til at fungere skal du åbne file /etc/default/keyboard og indstil XKBLAYOUT=”us” og genstart Raspberry Pi.
Aktiver SPI på Raspberry Pi
SPI-driveren inde i kernen kommunikerer med X-NUCLEO-NFC05A1 via SPI. Det er vigtigt at kontrollere, om SPI allerede er aktiveret i Raspberry Pi OS/kerne-konfigurationen.
Tjek, om /dev/spidev0.0 er synlig i Raspberry Pi-miljøet. Hvis det ikke er synligt, skal du aktivere SPI-grænsefladen ved hjælp af hjælpeprogrammet "raspi-config" ved at følge trinene beskrevet nedenfor.
Trin 1
Åbn en ny terminal på Raspberry Pi og kør kommandoen "raspi-config" som root:
sudo raspi-config
Dette trin åbner en grafisk grænseflade.
Trin 2
Vælg i den grafiske grænseflade indstillingen kaldet "Interfacing Options".
Trin 3
Dette trin viser forskellige muligheder.
Vælg indstillingen kaldet "SPI".
Et nyt vindue vises med følgende tekst:
"Vil du have SPI-grænsefladen aktiveret?"
Trin 4
Vælg i dette vindue for at aktivere SPI.
Trin 5
Genstart Raspberry Pi.
Ovenstående trin vil aktivere SPI-grænsefladen i Raspberry Pi-miljøet efter en genstart.
Opbygning af RFAL bibliotek og applikation
RFAL-demoen af Linux findes i et arkiv. Lad os antage, at dens navn er:
ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz.
Følg nedenstående trin for at bygge RFAL-biblioteket og applikationen på Raspberry Pi:
Trin 1
Pak pakken ud på Raspberry Pi ved hjælp af nedenstående kommando fra hjemmemappen:
tar -xJvf ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz
Trin 2
Hvis det ikke er gjort før, installer cmake ved at bruge nedenstående kommando:
apt-get install cmake
RFAL bibliotek og applikationsopbygningssystem er baseret på cmake, af denne grund er det nødvendigt at installere cmake for kompilering af pakken.
Trin 3
For at bygge RFAL-biblioteket og applikationen skal du gå til "build"-mappen:
cd ST25R3911B_v2.8.0_Linux_demo_v1.0/Linux_demo/build
og kør nedenstående kommando derfra:
cmlave..
I ovenstående kommando angiver “..”, at CMakeLists.txt på øverste niveau findes i det overordnede bibliotek, dvs.
ST25R3911B_v2.8.0_Linux_demo_v1.0.
Kommandoen cmake opretter makefile som bruges i næste trin til at bygge biblioteket og applikationen.
Trin 4
Kør kommandoen "make" for at bygge RFAL-biblioteket og applikationen:
lave
Kommandoen "make" bygger først RFAL-biblioteket og bygger derefter applikationen oven på det.
Sådan kører du applikationen
Vellykket opbygning genererer en eksekverbar fil med navnet "nfc_demo_st25r3911b" på følgende placering:
/build/applikationer.
Som standard skal applikationen køres med root-rettigheder fra stien: ST25R3911B_v2.8.0_Linux_demo_v1.0/linux_demo/build:
sudo ./demo/nfc_demo_st25r3911b
Applikationen begynder at polle for NFC tags og mobiltelefoner. Den viser de fundne enheder med deres UID som vist i figur 7.
Figur 7. Visning af fundne enheder

For at afslutte applikationen skal du trykke på Ctrl + C.
Revisionshistorie
Tabel 1. Dokumentrevisionshistorik

Liste over tabeller
Tabel 1. Dokumentrevisionshistorik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Liste over figurer
Figur 1. RFAL-bibliotek på Linux-platformen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Figur 2. RFAL-softwarearkitektur på Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Figur 3. Hardwareforbindelse fix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Figur 4. Placering af jumpere A5, A4, A3, A2, A1 og A0 på adapterkortet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Figur 5. Hardwareopsætning øverst view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figur 6. Hardware setup side view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figur 7. Visning af fundne enheder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
VIGTIG MEDDELELSE – LÆS OMHYGGELIGT
STMicroelectronics NV og dets datterselskaber ("ST") forbeholder sig retten til at foretage ændringer, rettelser, forbedringer, modifikationer og forbedringer af ST-produkter og/eller dette dokument til enhver tid uden varsel. Købere bør indhente de seneste relevante oplysninger om ST-produkter, før de afgiver ordre. ST-produkter sælges i henhold til STs salgs- og salgsbetingelser på tidspunktet for ordrebekræftelse.
Købere er alene ansvarlige for valg, udvælgelse og brug af ST-produkter, og ST påtager sig intet ansvar for ansøgningsassistance eller design af købers produkter.
Ingen licens, hverken udtrykkelig eller underforstået, til nogen intellektuel ejendomsret er givet af ST heri.
Videresalg af ST-produkter med andre bestemmelser end de oplysninger, der er angivet heri, annullerer enhver garanti givet af ST for et sådant produkt.
ST og ST-logoet er varemærker tilhørende ST. For yderligere information om ST-varemærker, se www.st.com/varemærker. Alle andre produkt- eller tjenestenavne tilhører deres respektive ejere.
Oplysningerne i dette dokument erstatter og erstatter oplysninger, der tidligere er leveret i alle tidligere versioner af dette dokument.
© 2023 STMicroelectronics – Alle rettigheder forbeholdes
Dokumenter/ressourcer
![]() |
STMicroelectronics UM2375 Linux-driver [pdfBrugermanual UM2375 Linux Driver, UM2375, Linux Driver, Driver |




