レトロ電子工作

電子工作はじめました!
基本的な所からゆっくりゆっくり進めていきます

MSP430 開発 その5・・・CCSでプログラミング: SW入力

2024年11月29日 00時26分01秒 | 電子工作
先日の「Lチカ」プログラムでは、I/Oポートの出力を行いました、今回はI/Oポートからの入力に関するプログラムを作って行こうと思います。
 押しボタンスイッチ(S2)が、P1.3につながっています。
(これは、ポート1のビット3という意味です。 下の図の橙色の部分)


 スイッチが押された事が視覚的に分かるように、押されたらLED1とLED2の点灯/消灯を反転させるようにプログラミングしてみます。

1)新たにプロジェクトを作る
 SW-Blink

MSP430 開発 その4・・・CCSで最初のプログラム:Lチカ

2024年11月28日 18時27分48秒 | 電子工作
プログラムを作成する場合のモットー、できるだけ自分でキーボードを叩かない・・・  それには、

 → コピペで前に使ったコードを持ってくる ・・・ もしくは、
 → サンプル・プログラムを探してきて、それを改造する。

これが 一番楽な方法でしょう。 自らキーボードで文字を打ち込む場所は、コメントの部分だけにして、ここだけは時間をかけてでも できるだけ分かりやすい文章にすべき、力を入れるべき所です。
 よって、ハードウェアにおける「Hello world」プログラムともいえる 「LED点滅」=俗にいう「Lチカ」も サンプルプログラムを見つけてきて、実行し 自分では できるだけ文字を打たなくて済むように工夫しましょう。


1) まずは、資料集めから

 MSP430の開発キット LaunchPad : MSP-EXP430G2 のデータシート、ユーザーズマニュアル等、PDFファイルの資料をインターネットから探しまくり、ダウンロードしました。  どのポートにLEDが繋がっていて、どのポートにスイッチが繋がっているのか?分からないことには プログラムの作りようがありません。 入手した簡単な(日本語の)回路図が こちら ↓ 


 ポート1のゼロ・ビット目=P1.0 に 赤のLEDが接続されているのが分かります。 (これが LED1)
 もう1つ、ポート1の6ビット目=P1.6 に 緑のLEDが接続されてます。 (これが LED2) 
両方のLEDとも、Hi = '1' を出力すると、LEDが点灯します。
 そして、ポート1の3ビット=P1.3 に 押しボタンスイッチ(S2)がつながっています。 つまり、ここは入力ポートにしないといけません。
 スイッチを押した時に、Low = '0' が読みだされ、押されていない時はHi = '1' が読みだされます。(プルアップ抵抗がMCUの中にあり、設定で接続することができる)


2)プロジェクトの作成
 新たに、”BuildLED” という名称でプロジェクトを作成しましょう。 今度は最初からちゃんと MCUのターゲットは MSP430G2553 にセットして作成していきます。 (これは一度セットすると、次に変更するまでは同じターゲットのままでいるようで、しばらくは G2553のまま 再入力しなくても良いでしょう)
 CCSを起動し、メインメニュー:Gettting Started画面で 「New Project」を実行、その画面内で ① ターゲットのDevice=MSP430G2553にセット
 ② プロジェクト名を入力 ( 例: blinkLED )
 ③ BASIC Examplesで 「Blink The LED」を クリックしてから、
 ④ [Finish] ボタンを押す。


 すると、 blink.c というファイル名で サンプル・プログラムが入ったファイルが自動で作成されます。 ↓ 

 このサンプルプログラムは、LED1(赤)を 激しく点滅させる(LEDをチカチカさせる)だけのプログラムです。


3)実行してみる
 何ひとつソースの文字を打ち込むことなく、プログラムが完成してしまいました。 F11キーを押して Debugを開始すると、ビルトも自動でやってくれます。 実行コードがLaunchPadに書き込まれ、しばらくすると main()関数の先頭の { カッコの所で 実行が一時停止した状態まで進みます。 (8行目の緑の矢印の所で停止している)
 F8キーで プログラムの続きを 実行させると・・・

 赤いLEDが激しく点滅します。

 上の状態から F5キーで 1行づつ 確認しながら ステップ実行させることもできます。 

 例えば、 10行目 P1DIRに1を書き込むと P1=ポート1のビット0が出力ポートになり、初期状態でHiが出力されます→ LED1がいきなり点灯するのが分かります。
 次に 16行目の P1OUT ^= 0x01; を 実行すると、ビット0の状態が  ^= XOR命令で反転するので LED1は消灯します(=Lowが出力された)

 その後の forループで 変数 i が 1万から1づつ引かれ、ゼロになるまで繰り返され・・・ これでしばらく時間待ちになります。=LEDの点灯or消灯時間。
そして、点灯/消灯を繰り返します。
 どこのタイミングでも良いので F8キーを押すと、ずっと実行されるので(実行開始)LED1 が 点滅したままの状態になります。 このプログラムがMCUに実際に書き込まれたので、次に CCSから実行しなくとも 基板に電源をつなぐだけで、赤いLEDの点滅は実行されたままになります。

 つまり、このLaunchPadはプログラム・ライターとしても機能するということです。




 プログラムの中で volatile という あまり見かけない命令が出てきますが、これが宣言されている 変数は、「最適化」を行わないようにするための指定です。 ここでは 変数i が最適化から外れて、(レジスタ変数では無く)必ずメモリ上の変数がアクセスされます。
つまり、レジスタ変数等に割り振られて超高速に動作し、不要な命令が実行されなくなってしまうのを防ぐことができます。 (時間を待たせるための空ループもちゃんと実行されます)



MSP430 開発 その3・・・CCSでプログラミング 開始までの手順

2024年11月20日 18時37分17秒 | 電子工作
MSP430の動作テスト用 開発キットである LaunchPadを使って、プログラミングに慣れてみましょう。 
Launch とはロケット等の「発射台」を意味し、MSP430の開発がロケット・スタートできるように(苦労なく楽に始められるように)用意されたセット基板です。 これも 幾つもの種類があるようで、 私が入手できたのは 型番が「MSP-EXP430G2」という 少し古いタイプのものです。

(もし、これが入手出来ない時は、「MSP-EXP430G2ET」という新しいタイプで探してみてください。 Mouser辺りで手に入ると思います)
 
ここに標準で取り付けられている MCUは MSP430G2553 で、20ピンのICです。

これとは別に、MSP430G2452 という型番のMCUも、IC単体で付いていました。 この基板に 差し替えて使えるようですが、今はそのまま G2553 でプログラミングを行っていきます。



1)PCとLaunchPadを USBケーブルでつなぐ
 この開発キットには USBケーブル(Mini-B)も付属していて、それを使ってノートPCと本基板とを接続します。 (これで電源ケーブルも兼ねています)



 USBで接続されると、本基板はシリアルポート(ここではCOM3)として認識されます。

(デバイス・マネージャーで ↑ 確認できる)
 これ1本で プログラムを書き込んだり、ステップ実行でデバッグしたり出来るようになります。


2)プロジェクトを作成する
 CCSのショートカット・アイコンをダブルクリックで 起動→
 (これが、なかなか重いアプリで、起動に30秒もかかったりします。 気長に待ちましょう)

 Getting Startメインメニューが出たら 「New Project」を実行します。
 
 ここで プロジェクト名をキー入力します。 (例えば、”Start”  )
 その上で、[Finish]ボタンを押すと、プロジェクトが作成され main.c ファイルも自動で作成されています。 この時、type filter test が 
「Empty Prpject(with  main.c)」
となっている必要があります。



 main.cファイルの中には、main()関数が自動で作成されていて 1行だけコードが書かれています。 (ウォッチドッグ・タイマ機能を止めるコードなので そのまま消さずにおきます)


3)ビルトする
 [ Project ] → [Built All]  をメニューから実行するか、<Ctrl>キーを押しながら Bキーを押すかすると、ビルトされ 実行ファイル ???.out が作成されます。
 この時、プログラムソースに不具合があればエラー表示が出るはずです。

4)デバッグ実行してみる
 ビルドでエラーが出なく無くなったら、実際にMCUにコードを書き込んで ステップ実行してみましょう。 
 F11キーを押すか、 メニューの [Run] → [Debug]を実行するか、もしくは メニューのアイコン内の青緑色の「虫」のマークをクリックしても良い・・・

 この操作で、実行コードがLaunchPadのMCUに書き込まれ ↓ 、デバッグ開始の画面になります。


 この後、F5キー(または F6キー)を押すと1行づつのステップ実行ができます。 (F5とF6の違いは、関数の中に入るか?入らないか?の違い)

 また、行番号の左側(上の緑矢印の部分)をマウスでダブルクリックして、ブレークポイントをセットすることができます。 (上の例だと 9行目) ダブルクリックした行頭に青緑のひし形が表示され、一気に RUNで実行しても、ここで止まってくれます。 ここからまた1行づつステップ動作をさせることができます。

このstartプロジェクトのプログラムでは、ウォッチ・ドッグを止めているだけで 後は何も行っていません。 これでは、デバッグも何も必要はありませんが、デバッグのキー操作の練習になります。
 Microsoft社の Visual Studio系だと Step overが F10キーだったり、昔の Visual BASIC 6.0だと F8キーが Step overだったりしますが、このEclipseでは F5キーが それにあたります。 この微妙なキー割り振りの違いが、結構なストレスになったりします。 同時に複数の統合環境IDEを使わないといけないこともあり、本当にやめてほしい・・・ この程度の基本的操作はキー割り振りを統一してもらいたい所です。


