みなさんこんにちは。マイコン徹底入門の筆者の川内康雄です。
今回はどうして私が、この本で使用するマイコンとして、STM32マイコンを選んだのかをご説明します。
理由は4つ有ります。
・ARM/Cortex-M3コアを内蔵していること
・包括的なファームウェアが無償で利用できること
・安価にマイコンボードが入手できること
・フォーラムが活発なこと
です。
一つ目の理由はSTM32がARMのCortex-M3コアを使用しているからです。
マイコン開発にはARMマイコンがお勧めだということは、先ほどのプレゼンテーションでご説明したとおりです。
そしてSTM32は数あるARMコアの中でも、最新の組み込み系コア、Cortex-M3を採用しています。
Cortex-M3の特徴はいろいろとあります。コア自体の設計が洗練されていることや、コード密度の高さが主な特徴です。もっとも、私がCoretex-M3コアのマイコンをお勧めする理由は、これからの組み込みマイコン市場で中心的な位置を占めるマイコンになる可能性が一番高いものだからです。Cortex-M3コアは、32ビットRISCチップでもっとも成功したといわれるARM7TDMIコアの後継コアです。そのこともあってか、海外ではSTMicroelectronicsだけでなく、Texas Instuments、NXP、ATMEL、Cypress、Energy MIcro等の主要なマイコンメーカーがチップを発売していいます。国内でも東芝が既にCortex-M3コア内蔵マイコンを発表しており、富士通も参入をすることを表明しています。参入メーカーがさらに増える可能性もあります。
どうせ勉強するのであれば、ニッチなところから始めるよりも、デファクトスタンダードになる可能性の高いもので学ぶ方が、まちがいがありません。
STM32マイコンをお勧めする2つめの理由は、包括的なファームウェアが無償で提供されていることです。
ここでいうファームウェアは、マイコンに内蔵されている各種の機能を、C言語の関数だけで利用できるように構成された、プログラムライブラリのことです。ファームウェアがあると、ハードウェアの操作のための細かな仕様を把握しなくても、関数を呼び出すだけで、マイコンのペリフェラル、つまり周辺回路の初期化、設定、利用が行えます。プログラムを再利用したり、他人が作ったプログラムを読むのも容易になります。結果、開発が効率化され、開発スピードが上がります。要は簡単に、素早く、開発できるということです。
先述の通りCortex-M3コアを採用したマイコンは多く発売されていますが、内蔵ペリフェラルすべてをサポートするファームウェアが無償提供されているのは私が知る限りではSTMicroelectronicsのSTM32とTexas InstrumentsのStellarisだけです。
STM32マイコンをお勧めする3つめの理由はマイコンボードが安価に入手できることです。
STM32はかなり早くから発表されたCortex-M3コア内蔵マイコンです。そのためSTMicroelectronicsだけでなく、いくつかのサードパーティーから、すぐに使えるマイコンボードが発売されています。特にストロベリーリナックスから発売されているSTBeeとOlimexから発売されているSTM32-H103は非常に安価で、個人でも容易に入手できます。実際のところこれらのマイコンボードの価格は、8ビットマイコンのマイコンボードの価格と同レベルです。
マイコンボードの中にはマイコンボードの他にJTAGインターフェースなどの開発ツールを購入しないといけないものも多いのですが、本書で紹介しているマイコンボードはUSBケーブルでPCにつなぐだけで開発ができます。
STM32をお勧めする4つめの理由は、フォーラムが活発なことです。
ここでいうフォーラムはいわゆるインターネット掲示板のことです。STM32については、製造メーカーであるSTMicroelectoronicsがフォーラムを解説しています。このフォーラムは非常に活発で、質問・回答のやりとりや、情報提供が頻繁に行われています。これはSTMicroelectronicsのスタッフが積極的に参加して回答をしているのが理由のようです。私も困ったときに、このフォーラムの情報に助けられました。またこの公式フォーラム以外にも、Sparkfunやその他のフォーラムでも情報交換が行われています。もちろんフォーラム以外にも、世界中のユーザーがホームページやブログで製作例やプログラムを公開しています。
以上、
・ARM/Cortex-M3コアを内蔵していること
・包括的なファームウェアが無償で利用できること
・安価にマイコンボードが入手できること
・フォーラムが活発なこと
がSTM32マイコンを皆さんにお勧めしたい理由です。
皆さんも是非STM32を使ってマイコン開発に入門してみてください。