2016.11.1
前へ
次へ
ホームページトップへ戻る

マイコン独立大作戦
SDカードインターフェースの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
独立大作戦の作戦その1はCRTインターフェースボードの製作です。
作戦その2はキーボードインターフェースです。
そして作戦その3は、SDカードインターフェースです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第6回]


●SPIモードの信号

SPI通信は3本の信号線(SCKとMOSI、MISO)を使って行なう双方向通信の規格です。
SCKはマスター(CPU側)が出す同期クロックです。
MOSIはマスターが出力しスレーブが入力するデータ線で、MISOは逆にスレーブが出力してマスターが入力するデータ線です。
下はSPI通信の概念図です。


SPI通信の大きな特徴は、送信と受信が同時に行なわれる点です。
上の図はSPI通信の概念を模式的に示した図です。
この図で、たとえばマスターからSCKに同期してシフトレジスタの最上位ビットが送出されると、同時にスレーブからもスレーブのシフトレジスタの最上位ビットが送出されます。
8クロック後にはマスターとスレーブのデータが入れ替わっていることになります。
その時点でそれぞれの受信データを受信バッファに引き取るとともに次の送信データをそれぞれシフトレジスタにセットします。
送信と受信が同時に意味を持つことはそれほど多くはないと思われますから、大抵の場合、送信か受信のどちらか一方はダミーデータということになりますが、こういうルールで行なわれるということだけは頭に入れておく必要があります。

●クロックとデータのタイミング

SPI信号のクロックの位相と、受信データがラッチされるタイミングによって4つのモードが決められています。
SCKが出されていないときがLなのかHなのか、ということと、受信データがラッチされるのがSCKの上がりエッジのときなのか下がりエッジのときなのか、によって決る4通りのモードです。
SDカードではMODE0でデータの送受信が行なわれるようです。
MODE0は下図のように、SCKが停止中(アイドル中)はLで、SCKの上がりエッジ(図の破線)のときにデータが読み込まれます。
データの出力タイミングは規定されていませんが、上のルールに従えばSCKの下がりエッジで出力するのが適当だと考えられます。

ただし上の図からわかるように、最初のビット7の出力は下がりエッジではなくて上がりエッジの少し前に出力されることになります(上がりエッジのときに確定しておればよいです)。
連続してデータが出力されるときは最後のクロックの下がりエッジで次のデータのビット7が出力されることになると思います(そうでなければならないわけではありません)。

SDカードインターフェースの製作[第6回]
2016.11.1upload

前へ
次へ
ホームページトップへ戻る