UM2548 Linux-driver
Linux® driver til ST25R3916/ST25R3916B
Brugermanual
UM2548 Linux-driver
Indledning
STSW-ST25R013 Linux®-driveren gør det muligt for Raspberry Pi® 4 at fungere med X-NUCLEO-NFCO6A1- og X-NUCLEO-NFCO8A1-kortene, som indeholder henholdsvis ST25R3916- og ST25R3916B-enhederne.
Denne pakke porterer RF-abstraktionslaget (RFAL) til en Raspberry Pi 4 Linux-platform for at fungere med kortets firmware og giver somampen applikation, der registrerer forskellige typer NFC tags og mobiltelefoner, der understøtter P2P. RFAL er ST-standarddriveren til ST25R3916 og ST25R3916B, højtydende NFC universelle enheder / EMVCo-læsere. Det bruges for eksempel af ST25R3916-DISCO firmwaren (STSW-ST25R010) og af X-NUCLEO-NFCO06A1 firmwaren (X-CUBE-NFC6).
STSW-ST25R013 understøtter alle ST25R3916/ST25R3916B lavere lag og nogle højere lag protokoller til kommunikation. RFAL er skrevet på en bærbar måde, så den kan køre på en bred vifte af 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.

Overview
1.1 Funktioner
- Komplet Linux-brugerpladsdriver (RF-abstraktionslag) til at bygge NFC-aktiverede applikationer ved hjælp af ST25R3916- og ST25R3916B-enhederne
- Linux-værtskommunikation med ST25R3916/ST25R3916B 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, såsom Kovio, B', iClass, Calypso® - Sampimplementering tilgængelig med X-NUCLEO-NFC06A1 og X-NUCLEO-NFC08A1 udvidelseskort, tilsluttet en Raspberry Pi 4
- Sampapplikationen til at opdage flere NFC tag typer og mobiltelefoner, der understøtter P2P
- Gratis brugervenlige licensvilkår
1.2 Softwarearkitektur
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.
Det giver 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 til brugerrummet i Linux.
Et fælles bibliotek file genereres, som bruges af en demonstrativ applikation til at fremvise funktionaliteterne fra RFAL-laget.
Linux-vært bruger sysfs-grænseflade tilgængelig fra Linux-brugerplads til at udføre SPI-kommunikation med enhederne. Inde i Linux-kernen bruger SPI sysfs-grænsefladen Linux-kernedriver spidev til at sende/modtage SPI-frames til/fra enhederne.
Til håndtering af INT-linjen på ST25R3916- og ST25R3916B-enheder bruger driveren libpiod sysfs til at få besked om ændringer på denne linje.

Hardware opsætning
2.1 Brugt platform
Et Raspberry Pi 4-kort med Raspberry Pi OS bruges som Linux-platform til at bygge RFAL-biblioteket og interagere med ST25R3916/ST25R3916B over SPI.
Enhederne gør det muligt for en applikation på Linux-platformen at registrere og kommunikere med NFC-enheder.
2.2 Hardwarekrav
- Raspberry Pi 4
- 8 GB micro SD-kort til at starte Raspberry Pi OS (med dets seneste krav)
- SD kortlæser
- X-NUCLEO-NFC06A1 eller X-NUCLEO-NFC08A1 kort
- Bro til at forbinde boardet med Raspberry Pi Arduino™-adapter til Raspberry Pi (varenummer ARPI600)
2.2.1 Hardwareforbindelser
ARPI600 Raspberry Pi til Arduino-adapteren bruges til at forbinde boards med Raspberry Pi. Adapterkortets jumpere skal modificeres for at forbinde det med X-NUCLEO-NFC06A1- eller X-NUCLEO-NFC08A1-kortene.
Forsigtighed:
ARPI600 leverer forkert 5 V til Arduino IOREF-stiften. Direkte fastgørelse af pladerne giver 5 V tilbage på nogle ben, dette kan beskadige Raspberry Pi-kortet. Der er rapporter om ødelagte boards (især Raspberry Pi 4B+).
For at undgå dette skal du tilpasse ARPI600 (en ret vanskelig betjening) eller X-NUCLEO-NFC06A1/X-NUCLEONFC08A1-kortet (lettere).
Den nemmeste løsning er at skære CN6.2 (IOREF)-stiften på X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1-kortene, som vist i figur 3.
At skære denne stift påvirker ikke driften i forbindelse med Nucleo-plader (såsom NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB).

Jumper indstilling
Jumperne for A5, A4, A3, A2, A1 og A0 vist i figur 4 skal ændres til henholdsvis P25, P24, P23, P22, P21 og CE1. Med denne indstilling bruges Raspberrys GPIO pin nummer 7 som afbrydelseslinje for X-NUCLEONFC06A1/X-NUCLEO-NFC08A1.

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 NFC06A1 og X-NUCLEO-NFC08A1 med Raspberry Pi-kort, som vist i de følgende figurer.

