
Instrukcja obsługi sterownika STMicroelectronics UM2375 dla systemu Linux

Sterownik Linux® dla wysokowydajnych interfejsów NFC ST25R3911B i ST25R3912/14/15
Wstęp
Sterownik STSW-ST25R009 Linux® umożliwia współpracę Raspberry Pi 4 z X-NUCLEO-NFC05A1, który zawiera uniwersalne urządzenie NFC o wysokiej wydajności ST25R3911B.
Ten pakiet przenosi warstwę abstrakcji RF (RFAL) na platformę Linux Raspberry Pi 4 w celu współpracy z oprogramowaniem sprzętowym X-NUCLEO-NFC05A1. Pakiet zapewnia jakoampaplikacja wykrywająca różne typy NFC tags i telefony komórkowe obsługujące technologię P2P. RFAL to standardowy sterownik ST dla układów scalonych czytnika NFC/RFID ST25R ST25R3911B, ST25R3912, ST25R3913, ST25R3914 i ST25R3915. Jest używany na przykład przez oprogramowanie ST25R3911B-DISCO (STSW-ST25R002) i oprogramowanie X-NUCLEONFC05A1 (X-CUBE-NFC5).
STSW-ST25R009 obsługuje wszystkie protokoły niższej warstwy ST25R3911B, a także niektóre protokoły wyższej warstwy do komunikacji. RFAL jest napisany w sposób przenośny, dzięki czemu może działać na szerokiej gamie urządzeń opartych na systemie Linux®. W tym dokumencie opisano, w jaki sposób biblioteka RFAL może być używana w standardowym systemie Linux (w tym przypadku Raspberry Pi 4) do komunikacji NFC/RF. Kod jest wysoce przenośny i działa z niewielkimi zmianami na dowolnej platformie Linux.
Rysunek 1. Biblioteka RFAL na platformie Linux

