MSP430シリーズは、TEXAS INSTRUMENTS(以下TI)のマイコンラインナップのなかでも小型、低コスト、低消費電流品という位置づけのマイコンです。
ここでは、MSP430マイコンの開発環境としてCodeComposerStudioを採用し、その使い方についてまとめました。
環境とデバイス
この記事では、下記を前提条件として説明します。
- 評価ボード: MSP-EXP430FR5994
- デバイス: MSP430FR5994 (FRAM内蔵 80pin)
- 開発環境: CodeComposerStudio Version: 12.2.0.00009
使っている評価ボードはデバッガ機能が実装されていて3,500円くらいで購入できるものなので、MSP430マイコンを試すのに最適です。
開発環境の準備
開発環境(IDE)はCodeComposerStudio というものを使用します。下記のリンクからインストーラがダウンロードできます。
CCSTUDIO IDE, configuration, compiler or debugger | TI.com
インストーラには ”Code Composer Studio Theia” と ”Code Composer Studio” という2種類が存在しています。どちらをダウンロードすれば良いのか悩みますが、この記事を書いている’23年時点では”Code Composer Studio”をダウンロード/インストールすれば良さそうです。
この2つの差分は採用しているフレームワークの違いで、それぞれEclipseとTheiaのようです。どうやらTIとしてはフレームワークをTheiaに移行していっているようなのですが、現時点ではTheiaで対応できているマイコンは限られているようです。しばらくの間は、e2studioやSTM32CubeIDEなどで使いなれたEclipseベースの開発環境を使う事になりそうです。
インストール作業自体は特に迷う事もないかと思います。
プロジェクトの作成
次はプロジェクトの作成を行います。といっても、まずはプロジェクトを保管するワークスペースが必要になります。適当な場所にワークスペース用のフォルダを作っておいてください。
なお、フォルダのパスに全角文字の入っている場所を指定するのは避けてください。コンパイラ等のツールが動かなかったり誤動作したりするリスクがあります。
CodeComposerStudioを立ち上げるとワークスペースの場所を聞いてきます。用意しておいたフォルダを指定して起動すると、新規に空のワークスペースが作成されます。
次はワークスペース内にプロジェクトを作っていきます。作り方は大きく2通りあって、全く新しく作成する方法とライブラリのサンプルプロジェクトをインポートして編集する方法になります。
どちらの方法で作るのが良いかというと、通常はサンプルプロジェクトを編集する方が良いかなと感じています。サンプルプロジェクトは最初からライブラリがプロジェクト内に組み込まれているのがその理由です。
全く新規に作成するのは、ライブラリを使用せずに一から自分でコードを書いていく場合や、古いバージョンのライブラリを使いたい場合などではないかと感じます。
新しくプロジェクトを作成する
CCSが空のワークスペースで立ち上がったら、New project をクリックしてプロジェクトを作成していきます。
New CCS Project というWindowが出てくるので、ここでプロジェクトの各種設定を行います。そんなに迷うところは無いですが、”Connection”の項目だけはハマるかも知れません。
この項目では使用するデバッガを指定しています。(LaunchPadボードならDefaultでOKです。)どれを指定すれば良いか分からなければ、デバッガを接続した状態で”Identify”ボタンを押してデバッガとPCの接続確認を確認してみましょう。指定間違いや未接続の場合にはエラーが出ます。
これで新規にプロジェクトが作成されました。
サンプルプロジェクトのインポート
サンプルプロジェクトをインポート作業は、”Resource Explorer” というツールを使用します。メニューバーの View -> Resource Explorer から起動できます。”Resource Explorer Offline”というものもありますが特に理由が無い限りは通常版で良いと思います。
Resource Explorerには、サンプルプロジェクト以外にもマイコンやボードやライブラリのドキュメントなど、開発時に必要な資料が一通りまとめられています。調べものをする時はまずはResource Explorerの中を探してみるのが良さそうです。
Resource Explorerが起動したら、目的のサンプルをインポートしていきます。少々深いところにあって、 MSP430 microcontrollers -> Embedded Software -> MSP430Ware -> Devices -> MSP430FR5XX_6XX -> MSP430FR5994 -> Peripheral Examples -> Driver Library -> Example Projects -> FRAMCTL_A -> framctl_a_ex1_write ここに保存されています。
目的のプロジェクトのところにマウスを移動すると、プロジェクト名の右側に縦に点3個が出てくるのでここをクリックしてから”Import to CCS IDE”をクリックします。これでワークスペースにサンプルプロジェクトがインポートされます。
なお、初めてインポートする場合はプロジェクトがローカルに無いとエラーが出るかもしれません。その場合はInstallを実施してください。
Resource Explorerには今回紹介したプロジェクト以外にも大量のサンプルプロジェクトが存在しています。 いろいろインポートしてみて動作や使い方をテストしてみてください。
インポートしたプロジェクトは、プロジェクト名やファイル名を適当にリネームして使用してください。
Lチカコードの作成、ビルド、実行
ここでは、上記でインポートした”framctl_a_ex1_write”プロジェクトを編集して作業を進めます。
このプロジェクトですが、”driverlib”フォルダ内にマイコンの各種機能を使うためのライブラリが入っており、各ソースファイルでは”driverlib.h”をインクルードすればこのライブラリを使用することができるようになります。
Lチカコード
main関数は ”framctl_a_ex1_write.c”に記載されており、とりあえずこのファイルを”main.c”と名前を変えて編集していきます。
今回はmain関数のみ編集していて、下記のようなコードに書き換えています。
void main(void) {
WDT_A_hold(WDT_A_BASE);
GPIO_setAsOutputPin( GPIO_PORT_P1, GPIO_PIN1 );
PMM_unlockLPM5();
while (1) {
GPIO_toggleOutputOnPin( GPIO_PORT_P1, GPIO_PIN1 );
__delay_cycles( 1000000 );
}
}
コードは”driverlib”で用意されている関数を使ってレジスタを直接叩くこと無く作成しており、下記のようなことをしています。
- WDTの停止
- LEDの接続されているポートを出力設定
- ポート設定の有効化
- 無限ループでポート出力の反転と1秒の遅延
WDT停止とポート設定の有効化はうっかり忘れてハマりがちなので注意してください。
ビルド
ビルドについては、他のEclipse系ツールと同様です。トンカチボタンを押したり、ツールバーのProject -> Build All としたり、Ctrl+Bしたりしてビルドしてください。
コードにミスが無ければビルドが成功するはずです。
ビルドに必要な設定関係も、サンプルプロジェクトをインポートしているのなら、特別凝ったことをしない限りはそのままで問題無いです。
実行
プログラムの書き込みと実行についても、他のEclipse系ツールと同様です。ムシボタンを押したり、F11キーを押したりすれば、デバッグ画面構成に切り替わってボードへの接続と書き込みが行われてmain関数の先頭でブレイクしてくれます。
実行ボタンやF8キーでプログラムを実行し、緑LEDが点滅したら成功です。
LaunchPad評価ボードをデバッガとして使う方法
ここまで使ってきたLaunchPad評価ボード MSP-EXP430FR5994についているデバッガ機能は、別のカスタムボードのMSP430マイコンをデバッグする事も出来ます。(MSP430FR5994以外のデバイスも可)
ここでは、 LaunchPadボードを他ボードのMSP430をデバッグするための方法を記載します。
ピンジャンパー(J101)のピン割り付け
デバッグ用の信号は、ピンジャンパー(J101)から取り出すことになります。各ピンの信号割り付けは下記のようになっています。基板上にシルクでも書いてあります。
- GND : ターゲットのGNDと接続します。
- 5V : ターゲットへの5V電圧供給。必要に応じてターゲットの5Vと接続します。USBの5Vと直結されているので、誤接続に注意してください。パソコンが故障するかも知れません。
- 3.3V : デバッガによるターゲットの電源電圧監視に使われているようです。ここからターゲットに3.3Vを供給できる訳ではありません。なお、ターゲットの
には接続しなくてもデバッグは出来ています。 - RXD : UART通信ライン。UARTを使ってデバッグログの取得などを行う場合、ターゲットのUART_RXD端子に接続してください。
- TXD : UART通信ライン。UARTを使ってデバッグログの取得などを行う場合、ターゲットのUART_TXD端子に接続してください。
- SBWTDIO : デバッグデータ信号。ターゲットのSBWTDIOに接続
- SBWTCK : デバッグクロック信号。ターゲットのSBWTCKに接続
ターゲットとの接続
ターゲットと接続するには、まずは評価ボードのデバッガ機能とマイコン部の分離を行います。前述のピンヘッダー(J101)についているショートバーを全て取り外すことで分離は行えます。
分離したら、デバッガ側のピンヘッダーから信号を取り出してターゲットに接続してください。(上の写真を参照)
ピンヘッダーは7ピンですが、必要最小限の接続(デバッガからの5V供給無し、UARTによるデバッグ無し)とする場合は、
- GND
- SBWTDIO
- SBWTCK
の3信号を接続するだけで構いません。
接続が出来なら、ターゲットのプロジェクトをビルドしてデバッグをしてみてください。
コメント