新NXP誕生

NXPによるFreescale買収完了のお知らせメールが来ました。新NXPによる力強いメッセージは、コチラでご覧いただけます。
NXPとFreescaleのマイコンが今後どうなるかは、未だ不透明です。このままX-mas休暇に入るかもしれません。

ルネサス株式の一部売却や、東芝からSony/シャープへの技術移籍/移管が取りざたされています。日本半導体カンパニの先行きも不透明ですね。

半導体業界動向に惑わされないマイコン技術習得

NXPによるFreescale買収など、マイコン半導体ベンダーの動きが激しい2015年末ですが、唯一ともいえる日の丸半導体、ルネサスエレクトロニクスの筆頭株主の産業革新機構が、保有するルネサス株式の一部売却の検討に入ったというニュースが、11月21日報道されました。

売却先候補は、トヨタやパナソニックなどの日本企業と、ドイツ)インフィニオンなどが挙がっています。

日本企業がルネサスを保持したい理由は、自動車向けの需要や、相対的に弱体化した日本エレクトロニクス業界の現状が背景にあると思います。もちろん、日本人開発者にとっても、日本語環境や日本語コミュニティが提供されるルネサスマイコンは貴重な存在です。

今後の機構の動きは、要注意ですね。因みにルネサスのSynergy詳細が明らかになりました。
記事によると、“既存ファミリ「RX」「RZ」「RL」は長い成功の歴史があり、今後のロードマップが決定しており、顧客に長期サポートを約束しているので、ロードマップ変更ができない”、そこで、新たなCortex-M系を用いたSynergyが米国で開発されたようです。

つまり、「RX」「RZ」「RL」が既存国内資産継承と車載向け、「Synergy」が半導体業界の“Apple”目標のUS発新設計基盤でIoT向けのようです。
だとすると、この2つでルネサスを分割するシナリオが、最もありそうだ、と思いますが…?

マイコンは、「ARMとそれ以外」にコアが別れ、「車載とIoT」でマーケットが決まりつつあります。
自動車産業と同様、国レベルで保護や競争がある半導体業界のM&Aは、予測の域を超えています。しかし、状況がどう変わっても「開発者が生き残れる技術蓄積は必須」です。

シンプルな弊社マイコンテンプレートも、その1つになればと願っております。

PSoC 4 BLE Video Libraryの勧め

弊社推薦の評価キットCY8CKIT-042-BLE: Bluetooth Low Energy Pioneer Kitを使ってCypressのPSoC 4 BLEを自習する際に、とても役立つVideo Libraryを紹介します。

英語版ですが、PSoC CreatorのBluetooth Low Energy: BLEコンポーネント設定方法の解りやすい解説が得られます。Bluetooth仕様を全く知らなくても(=Zero Knowledge)、BLEコンポーネントの設定ができ、BLEを使ったアプリケーション開発ができる(かもしれません)。

ここが、このPSoC 4 BLE Video Library の優れた点です。
つまり、Bluetooth仕様理解よりも実用的な「BLEアプリケーション開発を重点に解説」しているので、解りやすく、かつ評価キットのみで動作確認ができます。「Bluetoothの必要最低限仕様を理解すれば開発ができる」のです。

Video Libraryアクセス方法

  1. PSoC Creator Start PageタブのProduct InformationのPSoC 4 BLEをクリックします。

    PSoC Creatorのクリック
    PSoC Creatorのクリック
  2. Cypressサイトが表示されますので、右のDESIGN SUPPORTのVideo Libraryをクリックします。

    Cypressサイトのクリック
    Cypressサイトのクリック
  3. Video Libraryページが表示されますので、PSoC > PSoC 4 BLEと選択すると、PSoC 4 BLE 101:1~6を含め2015年11月現在13個の動画が閲覧可能です。番号101は、内容が初心者向きであることを表すと思います(たぶん、20X、30Xが、中級/上級内容)。

    Video Libraryのクリック
    Video Libraryのクリック

ネットワーク回線が遅い、またはパソコンVideo能力が低い場合には、解像度は落ちますが個別にダウンロードも可能です。

