PSoC CreatorがModusToolboxへ

米)Cypress(サイプレス)は、2020年4月、独)Infineon(インフィニオン)に買収され子会社になりました。買収の影響かは不明ですが、お気に入りCypress IDEのPSoC Creatorが、ModusToolboxへ移行しつつあります。ModusToolbox v2.3.0.4276(以下ModusToolbox)の特徴、PSoC Creatorからどう変わったのかを示します。

About Eclipse IDE for ModusToolbox
About Eclipse IDE for ModusToolbox

Windows/Mac/LinuxマルチOS、GitHub

PSoC Creator(以下Creator)は、Windowsのみで動作するCypress独自IDEです。ModusToolboxは、Eclipse IDEをベースとし、Windows/Mac/LinuxマルチOS対応となりました。また、最新サンプルコードやライブラリは、GitHub経由でオンライン提供へと変わりました。

ModusToolbox対応PSoC 4/6デバイス

ModusToolbox対応中のPSoC 4/6評価ボードとデバイスを抜粋したのが下図です(全評価ボードとデバイスは、リリースノートを参照してください)。

ModusToolbox 2.3のPSoC 4/6対応デバイス
ModusToolbox 2.3のPSoC 4/6対応デバイス

弊社PSoC 4000S/4100S/4100PSテンプレートで使ったCY8CKIT-145-40XX、PSoC 6 FreeRTOSテンプレートで使用予定のCY8CPROTO-063-BLEともに、ModusToolbox v2.3で開発できます(PSoC 6 FreeRTOSテンプレートは、前稿参照)。前バージョン2.2から新たにPSoC 4が追加されました。

AN228571:「ModusToolboxソフトウェアを使用するPSoC 6 MCU入門」は、全てのPSoC 6アプリケーション開発に、ModusToolbox利用を推薦しています。また、PSoC 4も追加されたことを考えると、ModusToolbox は、PSoC Creatorの後継IDEの可能性大です。

Creator回路図はDevice Configuratorへ

Creatorの特徴は、ソフトウェア開発の最初に、回路図:TopDesign.cyschへPSoCコンポーネントを配置、必要ならコンポーネント間配線を行うことです。ソフトウェア出発点が、多少ハードウェア開発者向きです。

PSoC Creatorの特徴:TopDesign.cysch
PSoC Creatorの特徴:TopDesign.cysch

ModusToolboxはこの回路図配置が、GUIで使用リソースの設定を行うDevice Configuratorへ変わりました。他社Eclipse IDEベースのIDE(例えば、NXP:MCUXpresso IDEやSTマイクロ:STM32CubeIDE)でも同様の周辺回路設定があります。

ModusToolbox のDevice Configurator
ModusToolbox のDevice Configurator(出展:AN228571)

つまり、見た目も操作性も、Eclipse IDEベースの他社IDEと殆ど同じになりました。

PSoCコンポーネントに重きを置いたCreatorプログラミングよりも、Eclipse IDEに慣れた開発者の親しみ易さ、GitHub経由のサンプルコード等の最新版配布による利便性を重視し、よりソフトウェア開発者向きにしたIDEがModusToolboxです。

ModusToolboxソフトウェア構成

ModusToolboxソフトウェア構成
ModusToolboxソフトウェア構成(出展:AN228571)

ModusToolboxソフトウェア構成を見ると、GitHub経由の提供部分が解ります。

下層の各種ドライバ、HAL、BSPsから、ミドルウェアのBluetooth、Mbed OSやFreeRTOS等のライブラリ、これらのサンプルコードも全てGitHubから最新版が取得可能です。

IDE基本部分と、開発ニーズや時節に応じて変化する部分を分け、変化部分はGitHubから最新情報を提供する構成は、優れていると思います。

まとめ

Infineon/Cypressの最新IDE ModusToolboxの特徴を説明しました。Eclipse IDEベースのWindows/Mac/LinuxマルチOS対応で、GitHub経由で最新ドライバやサンプルコードが利用可能です。

PSoC 6アプリケーション開発は、PSoC CreatorからModusToolbox利用を推薦し、最新版ModusToolbox v2.3.0.4276へPSoC 4も追加されたことから、Creator後継のIDEになりそうです。
※ModusToolbox v2.3.1.4663(2021-05-06)はパッチファイルで、v2.3.0.4276の事前インストールが必要です。

なお、PSoC 4/6開発にCreatorも引続き使えます。しかし、今のところ既存CreatorプロジェクトからModusToolboxプロジェクトへの移行ツールは見当たりませんので、新規PSoC 4/6開発は、ModusToolboxで行う方が良いと思います。

ModusToolbox概要は、コチラの英語動画でご覧いただけます。また、丸文株式会社さんの開発ツールページに、インストール方法サンプルコード使用手順などが分かり易く説明されています。

Cortex-M4評価ボードRTOSまとめ

低価格(4000円以下)、個人での入手性も良い32ビットARM Cortex-M4コア評価ボードのRTOS状況を示します。超低価格で最近話題の32ビット独自Xtensa LX6ディアルコアESP32も加えました。

Vendor NXP STマイクロ Cypress Espressif Systems
RTOS FreeRTOS
Azure RTOS
CMSIS-RTOS FreeRTOS
Mbed OS
FreeRTOS
Eva. Board LPCXpresso54114 NUCLEO-G474RE CY8CPROTO-063-BLE ESP32-DevKitC
Series LPC54110 STM32G4 PSoC 6 ESP32
Core Cortex-M4/150MHz Cortex-M4/170MHz Cortex-M4/150MHz
Cortex-M0+/100MHz
Xtensa LX6/240MHz
Xtensa LX6/240MHz
Flash 256KB 512KB 1024KB 480KB
RAM 192KB 96KB 288KB 520KB
弊社対応 テンプレート販売中 テンプレート開発中 テンプレート検討中 未着手

※8月31日、Cypress PSoC 6のRTOSへ、MbedOSを追加しました。

主流FreeRTOS

