SPI1

SPI1

Tags
Published
June 1, 2018
今日は人ではなくなるなどいろんなことが起こりました。
Let’s Play Soccer.
Do not play Rugby.
Do not Hit someone with money.
Are you a person
今回の目標です。
今日はSPI通信の実験をしました。わけわかんないです。CSをHIGHした時とLOWにしたときの違いをまだ理解できていなじゃないかとふと思いつきました。
なので明日は実験します。

実験1 SPIの機能を確認する。

仮説

CSでデータ受け入れを許可や拒否していたとすれば、デジタルピンで操作できるはずなのでどのような場合にSPIバスは入力をしているからわかるようになるであろう。これでCSピンの機能がわかるはずです。データがあるかを識別する関数 spi.receive() == 0
これでデータがあるかないかを識別し、データがあればLEDをHIGHにします。

手順

1.CSをスイッチにする。そしてマスターはデータを送り続ける。(++で増加させる)
2.データが来たらLEDをON、なかったらOFFにする。
3.結果からの考察をする

結果

CSに関わらず、データが来くる(spi.receive() == 1になる)。>>>何もしなくてもバッファに溜まる??
実験2 SPIでフラグ付き受信に対応させるには
アルゴリズム
メイン:Write:ヘッダ(相手の名前)を送る。
スレーブ:IRQ:ヘッダが来たら変数receivedを1にする。
メイン:Write:送るデータを送る。
スレーブ:IRQ:receivedが1なので読み込んで数値を表示。
スレーブ:reply:返信データの作成。
メイン:Write:ダミーコマンド(0)を送ると同時にデータの受信。
スレーブ:IRQ:ダミーコマンドがきたらreceivedを0にする
多分これでいける。IRQというのは割り込みって意味です。
まだ実験していません。実験したいと思います

Loading Comments...