PSoC 4、PSoC 4 BLE、PRoCテンプレート1.0版発売

CypressのPSoC 4、PSoC 4 BLE、PRoC向けマイコンテンプレート1.0版を1000円(税込)で発売します。
※CypressはマイコンではなくICと仰いますが、ここは解り易く「マイコンテンプレート」と記します。何とか年内発売に間に合いました…(^_^;)。

マイコンテンプレート概要、仕様、動作ボード

テンプレート概要と仕様、PSoC 4開発キットPSoC Pioneer Kit:CY8CKIT-042と、PSoC 4 BLE/PRoC開発キットPSoC 4 BLE Pioneer Kit:CY8CKIT-042-BLEでテンプレートを動作させた時の様子を示します。
これらは、テンプレート付属のもくじ資料P1~P3を抜粋したものです。

PSoC 4/PSoC 4 BLE/PRoCテンプレート概要
PSoC 4/PSoC 4 BLE/PRoCテンプレート概要(もくじP1)
PSoC 4/PSoC 4 BLE/PRoCテンプレート仕様
PSoC 4/PSoC 4 BLE/PRoCテンプレート仕様(もくじP2)
PSoC 4/PSoC 4 BLE/PRoCテンプレート動作(もくじP3)
PSoC 4/PSoC 4 BLE/PRoCテンプレート動作(もくじP3)

開発キット単独でテンプレートを動作させた時を「シンプルテンプレート」、開発キットとBaseboardを接続しLCDやUARTドライバ等の機能を追加して動作させた時を「ベースボードテンプレート」、CY8CKIT-042-BLEのBluetooth Low Energyを動作させた時を「BLEテンプレート」と名付けました。
Bluetooth 4.2認証デバイスの載せ替え搭載については、前回記事を参照ください。

機能追加に使用したBaseboardは、NXPのLPCマイコンテンプレートで使ったものと同じです。詳しくはコチラを参照ください。

Cypress開発キットは、単独でもCapSenseやUART- USB変換等かなりの機能を実装済みで、良質なサンプルファームや自習Videoも多数あります。
そこで、「PSoC 4/PSoC 4 BLE/PRoCの習得」だけでなく、これらサンプルファームを活用、流用したアプリケーションの早期開発、いわゆる「プロトタイピング開発にも役立つテンプレート」として開発しました。

P4以降のもくじに示したように、組込OSを使わずに簡単にマルチタスク処理ができるテンプレートの仕組みや、複数のサンプルファームを流用/活用してテンプレートへ組込み、アプリケーションを開発する方法に重点を置いて説明しています。

既に発売済みのRL78/G1x、LPC8xx、LPC111x、Kinetis Eマイコンテンプレートは、マイコンテンプレートサイトをご覧ください。

マイコンテンプレートサイトは2016年に更新

このサイトへ本PSoC 4、PSoC 4 BLE、PRoCテンプレートの情報も追加予定ですが、今日現在、サイト更新が本テンプレート発売に間に合っておりませんので、ブログでの通知のみとなりました。

全てのもくじ内容を含む「PSoC 4、PSoC 4 BLE、PRoCテンプレート」のご購入方法は、サイト記載と同じですので、ご希望の方は、コチラを参照してください。

年明け後、ゆっくりマイコンサイトの更新をいたします。本年も、いろいろお世話になりました。皆さま、よいお年をお迎えください。

PSoC 4 BLE Bluetooth 4.2認証済み

PSoC Creator起動時に表示されるStart Pageには、最近使ったプロジェクトやサンプルファームだけでなく、Cypressの最新情報が新しい順に表示されます。現在の最上位は、”PSoC 4 BLE now Bluetooth 4.2 Qualified”で、クリックすると当該ページがブラウザで表示されます。

PSoC 4 BLE now Blutooth 4.2 Qualified
PSoC 4 BLE now Bluetooth 4.2 Qualified

上記の関連日本語記事が、12月14日コチラに記載されました。Bluetooth 4.2仕様の4.1からの3つの変更点や、今のところBluetooth SIGの4.2フル機能認証デバイスが、Cypress製品のみであることが解ります。

CY8CKIT-042-BLEへBluetooth 4.2ボード搭載可能

このBluetooth 4.2認証済みのPSOC 4 BLEとPRoC BLEデバイスで、CY8CKIT-042-BLEへ搭載可能なDaughterボードがCypressサイトで各$15で販売中です。

Bluetooth 4.2仕様と4.1仕様のPSoC 4 BLEとPRoC Daughterボード
通称 Bluetooth 4.2 認証済み Bluetooth 4.1認証済み(CY8CKIT-042-BLE搭載)
PSoC 4 BLE CY8C4248LQI-BL583

CY8CKIT-143A
CY8CKIT-143A
CY8C4247LQI-BL483

PSoC BLE Daughterボード
PSoC BLE Daughterボード
PRoC BLE CYBL10573-56LQXI