どのベンダも、FreeRTOSが使えます。NXPは、Azure接続用のAzure RTOSも選択できますが、現状はCortex-M33コアが対応します。ディアルコア採用CypressのRTOS動作はM4側で、M0+は、ベアメタル動作のBLE通信を担います。STマイクロのCMSIS-RTOSは、現状FreeRTOSをラップ関数で変換したもので実質は、FreeRTOSです(コチラの関連投稿3章を参照してください)。

同じくディアルコアのEspressifは、どちらもRTOS動作可能ですが、片方がメインアプリケーション、もう片方が通信処理を担当するのが標準的な使い方です。

価格が上がりますがルネサス独自32ビットコアRX65N Cloud Kitは、FreeRTOSとAzure RTOSの選択が可能です。但し、無償版コンパイラは容量制限があり、高価な有償版を使わなければ開発できないため、個人向けとは言えません。

※無償版でも容量分割と書込みエリア指定など無理やり開発するトリッキーな方法があるそうです。

クラウドサービスシェア1位のAWS(Amazon Web Services)接続用FreeRTOSが主流であること、通信関連は、ディアルコア化し分離処理する傾向があることが解ります。

ディアルコア

ディアルコアで通信関連を分離する方式は、接続クラウドや接続規格に応じて通信ライブラリやプロトコルを変えれば、メイン処理側へ影響を及ぼさないメリットがあります。

例えば、STマイクロのCortex-M4/M0+ディアルコアMCU:STM32WBは、通信処理を担うM0+コアにBLEやZigBee、OpenThreadのバイナリコードをSTが無償提供し、これらを入れ替えることでマルチプロトコルの無線通信に対応するMCUです。

メイン処理を担うM4コアは、ユーザインタフェースやセンサ対応の処理に加え、セキュティ機能、上位通信アプリケーション処理を行います。

通信処理は、クラウド接続用とセンサや末端デバイス接続用に大別できます。

STM32WBやCY8CPROTO-063-BLEが採用した末端接続用のBLE通信処理を担うディアルコアのCortex-M0+には、敢えてRTOSを使う必要は無く、むしろベアメタル動作の方が応答性や低消費電力性も良さそうです。

一方、クラウド接続用の通信処理は、暗号化処理などの高度なセキュティ実装や、アプリケーションの移植性・生産性を上げるため、Cortex-M4クラスのコア能力とRTOSが必要です。

デュアルコアPSoC 6のFreeRTOS LED点滅

デュアルコアPSoC 6対応FreeRTOSテンプレートは、現在検討中です。手始めに表中のCY8CPROTO-063-BLEのメイン処理Cortex-M4コアへ、FreeRTOSを使ってLED点滅を行います。

と言っても、少し高価なCY8CKIT-062-BLEを使ったFreeRTOS LED点滅プログラムは、コチラの動画で紹介済みですので、詳細は動画をご覧ください。本稿は、CY8CPROTO-063-BLEと動画の差分を示します。

CY8CPROTO-063-BLE のCortex-M4とM0+のmain_cm4.c、main_cm0p.cとFreeRTOSConfig.hが下図です。

PSoC 6 CY8CPROTO-063-BLE FreeRTOS LED点滅のmain_cm4.cとmain_cm0.c
PSoC 6 CY8CPROTO-063-BLE FreeRTOS LED点滅のmain_cm4.cとmain_cm0.c
PSoC 6 CY8CPROTO-063-BLEのFreeRTOSConfig.h
PSoC 6 CY8CPROTO-063-BLEのFreeRTOSConfig.h

日本語コメント追記部分が、オリジナル動画と異なる箇所です。

RED LEDは、P6[3]ポートへ割付けました。M0+が起動後、main_cm0p.cのL18でM4システムを起動していることが判ります。これらの変更を加えると、動画利用時のワーニングが消えCY8CPROTO-063-BLE でFreeRTOS LED点滅動作を確認できます。

PSoCの優れた点は、コンポーネント単位でプログラミングができることです(コチラの関連投稿:PSoCプログラミング要点章を参照してください)。

PSoCコンポーネント単位プログラミング特徴を示すCreator起動時の図
PSoCコンポーネント単位プログラミング特徴を示すCreator起動時の図

PSoC Creator起動時の上図が示すように、Cypressが想定したアプリケーション開発に必要なコンポーネントの集合体が、MCUデバイスと言い換えれば解り易いでしょう。つまり、評価ボードやMCUデバイスが異なっても、使用コンポーネントが同じなら、本稿のように殆ど同じ制御プログラムが使えます。

PSoC 6 FreeRTOSテンプレートも、単に設定はこうです…ではなく、様々な情報のCY8CPROTO-063-BLE利用時ポイントを中心に、開発・資料化したいと考えています。PSoCプログラミングの特徴やノウハウを説明することで、ご購入者様がテンプレートの応用範囲を広げることができるからです。

PSoC Creatorでデバイスファミリが見つからない時の対処

Cypress PSoC Creatorで、開発デバイスファミリが見つからない時の対処方法を示します。

No Target PSoC Family
No Target PSoC Family

開発デバイスファミリがDevice familyリストに無い!?

PSoC 4100PSファミリ評価ボード:CY8CKIT-147を入手、評価ボード付属サンプルコードをPSoC Creator 4.2(以下、Creator)にインポートするためFind Code Exampleをクリックしましたが、対象MCUファミリのPSoC 4100PSがDevice familyリストに見当たりません。

このリストに対象MCUファミリが無い時は、新規プロジェクト作成やサンプルコードインポートができないため、Creatorが全く使えません。お手上げ状態です。

※CY8CKIT-147は、CapSenseテンプレート開発用にトラ技懸賞で当選した評価ボード(前回投稿参照)です。

PSoC Creator対処

CreatorのToolsタブからFind new devicesをクリックします。Device Update Installerダイアログが表示されますので、Installをクリックし完了を待ちます。

PSoC CreatorのFind new devices
PSoC CreatorのFind new devices

