STMicroelectronics UM2375 Linux-stuurprogramma Gebruikershandleiding

STMicroelectronics-logo

Linux®-driver voor de ST25R3911B en ST25R3912/14/15 krachtige NFC-frontends

Invoering

Dankzij het STSW-ST25R009 Linux®-stuurprogramma kan de Raspberry Pi 4 werken met de X-NUCLEO-NFC05A1, die het krachtige universele NFC-apparaat ST25R3911B bevat.

Dit pakket porteert de RF-abstractielaag (RFAL) naar een Raspberry Pi 4 Linux-platform om te werken met X-NUCLEO-NFC05A1-firmware. Het pakket biedt alsample-applicatie die verschillende soorten NFC detecteert tags en mobiele telefoons die P2P ondersteunen. De RFAL is de ST-standaarddriver voor ST25R NFC/RFID-lezer-IC's ST25R3911B, ST25R3912, ST25R3913, ST25R3914 en ST25R3915. Het wordt bijvoorbeeld gebruikt door de ST25R3911B-DISCO-firmware (STSW-ST25R002) en door de X-NUCLEONFC05A1-firmware (X-CUBE-NFC5).

STSW-ST25R009 ondersteunt alle ST25R3911B-protocollen op de lagere laag en ook enkele protocollen op een hogere laag voor communicatie. De RFAL is draagbaar geschreven, zodat deze op een groot aantal apparaten op Linux® kan draaien. Dit document beschrijft hoe de RFAL-bibliotheek kan worden gebruikt op een standaard Linux-systeem (in dit geval de Raspberry Pi 4) voor NFC/RF-communicatie. De code is zeer draagbaar en werkt met kleine wijzigingen op elk Linux-platform.

Figuur 1. RFAL-bibliotheek op Linux-platform

Figuur 1 RFAL-bibliotheek op Linux-platform

Overview

