Infineon XMC4800 IoT 接続キットの開始方法 - FreeRTOS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Infineon XMC4800 IoT 接続キットの開始方法

重要

これは、FreeRTOS リリース 202012.00 で使用する FreeRTOS ユーザーガイドのアーカイブ版です。このドキュメントの最新バージョンについては、FreeRTOS ユーザーガイドを参照してください。

このチュートリアルでは、Infineon XMC4800 IoT 接続キットの使用を開始するための手順について説明します。Infineon XMC4800 IoT Connectivity Kit がない場合は、 AWS Partner Device Catalog にアクセスして当社のパートナーから購入してください。

ボードとのシリアル接続を開いてログ記録とデバッグ情報を表示するには、XMC4800 IoT 接続キットに加えて、3.3V USB/シリアルコンバータが必要です。CP2104 は、Adafruit の CP2104 Friend などのボードで広く入手できる、一般的な USB/シリアルコンバータです。

開始する前に、 AWS IoT と FreeRTOS ダウンロードを設定して、デバイスを AWS クラウドに接続する必要があります。手順については「最初のステップ」を参照してください。このチュートリアルでは、FreeRTOS ダウンロードディレクトリへのパスを freertos とします。

概要

このチュートリアルには、使用開始のための以下の手順が含まれています。

  1. マイクロコントローラーボード用の組み込みアプリケーションを開発およびデバッグするためのソフトウェアをホストマシンにインストールします。

  2. FreeRTOS デモアプリケーションをバイナリイメージにクロスコンパイルします。

  3. アプリケーションバイナリイメージをボードにロードし、アプリケーションを実行します。

  4. モニタリングおよびデバッグの目的で、シリアル接続経由でボード上で実行されているアプリケーションに接続します。

開発環境をセットアップする

FreeRTOS は、XMC4800 のプログラミングに Infineon の DAVE 開発環境を使用します。開始する前に、DAVE および 一部の J-Link ドライバーをダウンロードしてインストールする必要があります。これにより、オンボードデバッガーと通信できるようになります。

DAVE をインストールする

  1. Infineon の DAVE software download ページに移動します。

  2. ご使用のオペレーティングシステム向けの DAVE パッケージを選択し、登録情報を送信します。Infineon での登録後、.zip ファイルをダウンロードするためのリンクが記載された確認メールを受け取ります。

  3. DAVE パッケージ .zip ファイル (DAVE_version_os_date.zip) をダウンロードして、DAVE をインストールする場所 (例えば、C:\DAVE4) に解凍します。

    注記

    一部の Windows ユーザーから、ファイルの解凍に Windows エクスプローラーを使用する際の問題が報告されています。7-Zip などのサードパーティー製のプログラムを使用することをお勧めします。

  4. DAVE を起動するには、解凍された DAVE_version_os_date.zip フォルダで検出された実行可能ファイルを実行します。

詳細については DAVE Quick Start Guide を参照してください。

XMC4800 Relax EtherCAT ボードのオンボードデバッグプローブと通信するには、J-Link ソフトウェアおよびドキュメントパックに含まれているドライバが必要です。Segger の J-Link software download ページから、J-Link ソフトウェアとドキュメントパックをダウンロードできます。

シリアル接続の確立

シリアル接続の設定はオプションですが、推奨されています。シリアル接続により、開発マシンで表示可能な形式でボードからログとデバッグ情報を送信できるようになります。

XMC4800 デモアプリケーションは、ピン P0.0 および P0.1 の UART シリアル接続を使用します。このピンは、XMC4800 Relax EtherCAT ボードのシルクスクリーンにラベル表示されています。シリアル接続の設定方法は、以下の通りです。

  1. 「RX<P0.0」とラベル付けされたピンを、お使いの USB/シリアルコンバータの「TX」ピンに接続します。

  2. 「TX>P0.1」とラベル付けされたピンを、お使いの USB/シリアルコンバータの「RX」ピンに接続します。

  3. シリアルコンバータの Ground (接地) ピンを、ボード上の「GND」とラベル付けされたピンのいずれかに接続します。デバイスは、共通の接地を持っている必要があります。

電力は USB デバッグポートから供給されるため、シリアルアダプタの正電圧ピンをボードに接続することはしないでください。

注記

一部のシリアルケーブルは、5V シグナルレベルを使用します。XMC4800 ボードと Wi-Fi クリックモジュールには、3.3V が必要です。ボードのシグナルを 5V に変更するために、ボードの IOREF ジャンパーを使用することはしないでください。

ケーブルが接続されると、GNU Screen などのターミナルエミュレーターでシリアル接続を開くことができます。ボーレートはデフォルトで 115200 に設定されており、8 データビット、パリティなし、1 ストップビットです。