Creator再起動でDevice familyリストへ最新MCUファミリが追加されます。勿論、PSoC 4100PSもDevice familyリストにありますので、CreatorでCY8CKIT-147プロジェクト作成ができ開発可能となります。

例としてPSoC 4100PSファミリで説明しましたが、他のデバイスファミリがDevice familyリストに無い場合も同様に解決できます。

Update ManagerはDevice familyリスト更新ができない

Cypress Update Managerは、PSoC Creatorなども含めたインストール済みCypress MCU開発環境の更新状況をチェックし、更新や削除が簡単にできる優れたツールです。Creatorと同時にインストールされます。

Update Managerは、自動で起動し目立つのでご存じの方は多いと思います。しかし、前章で示したCreatorが扱うDevice familyリスト更新はUpdate Managerではできません。Creator 4.2を長く使っている方ほど、Find new devicesを忘れがちですので注意してください。

Creatorが扱うコンポーネントの場合は、同じことは起こりません。理由は、Creatorでプロジェクトを開いた時、右下に黄色の!アイコンが表示されるからです。この!アイコンをクリックすると、プロジェクトで使用中のコンポーネントが最新版へ更新されます。

PSoC CreatorのNew Compornents are available表示
PSoC CreatorのNew Compornents are available時の!アイコン表示

但し、コンポーネント更新は、アプリケーションに対して動作リスクが伴います。更新前プロジェクトArchive作成も忘れずに行いましょう(関連投稿:STM32CubeIDE v1.1.0更新と文字化け対策(その2)の2~3章)。

PSoCプログラミング要点

PSoCプログラミングは、デバイス内蔵コンポーネントのAPI操作です。従って、コンポーネント単位のプログラミングとその開発経験の積重ね/載せ替えが可能です。

想定アプリケーションに必要となる複数コンポーネントをパッケージしたものが、各種デバイスファミリで、Creatorインストール時の図がこれらを示しています。

PSoC Programmingのポイント
PSoC Programmingのポイントは、コンポーネント単位の開発経験の積重ね、デバイス載せ替えが可能なこと。

CreatorのGUIで、コンポーネント更新が新デバイスファミリ追加よりプライオリティが高いのも、コンポーネントプログラミングが理由だと筆者は思います。

多くのPSoCコンポーネントの中でCapSenseにハイライトしたのが開発中CapSenseテンプレートで、動作確認ファミリはPSoC 4000S/4100S/4100PSです。但し、同じ第4世代CapSenseコンポーネント内蔵のPSoC 6などへも流用や応用が簡単にできます。

PSoC Creator 4.3 Beta版リリース

2019年10月31日、新たにPSoC 4500ファミリをサポートするPSoC Creator 4.3 Bate版がリリースされました。PSoC 4500ファミリは、二つの独立したSAR ADCと5個までのOpamp/Comparatorブロックを持つアナログ周辺回路が豊富なデバイスファミリです。

Creatorが4.3へ正式更新された時には、同時にDevice familyリストも最新版へ更新されると思います。Creator 4.2が長く使われた結果、今回のようなデバイスファミリが見つからない事象が発生したと言えます。

同じファミリでも新デバイスが毎年追加されます。半年に一度程度は、CreatorのFind new devicesをクリックすることをお勧めします。

PSoC 4100S CapSenseの使い方(最終回)

Cypress PSoC 4 MCU内蔵タッチセンサ:第4世代CapSenseの使い方、最終回は、これまでの関連投稿全体まとめと、PSoC MCU開発時の留意点を説明します。

6月3日発表のInfineon+Cypressが成立するかは不透明です(関連投稿:InfineonがCypress買収で合意)。但し、買収が成立するとCypressのPSoC 4シリーズはよりメジャーMCUになります。このPSoC 4000S/4100S内蔵の最新第4世代CapSense使ったタッチUIテンプレート開発が関連投稿の目的です。

PSoC MCUのソフトウェア開発は、他社ARMコアMCU開発と比べると少々クセがあります。

但し、このクセさえ知っていれば、他社MCUからの移行も容易で、PSoCの特徴を活かした開発もできます。そこで、このクセに対する個人的な留意点と、開発に使用した評価ボードのTipsを初めに示します。

第1回~今回の投稿を基に、PSoC 4000S/4100S専用タッチUIテンプレート開発を進めます。開発完了とテンプレート発売は、少し時間を頂いて、2019/3Qを予定しております。

PSoC MCU開発時の留意点、評価ボードTips

用語とPSoC Creator

Cypress PSoC MCU資料で用いる用語は、他社が使う一般的な用語と異なります(対応表参照)。また、PSoC CreatorのTopDesign.cyschと呼ぶ回路図へコンポーネントを配置し、開発着手するのも他社に無い手法です。

Cypress PSoC MCU用語 他社ARMコアMCU用語
ファームウェア:Firmware ソフトウェア
コンポーネント:Component ハードウェア、周辺回路、コントローラ
コードサンプル:Code Example サンプルプロジェクト、サンプルソフトウェア
PSoC CreatorのTopDesign.cysch(論理回路図) なし

PSoC Creatorも他社同様EclipseベースIDEです。しかし、PSoC MCUの独特な設計手法(これをクセと表現しました)をサポートする強力かつ良くできたツールです。画面構成が他社Eclipse IDEと異なりますが、注意して画面を観察すると、開発中に知りたいリンクがほぼ100%あります。

Cypressは、PSoC/PRoCをMCU:マイコンというより、むしろ、プログラミングも可能なASIC(PSoCがProgrammable System-on-Chipの略から筆者推測)のように考えているため、これらのクセが生じるのだと思います。

Cypress資料

Cypress資料は、質・量・書き方ともに優れています。英語ですが、日本語版もありますので、是非資料を読むことをお勧めします。内容は整理されており、解り易いので、目次のみ見てもほぼ解ります。

筆者はせいぜい数時間しか集中できません。集中力が持続しない方にお勧めの情報把握方法が、目次のみ → 内容類推 → 内容把握です。コンポーネント習得と同様、焦らず段階的、部分的に把握していけば、そのうち全体が見えてきます。