Videoダウンロードのクリック
Videoダウンロードのクリック

* * *

内容が解りやすいことに加え、CreatorのAPI入力支援機能を使ったファームウエアソースの作成が「みもの」です。少量のソース追記で、実用的なBLEアプリケーション開発ができ、かつ拡張性も高いことが解ります。

これらソースは、Videoのように手動入力も可能ですが、CreatorのCode Exampleやキット付属ファームに同じものがあります。

BLEコンポーネントのGUIでBluetooth仕様が設定でき、さらに基本的な項目の設定さえできれば、その他はデフォルトで良さそうです。これなら、「UARTと同レベル」とまでは言い過ぎですが、簡単にBLEアプリケーションが開発できそうです。

Video Libraryには、紹介したPSoC 4 BLE以外にも多くの動画があります。聞きやすい英語で語られていますので、Cypressマイコン開発時は、是非視聴されることをお勧めします。

PSoC 4、PSoC 4 BLE、PRoC BLEサンプルファーム利用方法

Cypress評価キットCY8CKIT-042とCY8CKIT-042-BLEのサンプルファームを整理して示します。
前回の両キットへ機能追加する方法と合わせて、多くのCypress提供サンプルファームを効率よく使って、PSoC 4、PSoC 4 BLE、PRoC BLEを習得するためです。

Cypressの3サンプルファーム提供方法

一般的なマイコンベンダーは、AN:Application Noteと、IDE付属の「2つ」の方法でサンプルソフトを提供します。
※Cypressは、サンプルソフトを上位アプリケーションソフトと区別し、サンプルファームと呼びますので、以後ファームと記述します。

IDE付属は、マイコンの基本機能毎のファーム例、一方ANは、説明:Noteが必要な機能のファーム例です。

Cypressでは、さらに評価キット毎のファーム例も提供しますので、合計「3つ」のサンプルファーム提供方法があります。
評価キット付属ファームは、「キットのみ」で動作確認ができ、IDE付属ファームは、前回示した評価キットに「別途回路追加」が必要なものも含まれる点がその違いです。一覧にすると下表になります。

ファーム提供方法 提供場所 状況と概要(2015/11現在)
評価キット付属 CY8CKIT-042評価キットサイト 下記4種提供中

CY8CKIT-042サンプルファーム

CY8CKIT-042-BLE評価キットサイト 下記9種提供中

CY8CKIT-042-BLEサンプルファーム

AN AN90799などの個々にサイト提供 多数提供中

2015/10/2記事など

IDE付属 PSoC CreatorのCode Exampleで
PSoC 4200 BLEなどデバイス毎に提供
多数提供中

Code Exampleファーム

サンプルファーム留意点

CY8CKIT-042とCY8CKIT-042-BLEどちらの評価キット付属ファームもインストールすること

留意が必要なのは、CY8CKIT-042-BLEキット付属サンプルファームに、CY8CKIT-042キット付属のBlinking_LED(いわゆるLチカ)やDeep Sleepなどの最もベーシックなプロジェクトが無いことです。
理由は、これらプロジェクトが-042キットだけでなく、-042-BLEへも適用できるからです。

従って、CY8CKIT-042-BLEのみ購入した開発者でも、PSoC CreatorへCY8CKIT-042付属サンプルファームもインストールすることをお勧めします。
※⊞Kitsタブを開くとPSoC Creatorにインスト済みのキット付属ファームが表示されます。

なお、キット付属サンプルファーム単体の更新も行われます。因みに、CY8CKIT-042-BLE最新版は、10/06に更新されRevision *Fになりました。更新は、Update Managerまたは自動更新です。

IDE付属ファームのPDF説明書は、CY8CKIT-042を主として記述

CY8CKIT-042のリリースがCY8CKIT-042-BLEよりも早かったために、IDE付属ファームは、ADCなどの基本機能ほどCY8CKIT-042を主体に解説されています。
しかし、IDE付属ファームを基にプロジェクト化した時、Workspace Explorerに表示されるPDF説明書を注意して読めば、両キットのピン対応表などの注意事項が記載されているので、問題はないでしょう。

