August 20, 2007Super Sylphide 進捗状況(8) -- DSP/BIOSを利用した割込みMcBSP(SPI Slave)オートパイロットシステム Super Sylphideには、高速な計算をサポートするためにメインCPUとしてDSP(Digital Signal Processor)のTI TMS320C6713Bが、そして周辺への接続や基本的なログ機能のためのマイコンSilicon Laboratories C8051F340が搭載されています。両者の間ではA/D変換データや外部からの指令値をやりとりする必要があり、物理的にSPIならびにI2Cの2つのインターフェイスで接続されています。今回はそのうち、より高速にデータを転送できるSPIに関する話です。 SPIは3本または4本の線によって接続される簡易的、汎用的なインターフェイスで、馴染みがあるところですとSDカードにも使われています。お手軽ながら、ある程度のデータ転送速度を確保することができる(現在、最大24Mbpsで利用中)ので、マイコン野郎ご用達インターフェイスであると思っています。以前、SDカードとマイコン間のSPI信号を計測した記事があるので、物理的にどのような信号が流れているか興味があるようでしたら、そちらを参考にどうぞ。マイコミジャーナルのバス記事も、参考にあげておきます。 このSPIですが、お手軽ということもあり多くのマイコンに採用されています。実際Super Sylphideのマイコンにも、まさにSPIの機能が搭載されているので、こちらの実装は非常に簡単でした。 そんなこんなで、本家TIのドキュメントやComp.DSPを彷徨ったあげく、ようやく完成しました。
同じようなことをしたいという奇特な方がどれだけいるかは知りませんが、参考になればと、現時点でのソースコードを散らかしておきます。実装形態の要約としては、タイトルの通り『McBSPをSPI Slaveで利用し、割り込み制御はDSP/BIOSのセマフォを活用』(まさに呪文(笑))です。 ※その後、このDSPのSPIでデータの塊を通信する方法について記事を書きました。 コメント
ほほう、c67のSPIはMcBSPですか。もともとTIのDSPは、ホストとの通信はHost IFを使う思想なので、SPIのような「低性能ペリフェラル向け」IFは積まない…のかな。 >酔漢さん 次世代機種では楽を出来ることを祈っています。てか、航法装置の標準化は開発者の楽しみを奪うので先送りでしょうか(w >酔漢さん コメントする
|
スポンサード リンク
|