CY5676
CY5676A
CYBL10563-56LQXI

PRoC BLE Daughterボード
PRoC BLE Daughterボード

 

Bluetooth 4.2仕様のBLEコンポーネントも、BLE 4.1現行版同様、簡単なプロパティ設定で使えます。
現行のCY8CKIT-042-BLE搭載のデバイスで4.2仕様は出来ませんが、同じ設計手法が使えるので安心です。
※CY8CKIT-042-BLE搭載デバイスは、以前の記事を参照してください。

Nexus 5Xなどの新スマホには、Bluetooth 4.2が搭載されています。弊社推薦開発環境のCY8CKIT-042-BLEは、Bluetooth 4.2/4.1両仕様のPSoC 4 BLEとPRoC BLEのDaughterボードが載せ替えられるので便利です。

PSoC 4, PSoC 4 BLE, PRoC習得Videoとテンプレート

2015年11月5日更新のPSoC 101 Video Library、Lesson00~Lesson17を紹介します。
CY8CKIT-042: PSoC 4 Pioneer Kitを使ってCreator基本操作からPSoC 4プログラミングまでが良く分かります。

Lesson内容

  • PSoC 101_Lesson00_Intro
  • PSoC 101_Lesson01_OutputPins
  • PSoC 101_Lesson02_InputPins
  • PSoC 101_Lesson03_Interrupts
  • PSoC 101_Lesson04_HardwarePins
  • PSoC 101_Lesson05_ToggleFF
  • PSoC 101_Lesson06_Basic_Counter
  • PSoC 101_Lesson07_Counter
  • PSoC 101_Lesson08_PWM
  • PSoC 101_Lesson09_Timer
  • PSoC 101_Lesson10_I2CRx
  • PSoC 101_Lesson11_I2CTx
  • PSoC 101_Lesson12_UART
  • PSoC 101_Lesson13_CapSense
  • PSoC 101_Lesson14_StatusReg
  • PSoC 101_Lesson15_ControlReg
  • PSoC 101_Lesson16_Sleep
  • PSoC 101_Lesson17_DeepSleep

英語版ですが、たとえ英語が全く分からなくても、私の下手な解説よりも内容が濃く、解り易いことは確実です。解像度は落ちますが、Videoダウンロードも可能ですので、スマホ等でオフライン視聴もできます。

CY8CKIT-042-BLEプロジェクトもダウンロード可能

CY8CKIT-042にBluetooth Low Energyを追加した弊社推薦開発キットCY8CKIT-042-BLE: Bluetooth Low Energy Pioneer Kit用のプロジェクトファイルもダウンロード可能です。CY8CKIT-042-BLEをお使いの方は、こちらを使って同じ内容が習得できるので便利です(BLE機能のVideoは、以前の記事参照)。

これらの内容を習得すれば、シングルタスクのPSoC 4、PSoC 4 BLE、PRoC開発は問題なくできると思います。

PSoC 4/PSoC 4 BLE/PRoCテンプレート

では、どのような時に開発中のテンプレートが役立つのでしょうか?

これらにより、さらに「実務に向いた実践的で、かつ効率的なアプリケーション開発」ができます。PSoC4/PSoC 4 BLE/PRoCテンプレートは、本年末リリース予定です。ご期待ください。

発売中のRL78/G1x、LPC8xx、LPC111x、Kinetis E対応マイコンテンプレートはコチラを参照してください。

DragonBoard 410cが気になる

DragonBoard 410c

入手性が良く価格も手ごろなIoT向けPCは、Raspberry Pi 2 Model Bや先日発売のRaspberry Pi Zeroが有名です。これらボードの比較は、コチラが参考になります。ボードへWindows 10 IoT Coreをインストールする記事も多くあります。

これらIoT向けPCには、ネットワークへ接続するためのEthernetポートを持っています(Pi Zero除く)。IoTセンサマイコンの情報収集や管理を行い、クラウド側コンピュータへ接続するためです。但し、マイコン側への接続は、GPIO経由でした。

ここに少し違和感を覚えていたのですが、この違和感が無いIoT向けPCが「DragonBoard™410c」です。

マルチOS対応のDragonBoard™410c

  • Android 5.1
  • UbuntuベースLinux
  • Windows 10 IoT Core

DragonBoard™410cで動作するOSは3種類です。Windows 10 IoT Coreは当然でも、Android 5.1も動作すること、IoTマイコン無線接続に使えるBluetooth 4.1を実装済みであることが気に入っています。Raspberryとの比較は、コチラを参照してください。

日本では、アロー・ユーイーシー・ジャパン株式会社とチップワンストップが独占販売するそうです。

Windows 10 IoT CoreとAndroidメリット

どちらのOSもBluetoothをサポート済みです。ボード購入時にインストール済みのAndroidには、直ぐに使えるアプリが多くあります。開発環境もVisual Studioがあれば、UWP:ユニバーサルWindowsプラットフォーム開発がなんとかなりそうです。