Workspace ExplorerのPDF説明書
Workspace ExplorerのPDF説明書

* * *

前回の評価キットへ簡単に機能追加するmbed-Xpresso Baseboardを使う方法と、今回の整理結果を念頭に置けば、サンプルファームを利用して効率良くPSoC 4 BLE、PRoC BLE、PSoC 4の習得ができると思います。

先ず評価キットのみで動作させるなら、評価キット付属サンプルファームで動作確認します。CY8CKIT-042-BLEのみ購入した開発者の方でも、CY8CKIT-042のサンプルファームをインストールし、Sleepなどのベーシック機能の動作確認もします。

プロジェクト変換方法

CY8CKIT-042プロジェクトをCY8CKIT-042-BLEプロジェクトへ変換するには、下記2方法が可能です。

  1. CY8CKIT-042-BLEで新規プロジェクトを作成し、CY8CKIT-042のTopDesign.cyschをコピー後、デザイン・ワイド・リソースを設定
  2. プロジェクト毎コピーして、Device SelectorでデバイスをCY8C4245AXI-483からCY8C4247LQI-BL483へ変更。さらにデザイン・ワイド・リソースを修正。

CY8CKIT-042とCY8CKIT-042-BLEへの機能追加

ベンダ提供のマイコン評価キットには、豊富なサンプルソフトが提供されますが、これらサンプル動作確認に、別途回路の追加が必要な場合も少なくありません。

この対応に、Arduinoシールドコネクタ付き評価ボードや評価キットが多くなりました。1枚数千円程度の既成Arduinoシールドボードを、評価キットに乗せれば、簡単に回路や機能の追加ができるからです。

別の方法として、mbed – Xpresso Baseboardオスーオス結線を使った機能追加例を示します。
CY8CKIT-042:PSoC 4 Pioneer Kit、CY8CKIT-042-BLE:Bluetooth Low Energy Pioneer Kitは、Arduinoシールドコネクタが実装されていますので、この2キットで機能拡張方法を示します(キットはコチラの記事参照)。

CY8CKIT-042へLCD追加

mbed – Xpresso Baseboardは、2 x 16文字LCD(HD44780コンパチブル)や電子ブザー、24LC256のI2C EEPROM、ADC入力用のポテンショメータ、D-Subコネクタ付きUARTドライバなど、標準的なマイコン周辺回路が実装済みです。また、5Vと3.3V電源がBaseboardデバイスへ直接供給されるので、機能追加時、マイコン評価キット側の電力負荷があまり増えないのも安心材料です。

CY8CKIT-042のLCD表示機能追加例を示します。サンプルファームは、PSoC CreatorのCode Example「CharLCD_CustomFont」です。CYPRESS文字は、Character LCDモジュールのカスタム文字エンコーディング出力例です。

CharLCD_CustomFont出力
CharLCD_CustomFont出力
CY8CKIT-042への機能追加
CY8CKIT-042への機能追加

数年前までは、弊社もブレッドボードへUARTドライバなどを追加し、サンプルソフトの動作確認をしていました。しかしこの方法は、配線ミスや部品実装の手間がかかります。
mbed – Xpresso Baseboardを使うと、33ピンx2コネクタ(P9/P10:メスとP11/P12:オス)と評価キットのArduinoコネクタ間の配線のみに注意すれば良くなります。

CY8CKIT-042-BLE Auduinoコネクタとmbed – Xpresso Baseboardコネクタ

CY8CKIT-042-BLEとmbed – Xpresso Baseboardのコネクタを示します。ブレッドボードで使うジャンパー線:オスーオスが、機能拡張の結線に使えることが解ります。

CY8CKIT-042-BLEへの機能追加
CY8CKIT-042-BLEへの機能追加

サンプルソフトが直ぐに試せるマイコン開発環境

