STMicroelectronics UM2375 Linux Driver Manual User

Linux® driver para sa ST25R3911B at ST25R3912/14/15 na may mataas na pagganap na mga frontend ng NFC
Panimula
Ang driver ng STSW-ST25R009 Linux® ay nagbibigay-daan sa Raspberry Pi 4 na gumana gamit ang X-NUCLEO-NFC05A1, na naglalaman ng ST25R3911B na may mataas na pagganap na NFC universal device.
Inilalagay ng package na ito ang RF abstraction layer (RFAL) sa isang Raspberry Pi 4 Linux platform para gumana sa X-NUCLEO-NFC05A1 firmware. Ang pakete ay nagbibigay bilangampAng application na nakakatuklas ng iba't ibang uri ng NFC tags at mga mobile phone na sumusuporta sa P2P. Ang RFAL ay ang ST standard driver para sa ST25R NFC/RFID Reader ICs ST25R3911B, ST25R3912, ST25R3913, ST25R3914 at ST25R3915. Ito ay ginagamit, halimbawa, ng ST25R3911B-DISCO firmware (STSW-ST25R002) at ng X-NUCLEONFC05A1 firmware (X-CUBE-NFC5).
Sinusuportahan ng STSW-ST25R009 ang lahat ng ST25R3911B lower-layer protocol at ilang mas mataas na layer na protocol para sa komunikasyon. Ang RFAL ay nakasulat sa isang portable na paraan, kaya maaari itong tumakbo sa isang malawak na hanay ng mga device batay sa Linux®. Inilalarawan ng dokumentong ito kung paano magagamit ang library ng RFAL sa isang karaniwang sistema ng Linux (sa kasong ito ang Raspberry Pi 4) para sa komunikasyon ng NFC/RF. Ang code ay lubos na portable at gumagana sa mga maliliit na pagbabago sa anumang platform ng Linux.
Figure 1. RFAL library sa Linux platform

