Skip to main content

PSoC 6 BLEプロトタイピングキットを用いたModusToolbox入門

Main48_84013976425617d2dbe15b2a65d27590b29f3ab1.jpg

CY8CPROTO-063-BLEとModusToolboxプラットフォーム

サイプレスセミコンダクター社製CY8CPROTO-063-BLE (181-2207) は、統合されたUSBプログラミング、デバッグ、およびブリッジング機能を備えた、PSoC 6開発用の低コストソリューションです。BSP、ライブラリ、ミドルウェアをサポートし、EclipseベースのIDEでも、コマンドラインツールを介しても使用することができるModusToolboxとともに、強力なプラットフォームを提供します。

CYBLE-416045-02 EZ-BLE Creator

CYBLE_2abf42a93e138c0d3662ce93bb9a4451947749a1.jpg

このボードは、CYBLE-416045-02 EZ-BLEモジュールをベースに、次のような特徴を備えています。

  • 150-MHz Arm®Cortex®-シングルサイクル乗算を備えたM4F CPU(浮動小数点ユニット(FPU)およびメモリ保護ユニット(MPU))
  • 100 MHz Cortex-M0 + CPU、シングルサイクル乗算およびMPU
  • 32KBのEEPROM領域と32KBのセキュアフラッシュを備えた1MBアプリケーションフラッシュ
  • 選択可能な記憶粒度を備えた288KBのSRAM
  • プログラム可能なドライブモード、強度、およびスルーレートを備えた最大36のGPIOピン(およびCapSense、アナログ/デジタルピンのいずれか)
  • Bluetooth 5.0認証のシングルモードモジュール
  • I2Sインターフェース: 最大192キロサンプル(ksps)のワードクロック
  • ステレオデジタルマイク用の2つのパルス密度変調(PDM)チャネル
  • ADC、DAC、オペアンプx2、コンパレータx2を備えたプログラム可能なアナログピン
  • プログラム可能な、8つのマクロセルと、8ビットのデータパスを備えた12個の論理ブロックブロック。ドラッグアンドドロップでプログラム可能なプリミティブ(ゲート、レジスタ)として、またはVerilogでプログラムできるブロックとして使用可能。UART、SPI、S / PDIFおよびその他のプロトコルをサポート
  • ROMベースの安全なルートと暗号化アクセラレータ

このキットは、スクリーニング済みの便利なcastellatedモジュールで提供され、-40C〜 + 85Cの工業用温度範囲に対応し、1.71V〜3.6Vという低電圧で動作します。詳細については、Cypress文書を参照してください。

開発キット

Kit1_55665fb975af32df5c498bdbdc0d81e9b2835c13.jpg

キットには、分離可能なUSBプログラマーが付属しています。

QuickStart_1c417b0b7f0d9f05d855ff9ee6b6c71d384d85ea.jpg

パッケージの裏側には、プログラマーとPSoc6ボードのピンアサインが記載されたクイックスタートガイドがあります。

PSoC 6の開発を行うには、2つの方法があります。1つ目は、Windowsでのみ利用可能な、PSoC 5LPやPSoC 4などの他のデバイスファミリとともにPSoC 6デバイスのサブセットをサポートする独自のIDEのPSoC Creatorです。2番目の開発プラットフォームは ModusToolboxで、構成ツール、ドライバー、ミドルウェアライブラリ、オペレーティングシステムのサポート、およびオプションのIDEを含みます。

ModusToolboxは、すべてのPSoC 6デバイスをサポートし、使用を推奨されている開発プラットフォームです。Windows、Mac、Linuxで利用でき、コマンドラインで動作させることができるため、好みの開発ツールと統合できます。それ以外の場合は、オプションのEclipseベースのIDEで使用できます。

ここでは、Ubuntu 18.04を実行しているコンピューターにインストールされているModusToolboxを使用します。

ソフトウェアのセットアップ

ModusToolbox_0aa6083752b6565f259660e51a540907896328db.jpg

まず、ModusToolboxソフトウェアをCypressのウェブサイトからダウンロードする必要があります。 Linuxにインストールする際には、次の手順にそってインストールしてください。

$ tar xvf ModusToolbox_2.1.0.1266-linux-install.tar.gz
$ cd ModusToolbox
$ sudo tools_2.1/openocd/udev_rules/install_rules.sh
$ sudo tools_2.1/driver_media/install_rules.sh
$ sudo tools_2.1/fw-loader/udev_rules/install_rules.sh
$ sudo tools_2.1/modus-shell/postinstall

Ubuntu 18.xxで作業している場合は、追加のパッケージをインストールする必要があります。

$ sudo apt-get install libusb-0.1-4

ユーザーがまだdialoutグループおよびplugdevグループのメンバーでない場合は、これらに追加する必要があります。

$ sudo usermod -a -G dialout,plugdev $USER

その後、新しいグループをピックアップするには、ログアウトしてから再度ログインする必要があります。

より分かりやすい説明は、インストールガイドを参照してください。

次のように入力すると、IDEが起動します。

$ ./ide_2.1/eclipse/ModusToolbox

NewApplication1_b566b3a340b870ace5887e03f3889f5365290043.jpg

クイックパネルから新しいアプリケーションを作成し、CY8CPROTO-063-BLEを選択します。

アプリケーションの作成

Examples_36fc03ca57c31751ea80cca8712919b20c4a7fe5.jpg

モジュールを選択すると、サンプルアプリケーションのリストが表示されます。これは、評価を容易にし、作成するアプリケーションの基礎として使用可能です。

CreateEmpty_b8a5e729707f3f938a73c463a23b44882cb63e9d.jpg

