[H8-ML(2875)] Re: 2台のマイコンをマスタースレーブにするには?
From: kiyota <kiyota@xxxxxxxxxxxxxxxx>
Date: 2003年02月28日(金)18時19分28秒
野中様

 kiyota です。何度も出しゃばってすみません。

> 今回は、ポテンションメータからのデータをAD取り込みして、
> 16msおきの変位と、速度、加速度を計算させフィードバック
> したいと、考えています。

  そうですね、色々と追加機能を考えると、PLDでは容量が
  しんどくなるし、FPGAも初めてだとちょっとは抵抗が
  あるでしょうし・・・。
  なにより「手慣れた手段」が一番ですもんね。
  やっぱりトンチンカンな横槍になってしまいました。
  すみません。

> INTやBUSYってのはどう使うのですか?

  まず、INT と BUSY ですが、hamayan さんが書いておられる通りです。

  便宜的に DPRAM へ接続するCPUをマスタとスレーブと呼ぶとして
  一般的な表現ではこんな感じです。

  一般的的な DPRAM には「特定番地へデータが書かれるとHi(Lo)に
  なる端子」( INT )というのがあります。

  例えば、容量1Kの場合、3FF番地(最終番地)へマスタが何か
  書込むと、DPRAM の「とある出力端子」が H→L になるわけです。

  で、この「とある端子」INT(A) をスレーブ側の割込みへ接続する
  わけです。
  スレーブ側のCPUでは、この割込みで 3FF番地を読み出すと
  この「とある端子」は L→H と変化します。

  3FE番地(最終番地−1)では、スレーブ側からの書込みで
  INT(B) が変化し、マスタ側からの読み出しで元に戻る・・・
  という仕掛けです。
  こうやって、マスタとスレーブの間で通信をやるわけです。
  (あっ、割込みじゃなくってポーリングでももちろんOKです)

  BUSY 端子は、CPUのウェイト端子へ接続する信号です。

  なぜ? CPUを待たすのか?
  DPRAM はアクセス時間の速いものがほとんどで、普通なら
  WAITは不要なのですが・・・。

  マスタとスレーブのCPUが DPRAM の同一番地へ同時にアクセス
  したらどうなるのか?(同時に書きに行ったら?)
  そりゃもう DPRAM にしたら困った事になるわけで、そういう時の
  ために DPRAM には「調停回路」が入ってまして、DPRAM から見て
  少しでも速くアクセスに来た方を優先し、少し遅れた方を待たす
  仕組みがあるわけです。

  まぁ「同時に同一番地への書込み」というのは、どう考えても
  ソフトのBUGに思えますが、同一番地への書込みと読み出しが
  同時に発生した場合でも、読み出されるデータは書込み前のもの
  なのか?新しく書込まれたものなのか? DPRAM はどちらか一方を
  選ぶ必要があるわけで、この端子 BUSY が活躍するわけです。

  ただし、BUSY の配線を忘れた基板が上がってきた!場合、
  クリティカルパスは存在しますが、DPRAM の「二度読み」で
  とりあえず何とか・・・という手はあります。

> マスタータイプ(7130)とスレーブタイプ(7140)ってのは
> 何ですか?

  これは BUSY のディジーチェーン用です。

  DPRAM のデータ幅が16ビット幅で事足りればいいのですが・・・
  32ビットだぁ〜、という場合、当然、2ヶの DPRAM を使う事に
  なります。

  その時に、前記「同時アクセス」が問題になります。
  便宜的に、DPRAM のチップを、MSB側(上位16ビット)と、
  LSB側(下位16ビット)という風に呼ぶとして、
  MSB側はマスタCPUをBUSYにし、LSB側はスレーブCPUを
  BUSYにするケースが有り得るわけで、こうなると(普通は)ロック
  してしまいます。

  スレーブ(DPRAM)タイプというのは、マスタ(DPRAM)の判断に従う
  わけで BUSY 端子が入力になっています。
  (両CPUへの BUSY はマスタ側 DPRAM がまとめて出力)
  BUSY 端子が入出力兼用で、マスタ/スレーブ(DPRAM)両用のチップも
  あったハズです。(確か、以前使っていたような…)

///

  FIFOですが、容量が少なくてよい場合、私は 74HC40105 を使って
  いました。最近、使った事が無いのでわかりませんが、東芝とかも
  作っていましたので、データシートはもちろん日本語OKです。
  ただ、秋葉でも余り見掛けたことが無いので、入手性はわかりません。
  (どなたか、ご存じの方、情報をいただければ幸せです)

  コイツは 4ビット×16ワード で、とても小さいのですが、
  値段が安く、私のような貧乏人向きです。(笑)
  でも、これくらいなら(今となっては)一寸大きめのPLDの
  余ったエリアへ入れた方が楽かも知れませんけど。

  最近のFPGAには、少なくともKバイト単位のRAMが入って
  いますので、悩む事さえ無くなりました。

///

>"Kazuhiro> FPGAは使ったことがありません。
>"Kazuhiro> なんで、こんなにいっぱい勉強することがあるんだろう。
>
>それは、貴方がそう言う世界に足を踏み込んだからです。

  全くもって同感です。
  おめでとうございます…と言うべきか?
  ご愁傷様(失礼!)と言うべきか???

           長くなってしまい申し訳ありません。 kiyota

スレッド概略
[2849(R)](起点)
 └[2870(U)]
   └[表示中]
     ├[2877(1)]
     └[2879(2)]


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


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