コンポーネントUpdate

PSoC MCUのソフトウェア開発は、コンポーネントAPIのプログラミングです。想定するアプリケーション用に各種コンポーネントを組み合わせて入れた容器、これがデバイスです。

コンポーネントは、それ自身が更新されバージョンを持ちます。例えば、第4世代CapSenseコンポーネントの最新バージョンは、2019年6月現在6.0です。PSoC Creator起動時に、プロジェクト使用中コンポーネント版数を自動的に調べ、Updateがある場合には、Notice Listに通知されます。

殆どの場合、コンポーネントをUpdateしてもトラブルはありません。しかし、コンポーネントUpdateがデバイスハードウェア/ソフトウェア両方に関係するため、コンパイルNGなどになることも稀にあります。

従って、Update時にはArchivesを作成し、元に戻せるようにしましょう。Archives作成は、PSoC CreatorがUpdate時にダイアログを示しますので従ってください。

コンポーネントCode Example

コンポーネント毎にCode Exampleがあります。PSoC Creatorのコンポーネントカタログ掲載のコンポーネントは、いわば標準的なもので、Code Exampleの中には、巧みな使い方をした派生コンポーネントもあります。

CapSenseのCode Example検索方法
CapSenseのCode Example検索方法

評価ボード:KitProg2

本開発で用いた評価ボード:CY8CKIT-145-40XX PSoC 4000S CapSense Prototyping Kit のKitProg2基板は、2019年5月号トラ技第6章P103~P114のPSoC 5記事のことです。

評価ボードのKitProg2部分
評価ボードのKitProg2部分(出典:PSoC 4000S Prototyping Kit Guide)

筆者はこのPSoC 5搭載KitProg2基板を、トラ技付録基板に接続する予定です。つまり、トラ技記事では別途購入が必要であったUSBシリアル変換アダプタの代わりに、トラ技付録基板へのテンプレートプログラミングやデバッグに活用します。

もちろんKitProg2基板は、トラ技6章記事のような使い方もできます。

KitProg2基板は、「SWD(Serial Wire Debug)を使った“汎用”のPSoC MCUプログラミングインタフェースモジュール」です。

KitProg2とPSoC 6の接続例
KitProg2とPSoC 6の接続例(出典:CY8CPROTO-063-BLE Schematic)

上図はPSoC 6がターゲットMCUの例です。ターゲットMCUとSWD IO/SWD CLK+RST/GND/VTARGの5ピンで接続すれば、USB接続のKitProg2モジュール経由でPSoC Creatorプログラミング/デバッグが可能です。

また、USB ⇔ I2C/シリアル変換アダプタとして利用する場合は、KitProg2裏面掲載のターゲットMCUとの結線追加で可能です(評価ボードI2C、UARTは、基板内で配線済み)。

KitProg2裏面のターゲットUARTとI2Cの結線(中央)
KitProg2裏面のターゲットUARTとI2Cの結線(中央)

USB ⇔ I2C変換アダプタ利用時はPSoC Creator付属Bridge Control Panel、また、USB ⇔ UART変換アダプタ利用時はTera Termなどが接続ツールとして使えます。

開発するCapSense UIモジュールと外部機器、または別MCUとの接続デバッグ時に、上記KitProg2基板のUART、または、I2Cの変換アダプタ機能が活用できます。

その4で示したSCBコンポーネントの3モードのうち、UART/I2Cがこれら変換アダプタ経由でPCとの通信に使えます。従って、SCBコンポーネントを手軽に使うには、接続ツールが用意されているUART/I2Cが適しています。

評価ボード:機能分割と低価格

本開発評価ボードのブロック図です。前章KitProg2とPSoC 4000S、さらにEZ-BLE PRoCの3MCU搭載でわずか$15です。

CY8CKIT-145-40XX_PSoC 4000S_Prototyping_Kit_Block Diagram
CY8CKIT-145-40XX_PSoC 4000S_Prototyping_Kit_Block Diagram

EZ-BLE PRoCは、PSoC 4000SのEZ-I2Cコンポーネント経由で得たCapSenseボタンやスライド・バー位置を、スマホへのBluetooth無線送信する10 x 10 x 1.8mmサイズのモジュールです。スマホのアプリケーションは、Cypressサイトからダウンロードできます。

EZ-BLE PRoC用途
EZ-BLE PRoC用途

IoT MCUは、Bluetoothなどの無線通信やスマホ活用のエッジMCU制御も必要になります。

この開発に、無線機能付き高性能MCUを使って、RTOSやソフトウェア/ファームウェアを駆使し開発する選択肢もあります。が、評価ボードのようにモジュール分割し、複数の低価格MCUで組めば、わずか$15で実現できます。

しかも、機能分割した各MCUのソフトウェア開発も簡単です。EZ-BLE PRoCソースコードは、評価ボードサンプルプロジェクト内に有りますので参照してください。

評価ボードはバーゲンプライスです。しかし、その機能分割方法や評価ボードやモジュール活用のシステム開発も選択肢に入れるべきと感じる低価格と機能分割の上手さが解ります。低価格MCUでも使い方次第という好例が、本開発の評価ボードです。

PSoC 4000S/4100S内蔵、第4世代CapSenseの使い方(最終回:関連投稿)まとめ

ソフトウェア開発者向けPSoC 4000S/4100S第4世代CapSenseの使い方
項目 PSoC 4000S/4100S内蔵第4世代CapSenseの使い方(要点)
タッチUIテンプレート構想

(その1)

タッチUIモジュール
単独タッチUIモジュール利用が可能
タッチUIハードウェア

(その2)

1. タッチUIは、指をパッドに近づけた時に生じる静電容量変化で検出。確実に静電容量変化を生むPCBハードウェア:パッド設計が重要。

2. ソフトウェア開発者向けPCB設計ガイドラインの要旨を示し、評価ボードパッド形状の理由と、自己容量式(self-capacitance)、相互容量式(mutual-capacitance)差を説明。

