RX62TでRSPIによるSPI動作(4線式)全二重同期式シリアル通信について

お世話になります。

 

RX62TにてE1エミュレータを接続し、CS+forCCツールを使用しています。

SPI動作(4線式)で、全二重同期式シリアル通信を行い、RX62Tをマスタにして使用しています。

マスタからスレーブへの書き込みは問題なく行えたのですが

マスタへスレーブからの読み出し時に問題が発生しました。

「0xF0」を書き込んだものを読みだそうと思ったら「0x78」で返ってきたので

書き込み時は、CPHA(RSPCK位相設定ビット)を「0」にし

読み出し時は、CPHA(RSPCK位相設定ビット)を「1」にして

通信させたいのですが、読み出しをすると何も読み出せなくなります。

この現象の原因がわかる方、いらっしゃいましたら

ご教示いただけたら幸いです。

Parents
  • Takthysさん、こんにちは。NoMaYと申します。

    私は、かふぇルネで何度もRSPI関係のスレッドにリプライしていますが、実は1度も実際にマスタ⇔スレーブ間で通信させたことが無く、そういう人物のリプライだと念頭に置いておいて欲しいのですが、、、

    この「「0xF0」を書き込んだものを読みだそうと思ったら「0x78」で返ってきた」というのは、RSPCKとMOSI/MISOの極性(というか位相というかのたぐい)の問題では無く、ビットズレの問題ではないでしょうか?

    極性(位相)の問題であれば、変化途中のMISOの信号を拾ってしまって、読む度に値が変化するという現象になりそうな気がします。

    ビットズレの問題と発想を変えてみた場合、原因の可能性としては、RSPIは複雑な動作をするものですので、オシロで波形を観測してみて、「RSPIがこういう動作をするものならスレーブ側でクロック1つとして認識されてしまうよなぁ」とか「LSBファーストだったら想定外にスレーブから送信されたbit0をマスタが受信し損ねるよなぁ」とか、何か分かるかも知れないように思います。

    とはいえ、「読み出しをすると何も読み出せなくなります」と「ビットズレ」とで整合の取れる話でも無いところが、心苦しいところですが、、、([追記] 手始めには、オシロで0x00(もしくは、読み出せないとは0xFFのことかも知れませんが)以外の何かが返って来ているか確認してみる、ことでしょうか、、、)

  • NoMaYさん
    Takthysです。
    ご回答いただきありがとうございます。
    ビットずれの観点からも調査してみたいと思います。
Reply Children
No Data