
UM2548 Linux Sürücüsü
Linux® ST25R3916/ST25R3916B sürücüsü
Kullanıcı Kılavuzu
UM2548 Linux Sürücüsü
giriiş
STSW-ST25R013 Linux® sürücüsü, Raspberry Pi® 4'ün sırasıyla ST6R1 ve ST8R1B cihazlarını içeren X-NUCLEO-NFCO25A3916 ve X-NUCLEO-NFCO25A3916 kartlarıyla çalışmasını sağlar.
Bu paket, RF soyutlama katmanını (RFAL), kart yazılımıyla çalışacak şekilde Raspberry Pi 4 Linux platformuna taşır ve aşağıdakileri sağlar:ampFarklı NFC türlerini algılayan dosya uygulaması tags ve P2P'yi destekleyen cep telefonları. RFAL, ST25R3916 ve ST25R3916B, yüksek performanslı NFC evrensel cihazları / EMVCo okuyucuları için ST standart sürücüsüdür. Örneğin ST25R3916-DISCO donanım yazılımı (STSW-ST25R010) ve X-NUCLEO-NFCO06A1 donanım yazılımı (X-CUBE-NFC6) tarafından kullanılır.
STSW-ST25R013 iletişim için tüm ST25R3916/ST25R3916B alt katman ve bazı yüksek katman protokollerini destekler. RFAL taşınabilir bir şekilde yazılmıştır, dolayısıyla Linux tabanlı çok çeşitli cihazlarda çalışabilir. Bu belge RFAL kitaplığının standart bir Linux sisteminde (bu durumda Raspberry Pi 4) NFC/RF iletişimi için nasıl kullanılabileceğini açıklamaktadır. Kod son derece taşınabilirdir ve herhangi bir Linux platformunda küçük değişikliklerle çalışır.

Üzerindeview
1.1 Özellikler
- ST25R3916 ve ST25R3916B cihazlarını kullanarak NFC özellikli uygulamalar oluşturmak için eksiksiz Linux kullanıcı alanı sürücüsü (RF soyutlama katmanı)
- SPI arayüzünü kullanarak ST25R3916/ST25R3916B ile Linux ana bilgisayar iletişimi
- Tüm ana teknolojiler ve daha yüksek katman protokolleri için eksiksiz RF/NFC soyutlaması (RFAL):
– NFC-A (ISO14443-A)
– NFC-B (ISO14443-B)
– NFC-F (FeliCa™)
– NFC-V (ISO15693)
– P2P (ISO18092)
– ISO-DEP (ISO veri alışverişi protokolü, ISO14443-4)
– NFC-DEP (NFC veri alışverişi protokolü, ISO18092)
– Kovio, B', iClass, Calypso® gibi tescilli teknolojiler - SampRaspberry Pi 06'e takılan X-NUCLEO-NFC1A08 ve X-NUCLEO-NFC1A4 genişletme kartlarıyla dosya uygulaması mevcuttur
- Sampbirkaç NFC'yi algılamak için le uygulaması tag P2P'yi destekleyen türler ve cep telefonları
- Ücretsiz kullanıcı dostu lisans koşulları
1.2 Yazılım mimarisi
Şekil 2, bir Linux platformundaki RFAL kütüphanesinin yazılım mimarisi ayrıntılarını göstermektedir.
RFAL, sözde platforma uyarlanarak diğer platformlara kolaylıkla taşınabilir. files.
Başlık file rfal_platform.h, platform sahibi tarafından sağlanacak ve uygulanacak makro tanımları içerir.
RFAL'ın doğru çalışması için gerekli olan GPIO ataması, sistem kaynakları, kilitler ve IRQ'lar gibi platforma özgü ayarları sağlar.
Bu gösterim, platform işlevlerini uygular ve RFAL'in Linux kullanıcı alanına bir bağlantı noktası sağlar.
Paylaşılan bir kütüphane file RFAL katmanı tarafından sağlanan işlevleri sergilemek için bir tanıtım uygulaması tarafından kullanılan oluşturulur.
Linux ana bilgisayarı, cihazlarla SPI iletişimini gerçekleştirmek için Linux kullanıcı alanından temin edilebilen sysfs arayüzünü kullanır. Linux çekirdeğinin içindeki SPI sysfs arayüzü, SPI çerçevelerini cihazlara göndermek/cihazlardan almak için Linux çekirdek sürücüsü spidev'i kullanır.
ST25R3916 ve ST25R3916B aygıtlarının INT hattını yönetmek için sürücü, bu hattaki değişikliklerden haberdar olmak için libpiod sysfs'yi kullanır.

