わさびぃさんこんにちは 吉田です。 ROM のOE端子とCPUのRD端子(70番ピン)を接続されてますか? 接続すべき配線は、 データバスとアドレスバスとチップイネーブル、アウトプットイネーブルが 必要です。 モード6であれば20万番地以降にメモリアクセスする ソフトを書けば、バスコントローラが勝手にCS,RDを出してくれます。 プログラムの方は、20万番地以降に128K分の セグメントを定義して、そこに変数を定義する方法が 一般的かと思いますが、わさびぃさんのでもOKそうな気がします。 すいません。こんなんで参考になりますでしょうか > > お世話になります。 > > わさびぃです。 > > 3048F-Oneをモード6で動作させています。 > 128KbyteのEEPROMを使って、外部メモリを > 増設しました。 > > マニュアルを読み、バス関係のレジスタは、 > 初期値のままにしておきました。 > (8ビット3ステートアクセス、ウェイト3ステート) > > データは、D8〜D15を、メモリの0から7のビットに > 接続して、バスは、128Kbyteなので、 > A0からA16まで接続しました。 > > エリア0だと、128kbyteのROMにかぶって指定できない(?) > と思い、エリア1を使うため、CS1の端子を、 > メモリのCEに接続しました。 > > > 次に、C言語での指定方法がわからなかったので、 > 次のように書いてみました。 > > グローバル変数として、 > BYTE *ptr; > > > if(data == 0x31){ > ptr = (long*)0x200000; > *ptr = 0xAB; > }else{ > ptr = (long*)0x200000; > data = *ptr; > sendData();//<-dataを通信で返送しています。 > } > > > このようにすれば、 > *ptrは、エリア1の先頭アドレスの1バイトをさすと思います。 > #違うでしょうか? > > (3048Fone マニュアル6−9、図6.2より) > > HEW2(H8用)でコンパイルしたファイルをロードして、 > ICEで覗き込んでいるのですが、混合モードでアセンブラコードを見ても、 > CS,WE,REを動作させているようには、見受けられません。 > > こうした、メモリのハードウエア操作を、 > 書き込む必要があるのか、お教えいただければ、 > 幸いです。 > > 他、お気づきの部分あれば、お教えください。 > > よろしく、お願いします。 > > #初めてなので、どうしたものか、ぜんぜん、分かっていない状態です。 > > わさびぃ > > >