STMicroelectronics UM2375 Linux upravljački program - korisnički priručnik

STMicroelectronics Logo

Linux® drajver za ST25R3911B i ST25R3912/14/15 NFC frontend visokih performansi

Uvod

STSW-ST25R009 Linux® drajver omogućava Raspberry Pi 4 da radi sa X-NUCLEO-NFC05A1, koji sadrži ST25R3911B univerzalni NFC uređaj visokih performansi.

Ovaj paket prenosi sloj RF apstrakcije (RFAL) na Raspberry Pi 4 Linux platformu za rad sa X-NUCLEO-NFC05A1 firmverom. Paket pruža kaoampaplikacija koja otkriva različite vrste NFC-a tags i mobilni telefoni koji podržavaju P2P. RFAL je ST standardni drajver za ST25R NFC/RFID čitače IC-ove ST25R3911B, ST25R3912, ST25R3913, ST25R3914 i ST25R3915. Koristi ga, na primjer, ST25R3911B-DISCO firmver (STSW-ST25R002) i X-NUCLEONFC05A1 firmver (X-CUBE-NFC5).

STSW-ST25R009 podržava sve ST25R3911B protokole nižeg sloja, kao i neke protokole višeg sloja za komunikaciju. RFAL je napisan na prenosiv način, tako da može raditi na širokom spektru uređaja baziranih na Linux®. Ovaj dokument opisuje kako se biblioteka RFAL može koristiti na standardnom Linux sistemu (u ovom slučaju Raspberry Pi 4) za NFC/RF komunikaciju. Kod je vrlo prenosiv i radi s manjim promjenama na bilo kojoj Linux platformi.

Slika 1. RFAL biblioteka na Linux platformi

Slika 1 RFAL biblioteka na Linux platformi

Gotovoview