mbed – Xpresso Baseboardは、NXPのLPCXpresso評価ボード専用の機能追加BaseBoardですが、一般的なArduinoシールドコネクタ付きのマイコン評価ボードや評価キットなら、ブレッドボードを使ってディスクリートでハード追加するよりも確実で手軽に、かつ、シールドボードを複数枚購入するよりも低価格で、機能と回路追加ができます。

  • Arduinoシールドコネクタ付きマイコン評価キットや評価ボード
  • mbed Xpresso Baseboard
  • ブレッドボードジャンパー(オスーオス)

この3つが、低コストで多くのサンプルソフトをすぐに試用できるマイコン開発環境です。

PSoC 4 Pioneer Kit: CY8CKIT-042解説良書

CY8CKIT-042-BLE

弊社のCypress PSoC 4推薦開発ボードは、CY8CKIT-042-BLE: BLE Pioneer Kitです。

IoTマイコン無線技術のBLE: Bluetooth Low Energy(Bluetooth SIGのBluetoothコア仕様4.1認定済み、4.2ではないことには注意)を手軽に試せること、ROM/RAMが128KB/16KBと十分なこと、同じボードで価格を抑えたPRoC BLEも試せることなどがその理由です(ボード実装デバイスPSoC 4 BLE、PRoC BLE、PSoC 4の仕様比較は、前回記事参照)。

CY8CKIT-042を知るには?

但し、もう1つのテンプレート動作環境、PSoC 4 Pioneer Kit: CY8CKIT-042ボードについて、知りたいとお考えの方も多いと思います。2年前の記事ですが、このCY8CKIT-042についての解説書が、大原雄介氏がマイナビに投稿されている「夏休み工作向け? - PSoC 4でお手軽マルチファンクションデバイスを作る」です。

PSoC 4の位置づけ、ボード構成、PSoC Creatorの使い方、サンプルファームの応用の仕方などが解りやすく解説されています。記事記載のプロジェクトソースも提供されており参考になります。

最新PSoC Creator 3.3 CP1で、このプロジェクトをビルドした時のリソースメータが下図です。リソース使用量、残量が一目で解ります。

PSoC Creator 3.3のリソースメータ出力
PSoC Creator 3.3のリソースメータ出力

この記事をご覧になったうえで、ご自分のPSoC 4開発ボードとしてCY8CKIT-042で十分か、それとも弊社推薦のCY8CKIT-042-BLEにするかを判断されれば良いでしょう。

因みに、開発中のPSoC 4テンプレートは、PSoC 4 BLE、PRoC BLE、PSoC 4全てに対応するため、どちらのボードでも動作確認し提供いたします。間口を広げて、少しでも販売個数を拡大したいからですが、PSoC 4でできることは全てPSoC 4 BLEでもできることも理由です。

また、メニュードリブンテンプレート動作にデバイスのUARTコンポーネントを使う際、CY8CKIT-042では、CY8CKIT-042-BLEでは不要な、下図のようなボード上でPSoC 5LPとの結線が必要です。チョット面倒ですね!

CY8CKIT-042のPSoC 5LP機能
CY8CKIT-042のPSoC 5LP機能

PSoC 5LPは、ボードデバイスのデバッグ環境を提供し、同時にUART-USB変換も行います。これによりUSBケーブル1本で、Creator開発ソフトのダウンロードとデバッグ(ルネサスのE1デバッガ相当機能)、Tera TermなどのターミナルソフトでUART送受信ができます。

Cypress PSoC 4、PSoC 4 BLE、PRoC BLEテンプレート開発着手

PSoC 4、PSoC 4 BLE、PRoC BLE向けテンプレート開発にあたり、対象デバイスの仕様と動作確認ボードを示します。

CreatorのDevice Selector(Project>Device Selector…)を使ってFamily欄のPSoC 4200、PSoC 4200 BLE、PRoC BLE以外の☑チェックを外します。説明の都合上、本ブログ対象の3デバイスを抜粋表示した結果が下図です。Device Selectorは、Cypressデバイスの仕様が一覧表示できるので重宝します。

CreatorのDevice Selector出力(ブログ掲載3デバイスのみ抽出)
CreatorのDevice Selector出力(ブログ掲載3デバイスのみ抽出)

テンプレート動作環境