Donanım Kurulumu
2.1 Kullanılan platform
Raspberry Pi işletim sistemine sahip bir Raspberry Pi 4 kartı, RFAL kütüphanesini oluşturmak ve SPI üzerinden ST25R3916/ST25R3916B ile etkileşim kurmak için Linux platformu olarak kullanılır.
Cihazlar, Linux platformundaki bir uygulamanın NFC cihazlarını algılamasına ve onlarla iletişim kurmasına olanak tanır.
2.2 Donanım gereksinimleri
- Ahududu Pi 4
- Raspberry Pi OS'yi başlatmak için 8 GB mikro SD kart (en son gereksinimleriyle birlikte)
- SD kart okuyucu
- X-NUCLEO-NFC06A1 veya X-NUCLEO-NFC08A1 panoları
- Raspberry Pi için Raspberry Pi Arduino™ adaptörüyle kartı bağlamak için köprü (parça numarası ARPI600)
2.2.1 Donanım bağlantıları
ARPI600 Raspberry Pi'den Arduino'ya adaptör, kartları Raspberry Pi'ye bağlamak için kullanılır. Adaptör kartının atlama tellerinin, onu X-NUCLEO-NFC06A1 veya X-NUCLEO-NFC08A1 kartlarına bağlamak için değiştirilmesi gerekir.
Dikkat:
ARPI600, Arduino IOREF pinine hatalı bir şekilde 5 V sağlıyor. Kartların doğrudan takılması bazı pinlere 5 V geri besleme sağlar, bu Raspberry Pi kartına zarar verebilir. Tahrip edilen anakartların (özellikle Raspberry Pi 4B+) raporları var.
Bunu önlemek için ARPI600'ü (oldukça zor bir işlem) veya X-NUCLEO-NFC06A1/X-NUCLEONFC08A1 kartını (daha kolay) uyarlayın.
En kolay düzeltme, Şekil 6.2'te gösterildiği gibi X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1 kartlarındaki CN3 (IOREF) pinini kesmektir.
Bu pimin kesilmesi, Nucleo kartlarıyla (NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB gibi) birlikte çalışmayı etkilemez.

Atlama teli ayarı
Şekil 5'te gösterilen A4, A3, A2, A1, A0 ve A4 atlama telleri sırasıyla P25, P24, P23, P22, P21 ve CE1 olarak değiştirilmelidir. Bu ayarla Raspberry'nin 7 numaralı GPIO pini X-NUCLEONFC06A1/X-NUCLEO-NFC08A1 için kesme hattı olarak kullanılır.

Şu anda, bu RFAL kitaplık bağlantı noktası, kesme hattı olarak GPIO7 pinini kullanıyor (atlama kablosu ayarlarına göre). Kesinti hattını GPIO7'den farklı bir GPIO'ya değiştirme gereksinimi varsa, platforma özel kod (içinde) file pltf_gpio.h), ST25R_INT_PIN makrosunun tanımını 7'den kesme hattı olarak kullanılacak yeni GPIO pinine değiştirmek için değiştirilmelidir.
Yukarıdaki jumper ayarlarıyla adaptör kartı, aşağıdaki şekillerde gösterildiği gibi X-NUCLEO NFC06A1 ve X-NUCLEO-NFC08A1'i Raspberry Pi kartına bağlamak için kullanılabilir.

