Panduan Pengguna Driver Linux STMicroelectronics UM2375

Logo STMicroelectronics

Driver Linux® untuk frontend NFC performa tinggi ST25R3911B dan ST25R3912/14/15

Perkenalan

Driver STSW-ST25R009 Linux® memungkinkan Raspberry Pi 4 beroperasi dengan X-NUCLEO-NFC05A1, yang berisi perangkat universal NFC berkinerja tinggi ST25R3911B.

Paket ini mem-porting lapisan abstraksi RF (RFAL) ke platform Raspberry Pi 4 Linux untuk beroperasi dengan firmware X-NUCLEO-NFC05A1. Paket menyediakan sebagaiample aplikasi mendeteksi berbagai jenis NFC tags dan ponsel yang mendukung P2P. RFAL adalah driver standar ST untuk ST25R NFC/RFID Reader IC ST25R3911B, ST25R3912, ST25R3913, ST25R3914 dan ST25R3915. Misalnya, digunakan oleh firmware ST25R3911B-DISCO (STSW-ST25R002) dan firmware X-NUCLEONFC05A1 (X-CUBE-NFC5).

STSW-ST25R009 mendukung semua protokol lapisan bawah ST25R3911B dan juga beberapa protokol lapisan tinggi untuk komunikasi. RFAL ditulis secara portabel, sehingga dapat dijalankan pada berbagai perangkat berbasis Linux®. Dokumen ini menjelaskan bagaimana perpustakaan RFAL dapat digunakan pada sistem Linux standar (dalam hal ini Raspberry Pi 4) untuk komunikasi NFC/RF. Kode ini sangat portabel dan berfungsi dengan sedikit perubahan pada platform Linux apa pun.

Gambar 1. Library RFAL pada platform Linux

Gambar 1 Library RFAL pada platform Linux

Lebihview

