
STMicroelectronics UM2375 Linux ドライバー ユーザー マニュアル

ST25R3911B および ST25R3912/14/15 高性能 NFC フロントエンド用の Linux® ドライバー
導入
STSW-ST25R009 Linux® ドライバーを使用すると、Raspberry Pi 4 が ST05R1B 高性能 NFC ユニバーサル デバイスを含む X-NUCLEO-NFC25A3911 で動作できるようになります。
このパッケージは、RF 抽象化レイヤー (RFAL) を Raspberry Pi 4 Linux プラットフォームに移植し、X-NUCLEO-NFC05A1 ファームウェアで動作します。 パッケージは次のように提供しますampさまざまな種類の NFC を検出するファイル アプリケーション tags P2P をサポートする携帯電話。 RFAL は、ST25R NFC/RFID リーダー IC ST25R3911B、ST25R3912、ST25R3913、ST25R3914、および ST25R3915 用の ST 標準ドライバーです。 たとえば、ST25R3911B-DISCO ファームウェア (STSW-ST25R002) および X-NUCLEONFC05A1 ファームウェア (X-CUBE-NFC5) によって使用されます。
STSW-ST25R009 は、ST25R3911B の下位層プロトコルをすべてサポートし、通信用にいくつかの上位層プロトコルもサポートします。 RFAL はポータブルな方法で作成されているため、Linux® ベースの幅広いデバイスで実行できます。 このドキュメントでは、RFAL ライブラリを標準 Linux システム (この場合は Raspberry Pi 4) で NFC/RF 通信に使用する方法について説明します。 このコードは移植性が高く、多少の変更を加えればどの Linux プラットフォームでも動作します。
図 1. Linux プラットフォーム上の RFAL ライブラリ