5)デバッグ実行が実行できない
 当初、何も知らずにMSP430のデバッグ実行を試してみようとしたら、エラーが出て 何も実行できませんでした。 その時 ↓ こんな画面が出てました。


 MSP430の タイプが違う! と怒られているようです。
 エラーメッセージをもっと詳細に読むと、LaunchPad(実機)のMCUは MSP430G2553なのに、プロジェクトでは CC430F5123 になっている・・・と言った内容です。 そういえば、MCUの種類をどこにもセットした記憶がありません。 これだけ 何百、何千種類と存在するMSP430シリーズですので、1つの ヘッダーファイル(msp430.h)で済むはずがありません。

 新しいプロジェクトを作る際には、必ず MCUの種類を指定してあげる必要があるはずで、「New CCS Project」の画面の上の方: Targetの場所(右側)が それにあたり、デフォルトではなぜか? CC430F5123なんていう知らないIC番号が指定されていました。 ここを G2553 に変更してやれば良いはずです。

 最初にここの指定を実施しておけば良いのですが、設定し忘れたとしても後からでも直せます。 それには、[ Project ] → [ Properties ] で 出てくる画面の Resouceの中の General 内→ Device設定の所にあります。
 後から直すのも なかなか面倒ですので、プロジェクトを作成する際に最初に行う癖をつけておきましょう。

 また、MSP430シリーズは 種類があまりに多すぎるので 目的のIC型番を探すのも大変です。 そんな時は、<select of type filter text> の所で ”MSP430Gxxx” のように Gまでの先頭文字= Family名を指定しておくと、ドロップダウンリストには Gシリーズの型番のみが表示されるようになるので、かなりICの数が絞られます。

 ここまで デバッグの前準備がマスターできれば、後は 実際のプログラムを作成するだけです。


MSP430 開発環境 その2・・・CCSをインストール

2024年11月09日 22時27分01秒 | 電子工作
TI社のWebページからダウンロードしてきた CCS(Windows版 64ビット版)を解凍すると、下のようなsetupの実行ファイルが出てくるので、これを実行してCCSをインストールしてみます。
 (ccs_setup_12.8.1.00005.exe が実際のファイル名)

ここで注意しないといけないのが、このインストーラは外国製で全角(漢字等)が入っている名称のフォルダ内に入っていると、途中でエラーとなってインストール出来ない点です。
(これは、「Eclipseあるある」で、Eclipseはインストーラが入っているフォルダ名称に英数字以外の文字が含まれているとインストール出来ずに・・・途中で固まって進まなくなる… という症状)

いっそのこと、Dドライブのルートフォルダに このSetupプログラムが入っているフォルダごとコピーしてから、インストーラ(上の画像の赤矢印)を起動した方が良いです。 このファイル自体 1.3GB 近くある巨大なファイルで、インストールにも結構な時間がかかります。
 また、インストールするとHDDの容量が 3GB 程 消費される、かなり巨大なプログラムであることを覚悟しておきましょう。 できれば、高速に動作する最新のPCを用意し、そこにインストールするのが良いでしょう。


インストール開始:
 ここで行うインストールの作業は、ccsのバージョンが変わるとまったく違ってきてしまうことでしょう。  だから時間がかなり経過するとまったく参考にならなくなってしまうかもしれません。 ただ、「インストール作業」自体はプログラミングとは、関係のない(ある意味)無駄な作業です。 ここでは画像入りで 丁寧に説明しますので、それを参考に さっさと終わらせてしまいましょう。

1)セットアップ・プログラムを実行
 ccs_setup_12.8.1.00005.exe をダブルクリックして実行すると、次のような確認の画面が出ますので、「Next >」をクリックします。


2)ライセンスの説明が表示されるので、受け入れる(accept)にチェックを入れて、また「Next >」をクリックします。


3) PCがCCSをインストールするのに適しているか?チェックされる

この画面で すべてのチェック項目に OK が表示されていれば良いのですが、OKでないとインストール自体ができないため、ここで終了となってしまいます。 すべてOKであるとして、「Next >」をクリックします。

4)インストール先のフォルダが表示される(変更も可)

 ただ、ここも通常は変更せずに 「Next >」をクリックします。
 このバージョン(Ver 12.8.1)だと、
       C:¥ti¥ccs1281
 フォルダに入ります。 (↑これ重要なので、覚えておきましょう)

5) カスタム・インストールを(インストール方式)選択

 また、「Next >」をクリックします。

6) □ MSP430 ultra-low power MCUs(インストールするツール)を選択
 実は、このCCSは MSP430の開発環境だけでなく、いろいろなツールの集合体だったのですね? 今はMSP430のIDEだけ使えるようになれば良いので、一番上の □ MSP430… にのみ チェックを入れて、「Next >」をクリック。