Linux ortamı kurulumu
3.1 Raspberry Pi'nin Başlatılması
Linux ortamını kurmak için öncelikle Raspberry Pi'yi Raspberry Pi OS ile aşağıda açıklandığı gibi kurun ve önyükleyin:
Adım 1
En yeni Raspberry Pi OS görüntüsünü şu adresten indirin: https://www.raspberrypi.com, ardından Masaüstüyle Raspberry Pi OS'yi seçin. Aşağıdaki testler için 2022-09-22-raspios-bullseye-armhf.img.xz (Eylül 2022) sürümü kullanılmıştır.
Adım 2
Raspberry Pi OS imajını zipten çıkartın ve “SD karta resim yazma” bölümündeki talimatları takip ederek SD karta yazın.
Adım 3
Donanımı bağlayın:
- Raspberry Pi 4'ü standart bir HDMI kablosu kullanarak bir monitöre bağlayın.
- Fareyi ve klavyeyi Raspberry Pi'nin USB bağlantı noktalarına bağlayın.
Raspberry Pi ile ssh kullanarak da çalışmak mümkün. Bu durumda. Raspberry Pi'ye monitör, klavye ve fare bağlamanıza gerek yoktur. Tek gereksinim, ssh'li bilgisayarın Raspberry Pi ile aynı ağ içinde olması ve IP adresini buna göre yapılandırmaktır.
Adım 4
Raspberry Pi 4'ü bir SD kartla başlatın. Önyükleme sonrasında monitörde Debian tabanlı bir Linux masaüstü beliriyor.
Not:
Bazen Raspberry Pi OS'yi başlattıktan sonra bazı klavye tuşları çalışmıyor. Bunları çalıştırmak için açın file /etc/default/keyboard ve XKBLAYOUT=”us” ayarını yapın ve Raspberry Pi'yi yeniden başlatın.
3.2 Raspberry Pi'de SPI'yi etkinleştirin
Çekirdeğin içindeki SPI sürücüsü, SPI aracılığıyla X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1 kartlarıyla iletişim kurar. Raspbian Pi OS çekirdek yapılandırmasında SPI'nin zaten etkin olup olmadığını kontrol etmek önemlidir.
/dev/spidev0.0'ın Raspberry Pi ortamında görünür olup olmadığını kontrol edin. Görünmüyorsa aşağıda açıklanan adımları izleyerek “raspi-config” yardımcı programını kullanarak SPI arayüzünü etkinleştirin.
Adım 1
Raspberry Pi'de yeni bir terminal açın ve “raspi-config” komutunu root olarak çalıştırın: sudo raspi-config
Bu adım grafiksel bir arayüz açar.
Adım 2
Grafik arayüzde “Arayüz Seçenekleri” adlı seçeneği seçin.
Adım 3
Bu adımda çeşitli seçenekler listelenir.
“SPI” adlı seçeneği seçin.
Aşağıdaki metni içeren yeni bir pencere açılır:
“SPI arayüzünün etkinleştirilmesini ister misiniz?”
Adım 4
Seçme SPI'yi etkinleştirmek için bu pencerede.
Adım 5
Raspberry Pi'yi yeniden başlatın.
Yukarıdaki adımlar, yeniden başlatmanın ardından Raspberry Pi ortamında SPI arayüzünü etkinleştirecektir.
RFAL kütüphanesi ve uygulaması oluşturun
Linux'un RFAL gösterimi ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz gibi bir arşivde sağlanmaktadır.
RFAL kütüphanesini ve uygulamasını Raspberry Pi üzerinde oluşturmak için aşağıdaki adımları izleyin:
Adım 1
Ana dizinden aşağıdaki komutu kullanarak paketi Raspberry Pi'de açın.
tar -xJvf ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz
Adım 2
Komutu kullanarak cmake'i yükleyin (daha önce yapılmadıysa)
apt-get cmake'i yükle
RFAL kütüphanesi ve uygulama derleme sistemi cmake'yi temel alır, bu nedenle paketi derlemek için cmake'nin kurulması gerekir.
Adım 3
RFAL kitaplığını ve uygulamasını oluşturmak için derleme dizinine gidin
cd ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build
Oradan komutu çalıştırın
yap ..
Yukarıdaki komutta “..” üst dizinde üst düzey CMakeLists.txt dosyasının mevcut olduğunu gösterir.
(ST25R3916_v2.8.0_Linux_demo_v1.0).
Bu komut make'i yaratırfile sonraki adımda kitaplığı ve uygulamayı oluşturmak için kullanılır. Buradan, ST25R3916B'ye yönelik gösterimi oluşturmak için aşağıdaki komutu çalıştırın.
cmake -DRFAL_VARIANT=st25r3916b ..
Adım 4
RFAL kitaplığını ve uygulamasını oluşturmak için make komutunu çalıştırın:
yapmak
Bu komut önce RFAL kütüphanesini, ardından da onun üzerindeki uygulamayı oluşturur.
Uygulama nasıl çalıştırılır
Başarılı bir derleme, /build/demo konumunda "nfc_poller_st25r3916" veya "nfc_poller_st25r3916b" adında bir yürütülebilir dosya oluşturur.
Varsayılan olarak uygulamanın ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build/demo/ yolundan kök haklarıyla çalıştırılması gerekir:
sudo ./nfc_demo_st25r3916
Uygulama NFC için yoklama yapmaya başlar tags ve cep telefonları, ardından bulunan cihazları Şekil 7'de gösterildiği gibi UID'leriyle birlikte görüntüler.

