Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page

RX220がRSPIのスレーブになるには?

お世話になります。

RX220を使用して、SPIのスレーブとして動作させる方法について質問させて頂けないでしょうか。

現在、SPIで制御するICの置き換えとして、RX220を使用したく、SPIのスレーブとして動作するプログラムを作成しています。
スレーブモードで、8ビット単位で割り込みが発生し、データの入出力まで行うことができました。

既存のICのフォーマットが、CS=L -> コマンド(8bit) -> アドレス(8bit) -> データ(8bit) -> CS=Hの様になっています。
コマンドが、リード・ライトを表し、アドレスで指定した番地のデータを読み書きできます。

受信割込で、コマンド、アドレスの入力後、リードの場合は、即座に送信データを書き込む方法を考えていますが、時間的に厳しいので、通信速度を上げる事ができません。
さらにデータを取りこぼした場合に、カウントがずれてしまい、コマンドなのかアドレスなのかデータなのか判断できなくなってしまいます。

質問の内容ですが、
CS=Lまたは、CS=Hのタイミングを取得し、フレームとして扱うことはできないでしょうか?
(24bitにすればライト動作は可能だが、リード動作のデータを用意できない)
また、一般的にスレーブとして動作させる時のアドバイスなどありましたら教えて頂きたいです。
(RXマイコンで、一般のICの様なスレーブ動作を期待するのは間違っている?)

マスターとしての動作例はよく見かけましたが、スレーブの例を見つけることができませんでした。
ご存知の方がみえましたら、ご教示いただけないでしょうか。よろしくお願いいたします。

  • わわいです
    コマンドーアドレスと来ていきなりデータの返信というのは流石に無理です
    処理時間を確保するため、1バイトのダミーを送ればどうでしょう
    コマンドーアドレスーダミーーデータ
    の4バイト構成にしてはどうでしょう
  • In reply to わわい:

    わわい 様、ご回答ありがとう御座います。
    ご提案頂いた、ダミーデータを入れるのは思いつきませんでした。
    SPIの仕様上データを連続で読み込むと、アドレスがインクリメントされるので、
    希望の1つ前のアドレスを指定して、1バイト目を無視すれば互換が保てそうです。
    書き込みに関しては、3バイト構成のままで大丈夫そうです。

    しかし、データ長が可変になるので、CSの立下りを取得する必要があります。
    SSLAが割り込み使用できるピンなら、容易に実現できると思いますが、
    配線の都合で、ソフトウエアのみで対応を考えています。

Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page