Karakteristike
  • Kompletan Linux upravljački program za korisnički prostor (RF apstrakcijski sloj) za izgradnju aplikacija koje podržavaju NFC koristeći ST25R3911B/ST25R391x NFC frontende visokih performansi sa izlaznom snagom do 1.4 W
  • Linux host komunikacija sa ST25R3911B/ST25R391x koristeći SPI interfejs
  • Potpuna RF/NFC apstrakcija (RFAL) za sve glavne tehnologije i protokole višeg sloja:
    • NFC-A (ISO14443-A)
    • NFC-B (ISO14443-B)
    • NFC-F (FeliCa™)
    • NFC-V (ISO15693)
    • P2P (ISO18092)
    • ISO-DEP (ISO protokol za razmjenu podataka, ISO14443-4)
    • NFC-DEP (NFC protokol za razmjenu podataka, ISO18092)
    • Vlasničke tehnologije (Kovio, B', iClass, Calypso®,…)
  • Sampimplementacija dostupna uz X-NUCLEO-NFC05A1 ploču za proširenje, priključenu na Raspberry Pi 4
  • Sample aplikacija za otkrivanje nekoliko NFC tag vrste i mobilnih telefona koji podržavaju P2P
  • Besplatni uslovi licence prilagođeni korisnicima
Arhitektura softvera

Slika 2 prikazuje detalje softverske arhitekture RFAL biblioteke na Linux® platformi.

RFAL se lako prenosi na druge platforme prilagođavanjem takozvane platforme files.

Zaglavlje file rfal_platform.h sadrži makro definicije, koje mora obezbijediti i implementirati vlasnik platforme. Osim toga, pruža specifične postavke za platformu kao što su GPIO dodjela, sistemski resursi, zaključavanja i IRQ-ovi, koji su potrebni za ispravan rad RFAL-a.

Ova demonstracija implementira funkcije platforme i pruža port RFAL biblioteke u korisnički prostor Linux®. Zajednička biblioteka file generira se, što koristi demo aplikacija za prikaz funkcionalnosti koje pruža RFAL sloj.

Linux® host koristi sysfs sučelje dostupno iz Linux® korisničkog prostora da omogući SPI komunikaciju sa ST25R3911B uređajem. Unutar Linux® kernela, SPI sysfs interfejs koristi Linux® kernel drajver spidev za slanje/primanje SPI okvira na/sa ST25R3911B.

Za rukovanje prekidnom linijom ST25R3911B, drajver koristi libgpiod da bi dobio obavijest o promjenama na ovoj liniji.

Slika 2. Arhitektura RFAL softvera na Linuxu

Slika 2 RFAL softverska arhitektura na Linuxu

Podešavanje hardvera

Korišćena platforma

Raspberry Pi 4 ploča sa Raspberry Pi OS-om se koristi kao Linux platforma za izgradnju RFAL biblioteke i interakciju sa ST25R3911B preko SPI-a.
ST25R3911B omogućava aplikaciji na Linux platformi da otkrije i komunicira sa NFC uređajima.

Hardverski zahtjevi
  • Raspberry Pi 4
  • 8 GB mikro SD kartica za pokretanje Raspberry Pi OS
  • Čitač SD kartica
  • Premosna ploča za povezivanje X-NUCLEO-NFC05A1 sa Raspberry Pi Arduino adapterom za Raspberry Pi, kataloški broj ARPI600.
  • X-NUCLEO-NFC05A1. Pogledajte najnovije Raspberry Pi OS zahtjeve.

Hardverske veze

Adapterska ploča ARPI600 Raspberry Pi na Arduino se koristi za povezivanje X-NUCLEO-NFC05A1 sa Raspberry Pi. Potrebno je modificirati kratkospojnike adapterske ploče kako bi se spojila sa X-NUCLEO-NFC05A1.

Oprez: ARPI600 neispravno napaja 5 V na Arduino IOREF pin. Direktno pričvršćivanje X-NUCLEO-NFC05A1 vraća 5 V na neke pinove, što može oštetiti Raspberry Pi ploču. Postoje izvještaji posebno o tome da je Raspberry Pi 4B+ zapravo uništen. Da biste izbjegli ovu situaciju, prilagodite ili ARPI600 (prilično teška operacija) ili X-NUCLEO-NFC05A1 (lakši rad).

Najlakše rešenje je da isečete CN6.2 (IOREF) pin na X-NUCLEO-NFC05A1 kao što je prikazano na slici 3.

Rezanje ove igle ne utiče na rad u kombinaciji sa Nucleo pločama (NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB, itd.).

Slika 3. Ispravka hardverske veze

Slika 3 Ispravka hardverske veze

Postavljanje kratkospojnika

Džamperi za A5, A4, A3, A2, A1 i A0 prikazani na slici 4 moraju se promijeniti u P23, P22, P21 i CE1. Sa ovim postavkama kratkospojnika, Raspberryjev GPIO pin broj 7 koristi se kao prekidna linija za X-NUCLEO-NFC05A1.

Slika 4. Položaj džampera A5, A4, A3, A2, A1 i A0 na adapterskoj ploči

Slika 4 Položaj kratkospojnika

Trenutno, ovaj RFAL bibliotečki port koristi pin GPIO7 kao prekidnu liniju, prema postavkama kratkospojnika. Ako postoji zahtjev za promjenu linije prekida iz GPIO7 u drugi GPIO, specifični kod za platformu (u file pltf_gpio.h) treba modificirati kako bi se promijenila definicija makroa “ST25R_INT_PIN” sa 7 na novi GPIO pin, koji će se koristiti kao linija prekida.

Sa gornjim postavkama kratkospojnika, adapterska ploča se može koristiti za povezivanje X-NUCLEO-NFC05A1 sa Raspberry Pi pločom kao što je prikazano na slici 5.

Slika 5. Vrh podešavanja hardvera view

Slika 5 Postavljanje hardvera na vrhu view

Slika 6. Strana za podešavanje hardvera view

Slika 6 Strana za podešavanje hardvera view

Podešavanje Linux okruženja

Dizanje Raspberry Pi-ja

Da biste podesili Linux okruženje, prvi korak je da instalirate i pokrenete Raspberry Pi 4 sa Raspberry Pi OS-om kao što je objašnjeno u nastavku:

Korak 1

Preuzmite najnoviju Raspberry Pi OS sliku sa linka:

Odaberite Raspberry Pi OS sa desktopom. Za testove u nastavku korištena je sljedeća verzija: septembar 2022. (2022-09-22-raspios-bullseye-armhf.img.xz).

Korak 2

Raspakujte Raspberry Pi sliku i zapišite je na SD karticu prateći uputstva dostupna u odeljku pod nazivom „Pisanje slike na SD karticu“.

Korak 3

Povežite hardver:

  • Povežite Raspberry Pi sa monitorom pomoću standardnog HDMI kabla.
  • Povežite miš i tastaturu na Raspberry Pi USB portove.

Takođe je moguće raditi sa Raspberry Pi koristeći ssh. U tom slučaju nije potrebno povezati monitor, tastaturu i miš sa Raspberry Pi. Jedini uslov je da imate računar sa ssh-om unutar iste mreže kao Raspberry Pi i u skladu sa tim konfigurišete IP adresu.

Korak 4

Pokrenite Raspberry Pi sa SD karticom.

Nakon pokretanja, na monitoru se pojavljuje Linux desktop bazirana na Debianu.

Napomena: Ponekad se primećuje da nakon pokretanja Raspberry Pi-ja neki tasteri na tastaturi ne rade. Da biste ih natjerali da rade, otvorite file /etc/default/keyboard i postavite XKBLAYOUT=”us” i ponovo pokrenite Raspberry Pi.

Omogućite SPI na Raspberry Pi

SPI drajver unutar kernela komunicira sa X-NUCLEO-NFC05A1 preko SPI. Važno je provjeriti da li je SPI već omogućen u Raspberry Pi OS/kernel konfiguraciji.
Provjerite da li je /dev/spidev0.0 vidljiv u Raspberry Pi okruženju. Ako nije vidljiv, omogućite SPI sučelje pomoću uslužnog programa “raspi-config” slijedeći korake opisane u nastavku.

Korak 1

Otvorite novi terminal na Raspberry Pi i pokrenite naredbu “raspi-config” kao root:

sudo raspi-config

Ovaj korak otvara grafički interfejs.

Korak 2

Odaberite u grafičkom sučelju opciju pod nazivom “Opcije sučelja”.

Korak 3

Ovaj korak navodi razne opcije.
Odaberite opciju pod nazivom “SPI”.
Pojavljuje se novi prozor sa sljedećim tekstom:
"Želite li da SPI interfejs bude omogućen?"

Korak 4

Odaberite u ovom prozoru da biste omogućili SPI.

Korak 5

Ponovo pokrenite Raspberry Pi.
Gore navedeni koraci će omogućiti SPI interfejs u Raspberry Pi okruženju nakon ponovnog pokretanja.

Izrada RFAL biblioteke i aplikacije

RFAL demo Linux-a nalazi se u arhivi. Pretpostavimo da je njegovo ime:
ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz.
Da biste izgradili RFAL biblioteku i aplikaciju na Raspberry Pi, slijedite dolje navedene korake:

Korak 1

Raspakirajte paket na Raspberry Pi koristeći donju naredbu iz kućnog direktorija:

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

Korak 2

Ako to niste uradili ranije, instalirajte cmake, koristeći donju naredbu:

apt-get install cmake

RFAL biblioteka i sistem izgradnje aplikacija baziran je na cmake-u, zbog čega je potrebno instalirati cmake za kompilaciju paketa.

Korak 3

Da biste izgradili RFAL biblioteku i aplikaciju, idite na direktorij "build":

cd ST25R3911B_v2.8.0_Linux_demo_v1.0/Linux_demo/build

i odatle pokrenite naredbu ispod:

cmake ..

U gornjoj naredbi “..” označava da CMakeLists.txt najvišeg nivoa postoji u nadređenom direktoriju, tj.
ST25R3911B_v2.8.0_Linux_demo_v1.0.

Komanda cmake kreira makefile koji se koristi u sljedećem koraku za izgradnju biblioteke i aplikacije.

Korak 4

Pokrenite naredbu “make” da napravite RFAL biblioteku i aplikaciju:

napraviti

Komanda “make” prvo gradi RFAL biblioteku, a zatim gradi aplikaciju na njoj.

Kako pokrenuti aplikaciju

Uspješna nadogradnja generiše izvršnu datoteku pod nazivom “nfc_demo_st25r3911b” na sljedećoj lokaciji:
/build/applications.

Podrazumevano, aplikacija se mora pokrenuti s root pravima sa putanje: ST25R3911B_v2.8.0_Linux_demo_v1.0/linux_demo/build:

sudo ./demo/nfc_demo_st25r3911b

Aplikacija počinje anketirati za NFC tags i mobilnih telefona. Prikazuje pronađene uređaje sa njihovim UID-om kao što je prikazano na slici 7.

Slika 7. Prikaz pronađenih uređaja

Slika 7 Prikaz pronađenih uređaja

Da biste prekinuli aplikaciju pritisnite Ctrl + C.

Istorija revizija

Tabela 1. Istorija revizije dokumenta

Tabela 1 Istorija revizije dokumenta

Lista tabela

Tabela 1. Istorija revizija dokumenta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Spisak brojki

Slika 1. RFAL biblioteka na Linux platformi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Slika 2. Arhitektura RFAL softvera na Linuxu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Slika 3. Popravka hardverske veze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Slika 4. Položaj kratkospojnika A5, A4, A3, A2, A1 i A0 na adapterskoj ploči. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Slika 5. Vrh podešavanja hardvera view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Slika 6. Strana za podešavanje hardvera view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Slika 7. Prikaz pronađenih uređaja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

VAŽNA NAPOMENA – PAŽLJIVO PROČITAJTE

STMicroelectronics NV i njegove podružnice (“ST”) zadržavaju pravo na izmjene, ispravke, poboljšanja, modifikacije i poboljšanja ST proizvoda i/ili ovog dokumenta u bilo koje vrijeme bez prethodne najave. Kupci bi trebali dobiti najnovije relevantne informacije o ST proizvodima prije nego što daju narudžbu. ST proizvodi se prodaju u skladu sa ST-ovim odredbama i uslovima prodaje koji su na snazi ​​u trenutku potvrde narudžbe.

Kupci su isključivo odgovorni za izbor, odabir i korištenje ST proizvoda, a ST ne preuzima nikakvu odgovornost za pomoć u primjeni ili dizajn proizvoda kupaca.

ST ovdje ne daje nikakvu licencu, izričitu ili impliciranu, za bilo koje pravo intelektualne svojine.

Preprodaja ST proizvoda sa odredbama koje se razlikuju od informacija navedenih ovde poništava svaku garanciju koju ST daje za takav proizvod.

ST i ST logo su zaštitni znakovi ST. Za dodatne informacije o ST zaštitnim znakovima, pogledajte www.st.com/trademarks. Svi ostali nazivi proizvoda ili usluga vlasništvo su njihovih vlasnika.

Informacije u ovom dokumentu zamjenjuju i zamjenjuju informacije koje su prethodno date u prethodnim verzijama ovog dokumenta.

© 2023 STMicroelectronics – Sva prava zadržana

Dokumenti / Resursi

STMicroelectronics UM2375 Linux drajver [pdf] Korisnički priručnik
UM2375 Linux drajver, UM2375, Linux drajver, drajver

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *