[H8-ML(2198)] Re: [H8-ML(2196)] メモリへのデータ書き込みについて
From: "吉田 裕昭@コンラックス" <hyoshida@xxxxxxxxxxxxxxxx>
Date: 2002年09月20日(金)09時22分49秒
わさびぃさんこんにちは
吉田です。

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を動作させているようには、見受けられません。
> 
> こうした、メモリのハードウエア操作を、
> 書き込む必要があるのか、お教えいただければ、
> 幸いです。
> 
> 他、お気づきの部分あれば、お教えください。
> 
> よろしく、お願いします。
> 
> #初めてなので、どうしたものか、ぜんぜん、分かっていない状態です。
> 
> わさびぃ
> 
> 
> 

スレッド概略
[2196(R)](起点)
 └[表示中]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]