テンプレートは、先日紹介したPSoC 4 pioneer Kit: CY8CKIT-042とBluetooth Low Energy Pioneer KIT: CY8CKIT-042-BLEの2種ボードで動作確認します。このボードの実装デバイスが、Device Selectorで示した3デバイスです。

テンプレート動作環境:動作確認ボード ボード実装デバイス 通称
CY8CKIT-042 CY8C4245AXI-483 PSoC 4
CY8CKIT-042-BLE CY8C4247LQI-BL483 PSoC 4 BLE
CY8CKIT-042-BLE CYBL10563-56LQXI PRoC BLE

 

CY8CKIT-042-BLEのPSoC 4 BLEとPRoC BLEは、同じBaseboardに載せ替えて動作するDaughterボードです。Daughterボードは、IOピンコンパチで単体購入も可能、PSoC 4 BLEのCY8CKIT-142が1343円、PRoC BLEのCY5671が1208円です(2015年10月Digi-Key調べ)。
BLEアンテナ付きでブレッドボードにも実装できてこの価格、「IoTマイコンに最適」と思います。

CY8CKIT-042-BLEのDaughterボード(左:PSoC 4 BLE、右:PRoC BLE)
CY8CKIT-042-BLEのDaughterボード(左:PSoC 4 BLE、右:PRoC BLE)

PSoC 4、PSoC 4 BLE、PRoC BLEの仕様

テンプレート対象デバイスは、全てARM Cortex-M0コア、Max. 48MHz動作です。また、CapSenseやLCD Drive、TCPWM: Timer/Counter/PWMやUARTなどの通信関連、ADC/DACは全デバイス同一です(※API経由でソフト制御する限りは同じに見えます)。

IoTマイコン「PSoC 4 BLE」を中心に、UDB: Universal Digital Blockを特定用途にPre-configured Blockした低価格用に「PRoC BLE」があり、もう一方でBLE機能を除きROM/RAM削減、一般用途向けに「PSoC 4」があると解釈すれば良いでしょう。
オペアンプやコンパレータのアナログ回路は、PSoC 4/PSoC 4 BLEのみに実装されています。これはPRoC BLEをIoTセンサーマイコンとして使う時は、留意が必要です。

テンプレート実装機能

ROM/RAMが最も小さいPSoC 4でも容易に実装できるように、RL78/G1xテンプレートで開発したTinyテンプレート機能を、本対象デバイスに実装します。

テンプレート実装機能 RL78/G1xのTinyテンプレート(開発済み)
ROM/RAM
使用量=345/6バイト
PSoC 4/PSoC 4 BLE/PRoC BLE向けの
テンプレート
ROM/RAM
使用量:後日公開予定
周辺回路Start Up関数起動 実装 実装
複数関数の時分割起動 実装 実装
Sleep/Deep Sleep起動 実装 実装
WDTリセット 実装 実装
マニュアルリセット 実装 実装

 

Tinyテンプレートには、SysTick、WDT: Watch Dog Timer、場合によってはRTC: Real Time Clockが必要ですが、これらにDevice Selectorで示したコンポーネントは、「使いません」。

これらは、ARM Cortex-M0コア内に実装済みだからです。つまり、同じARM Cortex-M0/M0+コアのLPC8xxテンプレートやLPC111xテンプレート、Kinetis Eテンプレートで使ったテクニックがそのまま流用できます。これが、ARM Cortex-M0/M0+コアが32ビットマイコンの主流になりつつある理由の1つです。

マイコン必須機能は実装済みでARMコアが提供するので、利用ベンダは、周辺回路のみに注力して他社差別化ができ、一方マイコン開発者は、Tinyテンプレートのような基本機能は、ベンダ間差異を意識せずに共通のARMコア機能を使って開発できるのです。

つまり、本テンプレート応用例としてボード実装済みのLEDとSWを使った「シンプルテンプレート」と、「メニュードリブンテンプレート」用にUARTコンポーネントを1個使用しますが、それ以外のDevice Selectorで示したコンポーネントは、テンプレートの購入者様の独自応用例としてそのほとんどが活用できます。