FreeRTOS デモプロジェクトを構築して実行する

FreeRTOS デモを DAVE にインポートする

  1. DAVE を起動します。

  2. DAVE で、[File] (ファイル)、[Import] (インポート) の順に選択します。[Import] (インポート) ウィンドウで、[Infineon] フォルダを展開し、[DAVE Project] (DAVE プロジェクト) を選択してから [Next] (次へ) を選択します。

  3. [Import DAVE Projects] (DAVE プロジェクトのインポート) で、[Select Root Directory] (ルートディレクトリの選択)、[Browse] (参照) の順に選択してから、XMC4800 デモプロジェクトを選択します。

    FreeRTOS のダウンロードを解凍したディレクトリで、デモプロジェクトは projects/infineon/xmc4800_iotkit/dave4/aws_demos にあります。

    [Copy Projects Into Workspace] (プロジェクトをワークスペースにコピー) がオフになっていることを確認します。

  4. [Finish] (終了) を選択します。

    aws_demos プロジェクトは、WorkSpace にインポートされ、アクティブ化されます。

  5. [Project] (プロジェクト) メニューから [Build Active Project] (アクティブなプロジェクトを構築) を選択します。

    プロジェクトがエラーなしでビルドされていることを確認します。

FreeRTOS デモプロジェクトを実行する

  1. USB ケーブルを使用して XMC4800 IoT 接続キットをコンピュータに接続します。このボードには 2 つの microUSB コネクタがあります。「X101」とラベル付けされたものを使用します。ボードのシルクスクリーン上で、デバッグがその横に表示されています。

  2. [Project] (プロジェクト) メニューから、[Rebuild Active Project] (アクティブなプロジェクトの再構築) を選択して、aws_demos を再構築し、設定変更が取得されたことを確認します。

  3. [Project Explorer] (プロジェクトエクスプローラー) から aws_demos を右クリックして [Debug As] (デバッグ方法) を選択し、[DAVE C/C++ Application] (DAVE C/C++ アプリケーション) を選択します。

  4. [GDB SEGGER J-Link Debugging] (GDB SEGGER J-Link デバッグ) をダブルクリックして、デバッグ情報を作成します。[Debug] (デバッグ) を選択します。

  5. デバッガーが main() のブレークポイントで停止したら、[Run] (実行) メニューから [Resume] (再開) を選択します。

AWS IoT コンソールでは、ステップ 4~5 の MQTT クライアントに、デバイスから送信された MQTT メッセージが表示されます。シリアル接続を使用する場合は、UART 出力で次のように表示されます。

0 0 [Tmr Svc] Starting key provisioning... 1 1 [Tmr Svc] Write root certificate... 2 4 [Tmr Svc] Write device private key... 3 82 [Tmr Svc] Write device certificate... 4 86 [Tmr Svc] Key provisioning done... 5 291 [Tmr Svc] Wi-Fi module initialized. Connecting to AP... .6 8046 [Tmr Svc] Wi-Fi Connected to AP. Creating tasks which use network... 7 8058 [Tmr Svc] IP Address acquired [IP Address] 8 8058 [Tmr Svc] Creating MQTT Echo Task... 9 8059 [MQTTEcho] MQTT echo attempting to connect to [MQTT Broker]. ...10 23010 [MQTTEcho] MQTT echo connected. 11 23010 [MQTTEcho] MQTT echo test echoing task created. .12 26011 [MQTTEcho] MQTT Echo demo subscribed to iotdemo/# 13 29012 [MQTTEcho] Echo successfully published 'Hello World 0' .14 32096 [Echoing] Message returned with ACK: 'Hello World 0 ACK' .15 37013 [MQTTEcho] Echo successfully published 'Hello World 1' 16 40080 [Echoing] Message returned with ACK: 'Hello World 1 ACK' .17 45014 [MQTTEcho] Echo successfully published 'Hello World 2' .18 48091 [Echoing] Message returned with ACK: 'Hello World 2 ACK' .19 53015 [MQTTEcho] Echo successfully published 'Hello World 3' .20 56087 [Echoing] Message returned with ACK: 'Hello World 3 ACK' .21 61016 [MQTTEcho] Echo successfully published 'Hello World 4' 22 64083 [Echoing] Message returned with ACK: 'Hello World 4 ACK' .23 69017 [MQTTEcho] Echo successfully published 'Hello World 5' .24 72091 [Echoing] Message returned with ACK: 'Hello World 5 ACK' .25 77018 [MQTTEcho] Echo successfully published 'Hello World 6' 26 80085 [Echoing] Message returned with ACK: 'Hello World 6 ACK' .27 85019 [MQTTEcho] Echo successfully published 'Hello World 7' .28 88086 [Echoing] Message returned with ACK: 'Hello World 7 ACK' .29 93020 [MQTTEcho] Echo successfully published 'Hello World 8' .30 96088 [Echoing] Message returned with ACK: 'Hello World 8 ACK' .31 101021 [MQTTEcho] Echo successfully published 'Hello World 9' 32 104102 [Echoing] Message returned with ACK: 'Hello World 9 ACK' .33 109022 [MQTTEcho] Echo successfully published 'Hello World 10' .34 112047 [Echoing] Message returned with ACK: 'Hello World 10 ACK' .35 117023 [MQTTEcho] Echo successfully published 'Hello World 11' 36 120089 [Echoing] Message returned with ACK: 'Hello World 11 ACK' .37 122068 [MQTTEcho] MQTT echo demo finished. 38 122068 [MQTTEcho] ----Demo finished----