Nadview
Cechy
- Kompletny sterownik przestrzeni użytkownika systemu Linux (warstwa abstrakcji RF) do tworzenia aplikacji obsługujących NFC przy użyciu wysokowydajnych frontendów NFC ST25R3911B/ST25R391x i mocy wyjściowej do 1.4 W
- Komunikacja hosta Linux z ST25R3911B/ST25R391x za pomocą interfejsu SPI
- Pełna abstrakcja RF/NFC (RFAL) dla wszystkich głównych technologii i protokołów wyższych warstw:
- NFC-A (ISO14443-A)
- NFC-B (ISO14443-B)
- NFC-F (FeliCa™)
- NFC-V (ISO15693)
- P2P (ISO18092)
- ISO-DEP (protokół wymiany danych ISO, ISO14443-4)
- NFC-DEP (protokół wymiany danych NFC, ISO18092)
- Zastrzeżone technologie (Kovio, B', iClass, Calypso®, …)
- Sample dostępna z kartą rozszerzeń X-NUCLEO-NFC05A1, wpiętą do Raspberry Pi 4
- SampLe aplikacja do wykrywania kilku NFC tag typy i telefony komórkowe obsługujące P2P
- Bezpłatne, przyjazne dla użytkownika warunki licencji
Architektura oprogramowania
Rysunek 2 przedstawia szczegóły architektury oprogramowania biblioteki RFAL na platformie Linux®.
RFAL można łatwo przenosić na inne platformy, dostosowując tzw. platformę files.
Nagłówek file rfal_platforma.h zawiera definicje makr, które musi zapewnić i wdrożyć właściciel platformy. Ponadto zapewnia ustawienia specyficzne dla platformy, takie jak przypisanie GPIO, zasoby systemowe, blokady i przerwania IRQ, które są wymagane do prawidłowego działania RFAL.
Ta demonstracja implementuje funkcje platformy i zapewnia przeniesienie biblioteki RFAL do przestrzeni użytkownika systemu Linux®. Wspólna biblioteka file generowany jest plik, który służy aplikacji demonstracyjnej do zaprezentowania funkcjonalności udostępnianych przez warstwę RFAL.
Host Linux® wykorzystuje interfejs sysfs dostępny z przestrzeni użytkownika Linux®, aby umożliwić komunikację SPI z urządzeniem ST25R3911B. Wewnątrz jądra Linux® interfejs SPI sysfs wykorzystuje sterownik jądra Linux® spidev do wysyłania/odbierania ramek SPI do/z ST25R3911B.
Do obsługi linii przerwań ST25R3911B sterownik używa biblioteki libgpiod, aby otrzymywać powiadomienia o zmianach w tej linii.
Rysunek 2. Architektura oprogramowania RFAL w systemie Linux

Konfiguracja sprzętu
Używana platforma
Płyta Raspberry Pi 4 z systemem operacyjnym Raspberry Pi jest używana jako platforma Linux do tworzenia biblioteki RFAL i interakcji z ST25R3911B przez SPI.
ST25R3911B umożliwia aplikacji na platformie Linux wykrywanie i komunikację z urządzeniami NFC.
Wymagania sprzętowe
- Raspberry Pi 4
- Karta micro SD o pojemności 8 GB do uruchomienia systemu operacyjnego Raspberry Pi
- Czytnik kart SD
- Płytka mostkowa do połączenia X-NUCLEO-NFC05A1 z adapterem Raspberry Pi Arduino dla Raspberry Pi, numer części ARPI600.
- X-NUCLEO-NFC05A1. Zapoznaj się z najnowszymi wymaganiami systemu operacyjnego Raspberry Pi.
Połączenia sprzętowe
Płytka adaptera ARPI600 Raspberry Pi na Arduino służy do połączenia X-NUCLEO-NFC05A1 z Raspberry Pi. Aby połączyć ją z X-NUCLEO-NFC05A1, należy zmodyfikować zworki na płycie adaptera.
Ostrożność: ARPI600 nieprawidłowo dostarcza napięcie 5 V do pinu Arduino IOREF. Bezpośrednie podłączenie X-NUCLEO-NFC05A1 powoduje powrót napięcia 5 V na niektóre piny, co może spowodować uszkodzenie płyty Raspberry Pi. Istnieją doniesienia zwłaszcza o faktycznym zniszczeniu Raspberry Pi 4B+. Aby uniknąć tej sytuacji, dostosuj ARPI600 (raczej trudna operacja) lub X-NUCLEO-NFC05A1 (łatwiejsza obsługa).
Najłatwiejszym rozwiązaniem jest przecięcie styku CN6.2 (IOREF) w X-NUCLEO-NFC05A1, jak pokazano na rysunku 3.
Obcięcie tego pinu nie wpływa na działanie w połączeniu z płytami Nucleo (NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB itp.).
Rysunek 3. Poprawka połączenia sprzętowego

Ustawienie zworki
Zworki dla A5, A4, A3, A2, A1 i A0 pokazane na rysunku 4 należy zmienić na P23, P22, P21 i CE1. Dzięki temu ustawieniu zworek pin GPIO nr 7 Raspberry jest używany jako linia przerwań dla X-NUCLEO-NFC05A1.
Rysunek 4. Położenie zworek A5, A4, A3, A2, A1 i A0 na płycie adaptera

Obecnie ten port biblioteki RFAL wykorzystuje pin GPIO7 jako linię przerwań, zgodnie z ustawieniami zworek. Jeśli istnieje potrzeba zmiany linii przerwań z GPIO7 na inny GPIO, kod specyficzny dla platformy (w file pltf_gpio.h) należy zmodyfikować, aby zmienić definicję makra „ST25R_INT_PIN” z 7 na nowy pin GPIO, który będzie używany jako linia przerwań.
Dzięki powyższym ustawieniom zworek, płytka adaptera może zostać wykorzystana do połączenia X-NUCLEO-NFC05A1 z płytką Raspberry Pi, jak pokazano na rysunku 5.
Rysunek 5. Górna część konfiguracji sprzętu view

Rysunek 6. Strona konfiguracji sprzętu view

Konfiguracja środowiska Linux
Uruchamianie Raspberry Pi
Aby skonfigurować środowisko Linux, pierwszym krokiem jest instalacja i uruchomienie Raspberry Pi 4 z systemem operacyjnym Raspberry Pi, jak wyjaśniono poniżej:
Krok 1
Pobierz najnowszy obraz systemu operacyjnego Raspberry Pi z linku:
Wybierz system operacyjny Raspberry Pi z komputerem stacjonarnym. Do poniższych testów wykorzystano wersję: wrzesień 2022 (2022-09-22-raspios-bullseye-armhf.img.xz).
Krok 2
Rozpakuj obraz Raspberry Pi i zapisz go na karcie SD, postępując zgodnie z instrukcjami dostępnymi w sekcji „Zapisywanie obrazu na kartę SD”.
Krok 3
Podłącz sprzęt:
- Podłącz Raspberry Pi do monitora za pomocą standardowego kabla HDMI.
- Podłącz mysz i klawiaturę do portów USB Raspberry Pi.
Możliwa jest także praca z Raspberry Pi poprzez ssh. W takim przypadku nie jest konieczne podłączanie monitora, klawiatury i myszy do Raspberry Pi. Jedynym wymaganiem jest posiadanie komputera z protokołem ssh w tej samej sieci co Raspberry Pi i odpowiednie skonfigurowanie adresu IP.
Krok 4
Uruchom Raspberry Pi za pomocą karty SD.
Po uruchomieniu na monitorze pojawi się pulpit systemu Linux oparty na Debianie.
Uwaga: Czasami obserwuje się, że po uruchomieniu Raspberry Pi niektóre klawisze klawiatury nie działają. Aby zadziałały, otwórz plik file /etc/default/keyboard i ustaw XKBLAYOUT=”us” i zrestartuj Raspberry Pi.
Włącz SPI na Raspberry Pi
Sterownik SPI wewnątrz jądra komunikuje się z X-NUCLEO-NFC05A1 poprzez SPI. Ważne jest, aby sprawdzić, czy SPI jest już włączone w konfiguracji systemu operacyjnego/jądra Raspberry Pi.
Sprawdź, czy /dev/spidev0.0 jest widoczny w środowisku Raspberry Pi. Jeśli nie jest widoczny, włącz interfejs SPI za pomocą narzędzia „raspi-config”, wykonując czynności opisane poniżej.
Krok 1
Otwórz nowy terminal na Raspberry Pi i uruchom polecenie „raspi-config” jako root:
sudo raspi-config
Ten krok otwiera interfejs graficzny.
Krok 2
Wybierz w interfejsie graficznym opcję o nazwie „Opcje interfejsu”.
Krok 3
Ten krok zawiera listę różnych opcji.
Wybierz opcję o nazwie „SPI”.
Pojawi się nowe okno z następującym tekstem:
„Czy chcesz włączyć interfejs SPI?”
Krok 4
Wybierać w tym oknie, aby włączyć SPI.
Krok 5
Uruchom ponownie Raspberry Pi.
Powyższe kroki umożliwią włączenie interfejsu SPI w środowisku Raspberry Pi po restarcie.
Budowa biblioteki i aplikacji RFAL
Demo RFAL systemu Linux jest dostępne w archiwum. Załóżmy, że ma na imię:
ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz.
Aby zbudować bibliotekę i aplikację RFAL na Raspberry Pi, wykonaj poniższe kroki:
Krok 1
Rozpakuj pakiet na Raspberry Pi za pomocą poniższego polecenia z katalogu domowego:
tar -xJvf ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz
Krok 2
Jeśli nie zrobiono tego wcześniej, zainstaluj cmake, używając poniższego polecenia:
apt-get zainstaluj cmake
System budowania bibliotek i aplikacji RFAL oparty jest na cmake, dlatego do kompilacji pakietu wymagana jest instalacja cmake.
Krok 3
Aby zbudować bibliotekę i aplikację RFAL, przejdź do katalogu „build”:
cd ST25R3911B_v2.8.0_Linux_demo_v1.0/Linux_demo/build
i uruchom stamtąd poniższe polecenie:
zrób ..
W powyższym poleceniu „..” wskazuje, że plik CMakeLists.txt najwyższego poziomu istnieje w katalogu nadrzędnym, tj.
ST25R3911B_v2.8.0_Linux_demo_v1.0.
Polecenie cmake tworzy plik makefile który zostanie użyty w następnym kroku do zbudowania biblioteki i aplikacji.
Krok 4
Uruchom komendę „make”, aby zbudować bibliotekę i aplikację RFAL:
robić
Komenda „make” najpierw buduje bibliotekę RFAL, a następnie buduje na niej aplikację.
Jak uruchomić aplikację
Pomyślna kompilacja generuje plik wykonywalny o nazwie „nfc_demo_st25r3911b” w następującej lokalizacji:
/kompilacja/aplikacje.
Domyślnie aplikację należy uruchomić z prawami roota ze ścieżki: ST25R3911B_v2.8.0_Linux_demo_v1.0/linux_demo/build:
sudo ./demo/nfc_demo_st25r3911b
Aplikacja rozpocznie odpytywanie o NFC tags i telefony komórkowe. Wyświetla znalezione urządzenia wraz z ich UID, jak pokazano na rysunku 7.
Rysunek 7. Wyświetlanie znalezionych urządzeń

Aby zakończyć aplikację, naciśnij Ctrl + C.
Historia rewizji
Tabela 1. Historia zmian dokumentu

Lista tabel
Tabela 1. Historia zmian dokumentu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Lista rysunków
Rysunek 1. Biblioteka RFAL na platformie Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Rysunek 2. Architektura oprogramowania RFAL w systemie Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Rysunek 3. Poprawka połączenia sprzętowego. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Rysunek 4. Położenie zworek A5, A4, A3, A2, A1 i A0 na płycie adaptera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Rysunek 5. Górna część konfiguracji sprzętu view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Rysunek 6. Strona konfiguracji sprzętu view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Rysunek 7. Wyświetlanie znalezionych urządzeń. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
WAŻNA INFORMACJA – PRZECZYTAJ UWAŻNIE
STMicroelectronics NV i jej spółki zależne („ST”) zastrzegają sobie prawo do wprowadzania zmian, poprawek, ulepszeń, modyfikacji i udoskonaleń produktów ST i/lub niniejszego dokumentu w dowolnym momencie bez powiadomienia. Nabywcy powinni uzyskać najnowsze istotne informacje o produktach ST przed złożeniem zamówienia. Produkty ST są sprzedawane zgodnie z warunkami sprzedaży ST obowiązującymi w momencie potwierdzenia zamówienia.
Nabywcy ponoszą wyłączną odpowiedzialność za wybór, selekcję i użytkowanie produktów ST. ST nie ponosi żadnej odpowiedzialności za pomoc w stosowaniu ani za konstrukcję produktów nabywców.
ST nie udziela żadnej licencji, wyraźnej ani dorozumianej, na jakiekolwiek prawa własności intelektualnej.
Odsprzedaż produktów ST z postanowieniami różniącymi się od informacji zawartych w niniejszym dokumencie powoduje unieważnienie gwarancji udzielonej przez ST na taki produkt.
ST i logo ST są znakami towarowymi ST. Aby uzyskać dodatkowe informacje o znakach towarowych ST, zapoznaj się z www.st.com/trademarks. Wszystkie inne nazwy produktów lub usług są własnością ich odpowiednich właścicieli.
Informacje zawarte w niniejszym dokumencie zastępują informacje podane wcześniej w jakiejkolwiek poprzedniej wersji tego dokumentu.
© 2023 STMicroelectronics – Wszelkie prawa zastrzeżone
Dokumenty / Zasoby
![]() | Sterownik UM2375 dla systemu Linux |
Odniesienia
- raspberrypi.comwww.raspberrypi.com
- st.comwww.st.com
- Instrukcja obsługimanual.tools
