STMicroelectronics UM2375 Linux Driver brukerhåndbok

Linux®-driver for ST25R3911B og ST25R3912/14/15 NFC-grensesnitt med høy ytelse
Introduksjon
STSW-ST25R009 Linux®-driveren gjør at Raspberry Pi 4 kan operere med X-NUCLEO-NFC05A1, som inneholder ST25R3911B høyytelses NFC universalenhet.
Denne pakken porterer RF-abstraksjonslaget (RFAL) til en Raspberry Pi 4 Linux-plattform for å operere med X-NUCLEO-NFC05A1-fastvare. Pakken gir somampen applikasjon som oppdager forskjellige typer NFC tags og mobiltelefoner som støtter P2P. RFAL er ST-standarddriveren for ST25R NFC/RFID-leser-ICer ST25R3911B, ST25R3912, ST25R3913, ST25R3914 og ST25R3915. Den brukes for eksempel av ST25R3911B-DISCO-fastvaren (STSW-ST25R002) og av X-NUCLEONFC05A1-fastvaren (X-CUBE-NFC5).
STSW-ST25R009 støtter alle ST25R3911B lavere lag protokoller og også noen høyere lag protokoller for kommunikasjon. RFAL er skrevet på en bærbar måte, slik at den kan kjøres på et bredt spekter av enheter basert på Linux®. Dette dokumentet beskriver hvordan RFAL-biblioteket kan brukes på et standard Linux-system (i dette tilfellet Raspberry Pi 4) for NFC/RF-kommunikasjon. Koden er svært bærbar og fungerer med mindre endringer på alle Linux-plattformer.
Figur 1. RFAL-bibliotek på Linux-plattformen

