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などブラウザを変えると改善されます。

売れ筋RL78マイコン開発方法

ルネサス汎用MCUのラインアップカタログが更新されました。

売れ筋RL78/G1x MCU

カタログ記載のRL78ファミリラインアップに、2015年10月時点ルネサススタープロダクトのMCUに赤丸を付けました。売れ筋の汎用RL78/G1xが一目で解ります。

売れ筋RL78G1xリスト(汎用MCUラインアップカタログに加筆)
売れ筋RL78G1xリスト(汎用MCUラインアップカタログに加筆)

※スタープロダクトリスト自身は、5月30日のRL78マイコンテンプレートの方向性を検討時と変わっていません。また、LCD対応のRL78/L13は除いています。

無償CS+で開発できるROMサイズの64KBを超えるRL78/G13やG14もスタープロダクトですね。このサイズになると有償CS+が必要となり、それ自体で結構な値段がします。

ROM64KB超のマイコン開発方法

この場合は、処理を64KB以下になるように複数に分割し、無償CS+で分割処理毎に単体でデバッグを行った後に、最終的に1つに結合する方法がお勧めです。結合には、有償CS+1ライセンスが必要ですが、単体開発は無償CS+でできます。

ところが、結合段階になって、分割処理の作り方がバラバラで上手く結合できないことが良くあります。

この事態を避けるためにも、テンプレートは効果的です。単体デバッグ、処理追加/削除や結合を容易とするRAMインタフェースを用いた弊社RL78/G1xテンプレートは、無償/有償両方のCS+で動作します。64KBを超えるサイズのRL78開発にも、RL78/G1xテンプレートをご活用ください。

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との開発の違いなどを記載する予定です。

LPCXpresso v7.9.2とLPCOpen v2.19リリース

2015/09/14、LPCXpresso v7.9.2がリリースされました。

この新LPCXpressoのデフォルトインストール先、C:\nxp\LPCXpresso_7.9.2_493\lpcxpresso\Examples\LPCOpen
にLPCOpenの新バージョンv2.19 2015/09/01も同時にインストールされます。

残念ながらこのLPCOpen v2.19も、前版v2.15積み残しのGPIO_APIバグ、uinit8_tを修正してunit32_tを使うが解決されていません。従って、LPC824テンプレートも“開発待ち”を続けます。

NXPのFreescale買収は、2015年末完了予定で進行中です。マイコン部門のみを比較すると、NXPよりもFreescaleの方が大きいそうで、今回の積み残しはこれが反映されたのかもしれません。LPCXpressoとLPCOpenの組合せは、他社と比較しても使いやすいIDEなだけに残念です。

一方、FreescaleのKinetis Design Studio 3.0.0 IDEもEclipseのUpdateはありますが、メジャーバージョンアップはありません。

NXP、Freescaleともに2015年末に向けて忙しいのでしょう。両社のARM Cortex-M0+/M0マイコン状況は、様子がはっきりするまで待ったほうが良い、というのが現段階の判断です。そこで、先に取上げた、Cypress PSoC 4/PRoCの調査を次回報告する予定です。

IoT向けマイコン動向とマイコンテンプレート

IoT構成デバイス、特に数億~数十億とも予想される莫大な出荷数のマイコンに対して、ネットワークやセキュリティなどのIoT向け機能を強化した新マイコンがベンダ各社から登場しています。

Runesas Synergy

この新マイコンの1つ、ルネサスSynergyの“セキュリティ強化ポイント”と“開発アプローチ”に関する2種ホワイトペーパーが9月9日公開されました。ティーザー広告手法でしょうか? Synergyは、2015年末に詳細発表予定です。

セキュリティの方は、私はイマイチ解らないのですが、開発アプローチのペーパーを読むとSynergyが、ARM Cortex-MコアでEclipseベースのe2 studioThreadX RTOSを使うらしいことが解ります。

狙いは、ルネサスが、System Codeと呼ぶドライバーやミドルウエア、RTOSなどをパッケージで提供することで、開発者労力をアプリケーションに集中させ、トータル開発時間を削減することです。

CS+のコード生成にReal Time OSを付けた、または、Visual StudioのWindowsデスクトップアプリ開発環境に近いイメージでしょうか? 私は、NVICによるイベントドリブンプログラム派ですので、OSが小規模マイコンのオーバーヘッドにならないか気がかりです。