まだ参考記事数は少ないですが、今後いろいろな情報が出てくればと期待しています。

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

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つになればと願っております。

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習得のコツなどを参考にすれば、慣れるのも早いと思います。

PSoC 4とPRoC BLE概要

アプリケーションの広い範囲を、一般的なマイコンよりも少ないデバイスでカバーできる」、これがCypressのPSoCです。

  • PSoC:     Programmable System-On-Chip
  • PRoC:     Programmable Radio-On-Chip
  • MCU:      Micro Controller Unit
  • BLE:        Bluetooth Low Energy

PSoCの特徴

一般的なマイコン:MCUは、制御コアとADCやUARTなどのアプリケーションに必要なコンポーネントがセットになったデバイスです。必要なコンポーネントが無い、または不足する場合には、制御コアとコンポーネントの選択肢が記載されたセレクションガイドからアプリに合うMCUを選びます。
つまり、元々アプリケーション起因なので、MCUのアプリ適用範囲は限定的です。

一方、PSoCのコンポーネントは、コンポーネント単体でプログラマブルです。1つのコンポーネントで複数の異なる機能を実現でき、これはデジタル回路だけでなく、アナログ回路のコンポーネントも同じです。また、コンポーネント間接続も、プログラマブルです。これら機能は、動作中でも変えることができるリコンフィグラブルです。

PSoC 4ブロック図(データシートより抜粋)
PSoC 4ブロック図(データシートより抜粋)

PSoCを「カメレオンIC」とトラ技2013年7月特集で呼んだのは、制御コア以外のアナログ/デジタルコンポーネントがこのように状況に応じて変わるからです。
ゆえにPSoCは、MCUよりもアプリケーションの対応自由度が高いのです。

PSoC 4デバイス価格調査

プログラマブルなコンポーネントを持つPSoCはMCUより高価です。制御コアをARM Cortex-M0/M0+とした時のPSoCとMCU価格差をDigikeyで調査した結果が下表です(※ほぼ同じスペックの比較)。

ベンダ
型式
 

CYPRESSCY8C4245AXI-483

 

NXPLPC1114FBD48/302

 

FREESCALEMKL05Z32VLF4

制御コア Cortex-M0 Cortex-M0+
コア最大速度 48MHz 50 MHz 48 MHz
ROM/RAM 32kB/4kB
デジタルコンポーネント 4SPI, 2I2C, 4UART 2SPI, I2C, UART SPI, I2C, UART
アナログコンポーネント 12b ADC, 2OP AMP, 4CMP 10b ADC 12b ADC、12b DAC
GPIO 36 42 41
パッケージ 44-TQFP 48-LQFP 48-LQFP
2015/9 Digikey価格 526 414 339

 

アプリへの柔軟性や部品の共用化へデバイスコストアップをどれだけ許容するか、マイコン選定時の永久課題です。個人的には、面白い機能盛りだくさんのPSoC 4を活用したいと思います。

PSoC 4 BLE動画

PSoC 4に、IoTセンサマイコンのトレンド、Bluetooth 4.1のBLEコンポーネントを追加したのがPSoC 4 BLEです。BLE Pioneer Kitの動画(英語)で、IoTマイコンPSoC 4 BLEの動作や特徴が解ります。

BLE機能を一体化したPSoC 4 BLEやPRoC BLE(後述)と、MCUにBLEを外付けにするアプローチ、どちらが優れているかは検討が必要です。しかし、一体による小型化、iPhone/AndroidやパソコンとのBluetooth通信確認済みのアンテナ、しかも各国の規格認証済みであるなど魅力があると思います。

本ブログの対象Cypressデバイス:
PSoC 4、PSoC 4 BLE、PRoC BLE

制御コアが8051のPSoC 3、ARM Cortex-M3のPSoC 5もありますが、本ブログは、制御コアに8/16ビットマイコンの置き換え市場を狙うCortex-M0を使った以下3デバイスを対象とします。

  1. PSoC 4
  2. PSoC 4 BLE
  3. PRoC BLE

PRoC BLEは、普通のMCUで使うADCやUARTのコンポーネントに、BLEコンポーネントを追加したIoT MCU市場へ殴り込みをかけるCypressデバイスで、アナログコンポーネントブロッグが無いデバイスです(前回記事のブロック図参照)。
今日現在DigiKeyで未販売ですので価格は不明ですが、PSoC 4 BLEよりはかなり安くなると思います。

* * *

PSoCの特徴と3つのブログ対象デバイスについて示しました。これらデバイスは、制御コアがCortex-M0のため、普通のMCU開発者なら試しに使ってみる障壁は少ないと思います。
今後は開発キット、PSoC 4 Pioneer KitBLE Pioneer Kitを使って、デバイスの具体的な使い方、一般的なMCUとの開発の違いなどを記載する予定です。