以上view
特徴
- 最大 25 W 出力の ST3911R25B/ST391R1.4x 高性能 NFC フロントエンドを使用して NFC 対応アプリケーションを構築するための完全な Linux ユーザー スペース ドライバー (RF 抽象化レイヤー)
- SPI インターフェイスを使用した Linux ホストと ST25R3911B/ST25R391x の通信
- すべての主要なテクノロジーと上位層プロトコルの完全なRF / NFC抽象化(RFAL):
- NFC-A(ISO14443-A)
- NFC-B(ISO14443-B)
- NFC-F(FeliCa™)
- NFC-V(ISO15693)
- P2P(ISO18092)
- ISO-DEP(ISOデータ交換プロトコル、ISO14443-4)
- NFC-DEP(NFCデータ交換プロトコル、ISO18092)
- 独自のテクノロジー (Kovio、B'、iClass、Calypso® など)
- Sampファイルの実装は、Raspberry Pi 05 に接続された X-NUCLEO-NFC1A4 拡張ボードで利用可能です
- Samp複数のNFCを検出するためのアプリケーション tag P2Pをサポートするタイプと携帯電話
- 無料のユーザーフレンドリーなライセンス条項
ソフトウェアアーキテクチャ
図 2 は、Linux® プラットフォーム上の RFAL ライブラリのソフトウェア アーキテクチャの詳細を示しています。
RFAL は、いわゆるプラットフォームを適応させることで、他のプラットフォームに簡単に移植できます。 files.
ヘッダー file rfal_プラットフォーム.h マクロ定義が含まれており、プラットフォーム所有者が提供して実装する必要があります。 さらに、RFAL の正しい動作に必要な GPIO 割り当て、システム リソース、ロック、IRQ などのプラットフォーム固有の設定も提供します。
このデモでは、プラットフォーム機能を実装し、Linux® のユーザー空間への RFAL ライブラリのポートを提供します。 共有ライブラリ file これは、RFAL レイヤーによって提供される機能を紹介するためにデモ アプリケーションによって使用されます。
Linux® ホストは、Linux® ユーザー空間から利用可能な sysfs インターフェイスを使用して、ST25R3911B デバイスとの SPI 通信を可能にします。 Linux® カーネル内部では、SPI sysfs インターフェイスは Linux® カーネル ドライバ spidev を使用して、ST25R3911B との間で SPI フレームを送受信します。
ST25R3911B の割り込みラインを処理するために、ドライバーは libgpiod を使用してこのラインの変更の通知を受け取ります。
図 2. Linux 上の RFAL ソフトウェア アーキテクチャ

ハードウェアのセットアップ
使用したプラットフォーム
Raspberry Pi OS を搭載した Raspberry Pi 4 ボードは、RFAL ライブラリを構築し、SPI 経由で ST25R3911B と通信するための Linux プラットフォームとして使用されます。
ST25R3911B により、Linux プラットフォーム上のアプリケーションが NFC デバイスを検出して通信できるようになります。
ハードウェア要件
- ラズベリーパイ4
- Raspberry Pi OSを起動するための8GBytesマイクロSDカード
- SDカードリーダー
- X-NUCLEO-NFC05A1 を Raspberry Pi 用 Raspberry Pi Arduino アダプター (部品番号 ARPI600) に接続するためのブリッジ ボードです。
- X-NUCLEO-NFC05A1。 最新の Raspberry Pi OS 要件を参照してください。
ハードウエアの接続
ARPI600 Raspberry Pi - Arduino アダプター ボードは、X-NUCLEO-NFC05A1 を Raspberry Pi に接続するために使用されます。 X-NUCLEO-NFC05A1と接続するにはアダプターボードのジャンパーを変更する必要があります。
注意: ARPI600 は、Arduino IOREF ピンに誤って 5 V を供給します。 X-NUCLEO-NFC05A1 を直接取り付けると、一部のピンに 5 V がフィードバックされ、Raspberry Pi ボードが損傷する可能性があります。 特に Raspberry Pi 4B+ が実際に破壊されたという報告があります。 この状況を回避するには、ARPI600 (かなり難しい操作) または X-NUCLEO-NFC05A1 (より簡単な操作) を適用します。
最も簡単な修正は、図 6.2 に示すように、X-NUCLEO-NFC05A1 の CN3 (IOREF) ピンを切断することです。
このピンを切断しても、Nucleo ボード (NUCLEO-L474RG、NUCLEO-F401RE、NUCLEO-8S208RB など) との連動動作には影響しません。
図 3. ハードウェア接続の修正

ジャンパー設定
図 5 に示す A4、A3、A2、A1、A0、および A4 のジャンパは、P23、P22、P21、および CE1 に変更する必要があります。 これらのジャンパ設定により、Raspberry の GPIO ピン番号 7 が X-NUCLEO-NFC05A1 の割り込みラインとして使用されます。
図 4. アダプタ ボード上のジャンパ A5、A4、A3、A2、A1、および A0 の位置

現在、この RFAL ライブラリ ポートは、ジャンパ設定に従ってピン GPIO7 を割り込みラインとして使用します。 割り込みラインを GPIO7 から別の GPIO に変更する必要がある場合は、プラットフォーム固有のコード ( file pltf_gpio.h) を変更して、マクロ「ST25R_INT_PIN」の定義を 7 から新しい GPIO ピンに変更し、割り込みラインとして使用する必要があります。
上記のジャンパ設定により、図 05 に示すように、アダプター ボードを使用して X-NUCLEO-NFC1A5 を Raspberry Pi ボードに接続できます。
図 5. ハードウェアセットアップのトップ view

図 6. ハードウェア設定側 view

Linux環境のセットアップ
Raspberry Piの起動
Linux 環境をセットアップするには、最初のステップは、以下で説明するように、Raspberry Pi OS を備えた Raspberry Pi 4 をインストールして起動することです。
ステップ1
リンクから最新の Raspberry Pi OS イメージをダウンロードします。
Raspberry Pi OSとデスクトップを選択します。 以下のテストでは、2022 年 2022 月 (09-22-XNUMX-raspios-bullseye-armhf.img.xz) のバージョンが使用されました。
ステップ2
「SD カードへのイメージの書き込み」セクションの手順に従って、Raspberry Pi イメージを解凍し、SD カードに書き込みます。
ステップ3
ハードウェアを接続します。
- 標準の HDMI ケーブルを使用して、Raspberry Pi をモニターに接続します。
- マウスとキーボードを Raspberry Pi の USB ポートに接続します。
sshを使用してRaspberry Piと連携することも可能です。 その場合、モニター、キーボード、マウスをRaspberry Piに接続する必要はありません。 唯一の要件は、Raspberry Pi と同じネットワーク内に ssh を備えた PC を配置し、それに応じて IP アドレスを構成することです。
ステップ4
SDカードでRaspberry Piを起動します。
起動後、Debian ベースの Linux デスクトップがモニターに表示されます。
注: Raspberry Pi の起動後、一部のキーボード キーが機能しないことが時々観察されます。 それらを機能させるには、 file /etc/default/keyboard に移動し、XKBLAYOUT=”us” を設定して、Raspberry Pi を再起動します。
RaspberryPiでSPIを有効にする
カーネル内の SPI ドライバーは SPI 経由で X-NUCLEO-NFC05A1 と通信します。 Raspberry Pi OS/カーネル構成で SPI がすでに有効になっているかどうかを確認することが重要です。
/dev/spidev0.0 が Raspberry Pi 環境に表示されるかどうかを確認します。 表示されない場合は、以下で説明する手順に従って、ユーティリティ「raspi-config」を使用して SPI インターフェイスを有効にします。
ステップ1
Raspberry Pi で新しいターミナルを開き、root としてコマンド「raspi-config」を実行します。
sudo raspi-config
このステップにより、グラフィカル インターフェイスが開きます。
ステップ2
グラフィカルインターフェイスで「インターフェイスオプション」という名前のオプションを選択します。
ステップ3
このステップでは、さまざまなオプションをリストします。
「SPI」という名前のオプションを選択します。
新しいウィンドウに次のテキストが表示されます。
「SPI インターフェースを有効にしますか?」
ステップ4
選択するこのウィンドウで SPI を有効にします。
ステップ5
ラズベリーパイを再起動します。
上記の手順により、再起動後に Raspberry Pi 環境で SPI インターフェイスが有効になります。
RFALライブラリとアプリケーションのビルド
Linux の RFAL デモはアーカイブで提供されます。 その名前が次であると仮定しましょう。
ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz。
Raspberry Pi で RFAL ライブラリとアプリケーションを構築するには、次の手順に従います。
ステップ1
ホーム ディレクトリから以下のコマンドを使用して、Raspberry Pi でパッケージを解凍します。
tar -xJvf ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz
ステップ2
まだ行っていない場合は、以下のコマンドを使用して cmake をインストールします。
apt-get インストール cmake
RFAL ライブラリとアプリケーションのビルド システムは cmake に基づいているため、パッケージのコンパイルには cmake をインストールする必要があります。
ステップ3
RFAL ライブラリとアプリケーションをビルドするには、「build」ディレクトリに移動します。
cd ST25R3911B_v2.8.0_Linux_demo_v1.0/Linux_demo/build
そこから以下のコマンドを実行します。
.. のcmakeです。
上記のコマンドの「..」は、トップレベルの CMakeLists.txt が親ディレクトリに存在することを示します。
ST25R3911B_v2.8.0_Linux_demo_v1.0。
cmake コマンドは make を作成しますfile これは、ライブラリとアプリケーションを構築する次のステップで使用されます。
ステップ4
「make」コマンドを実行して、RFAL ライブラリとアプリケーションをビルドします。
作る
「make」コマンドは、まず RFAL ライブラリを構築し、次にその上にアプリケーションを構築します。
アプリケーションの実行方法
ビルドアップが成功すると、「nfc_demo_st25r3911b」という名前の実行可能ファイルが次の場所に生成されます。
/ビルド/アプリケーション。
デフォルトでは、アプリケーションは次のパスから root 権限で実行する必要があります: ST25R3911B_v2.8.0_Linux_demo_v1.0/linux_demo/build:
sudo ./demo/nfc_demo_st25r3911b
アプリケーションが NFC のポーリングを開始します tags そして携帯電話。 図 7 に示すように、見つかったデバイスがその UID とともに表示されます。
図 7. 見つかったデバイスの表示

アプリケーションを終了するには、Ctrl + C を押します。
改訂履歴
表1. 文書の改訂履歴

テーブルのリスト
表1.ドキュメントの改訂履歴。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 11
図表一覧
図 1. Linux プラットフォーム上の RFAL ライブラリ。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 1
図 2. Linux 上の RFAL ソフトウェア アーキテクチャ。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 3
図 3. ハードウェア接続の修正。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 4
図 4. アダプタ ボード上のジャンパ A5、A4、A3、A2、A1、および A0 の位置。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 5
図 5. ハードウェアセットアップのトップ view 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 6
図 6. ハードウェア設定側 view 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 6
図 7. 見つかったデバイスの表示。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 10
重要なお知らせ – よくお読みください
STMicroelectronics NV およびその子会社 (以下「ST」) は、ST 製品および/またはこのドキュメントを予告なしにいつでも変更、修正、拡張、修正、および改善する権利を留保します。購入者は、注文を行う前に ST 製品に関する最新の関連情報を入手する必要があります。ST 製品は、注文確認時に適用される ST の販売条件に従って販売されます。
ST 製品の選択、選択、使用については購入者が単独で責任を負い、ST は購入者の製品の適用支援や設計については一切責任を負いません。
ST は、明示的か黙示的かを問わず、いかなる知的財産権のライセンスも付与しません。
ここに記載されている情報と異なる規定を伴う ST 製品を再販した場合、当該製品に対して ST が付与した保証は無効になります。
STおよびSTロゴはSTの商標です。ST商標に関する追加情報については、 www.st.com/商標その他すべての製品名またはサービス名は、それぞれの所有者の財産です。
このドキュメントの情報は、このドキュメントの以前のバージョンで以前に提供された情報に優先し、置き換えられます。
© 2023 STマイクロエレクトロニクス – 無断転載を禁じます
ドキュメント / リソース
![]() | UM2375 Linux ドライバー |
参考文献
- ラズベリーパイ.comwww.raspberrypi.com
- st.com詳しくはこちら
- st.com/trademarks詳しくはこちら
- ユーザーマニュアルmanual.tools