Functies
  • Compleet Linux-gebruikersruimtestuurprogramma (RF-abstractielaag) om NFC-compatibele applicaties te bouwen met behulp van de ST25R3911B/ST25R391x hoogwaardige NFC-frontends met maximaal 1.4 W uitgangsvermogen
  • Linux-hostcommunicatie met de ST25R3911B/ST25R391x via SPI-interface
  • Volledige RF/NFC-abstractie (RFAL) voor alle belangrijke technologieën en protocollen van een hogere laag:
    • NFC-A (ISO14443-A)
    • NFC-B (ISO14443-B)
    • NFC-F (FeliCa™)
    • NFC-V (ISO15693)
    • P2P (ISO18092)
    • ISO-DEP (ISO-protocol voor gegevensuitwisseling, ISO14443-4)
    • NFC-DEP (NFC-protocol voor gegevensuitwisseling, ISO18092)
    • Eigen technologieën (Kovio, B', iClass, Calypso®, …)
  • Sample-implementatie beschikbaar met de X-NUCLEO-NFC05A1-uitbreidingskaart, aangesloten op een Raspberry Pi 4
  • Sample applicatie om meerdere NFC te detecteren tag typen en mobiele telefoons die P2P ondersteunen
  • Gratis gebruiksvriendelijke licentievoorwaarden
Softwarearchitectuur

Figuur 2 toont de details van de softwarearchitectuur van de RFAL-bibliotheek op een Linux®-platform.

De RFAL is eenvoudig overdraagbaar naar andere platforms door het zogenaamde platform aan te passen files.

De koptekst file rfal_platform.h bevat macrodefinities die door de platformeigenaar moeten worden verstrekt en geïmplementeerd. Bovendien biedt het platformspecifieke instellingen zoals GPIO-toewijzing, systeembronnen, vergrendelingen en IRQ's, die nodig zijn voor een correcte werking van de RFAL.

Deze demonstratie implementeert de platformfuncties en biedt een poort van de RFAL-bibliotheek naar de gebruikersruimte van Linux®. Een gedeelde bibliotheek file wordt gegenereerd, die door de demo-applicatie wordt gebruikt om de functionaliteiten van de RFAL-laag te demonstreren.

De Linux®-host gebruikt de sysfs-interface die beschikbaar is vanuit de Linux®-gebruikersruimte om SPI-communicatie met het ST25R3911B-apparaat mogelijk te maken. Binnen de Linux®-kernel gebruikt de SPI sysfs-interface de Linux®-kerneldriver spidev om SPI-frames te verzenden/ontvangen van/naar ST25R3911B.

Voor het afhandelen van de interruptlijn van ST25R3911B gebruikt de driver de libgpiod om op de hoogte te worden gesteld van wijzigingen op deze lijn.

Figuur 2. RFAL-softwarearchitectuur op Linux

Figuur 2 RFAL-softwarearchitectuur op Linux

Apparatuur installatie

Platform gebruikt

Een Raspberry Pi 4-bord met Raspberry Pi OS wordt gebruikt als Linux-platform om de RFAL-bibliotheek te bouwen en te communiceren met ST25R3911B via SPI.
ST25R3911B zorgt ervoor dat een applicatie op het Linux-platform NFC-apparaten kan detecteren en ermee kan communiceren.

Hardwarevereisten
  • Framboos Pi 4
  • 8 GBytes micro SD-kaart om Raspberry Pi OS op te starten
  • SD-kaartlezer
  • Bridgeboard om X-NUCLEO-NFC05A1 te verbinden met Raspberry Pi Arduino-adapter voor Raspberry Pi, onderdeelnummer ARPI600.
  • X-NUCLEO-NFC05A1. Raadpleeg de nieuwste Raspberry Pi OS-vereisten.

Hardwareverbindingen

Het ARPI600 Raspberry Pi naar Arduino-adapterbord wordt gebruikt om de X-NUCLEO-NFC05A1 met de Raspberry Pi te verbinden. Het is vereist om de jumpers van de adapterkaart te wijzigen om deze te verbinden met de X-NUCLEO-NFC05A1.

Voorzichtigheid: De ARPI600 levert ten onrechte 5 V aan de Arduino IOREF-pin. Door de X-NUCLEO-NFC05A1 rechtstreeks aan te sluiten, wordt op sommige pinnen 5 V teruggekoppeld, dit kan het Raspberry Pi-bord beschadigen. Er zijn vooral berichten dat de Raspberry Pi 4B+ daadwerkelijk wordt vernietigd. Om deze situatie te vermijden, past u de ARPI600 (een nogal moeilijke bediening) of de X-NUCLEO-NFC05A1 (eenvoudigere bediening) aan.

De eenvoudigste oplossing is het doorknippen van de CN6.2 (IOREF)-pin op de X-NUCLEO-NFC05A1, zoals weergegeven in afbeelding 3.

Het doorknippen van deze pin heeft geen invloed op de werking in combinatie met Nucleo-kaarten (NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB, enz.).

Figuur 3. Reparatie van hardwareverbinding

Figuur 3 Reparatie van hardwareverbinding

Jumper-instelling

De jumpers voor A5, A4, A3, A2, A1 en A0, weergegeven in Figuur 4, moeten worden gewijzigd in P23, P22, P21 en CE1. Met deze jumperinstelling wordt Raspberry's GPIO-pinnummer 7 gebruikt als interruptlijn voor X-NUCLEO-NFC05A1.

Figuur 4. Positie van jumpers A5, A4, A3, A2, A1 en A0 op de adapterkaart

Figuur 4 Positie van jumpers

Momenteel gebruikt deze RFAL-bibliotheekpoort de pin GPIO7 als interruptlijn, volgens de jumperinstellingen. Als er een vereiste is om de interruptlijn van GPIO7 naar een andere GPIO te wijzigen, wordt de platformspecifieke code (in file pltf_gpio.h) moet worden aangepast om de definitie van macro “ST25R_INT_PIN” te wijzigen van 7 naar de nieuwe GPIO-pin, die als interruptlijn kan worden gebruikt.

Met de bovenstaande jumperinstellingen kan de adapterkaart worden gebruikt om X-NUCLEO-NFC05A1 aan te sluiten op een Raspberry Pi-kaart, zoals weergegeven in afbeelding 5.

Figuur 5. Hardware-installatie bovenaan view

Figuur 5 Hardware-installatie bovenaan view

Figuur 6. Hardware-installatiekant view

Figuur 6 Hardware-installatiekant view

Installatie van Linux-omgeving

Opstarten van Raspberry Pi

Om de Linux-omgeving in te stellen, is de eerste stap het installeren en opstarten van de Raspberry Pi 4 met Raspberry Pi OS, zoals hieronder uitgelegd:

Stap 1

Download de nieuwste Raspberry Pi OS-afbeelding via de link:

Kies Raspberry Pi OS met desktop. Voor onderstaande tests is de volgende versie gebruikt: september 2022 (2022-09-22-raspios-bullseye-armhf.img.xz).

Stap 2

Pak de Raspberry Pi-afbeelding uit en schrijf deze naar de SD-kaart door de instructies te volgen die beschikbaar zijn in de sectie genaamd "Een afbeelding naar de SD-kaart schrijven".

Stap 3

Sluit de hardware aan:

  • Sluit de Raspberry Pi aan op een monitor met behulp van een standaard HDMI-kabel.
  • Sluit muis en toetsenbord aan op de USB-poorten van Raspberry Pi.

Het is ook mogelijk om met Raspberry Pi te werken via ssh. In dat geval is het niet nodig om de monitor, het toetsenbord en de muis met Raspberry Pi te verbinden. De enige vereiste is dat de pc met ssh zich in hetzelfde netwerk bevindt als de Raspberry Pi en dat het IP-adres dienovereenkomstig wordt geconfigureerd.

Stap 4

Start de Raspberry Pi op met SD-kaart.

Na het opstarten verschijnt een op Debian gebaseerd Linux-bureaublad op de monitor.

Opmerking: Soms wordt opgemerkt dat na het opstarten van de Raspberry Pi sommige toetsenbordtoetsen niet werken. Om ze te laten werken, opent u het file /etc/default/keyboard en stel XKBLAYOUT=”us” in en start de Raspberry Pi opnieuw op.

Schakel SPI in op Raspberry Pi

Het SPI-stuurprogramma in de kernel communiceert via SPI met X-NUCLEO-NFC05A1. Het is belangrijk om te controleren of SPI al is ingeschakeld in de Raspberry Pi OS/kernel-configuratie.
Controleer of /dev/spidev0.0 zichtbaar is in de Raspberry Pi-omgeving. Als het niet zichtbaar is, schakel dan de SPI-interface in met behulp van het hulpprogramma “raspi-config” door de onderstaande stappen te volgen.

Stap 1

Open een nieuwe terminal op de Raspberry Pi en voer het commando “raspi-config” uit als root:

sudo raspi-config

Deze stap opent een grafische interface.

Stap 2

Selecteer in de grafische interface de optie genaamd “Interfacing Options”.

Stap 3

In deze stap worden verschillende opties vermeld.
Selecteer de optie met de naam "SPI".
Er verschijnt een nieuw venster met de volgende tekst:
“Wilt u dat de SPI-interface wordt ingeschakeld?”

Stap 4

Selecteer in dit venster om SPI in te schakelen.

Stap 5

Herstart Raspberry Pi.
Met de bovenstaande stappen wordt de SPI-interface in de Raspberry Pi-omgeving ingeschakeld na een herstart.

Bouw van RFAL-bibliotheek en applicatie

De RFAL-demo van Linux wordt geleverd in een archief. Laten we aannemen dat de naam is:
ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz.
Volg de onderstaande stappen om de RFAL-bibliotheek en -applicatie op Raspberry Pi te bouwen:

Stap 1

Pak het pakket uit op Raspberry Pi met behulp van de onderstaande opdracht vanuit de thuismap:

tar -xJvf ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz

Stap 2

Als dit nog niet eerder is gedaan, installeer dan cmake met behulp van het onderstaande commando:

apt-get install cmake

De RFAL-bibliotheek en het applicatiebouwsysteem zijn gebaseerd op cmake. Om deze reden is het vereist om cmake te installeren voor het compileren van het pakket.

Stap 3

Om de RFAL-bibliotheek en -applicatie te bouwen, gaat u naar de map “build”:

cd ST25R3911B_v2.8.0_Linux_demo_v1.0/Linux_demo/build

en voer vanaf daar de onderstaande opdracht uit:

maak ..

In het bovenstaande commando geeft “..” aan dat CMakeLists.txt op het hoogste niveau bestaat in de bovenliggende map, dwz
ST25R3911B_v2.8.0_Linux_demo_v1.0.

Met het commando cmake wordt het makefile die wordt gebruikt in de volgende stap om de bibliotheek en applicatie te bouwen.

Stap 4

Voer de opdracht “make” uit om de RFAL-bibliotheek en -applicatie te bouwen:

maken

Met het commando “make” wordt eerst de RFAL-bibliotheek gebouwd en vervolgens de applicatie erbovenop.

Hoe de applicatie uit te voeren

Succesvolle opbouw genereert een uitvoerbaar bestand met de naam “nfc_demo_st25r3911b” op de volgende locatie:
/build/applicaties.

Standaard moet de applicatie worden uitgevoerd met rootrechten vanaf het pad: ST25R3911B_v2.8.0_Linux_demo_v1.0/linux_demo/build:

sudo ./demo/nfc_demo_st25r3911b

De applicatie begint te peilen naar NFC tags en mobiele telefoons. Het toont de gevonden apparaten met hun UID, zoals weergegeven in Figuur 7.

Figuur 7. Weergave van gevonden apparaten

Figuur 7 Weergave van gevonden apparaten

Om de toepassing te beëindigen, drukt u op Ctrl + C.

Revisiegeschiedenis

Tabel 1. Document revisiegeschiedenis

Tabel 1 Documentrevisiegeschiedenis

Lijst met tabellen

Tabel 1. Revisiegeschiedenis van documenten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Lijst met figuren

Figuur 1. RFAL-bibliotheek op Linux-platform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Figuur 2. RFAL-softwarearchitectuur op Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Figuur 3. Reparatie van hardwareverbinding. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Figuur 4. Positie van jumpers A5, A4, A3, A2, A1 en A0 op de adapterkaart. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Figuur 5. Hardware-installatie bovenaan view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figuur 6. Hardware-installatiekant view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figuur 7. Weergave van gevonden apparaten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

BELANGRIJKE MEDEDELING – LEES ZORGVULDIG

STMicroelectronics NV en haar dochterondernemingen ("ST") behouden zich het recht voor om op elk moment zonder kennisgeving wijzigingen, correcties, verbeteringen, aanpassingen en aanpassingen aan te brengen in ST-producten en/of in dit document. Kopers dienen de laatste relevante informatie over ST-producten te verkrijgen voordat ze een bestelling plaatsen. ST-producten worden verkocht overeenkomstig de verkoopvoorwaarden van ST die van kracht zijn op het moment van orderbevestiging.

Kopers zijn als enige verantwoordelijk voor de keuze, selectie en het gebruik van ST-producten. ST aanvaardt geen aansprakelijkheid voor hulp bij de toepassing of het ontwerp van de producten van kopers.

ST verleent hierbij geen enkele licentie, expliciet of impliciet, op enig intellectueel eigendomsrecht.

Bij wederverkoop van ST-producten met bepalingen die afwijken van de hierin vermelde informatie, vervalt de garantie die ST op dat product verleent.

ST en het ST-logo zijn handelsmerken van ST. Voor aanvullende informatie over ST-handelsmerken, zie www.st.com/trademarksAlle andere product- of servicenamen zijn eigendom van hun respectievelijke eigenaren.

De informatie in dit document vervangt de informatie die eerder in eerdere versies van dit document is verstrekt.

© 2023 STMicroelectronics – Alle rechten voorbehouden

Documenten / Bronnen

STMicroelectronics UM2375 Linux-stuurprogramma [pdf] Gebruikershandleiding
UM2375 Linux-stuurprogramma, UM2375, Linux-stuurprogramma, stuurprogramma

Referenties

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *