丸文株式会社 株式会社ケィティーエルは、
2018年10月1日に丸文株式会社に統合されました。

2ピンデジタル温度センサLMT01を新型ローンチパッドにつなごう!(Episode 1-2 環境導入編)

  • ホーム
  • 技術コラム
  • 2ピンデジタル温度センサLMT01を新型ローンチパッドにつなごう!(Episode 1-2 環境導入編)
技術コラム

2018年 1月24日

マイコンコラム

2ピンデジタル温度センサLMT01を新型ローンチパッドにつなごう!
Episode 1-2 環境導入編

みなさん、こんにちは。
前回は、温度センサLMT01、新型ローンチパッド、MSP430 FRAMマイコンについて紹介しました。今回は、実際に新型ローンチパッドを動作させるために必要なサンプルプログラムを、TIのウェブサイトから入手する方法などについて紹介します。
MSP430のソフトウェア開発には、TIの統合開発環境Code Composer Studio(以下CCS)が必要です。まだMSP430用CCSのインストールを行っていない方は、下記のコラムを参考にCCSのインストールを行った後、次のMSP430Wareの導入に進んでください。

●MSP430Wareの導入
ここで、MSP430用の関連ソフトウェアを統合したMSP430Wareの導入方法について触れておきます。
MSP430Wareのサイトによると、MSP430Wareの導入には、下記の3つの方法があるようです。

***

MSP430Wareは、次の3つの方法で提供されます。

方法1:クラウド内のMSP430Ware - MSP430WareはTIのリソースエクスプローラクラウドサイトでホストされています。
TIのクラウドツールサイトまたはTI Resource Explorerはから直接コンテンツにアクセスできます。

方法2:「表示」 →「リソースエクスプローラ」メニューを開くと、Code Composer Studio v6.20(以降)の中にMSP430Wareの最新バージョンがあります。TIのリソースエクスプローラは、CCSv6.20以降、自動的にクラウド内のMSP430Wareから最新の情報を取得します。Resource Explorerを使用すると、MSP430Wareの必要な部分のみをローカライズ(つまりダウンロード)することができ、貴重なディスク容量を節約できます。
(コンテンツを表示してローカライズするにはインターネット接続が必要ですが、一旦必要なコンポーネントがコンピュータにダウンロードされると、インターネットに接続する必要はありません)。

方法3:MSP430Wareは、Windows、Mac、またはLinuxデスクトップコンピュータにダウンロードすることもできます。インストーラは、コンピュータ上にMSP430Wareの全コンテンツを含むフォルダを作成します。
(バージョン6.20より前のバージョンのCode Composer Studioでは、以前のバージョンのリソースエクスプローラには新しいオンライン機能が含まれていないため、この方法が必要です)。

***

ネットに接続されている必要がありますが、ディスクスペースを節約できるので、上記2のリソースエクスプローラで、サンプルコードを入手することにします。ネット接続環境がない場合は、上記3の方法を選び、MSP430Wareの全コンテンツをダウンロードしてください。

●Resource Explorerによるサンプルコードの入手
View→Resource Explorerをクリックします。

clm_mcu_1-2_01_ccs_resource_explorer_1

下のようにResource Explorerが起動します。(要ネット接続)

clm_mcu_1-2_02_ccs_resource_explorer_2

パッケージのダウンロードが終わると、下の画面になります。

clm_mcu_1-2_03_ccs_resource_explorer_3

サンプルコードは画面左のSoftwareのところに置かれています。
Software横の▷マークをクリックすると、次の内容を見ることができます。

clm_mcu_1-2_04_ccs_resource_explorer_4

ここで、MSP430Ware – v:3.80.02.10の横の三角マークをクリックしてください。
さらに、Devicesをクリックし、MSP430FR2XX_4XXをクリックしてください。

clm_mcu_1-2_05_ccs_resource_explorer_5

そして、MSP430FR2433をクリックすると、下の画面になります。

clm_mcu_1-2_06_ccs_resource_explorer_6

下の画面まで開き、Register Levelをダブルクリックすると、右ウインドウにソースファイルと、その概要説明が表示されます。

clm_mcu_1-2_07_ccs_resource_explorer_7

この画面で、ソースコードの内容を確認したり、サンプルコードを自分のPCへインポートできるようになっています。

●ソースコードの内容確認
ソースコードファイルの名前(下の赤枠部分)をクリックすると、

clm_mcu_1-2_08_ccs_source_code_check_1
下のように、インポートせずにファイルの内容を確認できます。

clm_mcu_1-2_09_ccs_source_code_check_2

この機能は、ファイルのインポートを行わなくても、プログラムの内容を確認できるので、便利です。

●最も簡単なプログラムLED点滅プログラムについて
マイコンの動作を試す最も簡単なプログラム、それはLED点滅プログラムです。
MSP430FR2433のサンプルコードにもそれが存在します。
LED点滅サンプルコード msp430fr243x_1.cを下記に示します。

//******************************************************************************
//  MSP430FR243x Demo - Toggle P1.0 using software
//
//  Description: Toggle P1.0 every 0.1s using software.
//  By default, FR24xx select XT1 as FLL reference.
//  If XT1 is present, the PxSEL(XIN & XOUT) needs to configure.
//  If XT1 is absent, switch to select REFO as FLL reference automatically.
//  XT1 is considered to be absent in this example.
//  ACLK = default REFO ~32768Hz, MCLK = SMCLK = default DCODIV ~1MHz.
//
//            MSP430FR2433
//          ---------------
//      /|\|               |
//       | |               |
//       --|RST            |
//         |           P1.0|-->LED
//
//   Cen Fang
//   Texas Instruments Inc.
//   Feb 2015
//   Built with IAR Embedded Workbench v6.20 & Code Composer Studio v6.0.1
//******************************************************************************
#include <msp430.h>

int main(void)
{
    WDTCTL = WDTPW | WDTHOLD;         // Stop watchdog timer

    P1OUT &= ~BIT0;                   // Clear P1.0 output latch for a defined power-on state
    P1DIR |= BIT0;                    // Set P1.0 to output direction

    PM5CTL0 &= ~LOCKLPM5;             // Disable the GPIO power-on default high-impedance mode
                                      // to activate previously configured port settings
    while(1)
    {
        P1OUT ^= BIT0;                // Toggle P1.0 using exclusive-OR
        __delay_cycles(100000);       // Delay for 100000*(1/MCLK)=0.1s
    }
}

サンプルコードには、Descriptionとして、説明が記載されています。

// Description: Toggle P1.0 every 0.1s using software.
// By default, FR24xx select XT1 as FLL reference.
// If XT1 is present, the PxSEL(XIN & XOUT) needs to configure.
// If XT1 is absent, switch to select REFO as FLL reference automatically.
// XT1 is considered to be absent in this example.
// ACLK = default REFO ~32768Hz, MCLK = SMCLK = default DCODIV ~1MHz.

●Google翻訳の利用
みなさんご存知のとおり、Googleには無料の翻訳サイトがあります。上のDescriptionをGoogle翻訳で和訳してみましょう。
Google翻訳にアクセスし、上記文書をコピーして、左側の英文ボックスに入力します。
すると、右側のボックスに日本語訳が表示されます。

//説明:ソフトウェアを使用して0.1秒ごとにP1.0を切り替えます。
//デフォルトで、FR24xxはFLL参照としてXT1を選択します。
// XT1が存在する場合は、PxSEL(XINとXOUT)を設定する必要があります。
// XT1が存在しない場合は、自動的にFLLリファレンスとしてREFOを選択するように切り替えます。
//この例ではXT1は存在しないと見なされます。
// ACLK =デフォルトのREFO〜32768Hz、MCLK = SMCLK =デフォルトのDCODIV〜1MHz。

Google翻訳は翻訳精度が向上しており、上記和訳で特に問題はなさそうです。
他のプログラムにも、このDescriptionが記載されているので、どんなプログラムなのかは、このGoogle翻訳の併用により、内容を確認してみてください。