開発キットかスターターキットの購入&登録でSystem Codeパッケージを全て使用できるそうです。

Cypress PSoC4/PRoC BLE

Cypressでは、PSoC4は、“IC: Integrated Circuit”の位置づけ、PRoC BLEは、プログラマブルRadio機能のBLE: Bluetooth Low Energyを追加した“マイコン”と言うそうです。PSoC4にBLEを追加し2015年発売のPSoC4 BLEPRoC BLEともにCortex-M0コアを使いBluetooth 4.1モジュールが実装済みのパッケージです。

確かにPSoC4 BLEは、Cypress独自のプログラマブルなアナログモジュールやデジタルモジュールにBLEモジュールが追加されています。一方、PRoC BLEは、見慣れたADCやPWMにBLEが載っており、アンテナパターンと2個のL、C追加のみでBluetooth マイコンが低コストで実現できそうです。

PRoCブロック図とBluetoothアンテナパターン(データシートより抜粋)
PRoCブロック図とBluetoothアンテナパターン(データシートより抜粋)

PSoC4 BLEとPRoC BLEの両方をBaseboardに載せ換えて開発できるお得なBluetooth Low Energy (BLE) Pioneer Kitは、チップワン、DigikeyやMouser、Cypressから購入できます。また、秋月電子でBLEなしのPSoC4 Prototyping Kitが600円、PSoC4 Pioneer Kitが3000円で購入できます。

※Cypress主催の“ハンズオン トレーニング ワークショップ:PSoC4およびBLEシステム設計入門”に参加すると、2015年9月現在、PSoC4 Pioneer KitとBluetooth Low Energy (BLE) Pioneer Kitが無料で入手できます。

マイコンテンプレートの今後

2015年末完了予定のNXPによるFreescale買収後は、両社のCortex-M0+/M0ラインアップも変わる可能性があります。私は、Cortex-M0+マイコンの統合を予想しており、この結果、現在4種提供中の弊社マイコンテンプレートも減るかもしれません。

対策と言っては失礼ですが、Cortex-M0搭載でBluetoothも使えるCypress PRoC BLEかPSoC4 BLEのテンプレートラインアップ追加を検討中です。ブログにPSoC4/PRoCマイコンカテゴリーを追加し今後経過を掲載します。

Runesas Synergyはもう少し様子を観察する必要があります。

RL78マイコンコーステキスト、CC-RL表記でRev.2更新

Site Language

RL78マイコンコースのテキストがRev2.00へ更新されました(8/20ルネサスサポート情報 Vol.255)。

目次は、旧版Rev.1.30と全く同じです。どこが更新されたかは、P242の履歴を見ても、発行年月日の記載のみで解りません。内容を見ると、記載ソースが、CA78K0RからCC-RL変わっていました。

ルネサスが、マイコンハードウエアに「より重点」を置いて他社と差別化する方針ならば、コンパイラもCC-RLに統一されるでしょう。また、IDEもCS+から、Eclipseベースのe2 studioを使う日が来るかもしれません。

最近は、日本語対応の技術情報サイトが激減しています。また、Windows 10のCortanaも日本語対応は後回しです。e2 studioも、手間がかかる日本語ではなく、英語版のみもあるかもしれません。

ブログカテゴリ修正

マイコンのサブカテゴリを、6種のマイコンとIoT向けPCに修正しました。

ARM Cortex-M0+またはM0コアのマイコン、FreescaleのKinetisマイコン、NXPのLPCマイコン、ルネサスのRL78マイコンとR8Cマイコンです。
IoT向けのPCは、Windows 10 IoTコアを実装できるCPUボードを対象としました。

KinetisとLPCマイコンは、Cortex-M0+/M0マイコンと重複しています。
これは、Cortex-M0+/M0を重視したためで、このカテゴリから、今後新しいマイコンが発売されることを想定しています。

この基になった記事がコチラです。「Cortex-Mプロセッサを軸にしたARMのIoT戦略」の項で、市場早期対応にARMコア利用が優れていること、小さな実装面積と少ない電力要求のIoT市場にはCortex-M系が良く、Bluetoothなどの無線IPをSoC実装した新マイコン発表の可能性を示しています。

正式版がリリースされた無償Windows 10 IoTコアは、Wi-FiとBluetoothサポートなので、この新マイコンとの相性も良さそうです。

ブログ記事検索は、キーワード短縮表記をお使いください

