技術者に新たな扉を開く超低消費電力のマイクロコントローラ・モジュール【Part 1】Eclipseのプロジェクトを設定する

2025年04月09日

シリーズの関連記事を読む

Figure 1

   

要約

本稿では、豊富な機能を備える超低消費電力のマイクロコントローラ・モジュール「MAX32625PICO」を紹介します。また、無償の統合開発環境(IDE:Integrated Development Environment)である「Eclipse」を使用して、同モジュールを対象としたプログラミングとデバッグを実施する方法について説明します。多くのハイエンドのマイクロコントローラ・モジュールとは異なり、MAX32625PICOはDIPに相当するサイズのフットプリントを採用しています。そのため、MAX32625PICOを使用すれば、技術者だけでなくホビイストであってもプロトタイピングを容易に実施できます。今回(Part 1)は、Eclipseのプロジェクトを作成する方法を説明します。Part 2では、MAX32625PICOと連携するようにEclipseを設定する方法について解説します。

はじめに

エレクトロニクスの分野では、更なる小型化の実現に向けた取り組みが絶え間なく行われています。それによって、より小型なパッケージを採用したコンポーネントが提供されるなど、エレクトロニクス機器の限界は押し広げられています。結果として、プロトタイピングを実施する際にも、そうした小さなコンポーネントを使用する機会が増えることとなりました。しかし、このことが技術者やホビイストにとっての悩みの種になっているケースは少なくありません。従来、多くのコンポーネントはパッケージとしてDIPを採用していました。そのピンのサイズやピッチは大きく、手作業で実装や実験を行う際には扱いやすかったと言えます。一方、小型のマイクロコントローラを採用した設計を行えば、回路の機能に新たな側面が加わることは間違いありません。しかし、そうした高度なマイクロコントローラを使用してプロトタイピングを行うのは難易度の高い作業になります。なぜなら、小型化を実現するために、それらの製品は手作業では非常に扱いづらいパッケージを採用しているからです。また、そうした製品の評価用キットは、プロトタイピングには必要ない数多くの部品を搭載しています。そのため、サイズが無駄に大きいという欠点を抱えていると言えます。

本稿で紹介するMAX32625PICOは、プロトタイピングに適したマイクロコントローラ・モジュールです。その特徴は、全体としては極めて小型でありながら、DIPに相当するサイズ感で取り扱える点にあります。実際、実験レベルのプリント基板にも、量産用のプリント基板にも非常に組み込みやすくなっています。また、本稿で説明する方法を利用すれば、Eclipseによって同モジュールを対象としたプログラミングとデバッグを実施できます。その結果、DIPがもたらすメリットを享受しつつ、8ビットのマイクロコントローラを使用する世界とは決別することが可能になります。以下では、同モジュールの概要を説明した上で、Eclipseによる実装方法について詳しく解説します。

MAX32625PICOの概要

図1にMAX32625PICOの外観を示しました。このモジュールは「PICO」とも呼ばれています。そこで、本稿でもPICOと表記することにします。PICOが搭載しているマイクロコントローラは「MAX32625」です。これはArm® Cortex®-M4をベースとする32ビットの製品であり、消費電力が極めて少ないことを特徴とします。512kBのフラッシュ・メモリと160kBのSRAMを内蔵しており、最高96MHzのクロック周波数で動作します。このマイクロコントローラが備えるペリフェラルの中で特に便利なものは、PICO上のピン(サイズが大きい)で扱えるようになっています。例えば、SPI(Serial Peripheral Interface)のメイン/サブ、I2Cのポート、10ビットのA/Dコンバータ(ADC)への2つの入力、1-Wireのインターフェース、2つのUART(Universal Asynchronous Receiver Transmitter)ポートなどを利用できます。また、PICOはパワー・マネージメントIC「MAX14750」、RGB(赤、緑、青)のLED、プッシュボタン・スイッチ、USB micro-Bのコネクタ、Cortexに対応するデバッグ用ヘッダ(10ピン)も搭載しています。PICOに対しては、USBポートを介して、または外部の5Vの電源から直接給電できます。加えて、PICOのプリント基板の両側には、ピッチが0.1インチ(2.54mm)のヘッダ・コネクタを実装できます。そのため、PICOにピンをはんだ付けしてプロトタイプ用のブレッドボードに実装することが可能です。更に、PICOではヘッダ・コネクタから基板のエッジまでにわたり銅箔パターンが設けられています。そのため、表面実装型のソリューションが必要な場合にはPICOを表面実装型のコンポーネントとして使用することが可能です。PICOは非常に小型なので、多くの設計に組み込むことができます。その一方で、プロトタイピングの作業を容易化できるだけのサイズが確保されています。