※ルネサスRL78/G1x向け、NXP LPC8xx向け、LPC111x向け、Freescale Kinetis E向けテンプレートは、シンプルテンプレートとメニュードリブンテンプレートの2つをセット、1000円(税込)で販売中です。

Cypressテンプレート開発スケジュール

Cypress PSoC 4/PSoC 4 BLE/PRoC BLE向けの本テンプレートは、2015年末までに第1版リリースを予定しています。リリースまでは、Cypress CreatorのTipsやBLE: Bluetooth Low Energyの使い方などをブログ記載する予定です。

無償でも優れたIDEのCreator、個人でも購入できる低価格な評価ボード、BLEも簡単に試せるCypressデバイスと弊社テンプレート、IoTマイコン開発に使ってみませんか?

ルネサスSynergy、デバイス単体提供の予定なし

2015年12月登場のルネサスSynergy、多品種提供中のルネサスマイコンへ、更に追加されるCortex-M0+採用の新MCUをイメージしていましたが、全く違うようです。
根拠となる記事をピックアップし、Synergy関連のみをまとめてみました。

Synergy

「本ブログ対象ではなさそう」ですが、その狙いは、弊社テンプレートにも活かそうと思います。

PSoC開発手順

PSoC無償IDEの最新版:PSoC Creator 3.3を使ったPSoC開発手順を示します。

このIDEは、Windows 10へ対応、PSoC 3/4/5とPRoC BLEのデバイス全てと標準評価ボードへ対応、無償版でもROM容量制限なし、PDF資料やCypressサイトへのアクセスがIDEから直接可能など、他社IDEと比較して使い易いマイコンIDEです。

Lチカ処理の開発手順

初めてCreatorを使う方のために、最新版3.3と評価ボードBluetooth Low Energy Pioneer KIT: CY8CKIT-042-BLEを用いたLチカ処理の開発手順を示します(評価ボードは、前記事参照)。PSoC Pioneer Kit: CY8CKIT-042でもプロジェクトタイプ選択が異なるのみで同じです。

CY8CKIT-042-BLEは、CY8CKIT-042搭載のPSoC 4にBLE: Bluetooth Low Energy、Bluetooth 4.1機能を追加したPSoC 4 BLEと、コスト重視のPRoC BLEモジュールが載せ替え可能な評価ボードです。BLEを使う可能性が少しでもある方は、CY8CKIT-042-BLEをお勧めします。

Creator第1段階設定手順
Creator第1段階設定手順

PSoC理解の必読書で示した3種のLチカ実現方法の中から、最も標準的なCortex-M0単独制御の場合を示します。ポイントは、「HW connectionの☑を外す」ことです。☑がデフォルトで、これがコンポーネント制御の場合に相当します。

Creator第2段階設定手順
Creator第2段階設定手順

使用コンポーネント、この場合はDigital Output Pinを回路図へ配置後、プロジェクト名.cydwr:デザイン・ワイド・リソースで、ピン配置やMCU動作クロック、割込みの設定などを行います。標準評価ボードの場合は、ピン配置以外は、デフォルト設定でOKです。

P3[7]横の緑マークは、Creator 3.3新機能で、配置可能性(緑:OK、黄:注意、灰色:NG)を示します。評価ボードで青LEDをLチカさせる場合はP3[7]、赤LEDならP2[6]、緑LEDならP3[6]を設定します。コンポーネント入出力を、物理ピンへ自由に配置できるPSoCならではの機能です。

使用コンポーネントと物理ピン配置が終わったこの段階で、ビルト(Shift+F6)を実行します。
この目的は、mainソース作成時に、API入力支援を機能させるためです。これはVisual Studioに似た機能で、関数はマゼンタ、変数はシアンでリスト表示されるプロパティを選択しさえすれば、API関数を使ったC言語ソースを高速に作成可能です。

Creator第3段階設定手順
Creator第3段階設定手順

ソース作成後ビルドし、プログラム(Ctrl+F5)、またはデバック(F5)で評価ボードでの動作確認ができます。スッテプオーバー(F10)やステップイン(F11)を使うデバッグ作業は、他社IDEと同じです。