7)(使える)デバッグ用プローブを表示。(確認するのみ)



8)最後に 準備完了の画面が表示されるので・・・ そこで、
  もう一度、「Next >」を押して初めて、インストールが開始されます

  ここから しばらく時間がかかります。


 古いWin10のPC(CPUが i3 で、CドライブはHDD)にインストールした時は、ここから1時間以上 かかりました。 あまりに遅いので、再度 OSがWin11のFMV、 A574/MX (CPUが i5 で、CドライブはSSD 128GB)にインストールした時は、15分程で完了しました。 どちらにしても、かなり時間がかかります。
 ただし、OFF-Lineインストーラなので、インターネットに接続していないPCでもインストール可能です。 (これが便利!) インストールが終わって、最後に 最新版の Code Composer Sutudio ↓ の宣伝を表示するためにインターネットにアクセスします。 

 ネットにつながらなければ、ここでエラーが出ますが CCSの動作には何も影響はありません。


 最初に CCS を実行する際に、ワークスペースのフォルダ名を入力するようなフォームが出ます。 これは、Eclipseの特徴で 起動時に毎回、ワークスペースの場所を聞いてきます。 毎回、入力するのが面倒なので
        □ Use this as the default and do not ask again.
 にチェックを入れて 場所を記憶させておきましょう。

 デフォルトでは Cドライブの ユーザーのフォルダ下に設定するようになっていますが、ユーザー名が変わるごとに異なってしまうのも使いづらいので、
           D:¥CCS¥workspace
 上記フォルダを Dドライブ下に作っておき、ここを指定することにします。


デスクトップ上にCCSのショートカットアイコンが自動的に作成されます。

 以後、CCSを起動するには このショートカット ↑ をダブルクリックすれば良いし、ワークスペースのフォルダ名を聞いてくることもありません。
 ただし、起動するまでには かんり時間がかかります。 (1分から2分弱)
あまりに遅いので、何か早くする方法(が あれば)を見つけたいものです。
 CCSが起動すると、↓ こんな画面が最初に表示されます。


 ここまで 出来ればインストール作業は完了です。




MSP430 開発環境 その1・・・2種類の CCS

2024年11月07日 18時15分22秒 | 電子工作
電池で稼働する装置を作る必要が出てきたため、超低消費電流のCPUを探してみた。 以前から色々な書籍等で取り上げられていた MSP430シリーズを思い出し、使ってみようと思います。

まずは、開発環境をインストールし、その使い方に慣れたいと思います。 それにはそのデバッグに使用する為の基板を先に製作しようか? とも考えたのですが 「LaunchPad」という名称の評価基板があるようなので それを入手し、試してみることにしました。 かなり古いキットで既に販売終了しているようですが、幸い中古をヤフオクで入手出来たので、それで慣れることにします。 これなら回路自体は、間違いなく動くはずなので、ソフト開発の方に注力できます。
 LaunchPadは 下の写真のような外装で、
中には 赤い小さな基板が1枚。(5cm x 6.5cm程の小さな基板)


付属の(英文の)説明書 ↓ を見ると、

CCS =Code Composer Studioでプログラムの開発とデバッグが出来ると書かれているので、このCCSなる物を探し ダウンロードしてみました。 無料で使えるようです。
 ちょっと心配なのが、ここに書かれているバージョンが version 4 なのに対し、現在 入手可能な最新版が version12.8でした。 あまりにバージョンがアップされていて、使えるものなのでしょうか?


TI社(Texas Instruments)のWebページ・・・これも直ぐにURLが変更されたり、削除されたりするので 今だけ有効なURLになるでしょうが、
にCCSのインストーラがありました。 (もちろん無料でダウンロード出来ますし、登録も不要でした) CCSTUDIOで検索すればすぐに見つかるでしょう。
 
ただ、ちょっと気になったのが CCSが2種類存在している点です。↓


上の CCSTUDIOは、 ① CCSTUDIO THEIA という名称で、
下のが ② CCSTUDIO だけの名称で、何が違うのでしょうか? どちらも「統合開発環境」= IDEのようですし、違いがここには書かれていません。
調べてみると、②の方が元からあるCCSで Eclipse をベースに作られていて、それに対し ①は 最近 流行りの VS Codeに似せて新たに作った開発環境のようです。
 THEIA(ティア)とうのは、ギリシャ神話の神様の名前で、女神ガイアの娘=女神ティアのことで…愛称?のようです。
 つまり、②の方が新しい開発環境なのでしょう。  ただ、LaunchPadにつなげて使えるのか?不安なので旧式の② CCSTUDIOを まずはインストールして使ってみることにします。