図1. PICOの外観
図1. PICOの外観

本稿で紹介する方法によってPICOのプログラミングとデバッグを行うには、以下に示すコンポーネントが必要です。

  • PICO(2つ)
  • USB micro-Bケーブル(2本。通常はPICOに付属)
  • プログラミング用のケーブル(「TC2050-IDC-NL-050」を使用)

TC2050-IDC-NL-050の片側には10ピンのコネクタがあり、もう片側にはバネ式のポゴピンが設けられています。このケーブルは、デバッグを実施する際またはブートローダを書き換える際、PICOを再プログラムするためだけに使用します。通常のプログラミングは、ドラッグ&ドロップを中心としたGUI(Graphical User Interface)ベースの作業によって簡単に実施できます。

Eclipseのプロジェクトの作成

PICOは、もともとMbedのオンライン・コンパイラをプラットフォームとして使用することを前提として設計されました。ただ、このプラットフォームのサポートは既に終了しています。それに対し、オープンソースのIDEであるEclipseは非常に多くの技術者/ホビイストに使われているツールです。そこで、本稿ではMbedに代わる無料のプラットフォームとしてEclipseを使用する方法を示します。具体的には、Windowsのエクスプローラを使用し、対象となるハードウェアにドラッグすることでバイナリ・ファイルを生成できるようにEclipseを設定します。必要なコンフィグレーション・ファイルは、本稿の末尾に示すリンクからzipファイルとしてダウンロードすることが可能です。

Eclipse自体は、MAX32625の製品ページからダウンロードすることができます。同ページの「ツールおよびシミュレーション」をクリックし、移動先のセクションで「Low Power ARM Micro SDK (Win), 1.2.0」を選択してください。そのリンク先では「ArmCortexToolcha.exe」をダウンロードできるようになっており、SDK(ソフトウェア開発キット)全体をインストールすることが可能です。インストールを実施する際にはデフォルトの設定を選択してください。

インストールが完了したら、図2に示すように

「File」→「New」→「Maxim Microcontrollers」

を順に選択します。

図2. プロジェクトの作成
図2. プロジェクトの作成

Create Project」ボックスが表示されたら、プロジェクト名を入力します。なお、プロジェクト名にはスペースを使用しないでください。

Select Project Configuration」ウィンドウでは、図3に示すように入力します。

図3. プロジェクトの設定
図3. プロジェクトの設定

Eclipseがハードウェアと通信する方法

デバッグの作業を行っている際には、エラー・メッセージが表示される可能性があります。それらについて理解するために役立つように、ここではEclipseの内部で何が行われているのかを説明します。Eclipseは2つのプログラムを使用して、対象となるマイクロコントローラ(この場合はPICO)との通信を実現します。2つのプログラムとは、GNUデバッガ(GDB)とOpen On-Chip Debugger(OpenOCD)のことです。GDBは高レベルのデバッグ・ツールであり、コードのステップ実行、ブレークポイントの設定、レジスタの値の確認などを可能にします。また、GDBはOpenOCDとの間で通信を実行します。OpenOCDは、高レベルのコマンドを、対象とするマイクロコントローラが理解できるものに近い形に変換する役割を担います。GDBとOpenOCDはどちらもPC上のEclipse内で動作します。PCと最終的なハードウェアの間にはデバッグ用のアダプタを接続します。このアダプタは、コマンドを、マイクロコントローラのデバッグ用ポートが理解できる電気信号に変換するためのものです。このデバッグ用ポートは、JTAGのデバッグ用ポートとSWD(Serial Wire Debug)のポートに対応可能です。SWDについては、JTAGのピン数の少ないバージョンだと考えればよいでしょう。上記のどのツールを使用する場合にも、シミュレータ上ではなく、対象とするハードウェア上で実際にコードを1行ずつ実行し、レジスタの値が変化する様子を確認することができます。