ここから”Empty PSoC 6 App”を選択して作成すると、ログウィンドウの最初のコマンドは次のようになります。

ModusToolbox/tools_2.1/project-creator/bin/project-creator-cli --board-id CY8CPROTO-063-BLE --board-uri https://github.com/cypresssemiconductorco/TARGET_CY8CPROTO-063-BLE --board-commit latest-v1.X --app-id mtb-example-psoc6-empty-app --app-uri https://github.com/cypresssemiconductorco/mtb-example-psoc6-empty-app --app-commit latest-v1.X --user-app-name Empty_PSoC6_App --target-dir /home/andrew/mtw --output-for-machine --use-modus-shell

ここからわかるように、バックグラウンドで実行されているコマンドはproject-creator-cliであり、これには、モジュールを指定するオプションと BSP用GitHubURL、 に加えてサンプルアプリ用GitHubURLが含まれています。その後、リポジトリのクローンが作成され、ライブラリがインポートされます。

ExampleEmpty_7e67e36360b767588bf81a8017809aee48f0278c.jpg

ここまでの作業によって、プロジェクトエクスプローラーを介して、main.cやライブラリなどのプロジェクトの中身を見ることができます。libsフォルダーを開くと、その中にBSPフォルダーがあります。BSPフォルダー内のGeneratedSourceを開いてください。

DesignModus_ea47e13a4f3292584baa8de9011576fdb9f9afba.jpg

ここで、design.modusファイルをダブルクリックします。

DeviceConfigurator_1_2de6ca85f17e71afd14e9840572223fb5f778efc.jpg

DeviceConfigurator_2_7ef3248e821406156a7a2720849d32569a913a1d.jpg

これにより、Device Configuratorアプリケーションが表示され、ここでは、周辺機器、ルーティング、クロックなどのPSoCリソースを構成できます。

LibraryManager_4ec300148923a4873dc0ddd70f6072f298f25e60.jpg

クイックパネルからライブラリマネージャーを起動することもできます。クイックパネルを使用して、ミドルウェアとともに含まれているライブラリを構成できます。1つ素晴らしい機能として、FreeRTOSサポートしていて、ミドルウェアリストからこれを選択することで設定できます。

詳細については、ModusToolboxでのPSoC 6MCU入門を参照してください。ファームウェアの作成とBSP / HAL /ミドルウェア機能の使用を開始する方法の実例とともに、多くのステップをより詳細に取り上げています。また、デバイスコンフィギュレータガイドでは、デバイス周辺機器の構成について説明しています。

実行例

SelectAppBLEBatt_5a512df686fadbd05d0bf44c5ef5fb7bc8acab33.jpg

もう一度新しいアプリケーションを作成しますが、今回はBLE Battery Level FreeRTOSを選択します。これはFreeRTOSの上に構築され、バッテリーサービスとデバイス情報サービスを備えたBluetooth Low EnergyGATTサーバーを実装します。バッテリーレベルは仮想的にシミュレートされ、0から100パーセントまで連続的に変化します。

これをプログラムするには、クイックパネルに戻り、BLE_Battery_Level_FreeRTOSプログラム(KitProg3)の起動を選択します。

ProgFail_2934d770cbabd744676cae28330c6ccae06701fb.jpg

エラーが出てしまいましたが、これは、使用しているキットにKitProg2が組み込まれており、ファームウェアをアップグレードする必要があるためです。ファームウェアをアップグレードするためには、fw-loaderコマンドラインユーティリティを使用して実行されます。詳細については、 KitProg3ユーザーガイドのセクション6を参照してください。ファームウェアローダーのリリースは、最新のファームウェアをバンドルしたものがGitHubで入手可能です。

DeviceList_e8c2cd7a8d56f313fded31b28333d5bbd3521dd8.jpg

–device-listオプションを指定して実行すると、KitProg2ファームウェアが実行されていることがわかります。

UpdateKP3_637e001e898655e1d48f9bb4ef54318cc20693f0.jpg

–update-kp3を使用して実行すると、プログラマーは最新のKitProg3ファームウェアに更新されます。

ProgSucceed_1debd28531a66e41538a7ecb86438583a8f27a6e.jpg

ここで、ModusToolbox内でプログラムタスクをもう一度起動すると、正常に動作します。

次に、CySmartプリケーションをAndroidデバイスにインストールします。

Devices1_b7bb64f1ed7bed1adee31bb17422767cc5d6a1e2.jpg

アプリを起動してBluetoothを有効にすると、キットが表示されます。ボード上のSW1を押すと、ペアリングモードになり、Androidデバイスとペアリングできるようになりました。

Battery5_d8aca20ae237f09af785be604881a385359ce086.jpg

この時点で、仮想的なバッテリーレベルを確認できます。

Information1_3f29c0de13c31f688f5fedd3a450333b014a077e.jpg

また、デバイス情報も確認できます。

まとめ

今回は、ModusToolboxプラットフォームで使用して、PSoC 6開発キットを簡易的に実行した程度でしたが、両者の理解の助けとなれば幸いです。PSoC 6は、BLE対応の低電力マイクロコントローラープラットフォームに多くの機能を搭載しています。最も注目すべきは、プログラム可能なアナログおよびデジタルの機能です。

ModusToolboxは、自由自在に扱えるハードウェア上に構築されており、開発をさらに促進するBSP、ライブラリ、ミドルウェアを提供しています。これだけではなく、提供されているIDE、または好みのIDE、テキストエディターのいずれかを使用し、独自のツールをコマンドライン上での開発におけるフローおよびGitHubでホストされているすべての主要なリソースと統合することもできます。

Andrew Back

 

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.
DesignSpark Electrical Logolinkedin