平成26年9月19日
どのマイコンを選ぶか
実は既にルネサス社のRXマイコン用の開発環境を整備してあります。
- 小規模なクローズシステム用にはPIC16/18
- もう少し処理速度や部分的な拡張性が必要な用途にはPIC24F
- 高速IOのような拡張性が必要な用途にはRX
というふうにシステムの規模と速度で分けてはいたのです。
しかし、この数年のうちに状況が変わってきました。ルネサス社はRXシリーズの上位製品としてARMコアのRZシリーズを発表しました。これによってRXシリースの守備範囲は極めて限定的になりそうです。まだ発売されて数年しか経っていない製品なのに、上位に世界標準のARMが配置されたことから、今後どの程度まで製品展開が行われるのか微妙に感じます。
価格戦略や周辺機能の互換性なども含めて検討すべき内容ですが、RX自体は短命に終わりRZへの移行を迫られるのではないかと危惧します。
部品の入手ルートも限られています。小売では秋月電子とマルツパーツのみの取り扱いです。海外商社ではDigi-keyで取り扱いがありますがMouserにはありません。
ルネサス社は国内メーカーですが会社自体が大手メーカーに主眼をおいた営業姿勢であることもあり、我々のような弱小メーカーが部品を入手するのはかなり大変です。ルネサスの特約店(商社)で二桁程度の取引に応じてくれる所があるかどうか?
それなりに良いマイコンだとは思うのですが、正直なところ秋月電子が取り扱いを止めたら入手は困難と思います。その頃には他の所も取り扱いを止めているでしょう。
そんな訳で他の32ビットマイコンの導入を考えます。RXマイコンを見限った理由が部品の入手性ですので真っ先に入手性を考慮して選定を考えました。結局PIC32マイコンを導入することにしました。こちらは国内での入手性は良くないのですが、逆に海外ルートでは複数のルートから入手できます。メーカーであるマイクロチップ社が製品の供給に関して、長いスパンで対応している点も魅力的です。それ以外にもメリットがあります。
- 周辺機能の多くはPIC24Fと同じか互換性が高いため、プログラムの流用が利く
- 開発環境の多くは他のPICと同じか類似の操作性なので、これらの再学習が少なくて済む
反面、デメリットとしては
- どうしても日本語での資料は少なくなり、改定の頻度も遅くなりがちです
- 8ビットマイコン程にはユーザー数が多くはないので、ネットから取れる情報量も多くはありません。
日本語で全ての資料が揃うルネサス製品とは真逆になります。
マイコンの変更は度々行うべきものではないのですが、ここは勇気を持って決断すべきだと判断しました。
PIC32を選択することで今後はPIC24Fの使用を取りやめ、8ビットと32ビットの二通りのみを残します。
PIC24とPIC32の価格差はごく僅かです。中途半端に使用部品を増やすよりも統一してプログラムやツールの管理負担を軽減した方がトータルでメリットがあります。
逆にPIC24シリーズでの統一も考えたのですが、PIC24シリーズはPIC32との比較では見劣る部分が多いので選択しませんでした。
- 標準のC言語との整合性が良くない(PIC24はROM空間とRAM空間が別のためポインタの扱いが異なる)
- 周辺機能のDMAでアドレス範囲が制限されている
- RAMアドレス拡張性の限界が低い(64kBまで)
- CPUの上限性能でもやや劣る(これは販売戦力上の判断として上限周波数を抑えているのでしょう)
ARMマイコンを選ばなかった理由
CPUの選択では最有力なARMコアですが、組み込み用のマイコン選択では多少事情が違ってきます。CPUの違いの多くはC言語が吸収してくれます。が、組み込みプログラムでは周辺機能のプログラム移植が面倒です。CPUが同じARMコアであっても各社の周辺機能にはプログラム上の互換性はないので結局は再びプログラムを書き直すことになります。むしろ統一された周辺機能を持った一社の製品群を選んだ方が有利です。例えばサイプレス社のPSOCマイコンです。これはPSOC3,
PSOC5といったシリーズによって使用しているCPUは異なりますが周辺機能の多くはプログラム上の互換性があるようです。