EclipseはGDBと通信し、GDBはOpenOCDと通信します。また、OpenOCDはデバッグ用アダプタを介してPICOのデバッグ用ポートと通信します。GDBとOpenOCDはSDKに含まれており、SDKと共に自動的にインストールされます。これらは、Eclipseから呼び出されて実行されます。対象とするハードウェアとPCの間にデバッグ用のアダプタを接続すると、EclipseとPICOのエンドtoエンドの通信がシームレスに行われることになります。

図3に示したプロジェクトの設定は、JTAGポートを使用する評価用キット「MAX32625-EVKIT」にEclipseを接続することを前提としています。しかし、PICOはJTAGデバッガではなく、ピン数の少ないSWDのポートを使用します。EclipseとPICOのインターフェースを確立するためには、JTAGデバッガの代わりに、ホストのPCとPICOの間にもう1つのPICOを接続するとよいでしょう。本稿では、この2つ目のPICOをプログラマPICOと呼ぶことにします。それにより、最終的なコードを実行するPICOと区別します。プログラマPICOには、DAPLinkと呼ばれるプログラムをロードする必要があります。これは、PCから出力されるUSBの信号を、PICOが理解できる信号に変換するためのものです。この手順については、Part 2で詳しく説明します。

本稿で紹介する方法ではJTAGデバッガの代わりにプログラマPICOを使用します。そこで、図4に示すように「Selectadapter type」において「MAX32625_PICO」を選択してください。

図4. アダプタの種類の選択
図4. アダプタの種類の選択

PICOと連携させるためにEclipseに変更を加える

稿末に示したリンクからzipファイルをダウンロードし、適当な場所で解凍してください。「MAX32625PICO.cfg」というファイルが含まれているので、それを以下のディレクトリにコピーしましょう。

C:\Maxim\Toolchain\share\openocd\scripts\target

上記のファイルは、元の「MAX32625.cfg」というファイルに変更を加えたものです。その変更により、JTAGデバッガの代わりにプログラマPICOを使用できるようになります。MAX32625PICO.cfgによって、通常はJTAGデバッガから発行されるリセット・コマンドがオーバーライドされます。それにより、PICOのレジスタの一部、プログラム・カウンタ、スタック・ポインタがリセットされます。

新しいプロジェクトを作成したら、Eclipseの左上隅にある「Project Explorer」タブでプロジェクト名を右クリックし、

「Debug As」→「Debug Configurations…」を順に選択します。

続いて、左のメニューの「GDB OpenOCD Debugging」に移動し、現在のプロジェクトを選択します。

次に、「Debugger」タブにおいてコンフィギュレーション・ファイルをMAX32625.cfgからMAX32625pico.cfgに変更します(図5)。

図5. コンフィギュレーション・ファイルの設定
図5. コンフィギュレーション・ファイルの設定

以上の作業を終えたら、「Apply」をクリックして「Close」をクリックします。

次に「Project Explorer」ウィンドウでプロジェクト名を再度右クリックし、「Properties」を選択します。「C/C++ Build」の見出しを左クリックし、「Builder Settings」タブの下の「Build command」の内容が

「make ECLIPSE=1 release」

になっていることを確認します(図6)。これにより、PICOにロードすることが可能なバイナリ・ファイル(実行可能なプログラム)を生成するようEclipseに指示していることになります。

図6. バイナリ・ファイルの生成
図6. バイナリ・ファイルの生成

以上の作業を終えたら、「Apply」、「OK」を順にクリックします。

他のファイルをインクルードするためのEclipseの設定

