お世話になります。
RX23W RSPI スレーブモード で使用しています。
マスター側の クロックにのって データ送出されるのですが
なぜか 同じデータが2回送出されたりして、 そのあとデータ送出タイミングが 1個ずつ ずれたりします
SPDR レジスタ に書き込むタイミングと 送信バッファSPTXに書き込まれる タイミングが ずれていくためと思われます
どこかで 送信バッファSPTXをクリア して
SPDR レジスタ に書き込む ⇒ SPTXに書き込まれる ⇒ 次のクロックで送出される
としたいのですが、
助言いただきたく どうぞよろしくお願いいたします。
こんにちは hirakuni45 です。
まず、受信側で何とかしようとせずに、送信側に不具合があるなら、それを修正する事が先決なのでは?
送信側の修正が何等かの理由で出来ないのでしょうか?
その場合、ロジックアナライザを繋いで、クロックとデータの関係をキャプチャーするなどして、添付しないと、適切な助言が出来ないと思います。
それで、頑張ったとしても、実りがあるとは思えませんが・・・
他に、データ長が、送信側と受信側で違っているとか、クロックの位相と極性の関係が合っていないとか、パリティの有無とか、他の要因も色々考えられますので、それも確認が必要と思います。
>まず、受信側で何とかしようとせずに、送信側に不具合があるなら、それを修正する事が先決なのでは?
確かに。。。
シーケンスとして 、一連の送受信を考え直します。
ありがとうございました。
atsuatsuさん、こんにちは。NoMaYです。もともと単にRSPIスレーブ送信の話では無かったのですか???
なぜか わからないのですが 起動後 、 1回目にSPDR レジスタに書き込んだデータが2回続けて送出されるされるという現象があり、(本来なら 次にセットしたデータが 送出してほしかった。)
よって その後順次 SPDR レジスタにデータを書き込むのですが、 想定より1byteずれていく。
SPDR レジスタに書き込んでも、 送信バッファが空にならないと 反映されないので、(たぶん。。)
このようなことが 発生するのかと、
対策として どこかのタイミングで 送信バッファをクリアして SPDR レジスタに書き込んだデータを即反映できたらと思いました。
送信側に不具合があるわけではありませんが 、 同じデータが2回続けて送出される理由もわからないままですし
送信側との運用で うまいこといけたらと思っています
atsuatsuさん、こんにちは。NoMaYです。> 送信側に不具合があるわけではありませんが 、 同じデータが2回続けて送出される理由もわからないままですし送信側との運用で うまいこといけたらと思っていますこの `送信側` というのはSPIマスタのことですか?