スプライトのカラー表示について引き続き調べ物を
してました。
USIのSPIモードです。
また山根さんの本を読み返します。
AVRのUSIはUART、I2C(TWI)、そして
SPIの代わりに使うことが出来るようになっています。
USIモジュールを3線シリアルモードに設定すれば
SPI同等のI/Fとして使えます。
まぁ、SSピンに相当するものがありませんが、
マスターとして使うなら特に支障は無いはず。
などと考えると、内蔵クロックに縛られずにデータを
出力することが出来るので、
「これなら!」
と思ってしまったのですが、よく考えたらシリアル
クロック信号はユーザープログラムで制御する
必要があることに気付く…(TへT)
元の木阿弥ですね。
うーん、もっと簡単で適度に遅い速度でSPIに
繋ぐことって出来ないものなのかなぁ…
観念して、1バイト1バイト毎に送信側でウェイト
を置くようにしたほうがいいのかな?
トラ技のサイトに、I2C、SPI、マイクロワイヤー
それぞれのEEPROMにアクセスするプログラムの
ダウンロードサービスがありました。
http://www.cqpub.co.jp/toragi/download/2006/TR0606A/TR0606A.htm
まだ眺めてませんが、各マイコン毎にプログラムが
載っているので、あとでこれらを眺めながら、
通常の外部メモリアクセスする時にウェイトを
入れることは一般的なのか、調べて見たいと思います。
(EEPROMのDATASHEET見る限りでは
ウェイト入れながらアクセスするなんてことは
あまり要求されていないと思うのですが…)
I2C(TWI)にするという手もあるんですが、
通信手順が結構面倒。
USARTやSPIのような無手順的に送受信する
という訳にはいかず、ack返したりとか色々
取り決めがあって面倒。
以前RTC繋いで遊んでみた時に普通のI2Cメモリ
とRTCではアクセスの仕方が違っていたりして、
動かすまでに変なところで悩んだ記憶が…
あと、受信側でピンチェンジインタラプトを使う
必要も有りそうだし。
(表示の真っ最中に割り込みかかったら、表示が
壊れちゃうので…)
メインCPU側のクロックを10MHz程度に落として、
内蔵SPIもジュールを最も遅い速度で使うのが
一番楽かな?
どうせ座標計算しかしてないんだから、10MHzでも
処理能力は充分すぎだろうし。
|