Fitur
  • Lengkapi driver ruang pengguna Linux (lapisan abstraksi RF) untuk membangun aplikasi berkemampuan NFC menggunakan frontend NFC performa tinggi ST25R3911B/ST25R391x dengan daya output hingga 1.4 W
  • Komunikasi host Linux dengan ST25R3911B/ST25R391x menggunakan antarmuka SPI
  • Menyelesaikan RF/NFC abstraction (RFAL) untuk semua teknologi utama dan protokol lapisan yang lebih tinggi:
    • NFC-A (ISO14443-A)
    • NFC-B (ISO14443-B)
    • NFC-F (FeliCa™)
    • NFC-V (ISO15693)
    • P2P (ISO18092)
    • ISO-DEP (protokol pertukaran data ISO, ISO14443-4)
    • NFC-DEP (protokol pertukaran data NFC, ISO18092)
    • Teknologi eksklusif (Kovio, B', iClass, Calypso®, …)
  • Sampimplementasi le tersedia dengan papan ekspansi X-NUCLEO-NFC05A1, dicolokkan ke Raspberry Pi 4
  • Sample aplikasi untuk mendeteksi beberapa NFC tag jenis dan ponsel yang mendukung P2P
  • Persyaratan lisensi gratis yang mudah digunakan
Arsitektur perangkat lunak

Gambar 2 menunjukkan detail arsitektur perangkat lunak perpustakaan RFAL pada platform Linux®.

RFAL mudah dipindahkan ke platform lain dengan mengadaptasi apa yang disebut platform files.

Judulnya file rfal_platform.h berisi definisi makro, yang perlu disediakan dan diterapkan oleh pemilik platform. Selain itu, ia menyediakan pengaturan khusus platform seperti penetapan GPIO, sumber daya sistem, kunci, dan IRQ, yang diperlukan untuk pengoperasian RFAL yang benar.

Demonstrasi ini mengimplementasikan fungsi platform dan menyediakan port perpustakaan RFAL ke ruang pengguna Linux®. Perpustakaan bersama file dihasilkan, yang digunakan oleh aplikasi demo untuk memamerkan fungsionalitas yang disediakan oleh lapisan RFAL.

Host Linux® menggunakan antarmuka sysfs yang tersedia dari ruang pengguna Linux® untuk mengaktifkan komunikasi SPI dengan perangkat ST25R3911B. Di dalam kernel Linux®, antarmuka sysfs SPI menggunakan spidev driver kernel Linux® untuk mengirim/menerima frame SPI ke/dari ST25R3911B.

Untuk menangani jalur interupsi ST25R3911B, pengemudi menggunakan libgpiod untuk mendapatkan pemberitahuan tentang perubahan pada jalur ini.

Gambar 2. Arsitektur perangkat lunak RFAL di Linux

Gambar 2 Arsitektur perangkat lunak RFAL di Linux

Pengaturan perangkat keras

Platform yang digunakan

Papan Raspberry Pi 4 dengan Raspberry Pi OS digunakan sebagai platform Linux untuk membangun perpustakaan RFAL dan berinteraksi dengan ST25R3911B melalui SPI.
ST25R3911B memungkinkan aplikasi pada platform Linux untuk mendeteksi dan berkomunikasi dengan perangkat NFC.

Persyaratan perangkat keras
  • Raspberry Pi 4
  • Kartu micro SD 8 GB untuk mem-boot Raspberry Pi OS
  • Pembaca kartu SD
  • Papan jembatan untuk menghubungkan X-NUCLEO-NFC05A1 dengan Adaptor Arduino Raspberry Pi untuk Raspberry Pi, nomor komponen ARPI600.
  • X-NUCLEO-NFC05A1. Lihat persyaratan OS Raspberry Pi terbaru.

Koneksi perangkat keras

Papan adaptor ARPI600 Raspberry Pi ke Arduino digunakan untuk menghubungkan X-NUCLEO-NFC05A1 dengan Raspberry Pi. Diperlukan untuk memodifikasi jumper papan adaptor untuk menghubungkannya dengan X-NUCLEO-NFC05A1.

Peringatan: ARPI600 salah menyuplai 5 V ke pin Arduino IOREF. Memasang langsung X-NUCLEO-NFC05A1 memberi umpan balik 5 V pada beberapa pin, ini dapat merusak papan Raspberry Pi. Ada laporan khususnya tentang Raspberry Pi 4B+ yang benar-benar dihancurkan. Untuk menghindari situasi ini, adaptasikan ARPI600 (operasi yang agak sulit) atau X-NUCLEO-NFC05A1 (operasi yang lebih mudah).

Perbaikan yang paling mudah adalah dengan memotong pin CN6.2 (IOREF) pada X-NUCLEO-NFC05A1 seperti pada Gambar 3.

Memotong pin ini tidak mempengaruhi pengoperasian bersama dengan papan Nucleo (NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB, dll.).

Gambar 3. Memperbaiki koneksi perangkat keras

Gambar 3 Perbaikan koneksi perangkat keras

Pengaturan jumper

Jumper untuk A5, A4, A3, A2, A1 dan A0 yang ditunjukkan pada Gambar 4 harus diubah menjadi P23, P22, P21 dan CE1. Dengan pengaturan jumper ini, nomor pin GPIO Raspberry 7 digunakan sebagai jalur interupsi untuk X-NUCLEO-NFC05A1.

Gambar 4. Posisi jumper A5, A4, A3, A2, A1 dan A0 pada papan adaptor

Gambar 4 Posisi jumper

Saat ini, port pustaka RFAL ini menggunakan pin GPIO7 sebagai jalur interupsi, sesuai dengan pengaturan jumper. Jika ada persyaratan untuk mengubah jalur interupsi dari GPIO7 ke GPIO yang berbeda, kode khusus platform (dalam file pltf_gpio.h) perlu dimodifikasi untuk mengubah definisi makro “ST25R_INT_PIN” dari 7 ke pin GPIO baru, untuk digunakan sebagai jalur interupsi.

Dengan pengaturan jumper di atas maka adapter board dapat digunakan untuk menghubungkan X-NUCLEO-NFC05A1 dengan board Raspberry Pi seperti pada Gambar 5.

Gambar 5. Pengaturan perangkat keras atas view

Gambar 5 Pengaturan perangkat keras atas view

Gambar 6. Sisi penyiapan perangkat keras view

Gambar 6 Sisi pengaturan perangkat keras view

Pengaturan lingkungan Linux

Boot Raspberry Pi

Untuk mengatur lingkungan Linux, langkah pertama adalah menginstal dan mem-boot Raspberry Pi 4 dengan OS Raspberry Pi seperti yang dijelaskan di bawah ini:

Langkah 1

Unduh gambar OS Raspberry Pi terbaru dari tautan:

Pilih Raspberry Pi OS dengan desktop. Untuk pengujian di bawah, versi berikut digunakan: September 2022 (2022-09-22-raspios-bullseye-armhf.img.xz).

Langkah 2

Buka zip gambar Raspberry Pi dan tulis ke kartu SD dengan mengikuti petunjuk yang tersedia di bagian bernama "Menulis gambar ke kartu SD".

Langkah 3

Hubungkan perangkat keras:

  • Hubungkan Raspberry Pi ke monitor menggunakan kabel HDMI standar.
  • Sambungkan mouse dan keyboard ke port USB Raspberry Pi.

Dimungkinkan juga untuk bekerja dengan Raspberry Pi menggunakan ssh. Dalam hal ini tidak diperlukan untuk menghubungkan monitor, keyboard, dan mouse dengan Raspberry Pi. Satu-satunya persyaratan adalah memiliki PC dengan ssh di dalam jaringan yang sama dengan Raspberry Pi dan mengonfigurasi alamat IP yang sesuai.

Langkah 4

Boot Raspberry Pi dengan kartu SD.

Setelah boot, desktop Linux berbasis Debian muncul di monitor.

Catatan: Terkadang, terlihat bahwa setelah mem-boot Raspberry Pi, beberapa tombol keyboard tidak berfungsi. Untuk membuatnya berfungsi, buka file /etc/default/keyboard dan atur XKBLAYOUT=”us” dan reboot Raspberry Pi.

Aktifkan SPI di Raspberry Pi

Driver SPI di dalam kernel berkomunikasi dengan X-NUCLEO-NFC05A1 melalui SPI. Penting untuk memeriksa apakah SPI sudah diaktifkan di konfigurasi OS/kernel Raspberry Pi.
Periksa apakah /dev/spidev0.0 terlihat di lingkungan Raspberry Pi. Jika tidak terlihat, aktifkan antarmuka SPI menggunakan utilitas “raspi-config” dengan mengikuti langkah-langkah yang dijelaskan di bawah ini.

Langkah 1

Buka terminal baru di Raspberry Pi dan jalankan perintah “raspi-config” sebagai root:

sudo raspi-konfigurasi

Langkah ini membuka antarmuka grafis.

Langkah 2

Pilih di antarmuka grafis opsi bernama "Opsi Antarmuka".

Langkah 3

Langkah ini mencantumkan berbagai opsi.
Pilih opsi bernama "SPI".
Jendela baru muncul dengan teks berikut:
“Apakah Anda ingin antarmuka SPI diaktifkan?”

Langkah 4

Pilih di jendela ini untuk mengaktifkan SPI.

Langkah 5

Mulai ulang Raspberry Pi.
Langkah-langkah di atas akan mengaktifkan antarmuka SPI di lingkungan Raspberry Pi setelah reboot.

Bangun perpustakaan dan aplikasi RFAL

Demo RFAL Linux disediakan dalam arsip. Anggap saja namanya adalah:
ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz.
Untuk membangun perpustakaan dan aplikasi RFAL di Raspberry Pi, ikuti langkah-langkah di bawah ini:

Langkah 1

Buka zip paket di Raspberry Pi menggunakan perintah di bawah ini dari direktori home:

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

Langkah 2

Jika belum dilakukan sebelumnya, instal cmake, menggunakan perintah di bawah ini:

apt-get install cmake

Pustaka RFAL dan sistem pembuatan aplikasi didasarkan pada cmake, untuk alasan ini diperlukan instalasi cmake untuk kompilasi paket.

Langkah 3

Untuk membangun perpustakaan dan aplikasi RFAL, buka direktori “build”:

cd ST25R3911B_v2.8.0_Linux_demo_v1.0/Linux_demo/build

dan jalankan perintah di bawah ini dari sana:

cbuat..

Pada perintah di atas “..” menunjukkan bahwa CMakeLists.txt tingkat atas ada di direktori induk, yaitu
ST25R3911B_v2.8.0_Linux_demo_v1.0.

Perintah cmake membuat makefile yang digunakan pada langkah selanjutnya untuk membangun perpustakaan dan aplikasi.

Langkah 4

Jalankan perintah “make” untuk membangun perpustakaan dan aplikasi RFAL:

membuat

Perintah "make" pertama membangun perpustakaan RFAL dan kemudian membangun aplikasi di atasnya.

Cara menjalankan aplikasi

Build-up yang berhasil menghasilkan executable bernama “nfc_demo_st25r3911b” di lokasi berikut:
/build/applications.

Secara default, aplikasi harus dijalankan dengan hak root dari jalur: ST25R3911B_v2.8.0_Linux_demo_v1.0/linux_demo/build:

sudo ./demo/nfc_demo_st25r3911b

Aplikasi mulai polling untuk NFC tags dan ponsel. Ini menampilkan perangkat yang ditemukan dengan UID mereka seperti yang ditunjukkan pada Gambar 7.

Gambar 7. Tampilan perangkat yang ditemukan

Gambar 7 Tampilan perangkat yang ditemukan

Untuk mengakhiri aplikasi tekan Ctrl + C.

Riwayat revisi

Tabel 1. Riwayat revisi dokumen

Tabel 1 Riwayat revisi dokumen

Daftar tabel

Tabel 1. Riwayat revisi dokumen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Daftar Gambar

Gambar 1. Library RFAL pada platform Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Gambar 2. Arsitektur perangkat lunak RFAL di Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Gambar 3. Perbaikan koneksi perangkat keras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Gambar 4. Posisi jumper A5, A4, A3, A2, A1 dan A0 pada board adaptor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Gambar 5. Pengaturan perangkat keras atas view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Gambar 6. Sisi penyiapan perangkat keras view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Gambar 7. Tampilan perangkat yang ditemukan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

PEMBERITAHUAN PENTING – BACA DENGAN SEKSAMA

STMicroelectronics NV dan anak perusahaannya (“ST”) berhak melakukan perubahan, koreksi, penyempurnaan, modifikasi, dan perbaikan pada produk ST dan/atau dokumen ini kapan saja tanpa pemberitahuan. Pembeli harus memperoleh informasi relevan terkini tentang produk ST sebelum melakukan pemesanan. Produk ST dijual sesuai dengan syarat dan ketentuan penjualan ST yang berlaku pada saat konfirmasi pemesanan.

Pembeli bertanggung jawab penuh atas pilihan, pemilihan, dan penggunaan produk ST dan ST tidak bertanggung jawab atas bantuan aplikasi atau desain produk pembeli.

Tidak ada lisensi, tersurat maupun tersirat, terhadap hak kekayaan intelektual apa pun yang diberikan oleh ST di sini.

Penjualan kembali produk ST dengan ketentuan yang berbeda dari informasi yang ditetapkan di sini akan membatalkan garansi apa pun yang diberikan oleh ST untuk produk tersebut.

ST dan logo ST adalah merek dagang ST. Untuk informasi tambahan tentang merek dagang ST, lihat www.st.com/merek dagangSemua nama produk atau layanan lainnya adalah milik pemiliknya masing-masing.

Informasi dalam dokumen ini menggantikan dan mengganti informasi yang sebelumnya diberikan dalam versi dokumen ini sebelumnya.

© 2023 STMicroelectronics – Semua hak dilindungi undang-undang

Dokumen / Sumber Daya

Driver Linux STMicroelectronics UM2375 [Bahasa Indonesia:] Panduan Pengguna
UM2375 Driver Linux, UM2375, Driver Linux, Driver

Referensi

Tinggalkan komentar

Alamat email Anda tidak akan dipublikasikan. Bidang yang wajib diisi ditandai *