CMake で FreeRTOS デモを構築する

FreeRTOS 開発に IDE を使用しない場合は、代わりに CMake を使用して、サードパーティのコードエディタおよびデバッグツールを使用して開発したデモアプリケーションまたはアプリケーションを構築して実行できます。

注記

このセクションでは、ネイティブビルドシステムとして MinGW を使用した Windows で CMake を使用する方法について説明します。他のオペレーティングシステムおよびオプションで CMake を使用する方法の詳細については、「FreeRTOS で CMake を使用する」を参照してください。(MinGW は、ネイティブ Microsoft Windows アプリケーション用の最小限の開発環境です。)

CMake で FreeRTOS デモを構築するには
  1. GNU Arm Embedded Toolchain をセットアップします。

    1. Arm Embedded Toolchain ダウンロードページから Windows バージョンのツールチェーンをダウンロードします。

      注記

      「8-2018-q4-major」のバージョンの「objcopy」ユーティリティでバグが報告されているため、「8-2018-q4-major」以外のバージョンをダウンロードすることをお勧めします。

    2. ダウンロードしたツールチェーンインストーラーを開き、インストーラインストールウィザードの手順に従ってツールチェーンをインストールします。

      重要

      インストールウィザードの最後のページで、[Add path to environment variable] (パスを環境変数に追加) を選択してツールチェーンパスをシステムのパス環境変数に追加します。

  2. CMake および MinGW をインストールします。

    手順については、「CMake の前提条件」を参照してください。

  3. 生成されたビルドファイルを格納するフォルダ (build-folder) を作成します。

  4. ディレクトリを FreeRTOS ダウンロードディレクトリ (freertos) に変更し、次のコマンドを使用してビルドファイルを生成します。

    cmake -DVENDOR=infineon -DBOARD=xmc4800_iotkit -DCOMPILER=arm-gcc -S . -B build-folder -G "MinGW Makefiles" -DAFR_ENABLE_TESTS=0
  5. ディレクトリをビルドディレクトリ (build-folder) に変更し、次のコマンドを使用してバイナリをビルドします。

    cmake --build . --parallel 8

    このコマンドにより、ビルドディレクトリにバイナリ出力 aws_demos.hex がビルドされます。

  6. JLINK を使用してイメージをフラッシュして実行します。

    1. ビルドディレクトリ (build-folder) から、次のコマンドを使用してフラッシュスクリプトを作成します。

      echo loadfile aws_demos.hex > flash.jlink
      echo r >> flash.jlink
      echo g >> flash.jlink
      echo q >> flash.jlink
    2. JLNIK 実行可能ファイを使用してイメージをフラッシュします。

      JLINK_PATH\JLink.exe -device XMC4800-2048 -if SWD -speed auto -CommanderScript flash.jlink

      ボードで確立したシリアル接続を介してアプリケーションログが表示されます。

クラウドの MQTT メッセージのモニタリング

AWS IoT コンソールで MQTT クライアントを使用して、デバイスが AWS クラウドに送信するメッセージをモニタリングできます。

MQTT クライアントで AWS IoT MQTT トピックをサブスクライブするには
  1. AWS IoT コンソール にサインインします。

  2. ナビゲーションペインで、[Test] (テスト) を選択して MQTT クライアントを開きます。

  3. [Subscription topic] (トピックのサブスクリプション) で your-thing-name/example/topic と入力し、[Subscribe to topic] (トピックへのサブスクライブ) を選択します。

トラブルシューティング

デバイスを AWS クラウドに接続するために、 AWS IoT と FreeRTOS ダウンロードをまだ設定していない場合は、必ず設定してください。手順については「最初のステップ」を参照してください。

FreeRTOS の開始方法に関する一般的なトラブルシューティングについては、「トラブルシューティングの開始方法」を参照してください。