ってことで、今日一日ドハマり。たかだか、SPI通信でここまでハマるとは予想外・・・。
結局、一日かけてわかった原因は、
・レシーバーを動作可にしただけでクロックが出る。 ・内部バッファが満タンになるまでクロックは出っ放し。 ・受信が完了しても、受信フラグに反映されるまで、ちょいと時間がかかって、そこ間に次のクロックが出る。 ・その段階でレシーバを止めても、通信相手はクロックを受け取ってるので、以降のデータがずれまくり。
ってことらしい。
ハードウェアの仕様だからなんともなりませんってことなんだよね。たしかに、仕様書を読み直してみると、ちゃんと「8ビット単位で同期シリアル使いたきゃ外部クロック使いやがれ」って書いてあったから、見落としたオイラが悪いんだけどさ。
とりあえず、外部クロックをどこかから持ってこないとな。