人気ブログランキング | 話題のタグを見る

体重と今日食べたもの

k1segawa.exblog.jp

ダイエット

ブログトップ

ポケコン PC-G850Vで電子回路工作(6/8)

SPI通信について。

スレーブ(SPIモジュール)によってSPI通信のサポートする種類が異なるようだ。

SPI通信といってもクロックの立上がり・立下りでデータを取り出すようにインプリメントするケースや、
最初のMSBFをクロックの最初から取り出すか、1CLK待ってから取り出すようにインプリメントするかを、スレーブが選べるようにしている。

従って4種類あって、MCP3002はそのうちMODE0,0(モード0)とMODE1,1(モード3)の形式のSPI通信をサポートしているようだ。

MCP3002データシート15ページ目図6-1,2

だからと言ってモード0と3を切り替えられるわけではなく、両方とも立上がりでデータを取り出すモードなだけだ。
MSBFも余り神経質にならずにその前に続くStartビットからの流れで取り出せばよく、モード0と3の違いが余りわからない。(下記サイト様のSPIの罠様にはきちんと書いてある)

SPI通信のモードに関しては、以下のサイト様が参考になった。
SPIについて
SPI Transfer Modes | USB-I2C/SPI/GPIO Interface Adapters
SPIの罠

0,0と1,1は立上がり、0,1と1,0は立下りでデータを読み書きする。

SPI通信ができたといってもMCP3002の場合だけなので、別のSPIモジュールの時は同じ手順とは限らないという事。
さらにモードの呼び方まで統一されてないらしい(SPIの罠様参照)ので、きちんとタイミングチャートとモードの対応をデータシートで確認する事。

SPI通信は同期(外部クロックが要らない―自分でクロックを作って送り込める)通信で、かつ単方向信号(双方向でない)なのに、信号線が独立しているからスピードも出る。なのでSDカードの読み書きもSPI通信。
SDカードの構造と内部レジスタ(その1) | ミームス(MEMEs)のサポートページ様や浅草ギ研 A33FでMicroSDカードにアクセスしてみる様などでは、詳しいSD用コマンドが解説されているので、SPI通信の応用にいいかもしれない。
by k1segawa | 2015-06-08 19:51 | ポケコン | Comments(0)

by k1segawa