●Chromeの日本語訳機能を使用したWebデータシートの活用方法
最近、TI製品のページ構成が下のように変更されました。
Webデータシートが最初に掲載されており、PDF版は、ダウンロードすることで入手できるようになっています。

clm_mcu_1-2_10_web_datasheet_1

ここで、Webデータシートを開き、

clm_mcu_1-2_11_web_datasheet_2

Chromeブラウザを使っている場合は、右クリック→日本語に翻訳をクリックすると、

clm_mcu_1-2_12_web_datasheet_3

そのページが日本語に翻訳されます。

clm_mcu_1-2_13_web_datasheet_4

複数行に渡っている文章などは、意味が通らない場合もありますが、このWebデータシートは即和訳できるので便利です。

●LED点滅プログラムの導入と実行
それでは、LED点滅サンプルコード msp430fr243x_1.cをインポートするために、下記CCSアイコンをダブルクリックしてください。

clm_mcu_1-2_14_led_program_import_1

そうすると、下のようにインポートされたプロジェクトが、プロジェクト・エクスプローラに追加されます。

clm_mcu_1-2_15_led_program_import_2
ファイル名の横の▷ボタンを押すと、プロジェクトが開き、プロジェクト全体を確認することができます。

clm_mcu_1-2_16_led_program_import_3

●プロジェクトの詳細説明

clm_mcu_1-2_17_project_details_1

プロジェクトファイル名:msp430fr243x_1.c これと同名のフォルダがワークスペース内に生成されます。
下記のようなフォルダ構成になっています。

インクルード・ファイル:各種ヘッダファイルや、ランタイムライブラリ関連ファイルがここで指定されています。

Debugフォルダ:ビルドを行うことで、このフォルダ内にその結果や生成ファイルが作成されます。リンクの成功・失敗に関わらず、.map(マップ)ファイルというものが生成されます。

ターゲット設定ファイル:どのようなエミュレータで、ターゲットのMSP430デバイスを開発するのかを設定するファイル。

リンクコマンドファイル:ターゲットプロセッサのメモリ構成と、セクションと呼ばれるプログラムやデータの構成要素をどのメモリに配置するかを定めたもの。

ソースファイル:ソースコードが書かれたmsp430fr243x_1.cが置かれます。この例ではソースファイルは1個のファイルだけですが、通常複数のファイルが置かれます。

ソースコードは、msp430fr243x_1.cをダブルクリックすることで、新たにタブが追加され、その内容を見ることができます。
また、その画面上でソースコードのエディット(編集)も行うことができます。

clm_mcu_1-2_18_project_details_2

このソースファイルに修正が加えられると、ファイル名を示しているタブのファイル名の前に、*印が付きます。

clm_mcu_1-2_19_project_details_3

これはファイルが保存されていない(未保存である)ことを示します。

clm_mcu_1-2_20_icon_saveアイコンを押していただくことで、そのファイルが保存されます。
この保存が行われると、タブから、*印が消え、そのファイルが保存されたことを示します。

●LED点滅コードの実行
MSP-EXP430FR2433を箱から取り出して、付属のマイクロUSBケーブルを、ローンチパッドとPCに接続してください。
初回はドライバのインストールに時間がかかる可能性があります。
ドライバがうまく導入されたかどうかは、デバイスマネージャーを起動し、ポート(COMとLPT)を見ることで確認できます。

clm_mcu_1-2_21_led_program_exec_1

上記は正常に導入された場合の例です。

それでは、CCSのclm_mcu_1-2_22_icon_debugボタンを押して、デバッグを行います。
プロジェクトファイル名のところが、[Active - Debug]になっていることを確認してください。プロジェクトファイルが複数になると、違うプロジェクトが指定されてしまって、ビルドされてしまう場合があります。

ところで、ビルドとは何でしょうか?

●ビルドとは?
ビルドとは、そのマイコンで動作させる実行コードを生成するための下図の一連の動作(コンパイル→アセンブル→リンク)のことを指します。

clm_mcu_1-2_23_ccs_build_1