カテゴリ修正に合わせて、過去の記事のタグ追加と修正も試みましたが、記事数が多いので断念しました。従って、記事の検索にタグを使うと、検索漏れが生じます。

ブログ記事のタグ検索
ブログ記事のタグ検索

対策として、関連記事の検索は、「検索窓にキーワードの短縮表記」をお使いください。例えば、LPC812とLPC824の記事を検索するときは、“LPC8” を入力するなどです。タグ検索よりは遅いのですが、検索漏れは防げます。よろしくお願いいたします。

ブログ記事のキーワード検索
ブログ記事のキーワード検索

LPCXpresso 7.9.0リリース

LPCXpressoが7.9.0にアップデートされました。
弊社Windows 10 Pro/Home(64ビット版)ともに動作確認しました。

リリースノートによると、Windows 10がサポートされ、Windows XPの動作テストを停止するそうです。

LPC8xx向けのLPCOpenは、12日現在、v2.15のままですので、LPC824対応テンプレート開発も一時停止を継続します。

 

マイコンIDE習得のポイント

Windows 10 Home Update制御

販売中のマイコンテンプレート説明資料は、テンプレートについて重点的に説明しています。しかし、ご購入者様から頂く質問には、テンプレート動作環境、つまりマイコンIDEに関するものも多くあります。
今回は、このマイコンIDE使い方のコツ、ポイントを説明します。

Windows 10発売を機に、皆さんは今新しいOSの機能や利用方法を習得中だと思います。マイコンIDEと、このWindows 10を関連付け解説を試みます。

マイコンIDEは、OSと考えるべし

Windows 10、旧Windows 7や8と比べると、新ハードウエアやネットワーク、セキュリティ対応に機能満載です。多くの設定項目がありますが、最初はデフォルト設定で動かすのが良いでしょう。慣れてくれば、設定をいろいろに変えて、自分好みにカスタマイズもできます。

マイコンIDEも同じです。IDEは、多くのマイコン機種、使用言語、デバッグ方法に対応できるよう多くの選択肢:プロパティを持ちます。ユーザマニュアルにも、多くのページを使ってプロパティの説明があります。しかし、IDEを使う時に、これら多くのプロパティを、全部知るのは無理ですし不要です。

Windowsと同じく最初はデフォルトで使用し、徐々にカスタマイズするのがIDEやOSなどの環境ソフトの使い方です。

初心者にとって、デフォルト設定でIDEが使えればありがたいのですが、多くのIDEは、中級~上級者へも対応する、いわば「初心者と中級者以上の二兎を追う方式」のため、多少のカスタム設定が必須です。
このカスタム設定が最も少ないのが、IDEベンダ提供の標準評価ボードを使ったマイコン開発時です。弊社テンプレートが、この評価ボードで動作確認しているのもこのためです。

  • マイコンIDEのプロパティ設定が多いのは、しょうがない。
  • カスタムプロパティ設定の少ないIDE+標準評価ボードが、マイコン初心者には適す。

マイコンIDEの使い方ポイント

使用するマイコン、開発言語(C/C++ または アセンブラなど)、IDE(コンパイラやデバッガなどの開発環境)は選定済みとします。この時のIDE設定手順が下記です。3段階から構成されます。

マイコンIDE設定手順
マイコンIDE設定手順

IDEへ使用マイコンとデバッガなどの環境ツール設定が、最初の段階です。ここでは、Rapid Application Development: RADツールを使用するか否かなども選択肢になります。MCU:マイコン本体クロック設定と周辺回路の設定が、次の第2段階です。最後が、IDEが出力したスケルトンソースへ、ユーザソースを追加し、ビルド&ボードデバッグを繰り返し行い、アプリケーションを完成させます。

ポイント1:IDE生成スケルトン理解

直ぐにユーザソースを追記したい気持ちは解ります。しかし、使用するRADツールに応じてIDEが生成するスケルトンが異なることがよくあります。例えば、FreescaleのKinetis Design Studioの場合、RADツールにProcessor Expertを選ぶ場合と、Kinetis Software Development Kitを選ぶ場合とでは、スケルトンが異なります。ルネサスのCS+でも、コード生成の有無でスケルトンは全く異なります。

先ず、IDEが生成する「スケルトン動作を把握することが最重要」です。このために、RAD選択肢を変えることも必要でしょう。殆どのIDEの場合、第2段階のMCUクロックは、デフォルトで安全動作周波数に設定済みです。従って、周辺回路なしでも生成されたスケルトンコードでボードデバッグができます。