Tapos naview
Mga tampok
- Kumpletuhin ang Linux user space driver (RF abstraction layer) para bumuo ng mga NFC enabled na application gamit ang ST25R3911B/ST25R391x high performance na mga frontend ng NFC na may hanggang 1.4 W output power
- Linux host communication sa ST25R3911B/ST25R391x gamit ang SPI interface
- Kumpletuhin ang RF/NFC abstraction (RFAL) para sa lahat ng pangunahing teknolohiya at mas mataas na layer protocol:
- NFC-A (ISO14443-A)
- NFC-B (ISO14443-B)
- NFC-F (FeliCa™)
- NFC-V (ISO15693)
- P2P (ISO18092)
- ISO-DEP (ISO data exchange protocol, ISO14443-4)
- NFC-DEP (NFC data exchange protocol, ISO18092)
- Mga teknolohiyang pagmamay-ari (Kovio, B', iClass, Calypso®, …)
- Sampmagagamit ang pagpapatupad sa X-NUCLEO-NFC05A1 expansion board, na nakasaksak sa isang Raspberry Pi 4
- Sampang application upang makita ang ilang NFC tag mga uri at mobile phone na sumusuporta sa P2P
- Libreng user-friendly na mga tuntunin sa lisensya
Arkitektura ng software
Ipinapakita ng Figure 2 ang mga detalye ng software architecture ng RFAL library sa isang Linux® platform.
Ang RFAL ay madaling madala sa ibang mga platform sa pamamagitan ng pag-angkop sa tinatawag na platform files.
Ang header file rfal_platform.h naglalaman ng mga macro definition, na kailangang ibigay at ipatupad ng may-ari ng platform. Higit pa rito, nagbibigay ito ng mga setting na partikular sa platform tulad ng pagtatalaga ng GPIO, mga mapagkukunan ng system, mga kandado at IRQ, na kinakailangan para sa tamang operasyon ng RFAL.
Ang demonstration na ito ay nagpapatupad ng mga function ng platform at nagbibigay ng port ng RFAL library sa user space ng Linux®. Isang shared library file ay nabuo, na ginagamit ng demo application upang ipakita ang mga functionality na ibinigay ng RFAL layer.
Gumagamit ang Linux® host ng sysfs interface na available mula sa Linux® user space upang paganahin ang komunikasyon ng SPI sa ST25R3911B device. Sa loob ng Linux® kernel ang SPI sysfs interface ay gumagamit ng Linux® kernel driver spidev upang magpadala/makatanggap ng mga SPI frame papunta/mula sa ST25R3911B.
Para sa paghawak ng interrupt na linya ng ST25R3911B, ginagamit ng driver ang libgpiod upang maabisuhan ng mga pagbabago sa linyang ito.
Figure 2. RFAL software architecture sa Linux

Pag-setup ng hardware
Ginagamit ang plataporma
Ang Raspberry Pi 4 board na may Raspberry Pi OS ay ginagamit bilang Linux platform para bumuo ng RFAL library at makipag-ugnayan sa ST25R3911B sa SPI.
Ang ST25R3911B ay nagbibigay-daan sa isang application sa Linux platform na maka-detect at makipag-ugnayan sa mga NFC device.
Mga kinakailangan sa hardware
- Raspberry Pi 4
- 8 GBytes micro SD card para i-boot ang Raspberry Pi OS
- SD card reader
- Bridge board para ikonekta ang X-NUCLEO-NFC05A1 sa Raspberry Pi Arduino Adapter para sa Raspberry Pi, part number ARPI600.
- X-NUCLEO-NFC05A1. Sumangguni sa pinakabagong mga kinakailangan sa Raspberry Pi OS.
Mga koneksyon ng Hardware
Ang ARPI600 Raspberry Pi sa Arduino adapter board ay ginagamit upang ikonekta ang X-NUCLEO-NFC05A1 sa Raspberry Pi. Kinakailangang baguhin ang mga jumper ng adapter board upang ikonekta ito sa X-NUCLEO-NFC05A1.
Pag-iingat: Ang ARPI600 ay hindi wastong nagbibigay ng 5 V sa Arduino IOREF pin. Direktang ikinakabit ang X-NUCLEO-NFC05A1 na nagpapabalik ng 5 V sa ilang pin, maaari itong makapinsala sa Raspberry Pi board. Mayroong mga ulat lalo na ng Raspberry Pi 4B+ na talagang sinisira. Upang maiwasan ang sitwasyong ito, iakma ang alinman sa ARPI600 (isang medyo mahirap na operasyon) o ang X-NUCLEO-NFC05A1 (mas madaling operasyon).
Ang pinakamadaling ayusin ay putulin ang CN6.2 (IOREF) pin sa X-NUCLEO-NFC05A1 gaya ng ipinapakita sa Figure 3.
Ang pagputol sa pin na ito ay hindi makakaapekto sa operasyon kasabay ng mga Nucleo boards (NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB, atbp.).
Figure 3. Pag-aayos ng koneksyon sa hardware

Setting ng jumper
Ang mga jumper para sa A5, A4, A3, A2, A1 at A0 na ipinapakita sa Figure 4 ay kailangang baguhin sa P23, P22, P21 at CE1. Gamit ang setting ng jumper na ito, ang GPIO pin number 7 ng Raspberry ay ginagamit bilang interrupt line para sa X-NUCLEO-NFC05A1.
Figure 4. Posisyon ng mga jumper A5, A4, A3, A2, A1 at A0 sa adapter board

Sa kasalukuyan, ginagamit ng RFAL library port na ito ang pin GPIO7 bilang interrupt line, ayon sa mga setting ng jumper. Kung mayroong kinakailangan upang baguhin ang interrupt na linya mula sa GPIO7 patungo sa ibang GPIO, ang platform na partikular na code (sa file pltf_gpio.h) ay kailangang baguhin upang baguhin ang kahulugan ng macro na "ST25R_INT_PIN" mula 7 patungo sa bagong GPIO pin, upang magamit bilang interrupt na linya.
Sa mga setting ng jumper sa itaas, maaaring gamitin ang adapter board para ikonekta ang X-NUCLEO-NFC05A1 sa Raspberry Pi board tulad ng ipinapakita sa Figure 5.
Figure 5. Top setup ng hardware view

Figure 6. Gilid ng pag-setup ng hardware view

Pag-setup ng kapaligiran ng Linux
Pag-boot ng Raspberry Pi
Upang i-setup ang kapaligiran ng Linux, ang unang hakbang ay i-install at i-boot ang Raspberry Pi 4 gamit ang Raspberry Pi OS tulad ng ipinaliwanag sa ibaba:
Hakbang 1
I-download ang pinakabagong larawan ng Raspberry Pi OS mula sa link:
Piliin ang Raspberry Pi OS na may desktop. Para sa mga pagsubok sa ibaba, ginamit ang sumusunod na bersyon: Setyembre 2022 (2022-09-22-raspios-bullseye-armhf.img.xz).
Hakbang 2
I-unzip ang larawan ng Raspberry Pi at isulat ito sa SD card sa pamamagitan ng pagsunod sa mga tagubiling available sa seksyong pinangalanang "Pagsusulat ng larawan sa SD card".
Hakbang 3
Ikonekta ang hardware:
- Ikonekta ang Raspberry Pi sa isang monitor gamit ang isang karaniwang HDMI cable.
- Ikonekta ang mouse at keyboard sa mga USB port ng Raspberry Pi.
Posible rin na magtrabaho sa Raspberry Pi gamit ang ssh. Sa kasong iyon, hindi kinakailangan na ikonekta ang monitor, keyboard at mouse sa Raspberry Pi. Ang tanging kinakailangan ay ang pagkakaroon ng PC na may ssh sa loob ng parehong network ng Raspberry Pi at i-configure ang IP address nang naaayon.
Hakbang 4
I-boot ang Raspberry Pi gamit ang SD card.
Pagkatapos mag-boot, lumilitaw sa monitor ang isang Debian based Linux desktop.
Tandaan: Minsan, napapansin na pagkatapos ng pag-boot ng Raspberry Pi, ang ilang mga keyboard key ay hindi gumagana. Para gumana ang mga ito, buksan ang file /etc/default/keyboard at itakda ang XKBLAYOUT=”us” at i-reboot ang Raspberry Pi.
Paganahin ang SPI sa Raspberry Pi
Ang driver ng SPI sa loob ng kernel ay nakikipag-ugnayan sa X-NUCLEO-NFC05A1 sa pamamagitan ng SPI. Mahalagang suriin kung naka-enable na ang SPI sa configuration ng Raspberry Pi OS/kernel.
Suriin kung ang /dev/spidev0.0 ay nakikita sa kapaligiran ng Raspberry Pi. Kung hindi ito nakikita, paganahin ang interface ng SPI gamit ang utility na "raspi-config" sa pamamagitan ng pagsunod sa mga hakbang na inilarawan sa ibaba.
Hakbang 1
Magbukas ng bagong terminal sa Raspberry Pi at patakbuhin ang command na "raspi-config" bilang root:
sudo raspi-config
Ang hakbang na ito ay nagbubukas ng isang graphical na interface.
Hakbang 2
Piliin sa graphical na interface ang opsyon na pinangalanang "Interfacing Options".
Hakbang 3
Ang hakbang na ito ay naglilista ng iba't ibang mga opsyon.
Piliin ang opsyon na pinangalanang "SPI".
May lalabas na bagong window na may sumusunod na text:
"Gusto mo bang paganahin ang interface ng SPI?"
Hakbang 4
Pumili sa window na ito upang paganahin ang SPI.
Hakbang 5
I-reboot ang Raspberry Pi.
Ang mga hakbang sa itaas ay magbibigay-daan sa interface ng SPI sa kapaligiran ng Raspberry Pi pagkatapos ng pag-reboot.
Bumuo ng RFAL library at application
Ang RFAL demo ng Linux ay ibinigay sa isang archive. Ipagpalagay natin na ang pangalan nito ay:
ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz.
Upang bumuo ng RFAL library at application sa Raspberry Pi, sundin ang mga hakbang sa ibaba:
Hakbang 1
I-unzip ang package sa Raspberry Pi gamit ang command sa ibaba mula sa home directory:
tar -xJvf ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz
Hakbang 2
Kung hindi pa nagawa noon, i-install ang cmake, gamit ang command sa ibaba:
apt-get install cmake
Ang RFAL library at application build system ay batay sa cmake, sa kadahilanang ito ay kinakailangan na mag-install ng cmake para sa compilation ng package.
Hakbang 3
Upang buuin ang RFAL library at application, pumunta sa "build" na direktoryo:
cd ST25R3911B_v2.8.0_Linux_demo_v1.0/Linux_demo/build
at patakbuhin ang utos sa ibaba mula doon:
cmake..
Sa command sa itaas na ".." ay nagpapahiwatig na ang pinakamataas na antas ng CMakeLists.txt ay umiiral sa parent directory, ibig sabihin
ST25R3911B_v2.8.0_Linux_demo_v1.0.
Ang utos ng cmake ay lumilikha ng makefile na ginagamit sa susunod na hakbang sa pagbuo ng library at application.
Hakbang 4
Patakbuhin ang "gumawa" na utos upang bumuo ng RFAL library at application:
gumawa
Ang "make" command ay unang bubuo ng RFAL library at pagkatapos ay bubuo ng application sa ibabaw nito.
Paano patakbuhin ang application
Ang matagumpay na build-up ay bumubuo ng isang executable na pinangalanang "nfc_demo_st25r3911b" sa sumusunod na lokasyon:
/build/applications.
Bilang default, kailangang patakbuhin ang application na may mga karapatan sa ugat mula sa landas: ST25R3911B_v2.8.0_Linux_demo_v1.0/linux_demo/build:
sudo ./demo/nfc_demo_st25r3911b
Nagsisimulang mag-poll ang application para sa NFC tags at mga mobile phone. Ipinapakita nito ang mga nahanap na device gamit ang kanilang UID tulad ng ipinapakita sa Figure 7.
Figure 7. Pagpapakita ng mga nahanap na device

Upang wakasan ang application pindutin ang Ctrl + C.
Kasaysayan ng rebisyon
Talahanayan 1. Kasaysayan ng rebisyon ng dokumento

Listahan ng mga talahanayan
Talahanayan 1. Kasaysayan ng rebisyon ng dokumento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Listahan ng mga figure
Figure 1. RFAL library sa Linux platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Figure 2. RFAL software architecture sa Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Figure 3. Pag-aayos ng koneksyon sa hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Figure 4. Posisyon ng mga jumper A5, A4, A3, A2, A1 at A0 sa adapter board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Figure 5. Top setup ng hardware view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figure 6. Gilid ng pag-setup ng hardware view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figure 7. Pagpapakita ng mga nahanap na device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
MAHALAGANG PAUNAWA – MAGBASA NG MABUTI
Inilalaan ng STMicroelectronics NV at ng mga subsidiary nito (“ST”) ang karapatang gumawa ng mga pagbabago, pagwawasto, pagpapahusay, pagbabago, at pagpapahusay sa mga produkto ng ST at/o sa dokumentong ito anumang oras nang walang abiso. Dapat makuha ng mga mamimili ang pinakabagong may-katuturang impormasyon sa mga produkto ng ST bago maglagay ng mga order. Ang mga produkto ng ST ay ibinebenta alinsunod sa mga tuntunin at kundisyon ng pagbebenta ng ST sa oras ng pag-acknowledge ng order.
Ang mga mamimili ay tanging responsable para sa pagpili, pagpili, at paggamit ng mga produkto ng ST at walang pananagutan ang ST para sa tulong sa aplikasyon o disenyo ng mga produkto ng mga mamimili.
Walang lisensya, hayag o ipinahiwatig, sa anumang karapatan sa intelektwal na ari-arian ang ipinagkaloob ng ST dito.
Ang muling pagbebenta ng mga produktong ST na may mga probisyon na iba sa impormasyong nakasaad dito ay magpapawalang-bisa sa anumang warranty na ibinigay ng ST para sa naturang produkto.
Ang ST at ang ST logo ay mga trademark ng ST. Para sa karagdagang impormasyon tungkol sa mga trademark ng ST, sumangguni sa www.st.com/trademarks. Ang lahat ng iba pang pangalan ng produkto o serbisyo ay pag-aari ng kani-kanilang mga may-ari.
Ang impormasyon sa dokumentong ito ay pinapalitan at pinapalitan ang impormasyong dating ibinigay sa anumang mga naunang bersyon ng dokumentong ito.
© 2023 STMicroelectronics – Nakalaan ang lahat ng karapatan
Mga Dokumento / Mga Mapagkukunan
![]() |
STMicroelectronics UM2375 Linux Driver [pdf] User Manual UM2375 Linux Driver, UM2375, Linux Driver, Driver |