Creatorで生成されるmain関数は、無限ループとループ前処理の「シンプルな2構成」です。
テンプレート選択時に、Code Exampleを選ぶと、多くのサンプルファームが参照できます。どれも、このシンプル構成に機能追加したサンプルです。サンプルのPDF説明資料もWorkspace Explorerに表示されます。
API関数は、コンポーネント毎にGenerated_Sourceフォルダ内にあります。入力支援が働くのでGenerated_Sourceフォルダを覗く必要は、ほとんど無いと思います。

PSoC開発手順まとめ

マイコンIDE早期習得のコツでも示したように、第1段階で使用マイコン、この場合は評価ボードを設定し、第2段階で使用コンポーネントとピン配置などのハード関連を設定しビルド、第3段階でIDE生成スケルトンソースへAPI使用順序を記入し、ビルド&ボードデバッグすることは一般的なIDEと同じです。

手順をまとめて、一覧にすると下記になります。

PSoC開発手順
PSoC開発手順

IoTマイコン必須技術:無線通信の習得

Creatorは、良くできた無償マイコンIDEです。添付サンプルも多く、詳しい説明資料も付いているので自習にも最適です。付属ツールのUpdateは、Update Managerで、PDFも含めた資料のUpdateは、Document Managerで行えるなど機能も豊富です。仕事で使うマイコンがPSoCやPRoC以外の開発者でも、低コストでPSoC開発環境が整い、その使い方もここで示したように簡単なのでお勧めです。

BluetoothやWi-Fiなどの無線通信は、今後のIoTマイコン開発にとって必須技術になりつつあります。BLEを持つIoT向きマイコン:PSoC 4 BLEやPRoC BLEを、パソコンやスマホで実際に通信をしながら試すのなら、評価ボードはCY8CKIT-042-BLEが良いでしょう。

※Creatorは、PSoC 3開発のみに無料Keil Compiler for 8051の1年毎インストールが必要です。未インストール時は、ワーニングが表示されます。
※Creatorでネット接続エラーが発生する場合は、ChromeからFirefoxなどブラウザを変えると改善されます。

PSoC理解のための必読書

Cypressサイトは、“珍しく”日本語表示の選択肢があり、和訳資料も多くあります。中でも、PSoC理解のための必読書を2つ紹介します。

  1. PSoC 4入門:和訳版あり
  2. PSoC 4 Interrupt:英語版のみ

PSoC 4入門: AN79953

PSoC 4の周辺回路:コンポーネントは、「CPU制御無しで単独動作が可能」です。ここが標準MCUと最も異なる点です。

標準MCU(図5)とPSoC(図6)ブロック図比較(資料1より抜粋)
標準MCU(図5)とPSoC(図6)ブロック図比較(資料1より抜粋)

資料1の図6.PSoCブロック図は、アナログ/デジタルシステムが、ARM Cortex-M0と同列であることを示しています。つまり、アナログ/デジタルシステム単独で、Cortex-M0の代わりも出来るのです。1秒毎の赤LED点滅、いわゆるLチカのソースで違いを示します。

Lチカmainソース、標準(左)とPWM単独(右)の違い
Lチカmainソース、標準(左)とPWM単独(右)の違い

左が標準MCUと同様、Cortex-M0でLチカしたmain()、右がPWM単独でLチカしたmain()です。右側は、PWM初期化:PWM_1_Start()のみで無限ループ内の処理がありません。初期化後、直ぐに赤LED点滅が始まります。どちらの記述でもLチカを実現できます。

従ってPSoCの場合、処理をCortex-M0で行うか、またはコンポーネント単独で行うかの検討も必要になります。方針としては、「できるだけ多くの処理をコンポーネントで行い、残りをCortex-M0で処理する」、これで電力消費の最も多いCortex-M0の処理軽減が可能となります。これがPSoCの特性を活かした設計だと思います。

資料1はコンポーネント単独制御(赤と緑)Lチカサンプルと、IDE: PSoC Creatorの使い方が示されています。

PSoC Creatorは、私が一番使いやすいと思う無償IDEで、最新版は3.3です。旧3.2版にリソースメータなどの機能が追加されており、8週毎にコンポーネントパックなどの更新がなされるそうです。ROM容量制限などはありません。

