1103292_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1103292_ja-JP

1103292_ja-JP

PN7150/PN7120 i.MX6SXのArduino用NFCコントローラSBCキット<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

これは、Arduino用PN7150 NFCコントローラーSBCキット(OM5578 / PN7150ARD)と、i.MX6SXを使用し、Arduinoピン互換のUDOO NEOボードを使用して、簡単なNFCデモアプリをセットアップして実行するためのステップバイステップガイドです。

1. 応募資格

- UDOO NEOボード。このドキュメントでは UDOO NEO フル ボードについて言及していますが、適切なデバイス ツリーが各ボードで使用されている限り、手順はすべての UDOO Neo ボードで同じです。このボードの詳細については、公式サイト(http://www.udoo.org/)をご覧ください。

UDOOネオフルボード

- PN7150 Arduino用NFCコントローラーSBCキット(OM5578/PN7150ARD)は、下の画像に示されています。または、Arduino用のPN7120 NFCコントローラーSBCキット(OM5577 / PN7120ARD)を使用することもできます。

PN7150 Arduino用NFCコントローラーSBCキットをUDOO Neoに取り付け

OM5578ボードの詳細については、次のリンクから入手できるユーザーマニュアル(Doc ID UM10935)を参照してください。

http://www.nxp.com/documents/user_manual/UM10935.pdf

このデモボードと他のPN7150デモボードに関する追加のドキュメントと情報は、以下のリンクからご覧いただけます。

PN7150用デモボード|NXPの

OM5577ボードの詳細については、次のリンクから入手できるユーザーマニュアル(Doc ID UM10878)を参照してください。

http://www.nxp.com/documents/user_manual/UM10878.pdf

OM5577ボードのその他のリソースについては、次のリンクを参照してください。

PN7120 NFC Controller SBC Kit|NXP

- Ubuntu 12.04 以降 (14.04 を推奨) を搭載したホスト コンピューター。

- ホストにインストールされている i.MX6SX の L3.14.28 BSP リリース。この BSP のダウンロード方法とセットアップ方法に関するドキュメントは、次のリンクにあります。

http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/i.mx-applications-process...

2. NXP BSPリリースとツールチェーンの設定

L3.14.28 BSP リリースに含まれている Yocto ユーザーズ ガイドの指示に従って、i.MX6SX (MACHINE= imx6sxsabresd) のイメージをセットアップし、ビルドします。fsl-image-gui イメージとフレームバッファ (fb) バックエンドを使用します。他のイメージを使用することもできますが、core-image-minimal イメージには、NFC デモ アプリに必要な libstdc++.so.6 ライブラリが含まれていないことに注意してください。

また、カーネルとブートローダーをクロスコンパイルするためのツールチェーンをビルドしてインストールする必要もあります。これは、次のコマンドで実行できます。

$ bitbake メタツールチェーン

作成したら、次のスクリプトを実行してインストールできます。

//tmp/deploy/sdk/poky-glibc-x86_64-meta-toolchain-cortexa9hf-vfp-neon-toolchain-1.7.sh

ツールチェーンの抽出方法の詳細については、次のYoctoトレーニングタスクを参照してください。

タスク #7 - ツールチェーンを作成する

3. デバイスツリーの編集

以前のバージョン (3.0.35 の後方) では、Linux カーネルにはハードウェアの全記述が含まれていたため、ブートローダーはカーネルイメージをロードして実行する必要がありました。現在のカーネルバージョンでは、ハードウェアの説明はデバイスツリーブロブ(DTB)にあり、デバイスツリーを変更するだけで同じカーネルを異なるハードウェアで使用できます。このシナリオでは、ブートローダーはカーネルイメージとデバイスツリー(DTB)バイナリをロードします。

新しいデバイスツリーを追加する方法の詳細については、新しいデバイスツリーの追加について説明している次のコミュニティドキュメントを参照してください。

https://community.nxp.com/docs/DOC-329664

このドキュメントでは、PN7150 NFCコントローラーボードのサポートのみを追加するため、現在のUDOO NEOデバイスツリーを変更します。

3.1 元のUDOO Neoデバイスツリーファイルのコピー

ホームディレクトリに開発フォルダを作成します。

mkdir udooneo-dev

カーネルソースをこのフォルダにダウンロードします。これには、デバイスツリーファイルも含まれます。

cd udooneo-dev

git clone https://github.com/UDOOboard/linux_kernel

デバイスツリーのファイルは、udooneo-dev/linux_kernel/arch/arm/boot/dts から入手できます。

3.2.UDOO Neo デバイス ツリー ファイルの編集

UDOO Neo Full ボードを使用するため、imx6sx-udoo-neo-full-hdmi-m4.dts を使用します。テキストエディタを使用してこのファイルを調べると、同じディレクトリにあるいくつかのインクルード定義ファイルが含まれていることがわかります。

#include "imx6sx-udoo-neo.dtsi"

#include "imx6sx-udoo-neo-full.dtsi"

#include "imx6sx-udoo-neo-m4.dtsi"

#include「imx6sx-udoo-neo-hdmi.dtsi」

#include 「imx6sx-udoo-neo-externalpins.dtsi」

これらを BSP Release の dts ディレクトリにコピーする必要があります (このディレクトリからデバイス ツリーを作成することもできますが、このドキュメントでは BSP Release にデバイス ツリーを追加する方法について説明します)。

///tmp/work/imx6sxsabresd-poky-linux-gnueabi/linux-imx/3.14.28-r0/git/arch/arm/boot/dts/

BSP リリースの Makefile にコンパイルする新しい dtb ファイルを追加する必要があります。これは、プリコンパイラ ディレクティブ $(CONFIG_ARCH_MXC) 内に配置する必要があります。

Arduinoピン配置を使用するNFCコントローラーボードで使用されるピンを構成するために、デバイスツリーに追加する必要があるものがいくつかあります。これらは imx6sx-udoo-neo.dtsi に対して行うことができるので、コンパイルする任意の UDOO Neo デバイスツリーによって取得されます。

使用されるI2Cピンは、I2C2バスのピンです。これらのピンの設定は、imx6sx-udoo-neo.dtsi ファイルにすでに実装されている必要があります。そうでない場合は、&iomuxc セクション内にこれらの行を追加してください。

&iomuxc {

pinctrl_i2c2_1: i2c2grp-1 {

FSL、ピン = <

                                                        MX6SX_PAD_GPIO1_IO03__I2C2_SDA          0x4001b8b1

                                                        MX6SX_PAD_GPIO1_IO02__I2C2_SCL           0x4001b8b1

                                        >;

                      };

};

次に、PN7150のイネーブルピン、割り込みピン、I2Cアドレス、およびバス速度の&i2c2セクションにpn547エントリを追加する必要があります。図のように、下の太字で囲んだ部分を「&i2c2」セクションの末尾に付けます。

&i2c2 {

pn547: pn547@28 {

compatible = "nxp,pn547";

reg = <0x28>;

クロック周波数 = <400000>;

interrupt-gpios = <&gpio4 9 0>;

enable-gpios = <&gpio5 21 0>;

        };

};

重要な注意点: これらの構成のいずれかを追加する前に、これらのピンとI2Cアドレスがこの*udo*.dtsiの他の場所で使用されていないことを確認することが重要ですファイル

UDDO Neo Schematics は、UDDO Web サイト (以下の回路図へのリンク) で見つけることができ、これらの設定の背後にある理由を確認できます。

http://www.udoo.org/download/files/schematics/UDOO_NEO_schematics.pdf

IR信号– J4コネクタ– Arduino 7ピン– i.MX6SXB13ピン

VEN信号 - J6コネクタ - Arduino 8ピン - i.MX6SX W5ピン

SDA信号 – J6コネクタ – Arduino SDAピン - i.MX6SX D20ピン

SCL信号 – J6コネクタ – Arduino SCLピン - i.MX6SX C20ピン

シンプルなデバイスツリーをゼロから作成する方法を詳しく確認したい場合は、次の非常に完全でわかりやすいコミュニティドキュメントを確認してください。

Udooボードの基本デバイスツリー

デバイスツリーをコンパイルするには、次のコマンドを実行します

source /opt/poky/1.7/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi

cd ///tmp/work/imx6sxsabresd-poky-linux-gnueabi/linux-imx/3.14.28-r0/git

ARCH=arm dtbs を作成します。

これにより、使用される Imx6sx-udoo-neo-full-hdmi-m4.dtb が生成されます。

4. U-Boot のコンパイル

UDOO Neo FullボードにはUDOO U-bootを使用します。次の手順では、ソースコードをダウンロードし、ツールチェーンを使用してコンパイルする方法について説明します。

ソースコードのダウンロード

mkdir UDOOneo-dev

cd UDOOneo-dev

git clone -b 2015.04.imx-neo https://github.com/UDOOboard/uboot-imx

cd uboot-imx

u-bootのコンパイル

source /opt/poky/1.7/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi

ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- make udoo_neo_config

ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- make

これにより、DCD (Device Configuration Data) テーブルと u-boot.img ファイルを含む SLP ファイルが生成されます。

手記: デフォルトでは、このU-Boot構成はUDOO Neoボードを検出し、この場合はimx6sx-udoo-neo-full-hdmi-m4.dtbを探します。ボードによっては、異なるデバイスツリーを使用する必要がある場合があります。

5.SDカードのフラッシュ

5.1..sdcard の使用ファイルを使用して BSP リリース イメージをロードします。

イメージからルートファイルシステムをロードする最も簡単な方法は、.sdcardを使用することですbitbake の実行後に作成されるファイル。このイメージは、次のパスにあります。

///tmp/deploy/images/imx6sxsabresd

これにより、BSP Release U-boot ファイルとデバイス ツリー ファイルもロードされますが、その後、自分のファイルと交換します。これを行うには、次のコマンドを使用します。ここで、sdx は SD カードです。

$ sudo dd if=.sdcardof=/dev/sdx bs=1M && 同期

または、必要な2つのパーティションを手動で作成することもできます。詳細については、Yocto ユーザーズガイドを参照してください。

5.2.U-boot の書き方

U-boot をフラッシュするには、SD カードが /dev/sdx にあると仮定して、次のコマンドを使用して SPL ファイルと u-boot.img ファイルの両方をフラッシュする必要があります。

dd if=SPL of=/dev/sdx bs=1K seek=1

dd if=u-boot.img of=/dev/sdx bs=1K seek=69

5.3.デバイスツリーブロブのコピー

imx6sx-udoo-neo-full-hdmi-m4.dtb デバイスツリーを FAT パーティションの dts というフォルダにコピーします。

6. カーネルドライバーの追加

Linux ソースディレクトリの git リポジトリからドライバーソースをダウンロードします

cd ///tmp/work/imx6sxsabresd-poky-linux-gnueabi/linux-imx/3.14.28-r0/git/drivers/misc

$ git clone https://github.com/NXPNFCLinux/nxp-pn5xx.git

現在のディレクトリの Makefile に次の行を追加します

    obj-y += nxp-pn5xx/

見出し設定ファイルに以下の行を追加して、ドライバー設定を含めます

(drivers/misc/Kconfig)を参照してください。

ソース: "drivers/misc/nxp-pn5xx/Kconfig"

環境変数のエクスポート

cd ///tmp/work/imx6sxsabresd-poky-linux-gnueabi/linux-imx/3.14.28-r0/git/

$ source /opt/poky/1.7/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi

$ export ARCH=arm

$ export CROSS_COMPILE=$TARGET_PREFIX

    $ make imx_v7_defconfig

make menuconfig

メニュー設定内には、パス上にあるドライバーをモジュール()として含めます。

デバイスドライバ ---> その他のデバイス ---> < M> NXP PN5XXベースのドライバ

変更を保存して終了し、モジュールをコンパイルします。

$ make modules

次に、モジュールをイメージにインストールします。ロードされたイメージのSDカードを挿入し、コマンドpromtからアクセスするためにマウントします。

sudo mount /dev/sdx ~/mountpoint/

ここで、sdxはSDカードです。次に、次のコマンドを使用してモジュールをインストールします。

sudo ARCH=arm INSTALL_MOD_PATH=/home/user/mountpoint modules_install firmware_install

SDカードをアンマウントする前に、NFCライブラリをインストールします。

7.NFCライブラリのインストール

次のコマンドを実行して、必要なライブラリをホストにインストールします。

sudo apt-get update

sudo apt-get automakeをインストールする

sudo apt-get autoconf をインストールする

sudo apt-get libtoolをインストールする

ノート: Ubuntu 12.04 を使用している場合、次のコマンドを使用すると、NFC ライブラリに必要な最小バージョンである autoconf 2.69 をインストールできます。

sudo add-apt-repository ppa:dns/gnu -y

sudo apt-get update -q

sudo apt-get install --only-upgrade autoconf

ディレクトリに入り、Linuxlibnfc-nciスタックをインストールします

cd ~/UDOOneo-dev

git clone https://github.com/NXPNFCLinux/linux_libnfc-nci.git

ブートストラップbashスクリプトを実行して、構成スクリプトを生成します

cd ~/UDOOneo-dev/linux_libnfc-nci

./bootstrap

Make ファイルを構成します。デフォルトのツールチェーン sysroots パスを使用しています。

PN7150 用に構成するには、次の設定を使用してください。

./configure --enable-pn7150 --host=arm-none-linux --prefix=/opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr --sysconfdir=/home/user/mountpoint/etc

PN7120 用に構成するには、次の設定を使用してください。

./configure --enable-pn7120 --host=arm-none-linux --prefix=/opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr --sysconfdir=/home/user/mountpoint/etc

これで、スタックの make とインストールを実行する準備が整いました。

作成する

sudoメイクインストール

ビルドが成功すると、ライブラリとアプリケーションデモが .libs でビルドされますディレクトリ。ライブラリをターゲットの「/usr/lib」ディレクトリにコピーし、nfcDemoAppをターゲットの「/usr/sbin」にコピーします

cd .libs

sudo cp * /home/user/mountpoint/usr/lib

sudo cp nfcDemoApp /home/user/mountpoint/usr/sbin

cd ~/UDOOneo-dev/linux_libnfc-nci/conf/PN7150

sudo cp * /home/user/mountpoint/etc

これで、SDカードのマウントを解除できます。

sudo umount /home/user/mountpoint

8. NFCリーダーのテスト

マイクロSDカードをUDOO Neoボードのスロットに挿入し、PN1750 NFCコントローラーボードをUDOO Neoボードの上にインストールします。

ボードにアクセスするために、ターミナルコンソールを使用します。NEOまたは同様のアダプター用の公式USB /シリアルデバッグモジュールを使用できます。

UDOO Neoボードでのシリアルデバッグコンソールの設定の詳細については、以下のリンクを参照してください。

http://www.udoo.org/docs-neo/Basic_Setup/Serial_Debug_Console.html

起動したら、.ko をインストールしますファイル。

insmod /lib/modules/3.14.28+g91cf351/kernel/drivers/misc/nxp-pn5xx/pn5xx_i2c.ko

次に、nfcDemoApp を実行します。ポーリングモードでテストし、利用可能なタグを探して読み取ります。

nfcDemoAppの投票

NFCタグをNFCリーダーの隣に配置すると、以下に示すようなコンソール出力が得られるはずです。

虫垂。

参考文献と役立つドキュメント

http://www.nxp.com/documents/application_note/AN11697.pdf

PN7150用デモボード|NXPの

PN7120 NFC Controller SBC Kit|NXP

i.MX6QのNFC PN7120 |NXPコミュニティ

Udooボードの基本デバイスツリー Udooボードの基本デバイスツリー

U-Boot の移行例

http://www.nxp.com/documents/user_manual/UM10935.pdf

Tags (1)
No ratings
Version history
Last update:
‎01-05-2026 05:36 AM
Updated by: