MSP430 / Introduction CCS IDE

IMAGE11.GIF - 980BYTES 初めに
IMAGE11.GIF - 980BYTES CCS IDE 導入
IMAGE11.GIF - 980BYTES プログラム作成のトライアル
IMAGE11.GIF - 980BYTES 追加情報
IMAGE12.GIF - 2,801BYTES

変更履歴
2011年5月2日 FreeRTOS関連更新
2011年1月4,5日 追加(MSP-FET430UIF関連)
2011年1月1日 新規作成開始


MSP430に関してはここからスタートしてください


2006年(?)にTexas Instrumentsが主催するセミナー(確か秋葉原の会場)に参加した際に、
左記の評価ボート(MSP-EXP430FG4618)をいただきました。
その頃は、簡単な動作をさせただけでしたが、今回再登場させました。
尚、私がいただいた基板には、RAM容量が少ないMSP340FG4619が載っています。
FLASH(120KB)は充分でもRAM(4KB)が心配です。

左の白いボックスは、年末(12月29日)にDigi-Keyに注文していた、MSP-FET430UIFです。
本日(1月4日朝)受取り、Debugを始めています。
年末年始の航空便が忙しいと思われる時期に、早い到着で驚いています。

ここに、作業内容を記します
CCS(Code Composer Studio)起動画面 FreeRTOSの開発事例
コンパイルエラーは無くなったが、未だ実機確認出来ず出来ず
Olimex MSP430-169LCD Olimex MSP430-449STK2
2006年当時にMSP430関連で(一人で)盛り上がっていたころに、OlimexにPCB製作依頼と並行して購入した基板が、
その後何もせずに放置したまま残っていました
今回、Web上で無線関連の記事を見て奮起、再びDDS-VFO作成を決意したところです(どうなる事やら)







初めに
IMAGE12.GIF - 2,801BYTES
TOP02_001.PNG - 934BYTES


<何故また>


2010年は、PIC24を始めてGPSロガーに熱中し、その後LPC1768に乗り換えてmbedやLPCXpressoを中心に楽しんできましたが、暮れに無線関連のWebを尋ねたところ、再びDDS-VFOを製作することを決意するに至りました。
DDS-VFOは、以前にここでいくつかの製作事例を紹介しています。
        BULLET.GIF - 64BYTES VFO
        BULLET.GIF - 64BYTES QRPトランシーバー
        BULLET.GIF - 64BYTES ネットワークアナライザー

2007年に下記の様なDDS-VFOを計画し、実は部品も一部購入していたのですが、当時は仕事の関係もあり途中で中断してしまいました。

回路図
PCBレイアウト

基本コンセプトは、低消費電力タイプのハンディーQRP機に使えるようにと検討したものです。
DDSはいつもAD9851(555mW@180MHz)が中心でしたが、結構大食いだったのでAD9834(20mW@3V)に変更して回路設計しました。
さて再開するに際しては、CPU選定が一番の悩みです。
昨年からの流れでLPC1768が妥当なところですが、もう一度MSP430に戻ろうと思います。
今更、MSP430に戻るのは大変だと覚悟しています。大きな難点は、RAMサイズです。
あまりにも制限が多く、値段と性能のバランスを見るとLPC1768を含めARMが良いことは疑いありません。
MSP430上でもCPUによっては、FreeRTOSも動くでしょうが、FreeRTOSを動かすだけでかなりのRAMを消費して、本末転倒の感があります。
しかし、低消費電力の魅力は絶大で、何とかこのCPUの利点を最大限、活かしたいと思いました。
以前の活動は、下記にあります。
          MSP430 / eZ430-F2013
            Sample_0 Project
            Sample_1 Project  



<開発環境>

再開するにあたり、ソフトウェア開発環境をどう構築するかが最初のポイントでした。
考えたのは、下記です(無償の開発環境が前提なもので)。

開発環境名 提供者 入手先 コメント 参考としたWeb
CCS Texas Instruments TI Code Composer Studio IDE Eclipseをベースにした開発環境
16KBのコード制限あり
ROINOSを参考にさせていただきました
IAR-KICKSTART Texas Instruments IAR Embedded Workbench Kickstart 4KBのコード制限あり
MSP GCC GCC SourceForge 制限なし


GCCはプログラムサイズが大きくなった場合の選択肢として、先ずはTI提供のCCSを使ってみようと考えました。
何しろ、[FLASH 1KB RAM 128B]なんてCPUもファミリー内にあるので、アッセンブラも辞さない覚悟が必要です。
既に、C言語でやりたいことを越えてしまいこのCPUの難しさを経験しています
JTAGアダプタを用意する必要がありそうで、色々と物色したのですが、最終的にはTI純正のものを使用することにして、Digi-Keyに発注しました。
以前は、MSP430F2013を使用していた為に、開発環境が大きく異なっていましたので、MSP430でJTAGを使用するのは今回初めてとなる。


<コミュニティ>

Webで色々と調べている最中に、"TI E2E Comunity / MSP430 16-bit Ultra-Low Power MCUs"のサポートフォーラムに辿りつつ来ました。
困った時には覗いて見るつもりです。
先ずは、このコメントが重要でしょう。
日本語では、このページがMSP430の入り口です