3. 評価ボードパッド部分をトラ技付録PSoC 4100S基板とも接続。 PSoC 4100Sでもテンプレートを動作させPSoC 4000S/4100S両方対応テンプレート化を図る。

CapSense設定

(その3前半)

1. コンポーネントカタログからCapSenseを選びTopDesign.cyschへ配置。

2. コンポーネントデータシートを参照しCapSenseプロパティ設定。基本動作は、Basicタブ設定のみで十分。

3. CapSenseコンポーネント使用GPIOピン設定は、ピンエディタで実行。

CapSenseプログラミング

(その3後半)

1. 基本動作プログラミング教科書に評価ボードサンプルプロジェクトmian.cは最適。

2. 基本動作は、スキャン開始と終了の間、CPUスリープで低電力動作可能。

3. 高感度動作は、スキャン中別処理禁止のブロッキングスキャンを検討。

4. CapSenseプログラミングは、他コンポーネントとの並列処理より時分割処理の方がリスクは少ない。

5. 基本動作CapSense APIは6個。さらに多くのCapSense APIあり。

EZ_I2C(SCB

(その4)

1. EZ-I2Cは、CapSense出力のリアルタイムモニタ用。

2. リアルタイムモニタは、ユーザ開発パッドのCapSenseプロパティ設定に役立つ。

3. EZ-I2Cは、SCBコンポーネント利用法:I2C通信の1種。

4. CapSenseとEZ-I2C間のデータ送受は、RAM利用。

わずか2個コンポーネント利用の第4世代CapSenseの使い方でも、初めてのPSoC MCU開発者向けに要点をまとめると上記になります。最新CapSense動作確認と、殆ど全てのPSoC MCU開発に必要になるSCBコンポーネントの習得が、評価ボードで手軽にできるので教材としては最適だと思います。

PSoC MCUは、コンポーネント単位の開発経験積重ねができます。

一度PSoC開発を経験しておけば、新しい内容はCapSenseプログラミングだけです。今後は開発アプリケーションに応じて使用するコンポーネントを段階的に増やし、PSoC MCU開発の面白さ、奥深さを実感、習得してください。

但し、新規にプロジェクトを開発する時でも、1からコンポーネントを積重ねるのは非効率です。

PSoC Creatorには、新規プロジェクト開始時にPre-populated schematicというプリセット型プロジェクトもあります。しかし、より実務的でプロトタイプ開発に適し、時分割処理を組込んだプロジェクト、これが弊社テンプレートです。

弊社テンプレートは、プロジェクト開始時に最低限必要なコンポーネントが組込み済みで、プロトタイプ開発スピードを上げる効果があります。また、時分割処理ですので、コンポーネント単位の処理追加・削除も容易です。

関連投稿:テンプレート利用Tips

新開発のPSoC 4000S/4100SタッチUIテンプレート発売は、2019/3Q予定です。

このテンプレートをご購入頂ければ、本稿のまとめ文章だけでなく、豊富な日本語コメント付きソースコードと、開発Know Howなども記載した資料が付属します。より具体的に、しかも初心者・中級者にありがちな開発トラブルを回避した第4世代PSoC 4000S/4100S CapSenseの使い方、PSoC MCU開発が短期で効率的に習得できます。

PSoC 4100S CapSenseの使い方(その3前半)

Cypress PSoC 4 MCU内蔵タッチセンサ:第4世代CapSenseの使い方、3回目は、CapSenseの使い方を前後半に分けて示します。前半は、CapSenseのPSoC Creator設定方法、次回の後半は、CapSenseのプログラミングです。

図1 PSoC 4100S/4000S CapSenseの使い方
図1 PSoC 4100S/4000S CapSenseの使い方(第3回前半・後半の内容)

参照情報:PSoC 4 Capacitive Sensing (CapSense) コンポーネントデータシート Version 6.0

PSoC Creatorインストール → トラ技第3章参照

雑誌やブログの場合、各種ツールのインストール手順に多くの紙面が割かれます。本稿も同様でした。しかし、最新IDE:PSoC Creator 4.2インストール手順は、トラ技2019年5月号第3章P129~P142に詳しく記載済みです。

本ブログは、トラ技付録基板も活用予定なので、本稿読者は既にこのトラ技をご購入頂いている前提で、PSoC Creatorインストールや基本的な使い方は、トラ技を参照頂いて省略します(すいません😔)。

関連投稿:GWお勧め本:トラ技5月号PSoC 4100S基板付きで販売中

CapSenseコンポーネントのTopDesign.cysch配置

PSoC Creatorインストール後のPSoC MCU開発手順は、本ブログ記載PSoC Creator 3.3の時と同じです。

つまり、TopDesign.cysch:トップデサイン・スケマティックと呼ぶ回路図へ、PSoC 4000S/4100Sコンポーネントカタログからプロジェクトで使うCapSenseコンポーネントをクリック&ドロップで配置 → そのCapSenseコンポーネントのプロパティを設定しビルド → ビルドで生成された各APIをmain.cで利用 → ソフトウェア完成、という流れです。

図1 CapSenseとEZ-I2Cの2コンポーネントを配置した部分がTopDesign.cyschに相当します。本稿では、CapSenseコンポーネントのプロパティ設定を解説します。そして、次回後半が、ビルド後のAPIを使ったCapSenseプログラミング。
EZ-I2Cコンポーネントは、その4で説明します。

CapSenseコンポーネントのプロパティ設定

PSoC CreatorのTopDesign.cyschへCapSenseコンポーネントを配置し、右クリックしたのが図2です。

Open Datasheet…クリックで、最初に示した参照情報のPSoC 4 Capacitive Sensing (CapSense) コンポーネントデータシートがモニタ上に現れます。使用デバイスコンポーネントの詳細なデータシートが、クリックだけで簡単に参照できるのがPSoC Creatorの特徴です。

図2 Capsenseコンポーネントの配置とデータシート取得
図2 CapsenseコンポーネントのTopDesign.cysch配置とデータシート取得

CapSenseコンポーネントの詳細なプロパティ設定も、このデータシートに記載されています。ゆえに、このデータシートを参照してください…と書くと、これで本稿が終わりますので、少し解説を加えます。

図2のConfigure…をクリックします。コンポーネントのプロパティ設定は、どのコンポーネントでも全てConfigure…で現れるダイアログで設定します。

以下、本開発で用いる評価ボード、CY8CKIT-145-40XX PSoC 4000S CapSense Prototyping Kitを使って設定例を示します(図3)。
上側がCapSenseコンポーネント配置直後のプロパティ設定前、下側がプロパティ設定後です。基本動作に必要なコンポーネントプロパティ設定は、Basicタブのみで十分です。

図3 CapSenceコンポーネントのプロパティ設定
図3 CapSenceコンポーネントのプロパティ設定

配置直後の+アイコンクリックで、タッチUIに使うパッド形状:ButtonやLinear Slider選択 → Sensing mode:CSXやCSD選択という流れです。白抜きセル欄は選択肢あり、グレーセル欄は選択肢なし(変更不可)を示します。

CSXは相互容量式(Mutual-capacitance)のタッチ検出方法、CSDは自己容量式(Self-capacitance)のタッチ検出方法のことです。デフォルトはCSD(Self-cap)です。スライド・バー(SLD)は、自己容量式のみサポートですのでCSD、ボタン(BTN0/1/2)は、CSDかCSXの選択が可能で、評価ボードは相互容量式ですのでCSX(Mutual-cap)です(自己容量式、相互容量式は、その2投稿参照)。

CapSenseコンポーネントのプロパティ設定は以上です。繰り返しますが、基本動作はBasicタブの設定だけで十分です。

Advanceやその他のタブで更に詳細なCapSenseコンポーネントプロパティが設定できます。が、これらの設定は、データシートを参照してください。また、これら設定に、その4で説明するEZ-I2Cが役立ちます。

CapSenseコンポーネント使用GPIOピン設定

CapSenseコンポーネントが使うGPIOピン設定は、Workspace ExplorerのPinsクリックで別表示されるピンエディタ画面で行います。

CapSenseコンポーネントのGPIOピン設定
CapSenseコンポーネントのGPIOピン設定。TopDesign.cyschとは別画面で行うことに注意。

CapSenseコンポーネントのBTN0_Rx0使用ピンを、GPIOのP1[4]に設定する時が上図です。同様に、全てのCapSenseコンポーネントの使用GPIOピンを設定します。緑色□マーカーは、GPIO設定に問題が無いことを示しています。黄色が注意、赤色や灰色は設定NGです。

CapSenseの使い方(その3前半:CapSenseのPSoC Creator設定方法)まとめ

PSoC 4100S/4000S内蔵第4世代CapSenseコンポーネントのPSoC Creator設定方法を示しました。

  1. コンポーネントカタログからCapSenseを選び、TopDesign.cyschへ配置。
  2. 配置後、CapSenseコンポーネントのデータシートを参照し、CapSenseプロパティ設定。基本動作は、Basicタブ設定のみで十分。
  3. CapSenseコンポーネントが使用するGPIOピンの設定は、ピンエディタ画面で行う。

補足:PSoC Creator、コンポーネント、デバイスの関係

PSoC Creatorは、デバイス選択 → コンポーネントカタログから使用コンポーネントをTopDesign.cysch回路図へ配置 → コンポーネントプロパティ設定 → コンポーネント使用GPIOピン設定、という手順でソフトウェア設計を進めます。

それゆえ最初のデバイス選択を誤ると、コンポーネントリソース不足や、使用できるGPIOピンが無いなどの問題が発生します。PSoC Creatorは、この問題回避のため、設計途中であっても使用デバイスの変更が容易です(Project>Device Selection…で表示されるデバイスリストから代替デバイスを選ぶ)。これは、他社IDEに無いCypress PSoC Creatorの特徴です。

デバイスは、色々なコンポーネントを組合せた入れ物にしか過ぎず、コンポーネントこそがPSoCプログラミングの要です。コンポーネントが使う物理的GPIOピン割付を、論理的なTopDesign.cyschとは別画面のピンエディタで行うのもこのためです。

つまり、コンポーネントのプロパティ設定やコンポーネントAPIを使ったプログラミングは、デバイスが変わっても多くの場合そのまま引継げるのです。コンポーネントプログラミングが開発経験として蓄積できます。

PSoC Creatorとコンポーネント、デバイスの関係を示す図
PSoC Creatorとコンポーネント、デバイスの関係を示す図(出典:PSoC Creatorインストール時の図より)

但し、数多いデバイスリストから、最新の第4世代CapSenseコンポーネントを持つデバイスを再選択するのは、結構大変です(新旧コンポーネント混在や、CapSenseのように後方互換が無い例があるため。第4世代CapSense後方互換性は、その1参照)。

2019年6月現在、第4世代CapSenseコンポーネントを使用する時は、PSoC 4000S、PSoC 4100Sシリーズのデバイスから選ぶのが良いでしょう。

PSoC 4100S CapSenseの使い方(その1)

CypressのPSoC 4 MCU内蔵のタッチセンサ:最新の第4世代CapSenseの使い方を何回かに分けて投稿します。目標は、従来のメカニカル入力インタフェース:スイッチやボタンに変わる、新しいタッチユーザインタフェース(タッチUI)入力処理専用のテンプレート開発です。

操作性や装置全体の印象に大きな影響を与えるユーザフレンドリーなタッチUIを、低開発リスク、低価格で実現するこのテンプレートは、競合他社との差別化に役立つと思います。

タッチユーザインタフェーステンプレート
タッチユーザインタフェーステンプレート。ボタンからタッチ・ベースへ変化したユーザ入力処理用PSoC MCUと、それ以外の2MCU構成。プロトタイプ開発速度向上とユーザフレンドリーが狙い。

第4世代CapSense特徴(第3世代比)

・タッチ検出性能向上 → 検出感度、反応特性改善
・木材、厚いアクリル材がタッチ表面材でも反応 → デザイン幅広がる
・液量センシング可能 → シャンプー、薬品ボトル液面検出可能
・自己容量方式と相互容量方式の両方対応 → 近接センサが多くても対応可能
・低消費電流化 → センサ毎に6uAから3uAへ半減

出典:静電容量タッチセンサの性能を大幅改善、対応するマイコンを2製品投入

CapSenseデータシート Version 6.0最初のページに、CapSense v6.Xコンポーネント(=コントローラ)は、v2.Xコンポーネント以前との後方互換は無いと明記されています。また、古いコンポーネントや第3世代CapSense利用経験が有る方のために第4世代マイグレーションガイドもあります。

本稿は、最新の第4世代CapSenseを使い、初めてタッチUI開発する方を対象とします。この第4世代CapSense内蔵MCUは、PSoC 4000S、PSoC 4100S(トラ技付録基板実装)、PSoC 4100S PlusとPSoC Analog Coprocessorです(2019年6月現在)。

低価格PSoC 4000SとタッチUI評価ボード

トラ技2019年5月号で紹介された第4世代CapSense内蔵MCUは、PSoC 4100Sです。同じCortex-M0+コアですが、機能を絞ったのがPSoC 4000Sです。両者の主な仕様差を表1に示します。

関連投稿:GWお勧め本:トラ技5月号PSoC 4100S基板付きで販売中

トラ技付録基板PSoC4100S仕様とPSoC 4000Sの主な特徴差
項目 トラ技付録基板PSoC4100S仕様

CY8C4146LQI-S433

PSoC 4000S仕様

CY8C4045AZI-S413

JPY1個価格(Mouser調べ、2019/06 ¥570 ¥453
CPUコア Cortex-M0+、48MHz
メモリ FLASH 64KB 32KB
SRAM 8KB 4KB
シリアル通信ブロック 3個(I2S/SPI/UART/LINに対応) 2個(I2S/SPI/UARTに対応)
ADC 逐次比較型 12ビット分解能、1Msps なし
シングル・スロープ型 10ビット分解能、11.6ksps
GPIO 34 36
DAC 電流出力型 7ビット分解能×2
その他アナログ・ブロック OPアンプ 2個、6MHzGB積、6V/usスルーレート なし
コンパレータ 3個、内2個はスリープ・モード時も動作 2個スリープ・モード時も動作
静電容量式第4世代タッチセンサ(CapSense 自動調節機能付き(特許取得済み)
論理演算ブロック スマートI/O 3入力1出力のLUT×8

PSoC 4000Sも第4世代CapSense内蔵MCUです。PSoC 4100SのOPアンプなどのアナログ機能を省いた結果低価格で、仕様からCapSense利用のタッチユーザインタフェース(タッチUI)入力処理専用のMCU向きであることが解ります。

例えば、メカニカルボタンを1個50円とすると、ボタン8個で400円。これをタッチUIで置換えるので同程度の低価格MCUは好適です。PSoC 4000SはPSoC 4100Sに比べ少機能なので、ソフトウェア開発も容易です。初心者向きの開発案件とも言えます。さらに、PSoC 4000S実装済みで、タッチ・パッドとスライド・バーが付属した低価格なタッチUI評価ボード:CY8CKIT-145-40XX PSoC 4000S CapSense Prototyping Kitも用意されています。

PSoC 4000S CapSense Prototyping Kit
タッチ・センサー基板付きで$15と安価なPSoC 4000S CapSense Prototyping Kit

CapSenseの使い方(その1:低開発リスク、低価格のタッチUI実現手段)まとめ

低開発リスク、低価格で第4世代CapSenseを使ったタッチユーザインタフェース(タッチUI)を実現する手段として、PSoC 4000S実装評価ボード:CY8CKIT-145-40XX PSoC 4000S CapSense Prototyping Kitを使い、タッチUI入力処理専用のテンプレート開発を行います。このテンプレートは、トラ技付録PSoC 4100S基板でも同じように動作します。

最初の図のように、様々な装置や別MCUの入力手段として単独利用もできます。また、個人レベルでチョット変わった下図のようなタッチUIモジュールを手軽に開発する時にも役立つと思います。

タッチUIモジュールイメージ(出典:トラ技P53 AIジェスチャ・スティック図を加工)
タッチUIモジュールイメージ(出典:トラ技P53 AIジェスチャ・スティック図を加工)

次回から、タッチUIのメリット、ハードウエアのタッチUI基板ポイント、CapSense制御ソフトウェアの構造、開発ツールPSoC Creatorの設定方法など、CapSenseの具体的な使い方を、主にソフトウェア開発者向けに判り易く説明していきます。

GWお勧め本:トラ技5月号PSoC 4100S基板付きで販売中

トランジスタ技術2019年5月号が、サイプレス・セミコンダクター(以下サイプレス)のPSoC 4100S搭載基板付きで1,180円(税込)で販売中です。平成最後のトラ技で、PSoC 4と統合開発環境PSoC Creatorの良さが判る雑誌が、安価に入手できます。

ゴールデンウイークの読物に、MCUソフトウェア開発者だけでなくハードウェア開発者へもお勧めです。

トランジスタ技術平成31年5月号PSoC関連目次
トランジスタ技術平成31年5月号PSoC関連目次(※説明のため着色しています。出典:トランジスタ技術)

弊社ブログ掲載MCU中、筆者が最も好きなMCUが、Cortex-M0のPSoC 4シリーズです。MCU技術、サイプレスサイト掲載情報量と質、どれも競合他社より優れていると思います。但し、中級者以上の方には受けが良くても、初心者や初めてサイプレスサイトを訪れる方が解り易いかは疑問です。

ネット並みの手軽さはありませんが、紙媒体のトラ技は、セキュリティ不安や無駄な広告が無く、図表が多く2色で色分けされた文章は、CQ出版社構成済みです。PSoC 4やサイプレスが初めての方でも、短時間で重要箇所を読み・理解するのも簡単です。

ここからは、トラ技を入手した方を前提に、(少々差し出がましいのですが)PSoC 4やPSoC Creatorに解説を加えます。本ブログ対象の、「個人でも低価格で入手性が良いMCUにPSoC 4が該当」するからです。

PSoC 4と4000Sシリーズ

PSoCファミリラインナップがP60コラムにあります。PSoC 4の位置づけが良く解ります。このPSoC 4(Cortex-M0コア)に旧富士通のFM0+買収で得たCortex-M0+コアを採用し、世代改良したのがPSoC 4000Sシリーズです。S付きがCortex-M0+、無しがCortex-M0です。

PSoC 4000Sシリーズのラインナップが下図です。

PSoC 4000シリーズ分類
PSoC 4000シリーズ分類(出典:Cypress Semiconductorメールの一部抜粋)

メール画面切取り画像のためDigi-keyやMouserリンクは無効ですが、PSoC 4000Sシリーズは低価格で入手性も良いMCUであることが解ります。

Entry Level PSoC 4000Sのアナログ機能強化版であるPSoC 4100S:CY8C4146LQI-S433/Flash:64K/RAM:8K搭載基板がトラ技に付属しています。ブレッドボードなどで動作可能です(特設P115~に詳しい説明あり)。

PSoC 4100Sのトラ技採用理由は、第1部の(重い)処理内容や第2部のハイエンドPSoC 5LP(P104コラム参照)へのガイドがし易いからだと思います。

個人的には、先ずEntry LevelのPSoC 4000Sを使って、PSoCの良さをもっと手軽に読者に認知させた方が良いと感じました。4000Sと4100Sの差分は、内蔵アナログ・コンポーネントとその数だからです(MCU提供サイプレスの思惑もあるかもしれませんが…)。
※内蔵アナログ・コンポーネント解説は、特設P143~に詳しく説明されています。

PSoC Creator

PSoC Creatorは、EclipseベースIDEですが、他社IDEと異なります。使い勝手は、トラ技記事にあるように痒い所に手が届くように良くできたIDEです。モニタ1台ではなく、複数の高解像度モニタを使いたくなります。

簡単に言うと、MCUハードウェア開発者でも使える回路図機能とソフトウェア開発機能を全て盛り込んだ環境です。
※特設P129~のPSoC Creator操作マニュアルに詳しく説明されています。

PSoC Creator操作画面
PSoC Creator操作画面

筆者がPSoC 4000SとPSoC Creatorを勧める具体的理由が下記です。

MCUハードウェア開発者向け:自分で開発したハードウェアのテストプログラムを、できるだけ簡単に自作したいが、ソフトウェア開発技術を習得する時間が無い。

MCUソフトウェア開発者向け:制御ハードウェアの詳細を、データシートを読むよりも効率良く理解したい。ハードウェア担当者に直接聞くのも面倒だ。

これらの方々は、是非PSoC Creatorを試してください。ハード/ソフトの垣根がなく、自分が知りたいことをPSoC Creatorだけで調査でき、求める出力をCreateできるのがPSoC Creatorです。

PSoC Creatorを使うと、ハードウェア・ソフトウェア共に既存資産の活用と組み合わせでMCU開発するのが便利で効率的なのが良く解ります。ハードウェア的に言うとコンポーネント活用、ソフトウェア的に言うとAPI活用です。

PSoCの場合、外付けセンサー接続時にあると便利なアンプやコンパレータなどのアナログディスクリート回路や、AND/OR/NOTデジタルディスクリート回路などもMCU内蔵です。システム完成時の実装部品数が削減できます。

さらに、PSoC 4000Sには、タッチ・センサー制御に強いCapSenseも内蔵で、細かな調整もPSoC Creatorでできます。

一度使ってみれば、PSoC CreatorがPSoCの魅力を引き出すというトラ技解説が良く解ります。

PSoC 4000SとPSoC6テンプレート開発の可能性

弊社のPSoC 4/PSoC 4 BLE/PRoCテンプレートは、Cortex-M0対応で2015年発売当時は最新でした。

しかし、トラ技付属のPSoC 4100S搭載基板を活用できるテンプレートや、Entry Level第4世代PSoC 4000Sを使った新テンプレートも開発したくなりました。Cortex-M0+採用による低電力・高効率化が気になります。

例えば、PSoC 4000S CapSense Prototyping Kit($15)で新テンプレートを開発すると、タッチ・センサー機能も低価格で直にプロトタイプ開発ができそうです。更に高性能で低価格なPSoC 6ファミリ(Cortex-M4/M0+デュアルコア)にも興味があります。

PSoC 4000S CapSense Prototyping Kit
タッチ・センサー基板付きで$15と安価なPSoC 4000S CapSense Prototyping Kit

速報:Windows10 1607のマイコンIDE動作確認

Windows 10 Anniversary Update、Red Stone 1(RS1)のリリースが8月2日実施されました。

弊社マイコンテンプレート使用中のマイコンIDEを、このWindows 10 RS1、1607で動作確認しましたのでお知らせします。

IDEは、全て8月3日時点最新版です。マイコンテンプレートソフトのコンパイルと評価ボードへのダウンロード動作を確認しました。

マイコンIDEの詳細はコチラ、評価ボードはコチラに一覧表を掲載しております。

※Windows10 1511で動作していたものは、今のところ1607でも問題なく動作します。
※Windows 7時代に購入した評価ボードは、一部Windows 10で動作しない場合があります。この場合は、ボードドライバ(USBドライバ)の更新で動作するようになります。

Windows 10 1607動作確認マイコンIDE
マイコンIDE(ベンダ名) Windows 10 1607動作確認バージョン
CS+ for CC(ルネサス) V4.00.00 [15 Mar 2016]
e2 studio(ルネサス) Version: 5.1.0.022
LPCXpresso(NXP v8.2.0 [Build 647] [2016-07-18]
Kinetis Design Studio(NXP Version: 3.2.0
PSoC Creator(Cypress PSoC Creator  3.3 CP3 (3.3.0.9604)
Arduino IDE(Intel 1.6.10 Hourly Build 2016/07/26