CCSでは、上記のclm_mcu_1-2_22_icon_debugボタンを押すだけで、各ソースファイルのコンパイル、アセンブル、リンクを行い、一つの(マイコンで動かせる)実行形式の.outファイルを生成できます。
このリソース・エクスプローラで取り込んだプロジェクトでは、上記の設定がすべて行われている状態になっているので、すぐにビルドが行えます。

●ビルドの続き
下記のULPアドバイザ画面が出ますが、Proceedボタンを押して、先に進めてください。
なお、□Do not show this message againにチェック「✓」印を入れておくと、この画面が出なくなります。

clm_mcu_1-2_24_ccs_build_3

下記の画面が出て、デバッガの設定が行われます。

clm_mcu_1-2_25_ccs_build_4

そして、ビルドされたコードがFRAMにダウンロードされて、プログラムの開始点(エントリポイント)で実行待ちの状態になります。

clm_mcu_1-2_26_ccs_build_5

またコンソール画面にFRAMの使用量120バイトと、RAMの使用量160バイトであることが表示されています。

次にLED点滅のサンプルコードを説明します。

clm_mcu_1-2_27_ccs_build_6

このプログラムの中に出て来るBIT0は、ヘッダファイルmsp430fr2433.hで定義されています。
このヘッダファイルは C:\ti\ccsv7\ccs_base\msp430\includeの中にあります。

/************************************************************
* STANDARD BITS
************************************************************/


#define BIT0        (0x0001)
#define BIT1        (0x0002)
#define BIT2        (0x0004)
#define BIT3        (0x0008)
#define BIT4        (0x0010)
#define BIT5        (0x0020)
#define BIT6        (0x0040)
#define BIT7        (0x0080)
#define BIT8        (0x0100)
#define BIT9        (0x0200)
#define BITA        (0x0400)
#define BITB        (0x0800)
#define BITC        (0x1000)
#define BITD        (0x2000)
#define BITE        (0x4000)
#define BITF        (0x8000)

ビットフィールドを8ビット分だけに限定して、そのBITの値について説明します。
そのBITが指している各ビットは
                    76543210
 BIT7: 16進数では 0x80 2進数では 10000000b
 BIT6: 16進数では 0x40 2進数では 01000000b
 BIT5: 16進数では 0x20 2進数では 00100000b
 BIT4: 16進数では 0x10 2進数では 00010000b
 BIT3: 16進数では 0x08 2進数では 00001000b
 BIT2: 16進数では 0x04 2進数では 00000100b
 BIT1: 16進数では 0x02 2進数では 00000010b
 BIT0: 16進数では 0x01 2進数では 00000001b

となります。
これらの定義済のBIT数値を使用して、各ビットの設定を行えるようになっています。

●プログラムの実行clm_mcu_1-2_28_ccs_button_run、停止clm_mcu_1-2_29_ccs_button_stop、デバッグ終了clm_mcu_1-2_30_ccs_button_quit、各ボタンについて
ここで、Runボタンclm_mcu_1-2_28_ccs_button_runを押すと、プログラムの実行が開始します。
ボード左下の赤いLED1が点滅しているはずです。ご確認ください。

clm_mcu_1-2_31_board_photo_LED1
       ↑LED1

プログラムの実行停止は、オーディオプレーヤでいうところの一時停止ボタンclm_mcu_1-2_29_ccs_button_stopです。
停止ボタンclm_mcu_1-2_30_ccs_button_quitは、デバッグ終了ボタンで、このボタンを押すと、CCSデバッグ画面から抜けて、CCSエディット画面に移ります。

●プログラムの実行停止とデバッグ終了について
必ず、実行停止ボタンclm_mcu_1-2_29_ccs_button_stopを押してから、デバッグ終了ボタンclm_mcu_1-2_30_ccs_button_quitを押してください。
そうしないと、プログラムが実行されたまま、デバッグを終了することになり、デバッガからプログラム実行停止の処理が行えなくなってしまいます。

今回のまとめ
次回は、この新型ローンチパッドに、LMT01+I2C LCDを接続するボードを作成して、LMT01+I2C LCD制御プログラムを組み込んで、温度計として動作させる例を紹介します。

(つづく)

一覧に戻る

ページトップへ