CCS IDE 導入
IMAGE12.GIF - 2,801BYTES
TOP02_001.PNG - 934BYTES

<ソフトウェアの入手とインストール>

順序 作業 アクセス場所等 画像 コメント
1 ダウンロード CCS-FREEの入手先 残念ですが、
16KBのサイズ制限があります
2 上記
ダウンロード
ボタンを
操作
.
3 ダウンロード
前に登録
しないと
いけません
色々と記入しないといけない部分が
ありますが、記入しないとダウンロード
出来ません

E-mailで情報確認のプロセスが
あるかもしれません

メール確認要!
4 ダウンロード ZIPファイルは、
380MBとかなり大きなファイルです
5 解凍&インストール C:\Program Files\Texas Instruments\ccsv4 私の場合には、
左記のDirectoryにインストールしました
430.22MBに展開されました











プログラム作成のトライアル
IMAGE12.GIF - 2,801BYTES
TOP02_001.PNG - 934BYTES

FreeRTOSのインプリメント例→こちらを参照

順序 作業 ポイント コメント
2011年5月1日
下記内容は古い情報となりました。
V7.0.0をMSP430へ移植することが出来ました。
新しい内容は、こちらを参照ください
1 ソフトウェアの入手 FreeRTOSのWebサイトから最新版のV6.1.0を入手 CPU依存部も含め全てが
1つのZIPファイルになっています
2 ソフトウェアの分離 MSP430用のソフトウェアを分離します
結果としてCCS IDEを使用する場合には、下記Dir内のファイル利用
①FreeRTOSV6.1.0\Demo\msp430_IAR
②FreeRTOSV6.1.0\Source\portable\IAR
その他のファイルに関しては、下記のDir参照のこと
CCSは、最初にGCCをベースに
していると思ってファイルの選択を
したのですが、上手くいきませんでした

この場所にある
[Code Composer Studio™ v4.2
User's Guide for MSP430™ User's
Guide]
P27 Appendix Bに、
Source code for the TI CCS C
compiler and source code for
the IAR Embedded Workbench
compiler are not fully compatible.
とあり、IARと(フルではないが)
コンパチ部分があると書かれている

この記述から、CCSのコンパイラーは
IAR製でFreeRTOSはIAR用ソース
ファイルが使用出来ると予想した

予想は当っていたが、アッセンブラ
ソースは全く互換性なしで、修正要
(下記参照)
3 CCS IDE環境設定 Header FileのPath設定をしてからコンパイルしないと、エラーが多発します
設定は、ここを参照してください
この画面は、[Project]->[Property]で表示されます
ファイルの修正前に必ず実行のこと
4 プログラム修正 修正が必要なファイルは、全部で9ファイル
その中で、下記のように分類出来る
①サンプルと違うCPU設定に伴いReg等の設定が違うファイル群
  • main.c
  • ParTest.c
  • serial.c
②アプリケーション別に変更が必要となるファイル群
  • FreeRTOSConfig.h
  • FreeRTOS.h
③不要な部分でエラー発生を抑えるため
  • IntQueue.c
④アッセンブラ記述のファイルで、作り直しをしたファイル群
  (IARアッセンブラとCCSアッセンブラの互換性なし)
  • serialASM.s43 (portasm.hをInclude出来ずに内部に展開)
  • portext.s43   (portasm.hをInclude出来ずに内部に展開)
⑤リンクファイル先を明示した為
  • portable.h
左記の変更を含め全体ファイルは下記に
前半
後半
5 一様
コンパイル完了
コンパイル結果
 (サンプルアプリケーションが殆ど無いので、
 ほぼ全ての領域をFreeRTOSでの使用)

CPU: MSP430F47176 (92KB FLASH / 8KB RAM)
RAM:  2768B消費 (約34%消費を既に消費!厳しい現実)
FLASH: 8022B消費
      (約8.5%消費、16KBの使用制限から換算すると49%)


<- 上記情報も現時点で少し怪しい状況です。
再度Debug完了まで、情報は削除します。
但し、動作未確認
確認を始めましたが、どうも動いていない様子
Debugを本格的に実施する必要がありそうです
(2011年1月5日時点)


2011年5月1日
こちらを参照ください。
動作し始めました。



<MSP-EXP430FG4618基板とJTAG Debuggerでの開発例(1月4日開始)>

TIのサポートページに、ボード関連情報があり、サンプルソフト(MSP430FG4618/F2013 Experimenter's Board Software (Rev. A) (zip 4264 KB))も入手できる。
下記プログラムは、CCS IDE上で問題無く動作することを確認した。これで、放置していた基板の動作確認が完了。

プログラム ファイル構成 修正部分
RTC(Real Time Clock) FG4618_RTC.c 無し
LCD Board.h
Board.c
LCD.h
LCD.c
#include <???>
->
#include "????"
各ファイル内のBoard.h、LCD.hの部分を書き直し

引き続き、このボードにFreeRTOSの移植を実行中(1月4日)です。
本日(1月5日)、Debug作業を実施中。割込み処理後の復帰で上手く動作していない様子。
少し時間がかかりそうです。







追加情報
IMAGE12.GIF - 2,801BYTES
TOP02_001.PNG - 934BYTES