Overview
Funksjoner
- Komplett Linux-brukerplassdriver (RF-abstraksjonslag) for å bygge NFC-aktiverte applikasjoner ved å bruke ST25R3911B/ST25R391x høyytelses NFC-frontender med opptil 1.4 W utgangseffekt
- Linux vertskommunikasjon med ST25R3911B/ST25R391x ved bruk av SPI-grensesnitt
- Komplett RF/NFC abstraksjon (RFAL) for alle viktige teknologier og høyere lag protokoller:
- NFC-A (ISO14443-A)
- NFC-B (ISO14443-B)
- NFC-F (FeliCa™)
- NFC-V (ISO15693)
- P2P (ISO18092)
- ISO-DEP (ISO datautvekslingsprotokoll, ISO14443-4)
- NFC-DEP (NFC datautvekslingsprotokoll, ISO18092)
- Proprietære teknologier (Kovio, B', iClass, Calypso®, …)
- Sampimplementeringen tilgjengelig med X-NUCLEO-NFC05A1 utvidelseskort, koblet til en Raspberry Pi 4
- Sampapplikasjonen for å oppdage flere NFC tag typer og mobiltelefoner som støtter P2P
- Gratis brukervennlige lisensvilkår
Programvarearkitektur
Figur 2 viser programvarearkitekturdetaljene til RFAL-biblioteket på en Linux®-plattform.
RFAL er lett portabel til andre plattformer ved å tilpasse den såkalte plattformen files.
Overskriften file rfal_platform.h inneholder makrodefinisjoner, som må leveres og implementeres av plattformeieren. Videre gir den plattformspesifikke innstillinger som GPIO-tilordning, systemressurser, låser og IRQ-er, som kreves for korrekt drift av RFAL.
Denne demonstrasjonen implementerer plattformfunksjonene og gir en port av RFAL-biblioteket til brukerområdet til Linux®. Et delt bibliotek file er generert, som brukes av demoapplikasjonen for å vise frem funksjonene som tilbys av RFAL-laget.
Linux®-verten bruker sysfs-grensesnitt tilgjengelig fra Linux®-brukerområdet for å aktivere SPI-kommunikasjon med ST25R3911B-enheten. Inne i Linux®-kjernen bruker SPI sysfs-grensesnittet Linux® kjernedriver spidev for å sende/motta SPI-rammer til/fra ST25R3911B.
For å håndtere avbruddslinjen til ST25R3911B bruker driveren libgpiod for å bli varslet om endringer på denne linjen.
Figur 2. RFAL programvarearkitektur på Linux

Maskinvareoppsett
Plattform brukt
Et Raspberry Pi 4-kort med Raspberry Pi OS brukes som Linux-plattform for å bygge RFAL-bibliotek og samhandle med ST25R3911B over SPI.
ST25R3911B gjør det mulig for en applikasjon på Linux-plattformen å oppdage og kommunisere med NFC-enheter.
Krav til maskinvare
- Raspberry Pi 4
- 8 GByte micro SD-kort for å starte opp Raspberry Pi OS
- SD-kortleser
- Brokort for å koble X-NUCLEO-NFC05A1 med Raspberry Pi Arduino Adapter for Raspberry Pi, delenummer ARPI600.
- X-NUCLEO-NFC05A1. Se de nyeste Raspberry Pi OS-kravene.
Maskinvaretilkoblingene
ARPI600 Raspberry Pi til Arduino-adapterkortet brukes til å koble X-NUCLEO-NFC05A1 med Raspberry Pi. Det er nødvendig å modifisere jumperne på adapterkortet for å koble det til X-NUCLEO-NFC05A1.
Forsiktighet: ARPI600 gir feil 5 V til Arduino IOREF-pinnen. Direkte festing av X-NUCLEO-NFC05A1 mater tilbake 5 V på noen pinner, dette kan skade Raspberry Pi-kortet. Det er rapporter spesielt om Raspberry Pi 4B+ som faktisk blir ødelagt. For å unngå denne situasjonen, tilpasser du enten ARPI600 (en ganske vanskelig operasjon) eller X-NUCLEO-NFC05A1 (enklere operasjon).
Den enkleste løsningen er å kutte CN6.2 (IOREF)-pinnen på X-NUCLEO-NFC05A1 som vist i figur 3.
Å kutte denne pinnen påvirker ikke driften i forbindelse med Nucleo-kort (NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB, etc.).
Figur 3. Reparasjon av maskinvaretilkobling

Jumperinnstilling
Jumperne for A5, A4, A3, A2, A1 og A0 vist i figur 4 må endres til P23, P22, P21 og CE1. Med disse jumperinnstillingene brukes Raspberrys GPIO pin nummer 7 som avbruddslinje for X-NUCLEO-NFC05A1.
Figur 4. Plassering av jumpere A5, A4, A3, A2, A1 og A0 på adapterkortet

For øyeblikket bruker denne RFAL-biblioteksporten pin GPIO7 som avbruddslinje, i henhold til jumperinnstillingene. Hvis det er et krav om å endre avbruddslinjen fra GPIO7 til en annen GPIO, vil den plattformspesifikke koden (i file pltf_gpio.h) må endres for å endre definisjonen av makro "ST25R_INT_PIN" fra 7 til den nye GPIO pin, som skal brukes som avbruddslinje.
Med jumperinnstillingene ovenfor kan adapterkortet brukes til å koble X-NUCLEO-NFC05A1 til Raspberry Pi-kortet som vist i figur 5.
Figur 5. Maskinvareoppsett øverst view

Figur 6. Maskinvareoppsettside view

Linux-miljøoppsett
Oppstart av Raspberry Pi
For å sette opp Linux-miljøet, er første trinn å installere og starte Raspberry Pi 4 med Raspberry Pi OS som forklart nedenfor:
Trinn 1
Last ned det nyeste Raspberry Pi OS-bildet fra lenken:
Velg Raspberry Pi OS med skrivebordet. For testene nedenfor ble følgende versjon brukt: september 2022 (2022-09-22-raspios-bullseye-armhf.img.xz).
Trinn 2
Pakk ut Raspberry Pi-bildet og skriv det inn på SD-kortet ved å følge instruksjonene som er tilgjengelige i delen som heter "Skrive et bilde til SD-kortet".
Trinn 3
Koble til maskinvaren:
- Koble Raspberry Pi til en skjerm med en standard HDMI-kabel.
- Koble mus og tastatur til Raspberry Pis USB-porter.
Det er også mulig å jobbe med Raspberry Pi ved hjelp av ssh. I så fall er det ikke nødvendig å koble skjermen, tastaturet og musen til Raspberry Pi. Det eneste kravet er å ha PC-en med ssh inne i samme nettverk som Raspberry Pi og konfigurere IP-adressen deretter.
Trinn 4
Start Raspberry Pi med SD-kort.
Etter oppstart vises et Debian-basert Linux-skrivebord på skjermen.
Merk: Noen ganger er det observert at noen tastaturtaster ikke fungerer etter oppstart av Raspberry Pi. For å få dem til å fungere, åpne file /etc/default/keyboard og sett XKBLAYOUT=”us” og start Raspberry Pi på nytt.
Aktiver SPI på Raspberry Pi
SPI-driveren inne i kjernen kommuniserer med X-NUCLEO-NFC05A1 via SPI. Det er viktig å sjekke om SPI allerede er aktivert i Raspberry Pi OS/kjernekonfigurasjonen.
Sjekk om /dev/spidev0.0 er synlig i Raspberry Pi-miljøet. Hvis det ikke er synlig, aktiver SPI-grensesnittet ved å bruke verktøyet "raspi-config" ved å følge trinnene beskrevet nedenfor.
Trinn 1
Åpne en ny terminal på Raspberry Pi og kjør kommandoen "raspi-config" som root:
sudo raspi-konfig
Dette trinnet åpner et grafisk grensesnitt.
Trinn 2
Velg i det grafiske grensesnittet alternativet kalt "Interfacing Options".
Trinn 3
Dette trinnet viser ulike alternativer.
Velg alternativet kalt "SPI".
Et nytt vindu vises med følgende tekst:
"Vil du at SPI-grensesnittet skal være aktivert?"
Trinn 4
Plukke ut i dette vinduet for å aktivere SPI.
Trinn 5
Start Raspberry Pi på nytt.
Trinnene ovenfor vil aktivere SPI-grensesnittet i Raspberry Pi-miljøet etter en omstart.
Bygg av RFAL-bibliotek og applikasjon
RFAL-demoen av Linux leveres i et arkiv. La oss anta at navnet er:
ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz.
For å bygge RFAL-biblioteket og applikasjonen på Raspberry Pi, følg trinnene nedenfor:
Trinn 1
Pakk ut pakken på Raspberry Pi ved å bruke kommandoen nedenfor fra hjemmekatalogen:
tar -xJvf ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz
Trinn 2
Hvis du ikke har gjort det før, installer cmake ved å bruke kommandoen nedenfor:
apt-get install cmake
RFAL bibliotek og applikasjonsbyggesystem er basert på cmake, av denne grunn er det nødvendig å installere cmake for kompilering av pakken.
Trinn 3
For å bygge RFAL-biblioteket og applikasjonen, gå til "build"-katalogen:
cd ST25R3911B_v2.8.0_Linux_demo_v1.0/Linux_demo/build
og kjør kommandoen nedenfor derfra:
cm lage..
I kommandoen ovenfor indikerer ".." at toppnivå CMakeLists.txt eksisterer i overordnet katalog, dvs.
ST25R3911B_v2.8.0_Linux_demo_v1.0.
cmake-kommandoen oppretter makefile som brukes i neste trinn for å bygge biblioteket og applikasjonen.
Trinn 4
Kjør "make"-kommandoen for å bygge RFAL-biblioteket og applikasjonen:
lage
"make"-kommandoen bygger først RFAL-biblioteket og bygger deretter applikasjonen på toppen av det.
Hvordan kjøre applikasjonen
Vellykket oppbygging genererer en kjørbar fil kalt "nfc_demo_st25r3911b" på følgende sted:
/build/applikasjoner.
Som standard må applikasjonen kjøres med rotrettigheter fra banen: ST25R3911B_v2.8.0_Linux_demo_v1.0/linux_demo/build:
sudo ./demo/nfc_demo_st25r3911b
Applikasjonen begynner å polle for NFC tags og mobiltelefoner. Den viser enhetene som ble funnet med deres UID som vist i figur 7.
Figur 7. Visning av funnet enheter

For å avslutte programmet, trykk Ctrl + C.
Revisjonshistorikk
Tabell 1. Dokumentrevisjonshistorikk

Liste over tabeller
Tabell 1. Dokumentrevisjonshistorikk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Liste over figurer
Figur 1. RFAL-bibliotek på Linux-plattformen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Figur 2. RFAL-programvarearkitektur på Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Figur 3. Reparasjon av maskinvaretilkobling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Figur 4. Plassering av jumpere A5, A4, A3, A2, A1 og A0 på adapterkortet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Figur 5. Maskinvareoppsett øverst view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figur 6. Maskinvareoppsettside view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figur 7. Visning av funnet enheter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
VIKTIG MERKNAD – LES NØYE
STMicroelectronics NV og dets datterselskaper ("ST") forbeholder seg retten til å gjøre endringer, rettelser, forbedringer, modifikasjoner og forbedringer av ST-produkter og/eller dette dokumentet når som helst uten varsel. Kjøpere bør innhente den nyeste relevante informasjonen om ST-produkter før de legger inn bestillinger. ST-produkter selges i henhold til STs salgsvilkår som er på plass på tidspunktet for ordrebekreftelse.
Kjøpere er alene ansvarlige for valg, valg og bruk av ST-produkter og ST påtar seg intet ansvar for søknadshjelp eller utforming av kjøpers produkter.
Ingen lisens, uttrykt eller underforstått, til noen immaterielle rettigheter er gitt av ST heri.
Videresalg av ST-produkter med andre bestemmelser enn informasjonen som er angitt her, vil ugyldiggjøre enhver garanti gitt av ST for slikt produkt.
ST og ST-logoen er varemerker for ST. For ytterligere informasjon om ST-varemerker, se www.st.com/trademarks. Alle andre produkt- eller tjenestenavn tilhører sine respektive eiere.
Informasjonen i dette dokumentet erstatter og erstatter informasjon som tidligere er gitt i tidligere versjoner av dette dokumentet.
© 2023 STMicroelectronics – Alle rettigheter forbeholdt
Dokumenter / Ressurser
![]() | UM2375 Linux-driver |
Referanser
- Brukerhåndbokmanual.tools

