"Kazutoshi Fukui" <fukui.kazutoshi@xxxxxxxxxxx> 様 こんにちは。 亀田@fellowです。 >方法としては、通常時はH8がSRAMにアクセスし、 >あるタイミングで、H8が自分自身でBREQをLoにして >バス権を解放します。 H8の出力ポート端子をBREQ端子に接続してLowにし てるって事でしょうか? としたら、ゲートアレイのアクセスが完了した状態を示す 信号を監視して、ポートをLow→Highにすれば良い気がしますが... これだとダメって事なんですよね。(^^;) >バスアービタをはじめて使うので、とまどっています。 >また、サンプル等のデータも探したのですがあまりありませんでした。 簡単なアビトレーションなら、CPUを一番下位のバスマスタにするのが 一般的だと思います。(恐らくマニュアルにも載っている?) 1) 外部のゲートアレイ(GA)がバスマスタになるタイミング (SRAMをアクセスし始めるタイミング)で、 BREQをGAがアサートします。(バス要求中) この時、GAはアクセスWait中です。 2) CPUがBACKをアサートして、バス権を開放したなら、 GAはSRAMのアクセスを開始します。(GAアクセス中) 3) GAは所定のSRAMアクセスを完了した時点で、 BREQをネゲートします。(GAバス開放) 4) CPUは通常通りアクセスをします。 と言った仕組みになると思います。 ここでGAがSRAMへのチップセレクトやRead/Write信号を出すタイミングは、 BREQとBACK信号の両方がアサート状態の時 (通常この条件でBUS GRANTと言う信号を作ります) を条件に取って、信号を作成する必要があります。 出来れば、CPUのクロックでBUS GRANT信号をラッチして、2)の時に CPUがバス開放しても1〜2ステート遅らせてGAがアクセスするのが 良いかもしれません。 同様に3)でGAがバス開放するのも、アクセス完了後1〜2ステート 遅らせてBREQ信号をネゲートするのが良いでしょう。 また、この場合CPUはGAがSRAMアクセスした事を知る手段がありません。 CPUがGAのアクセスを知りたいのであれば、外部割込み等を使用して 通知する等の手段を取れば良いのかもしれませんね。 こんな回答で役に立ちますか? /*****************************/ Fellow System Co., LTD. 亀田 秀樹<kameda@xxxxxxxxxxxx> http://www.fellow.co.jp/ /*****************************/