Uygulamayı sonlandırmak için Ctrl + C tuşlarına basın.
Revizyon geçmişi
Tablo 1. Belge revizyon geçmişi
| Tarih | Revizyon | Değişiklikler |
| 1-Mar-19 | 1 | İlk sürüm. |
| 4-Nis-23 | 2 | Güncellenmiş belge başlığı, Bölüm Giriş, Bölüm 1.1 Özellikler, Bölüm 1.2 Yazılım mimarisi, Bölüm 2.1 Kullanılan platform, Bölüm 2.2 Donanım gereksinimleri, Bölüm 2.2.1 Donanım bağlantıları, Bölüm 3.1 Raspberry Pi'nin Önyüklenmesi, Bölüm 3.2 Raspberry Pi'de SPI'yi Etkinleştirme, Bölüm 4 RFAL kütüphanesi ve uygulaması oluşturma, ve Bölüm 5 Uygulamanın nasıl çalıştırılacağı. Güncellendi Şekil 1. Linux platformundaki RFAL kütüphanesi, Şekil 2. RFAL yazılım mimarisi Linux'ta ve Şekil 5. Donanım kurulumu üstte view. Tüm belgede küçük metin düzenlemeleri. |
ÖNEMLİ UYARI – DİKKATLİCE OKUYUN
STMicroelectronics NV ve bağlı şirketleri ("ST"), ST ürünlerine ve/veya bu belgeye herhangi bir zamanda bildirimde bulunmaksızın değişiklik, düzeltme, geliştirme, modifikasyon ve iyileştirme yapma hakkını saklı tutar. Alıcılar, sipariş vermeden önce ST ürünleriyle ilgili en son ilgili bilgileri edinmelidir. ST ürünleri, sipariş onayı sırasında yürürlükte olan ST'nin satış şartları ve koşullarına uygun olarak satılır.
Alıcılar, ST ürünlerinin seçimi, seçimi ve kullanımı konusunda münhasıran sorumludur ve ST, uygulama yardımı veya alıcıların ürünlerinin tasarımı konusunda hiçbir sorumluluk kabul etmez.
ST tarafından burada herhangi bir fikri mülkiyet hakkına ilişkin açık veya örtük hiçbir lisans verilmemektedir.
ST ürünlerinin burada belirtilen bilgilerden farklı hükümlerle yeniden satışı, ST tarafından söz konusu ürün için verilen her türlü garantiyi geçersiz kılar.
ST ve ST logosu, ST'nin ticari markalarıdır. ST ticari markaları hakkında ek bilgi için bkz. www.st.com/ticari markalarDiğer tüm ürün veya hizmet adları ilgili sahiplerinin mülkiyetindedir.
Bu belgedeki bilgiler, bu belgenin önceki sürümlerinde sağlanan bilgilerin yerini alır ve bu bilgilerin yerine geçer.
© 2023 STMicroelectronics – Tüm hakları saklıdır
UM2548 – Rev 2
Belgeler / Kaynaklar
![]() | UM2548 Linux Sürücüsü |
Referanslar
- ahududu.comwww.raspberrypi.com
- st.comwww.st.com
- st.com/trademarkswww.st.com
- st.com/en/product/stsw-st25r013?ecmp=tt9470_gl_link_feb2019&rt=um&id=UM2548www.st.com
- Kullanıcı Kılavuzumanual.tools
