081216

|



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



端子ユニット。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だっ たのでうっかりしていた。