Linux miljø opsætning
3.1 Opstart af Raspberry Pi
For at konfigurere Linux-miljøet skal du først installere og starte Raspberry Pi med Raspberry Pi OS, som forklaret nedenfor:
Trin 1
Download det seneste Raspberry Pi OS-billede fra https://www.raspberrypi.com, og vælg derefter Raspberry Pi OS med skrivebordet. Til testene nedenfor er version 2022-09-22-raspios-bullseye-armhf.img.xz (september 2022) blevet brugt.
Trin 2
Pak Raspberry Pi OS-billedet ud og skriv det på SD-kortet ved at følge instruktionerne i afsnittet "Skriv et billede til SD-kortet".
Trin 3
Tilslut hardwaren:
- Tilslut Raspberry Pi 4 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 dette tilfælde. det er ikke nødvendigt at forbinde skærm, tastatur og mus med Raspberry Pi. Det eneste krav er at have pc'en med ssh inde i samme netværk som Raspberry Pi, og konfigurere IP-adressen derefter.
Trin 4
Start Raspberry Pi 4 med et SD-kort. Efter opstart vises et Debian-baseret Linux-skrivebord på skærmen.
Note:
Nogle gange, efter opstart af Raspberry Pi OS, 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.
3.2 Aktiver SPI på Raspberry Pi
SPI-driveren inde i kernen kommunikerer med X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1-kortene gennem SPI. Det er vigtigt at kontrollere, om SPI allerede er aktiveret i Raspbian Pi OS-kernekonfigurationen.
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.
Byg RFAL bibliotek og applikation
RFAL-demonstrationen af Linux findes i et arkiv, såsom ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz.
For at bygge RFAL-biblioteket og applikationen på Raspberry Pi, skal du gennemgå følgende trin:
Trin 1
Udpak pakken på Raspberry Pi ved hjælp af følgende kommando fra hjemmemappen
tar -xJvf ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz
Trin 2
Installer cmake (hvis det ikke er gjort før) ved hjælp af kommandoen
apt-get install cmake
RFAL-biblioteket og applikationsbyggesystemet er baseret på cmake, af denne grund er det nødvendigt at installere cmake for at kompilere pakken.
Trin 3
For at bygge RFAL-biblioteket og applikationen skal du gå til build-mappen
cd ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build
Kør kommandoen derfra
cmlave..
I kommandoen ovenfor angiver "..", at CMakeLists.txt på øverste niveau findes i den overordnede mappe
(ST25R3916_v2.8.0_Linux_demo_v1.0).
Denne kommando opretter mærketfile bruges i næste trin til at bygge biblioteket og applikationen. Derfra skal du køre følgende kommando for at bygge demonstrationen til ST25R3916B
cmake -DRFAL_VARIANT=st25r3916b ..
Trin 4
Kør kommandoen make for at bygge RFAL-biblioteket og applikationen:
lave
Denne kommando bygger først RFAL-biblioteket og derefter applikationen oven på det.
Sådan kører du applikationen
En vellykket opbygning genererer en eksekverbar fil med navnet "nfc_poller_st25r3916" eller "nfc_poller_st25r3916b" på lokationen /build/demo.
Som standard skal applikationen køres med rodrettigheder fra stien ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build/demo/:
sudo ./nfc_demo_st25r3916
Applikationen begynder at polle for NFC tags og mobiltelefoner, viser derefter de fundne enheder med deres UID, som vist i figur 7.

For at afslutte applikationen skal du trykke på Ctrl + C.
Revisionshistorie
Tabel 1. Dokumentrevisionshistorik
| Dato | Revision | Ændringer |
| 1-mars-19 | 1 | Første udgivelse. |
| 4-apr-23 | 2 | Opdateret dokumenttitel, afsnitsintroduktion, afsnit 1.1 funktioner, Afsnit 1.2 Softwarearkitektur, Afsnit 2.1 Anvendt platform, Afsnit 2.2 Hardware krav, Afsnit 2.2.1 Hardwareforbindelser, Afsnit 3.1 Opstart af Raspberry Pi, Afsnit 3.2 Aktiver SPI på Raspberry Pi, Afsnit 4 Byg RFAL-bibliotek og applikation, og afsnit 5 Sådan kører du programmet. Opdateret Figur 1. RFAL-bibliotek på Linux-platform, Figur 2. RFAL-softwarearkitektur på Linux, og Figur 5. Hardwareopsætning øverst view. Mindre tekstredigeringer på tværs af hele dokumentet. |
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
UM2548 – Rev 2
Dokumenter/ressourcer
![]() |
STMicroelectronics UM2548 Linux-driver [pdfBrugermanual UM2548 Linux Driver, UM2548, Linux Driver, Driver |




