RS08に書き込む

開発ツールがつながったら、 今度はマイコンにプログラムを書いてみたくなります。 これは、今までの機材だけではできそうにありません。 何とか、手持ちの機材で済まないかなあ。

緊急発行のため、写真も画面ハードコピーも間に合っておりません。 ご了承ください。
DEMO9RS08KA2評価ボードの写真

アジェンダ

DEMO9RS08KA2評価ボード

FLASH ROMにプログラムを書き込むためには、 専用の機材があると便利です。 DEMO9RS08KA2は、RS08マイコンに対応した評価ボードです。

プログラム用電源が必要

RS08につながるでも書いたように、 RS08は、FLASH ROMの消去と書き込みを行うために12VのVPPと 呼ばれる電源を必要とします。 HCS08マイコン向けの評価ボードであるDEMO9S08QG8には、 12Vの電源を供給する能力はありません。

DEMO9RS08KA2評価ボードからは、 適切なタイミングで12V電源が供給されますので簡単にRS08マイコンの プログラムを書き込むことができます。

ソフトウェアのインストール

DEMO9RS08KA2を使用する前に ソフトウェアをインストールしなくてはなりません。

必要なのは、以下の二つです。

ソフトウェアのインストールが終わったら、 説明書を見ながら、ジャンパの設定を確認して、USBケーブルを接続すると、 あらかじめマイコンに書き込まれていた温度計アプリケーションが 動き出します。

同時に、デバイスドライバのインストールを促すダイアログが現れます。 ダイアログに従って、インストールしたら準備完了です。

プログラムを書き込む

早速、プログラムを書き込んでみましょう。

CodeWarrior V5.1 で新規プロジェクトを作る

CodeWarrior を起動したら、 "Start Dialog"から"Create New Project"をクリックし、 新規プロジェクトの作成を開始します。

以下、簡単に設定を説明します。

項目設定値
DeviceMC9RS08KA2
ConnectionSofTec RS08
LanguageAbsolute assembly
Project NameKA2Blink
Add Additional FilesNothing
Rapid Application DevelopmentNone

プログラムを書く

"main.asm"の中の "variable/data section"のコメント部分から リセットベクタの直前の部分に至るまでを 以下のプログラムに置き換えました。

;
; variable/data section
;
            ORG     TINY_RAMStart
Var_i:      ds.b    1
Var_j:      ds.b    1

;
; code section
;
            ORG     ROMStart
_Startup:
; Disable COP
            mov     #HIGH_6_13(SOPT),PAGESEL
            bclr    SOPT_COPE,MAP_ADDR_6(SOPT)
; Configure PTA5 as output.            
            bset    PTADD_PTADD5,PTADD
mainLoop:
; Wait for a while
L1:
            inc     Var_i
            bne     L1
            inc     Var_j
            bne     L1
; Invert the state of LED
            sta     PTAD
            eor     #mPTAD_PTAD5
; Infinite-loop
            bra     mainLoop

RS08につながるで 使ったプログラムとほとんど同じですが、プログラムを配置する先が RAMStartからROMStartに 変わっています。 このプログラムをディスアセンブルするとこうなります。

 Abs. Rel.   Loc    Obj. code   Source line
 ---- ----   ------ ---------   -----------
  503   18                      ;
  504   19                      ; variable/data section
  505   20                      ;
  506   21                                  ORG     TINY_RAMStart
  507   22  a000000             Var_i:      ds.b    1
  508   23  a000001             Var_j:      ds.b    1
  509   24                      
  510   25                      ;
  511   26                      ; code section
  512   27                      ;
  513   28                                  ORG     ROMStart
  514   29                      _Startup:
  515   30                      ; Disable COP
  516   31  a003800 3E 08 1F                mov     #HIGH_6_13(SOPT),PAGESEL
  517   32  a003803 1F C1                   bclr    SOPT_COPE,MAP_ADDR_6(SOPT)
  518   33                      ; Configure PTA5 as output.            
  519   34  a003805 1A 11                   bset    PTADD_PTADD5,PTADD
  520   35                      mainLoop:
  521   36                      ; Wait for a while
  522   37                      L1:
  523   38  a003807 20                      inc     Var_i
  524   39  a003808 36 FD                   bne     L1
  525   40  a00380A 21                      inc     Var_j
  526   41  a00380B 36 FA                   bne     L1
  527   42                      ; Invert the state of LED
  528   43  a00380D F0                      sta     PTAD
  529   44  a00380E A8 20                   eor     #mPTAD_PTAD5
  530   45                      ; Infinite-loop
  531   46  a003810 30 F5                   bra     mainLoop

