端子台を作りました。やはり端子台はベークライトじゃないと。しかし、ベー
クライトは欠けるので、できれば使いたくない材料。穴開けではポンチでも欠
けるので、小さい穴からじっくり拡大していかないといけない。熱伝導率が悪
いので、割れを恐れてゆっくりしているとドリルがなまってしまう。

端子ユニット。M/B側は適当にピンヘッダ出しておいて、後でソケットをそれに 合うように小さく切ったユニバーサル基板に装着するといい感じ。

コンパレータのテスト。OKです。端子は左から4.0V,1.6V,GND,IRQ5,IRQ4になっ ています。(1.6V、4.0VはM/B上の半固定抵抗で変更可能)
ハードはこれで完成! 10日かかった。

次は拡張したRAMの上にプログラムを乗せる作業だ。これはルネサスのモニタの スタートアップでRAMを認識させておく必要がある。当初、お気楽に300h/monitor/monitor.cでやろうとしたのだけれど、秋月のCコンパイラでは
日立はレジスタの扱いに制限をつけることが多い(東芝、NECにくらべて)。DDRは Write Only。これを設定の確認に読めたらいいのにね。
なんとか拡張RAM上にプログラムをロードして実行できました。うっかりRAMの アクセスにかかわるPort1,2,5,6の設定を実行時にいじってしまっいて、はまっ た。今迄は内蔵RAMからいじっているプログラムで、いつでもいじってもOKだっ たのでうっかりしていた。

端子ユニット。M/B側は適当にピンヘッダ出しておいて、後でソケットをそれに 合うように小さく切ったユニバーサル基板に装着するといい感じ。

コンパレータのテスト。OKです。端子は左から4.0V,1.6V,GND,IRQ5,IRQ4になっ ています。(1.6V、4.0VはM/B上の半固定抵抗で変更可能)
ハードはこれで完成! 10日かかった。

次は拡張したRAMの上にプログラムを乗せる作業だ。これはルネサスのモニタの スタートアップでRAMを認識させておく必要がある。当初、お気楽に300h/monitor/monitor.cでやろうとしたのだけれど、秋月のCコンパイラでは
#pragma global_register(monitor=ER5)これが使えない。どうしようもないので、monitor.srcを変更。
;************************************************************************
;* H8/300H Monitor Program (Advanced Mode) Ver. 3.0A *
;* Copyright (C) 2003 Renesas Technology Corp. *
;************************************************************************
.PROGRAM INITIALIZE ; Program Name
.CPU 300HA ; CPU is H8/300H Advanced
.SECTION ROM,CODE,ALIGN=2 ; ROM Area Section
;************************************************************************
;* Export Define *
;************************************************************************
.EXPORT _INITIALIZE ; User Initialize Module
;************************************************************************
;* User Initialize Module *
;* Input ER5 <-- Return Address *
;* Output Nothing *
;* Used Stack Area --> 0(0) Byte *
;************************************************************************
_INITIALIZE:
mov.b #H'3,r2l
mov.b r2l,@H'fffee
mov.b @H'ffff3,r2l
and.b #H'fe,r2l
mov.b r2l,@H'ffff3
mov.l #H'fff5f,er3
mov.b @er3,r2l
or.b #H'30,r2l
mov.b r2l,@er3
mov.l #H'fffec,er3
mov.b @er3,r2l
or.b #H'30,r2l
mov.b r2l,@er3
adds #H'1,er3
mov.b @er3,r2l
or.b #H'30,r2l
mov.b r2l,@er3
adds #H'2,er3
mov.b @er3,r2l
and.b #H'cf,r2l
mov.b r2l,@er3
mov.b #H'ff,r2l
mov.b r2l,@H'fffc0
mov.b r2l,@H'fffc1
add.b #H'2,r2l
mov.b r2l,@H'fffc8
mov.b #H'6,r2l
mov.b r2l,@H'fffc9
JMP @ER5 ; Goto Monitor Program
.END ;
これで
*BSC_WCR = 3; *BSC_BRCR &= ~1; *BSC_CSCR |= 0x30; *BSC_ABWCR |= 0x30; *BSC_ASTCR |= 0x30; *BSC_WCER &= ~0x30; P1->DDR = 0xff; P2->DDR = 0xff; P5->DDR = 0x01; P6->DDR = 0x6;を実行。gccの吐いたコードをディスアセンブルして秋月のアセンブラが読める形に 変更しました。
日立はレジスタの扱いに制限をつけることが多い(東芝、NECにくらべて)。DDRは Write Only。これを設定の確認に読めたらいいのにね。
なんとか拡張RAM上にプログラムをロードして実行できました。うっかりRAMの アクセスにかかわるPort1,2,5,6の設定を実行時にいじってしまっいて、はまっ た。今迄は内蔵RAMからいじっているプログラムで、いつでもいじってもOKだっ たのでうっかりしていた。