スケルトン動作把握とは、「マイコン電源投入後、順番にどの処理を行い、main()を呼出しているか、次に、割込み処理の記述はどこで行っているかを知ること」です。

main()呼出しまでの処理(スタートアップ処理)は、MCU動作クロックを変更する場合などを除けば、大体把握できればOKです。また、マイコン機種による違いも少ないです。

一方、割込み処理記述は、使用マイコンやIDEにより様々です。経験的に、IDEと標準評価ボードの組合せで用いる記述方法が、解りやすさや柔軟性に優れます。素直に、この方法でユーザ処理を追加することをお勧めします。

  • IDE生成スケルトンは、使用RADツールにより異なる。
  • 生成スケルトンの動作を把握することが最重要。

ポイント2:デバッガ接続

最初は、MCUクロックはデフォルト設定、周辺回路なし、スケルトンコードのみでビルドします。このビルドは、IDE生成分のみですので100%成功するハズです。

問題は、デバッガ接続です。

IDEがサポートするデバッガは、通常4~6種類もあります。デバッガに応じてさらに詳細設定が必要ですので大変です。ここは、ユーザマニュアルの「対応デバッガ部分のみ」を注意深く読んで、設定する必要があります。ユーザマニュアルが分厚いのは、このように対応種類が多いためです。使用するデバッガのみに絞って読めば、恐れるに足りません。

IDEとデバッガを接続後、ビルド出力をボードへダウンロードし、デバッガで動作確認します。何もユーザ処理を追加していない時の動作、例えばスタートアップ処理後のRAMクリア状態などが確認できます。

ユーザ処理は追加していませんが、これでIDEの処理全体を一通り試すことができます。

  • IDEとデバッガ接続は、ユーザマニュアルの対応部分を拾い読み。
  • 最初のビルドは、スケルトンコードのみでデバッガ接続しIDE全体処理を体験。

ポイント3:サンプルソフトAPI利用例を活用

スケルトンは、骨組みです。この骨組みに、ユーザ処理を追記すれば、アプリケーションが完成します。

骨組みには、IDEが使用周辺回路に応じてライブラリを生成します。このライブラリへのインタフェースがAPIです。IDEの役割は、APIの中身を作ることです。

ユーザソースは、このAPIの使用順序を記述するのみと考えても良いです。少し前までは、このライブラリもユーザが開発していました。しかし最近は、ライブラリはベンダが提供します。ベンダ提供ライブラリを使えば、ユーザソースは、API使用順序のみですので、移植性やメインテナンスも楽です。

APIの使用法は、これも分厚いAPIレファンスマニュアルに記述されています。しかし、真面目にこれを読む前にサンプルソフトを参照します。典型的な周辺回路APIの使い方、これがサンプルソフトです。サンプルに出てくるAPIのみをレファレンスマニュアルでチェックすれば十分です。サンプルソフトの選び方は、コチラを参照ください。

  • IDEは、スケルトンと、使用周辺回路に応じたAPIを生成。
  • サンプルソフトを参照し、典型的なAPIの使い方を学ぶ。

まとめ

多くのプロパティがあり、付属マニュアルも厚いので取っ付きにくいマイコンIDEですが、ここで示した方法を用いれば、早く効果的にIDEを習得できます。

具体的な話が少ないので、皆様のお叱りを受けそうですが、少しでもご参考になれば幸いです。

* * *

Windowsには、様々なTipsがあります。各マイコンIDEのTipsも少なからずありますが、ここでは個々のIDEによる違いは無視して説明しました。実は、IDEで差が生じるのはRADです。RADに対しては、初心者の方は、少し力を入れてマニュアルを読む必要があるかもしれません。
但し、これも必要な周辺回路の箇所のみを拾読みすれば、事足ります。分厚いマニュアルは、読む箇所を間違わないように、拾読みで対処しましょう。

Windows 10 Home UpdateコントールTips

マイコンIDEで具体例が無かった代わりのTipsです。
Windows 10 HomeでOS Updateをユーザが制御できない問題に対し、フリーソフト: Winaero Tweakerが役立つかもしれません。Technical Preview対応ですが、製品版にも使えそうです。

Windows 10 Home Update Control
Windows 10 Home Update Control