これも、アドレスが違うだけで、全く同じです。

デバッガを呼び出す

DEMO9RS08KA2評価ボードがUSBに接続されているのを確認し、 DEBUGボタンをクリックして、デバッガを呼び出します。

すると、"MCU Configuration"というダイアログが出てきます。 ここで、"Hardware Model"に"DEMO9RS08KA2"を選択して 「OK」をクリックすると、 FLASH ROMにプログラムが書き込まれます。

いつ書き込まれるのか?

今まで、MON08を含めて、 すべて P&E Microcomputer Systemsの流儀に慣れていたため、 SofTec Microsystemsの インターフェースには慣れていません。

違いは、色々ありますが、一番の不安は、 プログラムがいつのまにか書き込まれてしまってることです。 以前のように「消してもいいか」ダイアログが出てこないので、 FLASH ROMの寿命がこないかどうか心配です。

プログラムを走らせる

次に"Start/Continue"ボタンをクリックするとプログラムが実行され、 評価ボード上のLED2が点滅を始めます。 写真では、もちろん点滅は見えませんが。

LEDが点滅する写真

なぜ、LED0も光るのか?

この実験をすると、PTA3に接続されているLED0も同時に光ってしまいます。 あれ?PTA3から"1"レベルを出した覚えはないぞ。 実は、PTA3は、デバッグに使用するBKGD端子も兼ねているため、 このプログラムを実行させると点灯してしまうのです。 厳密には、デバッガとの通信が行われているため、 LED0は高速に点滅しています。

この端子をユーザで使用したいときには、 プログラムの最初の方でSOPTレジスタの BKGDPEビットをクリアしてデバッガを切り離します。

DEMO9S08QG8評価ボードで試す

ここまでは、RS08マイコンに対応したDEMO9RS08KA2評価ボードで 書き込みを行いましたから、 まあ、うまくいって当然のお話でした。

でも、せっかく、 手元にBDMインターフェースであるDEMO9S08QG8があるのだから、 これが使えないかと考えてしまうのは、人情というものでしょう。

12V電源があればいいんでしょ

DEMO9S08QG8のRESET*端子の代わりに、 006P乾電池二個と12V3端子レギュレータで構成した電源を接続して、 FLASH ROMへの書き込みができないかを試してみました。

12V電源の写真

しかし、この作戦はうまくいきませんでした。

VDDは、5Vがいいのか?

「もしかしたら、VDD電源に3.3Vを与えたのでは足りないのではないか。」 と考えて、さらに3端子レギュレータで構成した5V電源をVDDに接続して FLASH ROMへの書き込みを試みました。

5V電源の写真

しかし、この作戦もうまくいきませんでした。

結局、単純に電源電圧を変更しただけでは 対応できないという事がわかってしまいました。 今後、MultiLinkがRS08に対応したときにファームウェアが提供される事を 期待するだけですね。

課題

一品アプリケーションを作る

評価ボード上のマイコンにプログラムを書いてもつまらないので、 今度は、アプリケーションボードを作って、 BDMケーブルをつないでアプリケーション開発に挑みます。

2006-06-09 写真を二枚追加。

2006-06-06 緊急発行。

Copyright (C) 2006 noritan.org ■