PSoC Creatorは、回路図(*.cysch)へ使用コンポーネントを配置し、そのプロパティ設定後、回路図レベルで一度BuildすることでファームウエアへのAPI生成を行います。これは、ルネサスCS+のコード生成や、Freescale KDSのProcessor Expert: PEと同様Rapid Application Development: RAD機能です。

PEはコンポーネント選択のみですが、PSoCは、前述のコンポーネント単独でも動作するため、コンポーネント間の接続も記述できる回路図を用います。API生成後は、ソース記述中にVisual Studioライクな入力候補補完機能が働きます。

回路図の青色で追記されたLEDなどは、ソース記述のコメントに相当します。これにより出力LowアクティブでLEDが動作することが一目で解ります。

Cypressは、ソースを「ファームウエア」と記し、上層のアプリケーションソースとは明確に分けるようです。また、ZIP版の本資料で、このサンプルファームも同時提供されます。

PSoC 4 Interrupt: AN90799

Cortex-M0とNVIC(資料2より抜粋)
Cortex-M0とNVIC(資料2より抜粋)

Cortex-M0コアのマイコンは、割込みコントローラ:NVICが使いこなしのポイントです。
3つのサンプルファームが提供される資料2を読むと、レベル/エッジトリガやプライオリティなどの割込み関連をPSoC Creatorでどのように設定するかが解ります。

デフォルト生成されるISR: Interrupt Service Routineは、‘#START~’#END間にユーザ処理を追記すれば再Buildしても保持されるなどは、一般的なEclipse IDEと同じです。

面白いのは、NVICの動作遅延が一覧(Table 3)になっている点です。他社資料でこのような詳細情報は見当たりません。Cypress資料全般に言えるのは、記述が丁寧で適切、しかも詳細な点です。

Figure 17には、資料1にも出てきた使用頻度が高いTCPWMコンポーネントの割込み設定方法が示されています。前述のコンポーネント単独とCortex-M0単独でLチカさせる処理以外に、NVICを使ってLチカさせることもできます。Lチカ実現方法をまとめると下表になります。

Lチカ実現方法 概要
コンポーネント単独制御 TCPWMコンポーネント出力で赤LED制御(資料1の方法)
コンポーネントとCortex-M0で制御 TCPWMコンポーネントのISRで赤LED制御(資料2の方法)
Cortex-M0単独制御 main()で赤LED制御(標準的な方法)

 

資料2は、この他にGPIO入力でLED制御するサンプルや、WDT設定サンプルも記載されています。また、新マイコンテンプレート候補のPSoC 4/PRoCテンプレートで用いるSysTick Timerの記述もあります。
弊社販売中の4種テンプレート(ルネサスのRL/G1xテンプレート、NXPのLPC8xxとLPC111xテンプレート、FreescaleのKinetis Eテンプレート)は、コチラをご覧ください。

* * *

PSoC 4に関する技術資料は、他にもたくさんあります。ここでは、最初に目を通すべき2資料を示しました。

RTOSを使わないマイコンソフトは、Lチカでまとめた3つの方法のどれかで処理を作成します。PSoCは、一般的なMCUでは不可能なコンポーネント単独制御が可能です。これが活用ポイントです。多くの資料から、このポイントをピックアップすると速習できるでしょう。

標準的なEclipse IDEに慣れた開発者、特にソフト担当者は、PSoC Creatorの回路図にコンポーネントを配置することに違和感を覚えるかもしれません。コンポーネントのみでも制御できるPSoCたるゆえんです。
BLEコンポーネントなどは、回路図に配置するだけです。配線も書込めるコンポーネントエントリーシートと思えば良いでしょう。逆にハード担当者にとっては、より身近にマイコン開発ができるツールです。
PSoC On-Demand Trainingを見るとPSoC Creatorの動作が解ります。

要は慣れの問題で、API生成というIDEの目的は、どのマイコンでも同じです。IDE習得のコツなどを参考にすれば、慣れるのも早いと思います。