Armプロセッサをベースとする製品のプログラミングを容易にするために、マイクロコントローラのベンダーは低レベルのドライバを提供しています。それらを使用すれば、プログラマが記述したコードは、マイクロコントローラ内部の多くのレジスタやペリフェラルを対象として通信を実行できるようになります。その結果、プログラマはレジスタのレベルの制御について気にかける必要がなくなります。言い換えれば、最終的なアプリケーションの高レベルの機能に集中できるようになるということです。各社が提供するドライバは、共通マイクロコントローラ・ソフトウェア・インターフェース規格(CMSIS:Common Microcontroller Software Interface Standard)に対応しており、MAX32625のプログラミングに必要なファイルの階層構造を構成する要素となります。MAX32625の心臓部はArmコアです。通常、Armをベースとする各マイクロコントローラ・ファミリでは共通のArmコアが使用されます。Armコアの構成には一連のファイル(ファイル・セット)が必要です。また、Armコアの周辺には一連のペリフェラル(ADC、GPIOポート、タイマー、カウンタ、SPIポートなど)が実装されます。Armベースの製品ファミリでは、個々の製品の特徴はそれらのペリフェラルによって決まります。そして、一連のペリフェラルを構成するためにもファイル・セットが必要です。上記のとおり、個々のマイクロコントローラ製品は、Armコアとペリフェラルを組み合わせることによって実現されます。各製品は基板に実装され、ディスプレイ、ポートのヘッダ、スイッチ、LED、Bluetooth®に対応するトランシーバーなどに接続されます。基板上の周辺コンポーネントに接続する方法もファイル・セットに記述されます。

以上のことから、MAX32625の心臓部(Armコア)から外側に向かって次のようなファイル・セットが存在することがわかります。まずはArmコア自体を構成するためのファイル・セット、次にArmコアのペリフェラルを構成するためのファイル・セット、最後に評価用キット上のコンポーネント(プロセッサの周辺に実装される)を設定するためのファイル・セットが必要になるということです。プログラムをコンパイルする際、Eclipseがこれらのファイルを見つけられるように設定しなければなりません。

そのために、Eclipseの「Project Explorer」ウィンドウでプロジェクト名を右クリックし、「Properties」を選択します。次に、「C/C++ General」メニューを展開し、「Paths and Symbols」のセクションに移動します。続いて「Includes」タブの下で「GNU C」を選択します。最後に「Add」ボタンと「File system」ボタンを使用し、図7に示すようにディレクトリを追加します。

図7. 外部ファイルをインクルードするための設定
図7. 外部ファイルをインクルードするための設定

上記のディレクトリが追加されたら、「Apply」と「OK」を順にクリックします。

以下、インクルードされた各ディレクトリについて簡単に説明します。

C:\Maxim\Firmware\MAX32625\Libraries\CMSIS\Include
このディレクトリには、MAX32625のArmコアが使用するファイルが含まれています。

C:\Maxim\Firmware\MAX32625\Libraries\CMSIS\Device\Maxim\MAX32625\Include
このディレクトリには、MAX32625のペリフェラル/レジスタについて定義したファイルが含まれています。

C:\Maxim\Firmware\MAX32625\Libraries\MAX32625PeriphDriver\Include
このディレクトリには、MAX32625のペリフェラルを使用できるようにするためのファイルが含まれています。

まとめ

今回は、まずEclipseのプロジェクトの作成方法について説明しました。その上で、マイクロコントローラのプログラミングに必要なソフトウェアについて解説を加えました。次回(Part 2)は、EclipseがPICOと連携して動作するよう設定する方法について説明します。

ソフトウェア・ファイルのダウンロードはこちらから:https://www.analog.com/media/en/software/softwareconfiguration/eclipse-configuration.zip

著者について

Simon Bramble
Simon Brambleは、アナログ・デバイセズのスタッフ・エンジニアです。以前はLinear Technology(現在はアナログ・デバイセズに統合)でアナログ技術者として業務に従事していました。ロンドンのブルネル大学でアナログ技術とパワー技術を専攻。1991年に電気工学と電子工学の学位を取得しました。
myAnalogに追加

myAnalog のリソース セクション、既存のプロジェクト、または新しいプロジェクトに記事を追加します。

新規プロジェクトを作成

この記事に関して

製品

資料

最新メディア 21

Subtitle
さらに詳しく
myAnalogに追加

myAnalog のリソース セクション、既存のプロジェクト、または新しいプロジェクトに記事を追加します。

新規プロジェクトを作成