お世話になります。
RX62TにてE1エミュレータを接続し、CS+forCCツールを使用しています。
SPI動作(4線式)で、全二重同期式シリアル通信を行い、RX62Tをマスタにして使用しています。
マスタからスレーブへの書き込みは問題なく行えたのですが
マスタへスレーブからの読み出し時に問題が発生しました。
「0xF0」を書き込んだものを読みだそうと思ったら「0x78」で返ってきたので
書き込み時は、CPHA(RSPCK位相設定ビット)を「0」にし
読み出し時は、CPHA(RSPCK位相設定ビット)を「1」にして
通信させたいのですが、読み出しをすると何も読み出せなくなります。
この現象の原因がわかる方、いらっしゃいましたら
ご教示いただけたら幸いです。
Takthysさん、こんにちは。NoMaYと申します。私は、かふぇルネで何度もRSPI関係のスレッドにリプライしていますが、実は1度も実際にマスタ⇔スレーブ間で通信させたことが無く、そういう人物のリプライだと念頭に置いておいて欲しいのですが、、、この「「0xF0」を書き込んだものを読みだそうと思ったら「0x78」で返ってきた」というのは、RSPCKとMOSI/MISOの極性(というか位相というかのたぐい)の問題では無く、ビットズレの問題ではないでしょうか?極性(位相)の問題であれば、変化途中のMISOの信号を拾ってしまって、読む度に値が変化するという現象になりそうな気がします。ビットズレの問題と発想を変えてみた場合、原因の可能性としては、RSPIは複雑な動作をするものですので、オシロで波形を観測してみて、「RSPIがこういう動作をするものならスレーブ側でクロック1つとして認識されてしまうよなぁ」とか「LSBファーストだったら想定外にスレーブから送信されたbit0をマスタが受信し損ねるよなぁ」とか、何か分かるかも知れないように思います。とはいえ、「読み出しをすると何も読み出せなくなります」と「ビットズレ」とで整合の取れる話でも無いところが、心苦しいところですが、、、([追記] 手始めには、オシロで0x00(もしくは、読み出せないとは0xFFのことかも知れませんが)以外の何かが返って来ているか確認してみる、ことでしょうか、、、)