teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2017/12/07 11:42

投稿

ozwk
ozwk

スコア13553

answer CHANGED
@@ -3,4 +3,23 @@
3
3
  通信相手一つ一つに固有のcs(チップセレクト)をつなげて識別します。
4
4
  通信したい相手のcsだけLレベルにすることでその相手と通信するという取り決めです。
5
5
 
6
- そういうわけなので、別にcsは専用ピンでなくても比較的簡単に代用できます。
6
+ そういうわけなので、別にcsは専用ピンでなくても比較的簡単に代用できます。
7
+
8
+ SPI通信の大まかな手順は
9
+
10
+ 1. CSを下げる
11
+ 2. SCLKを動かしながらデータを送受信する(再現が難しい)
12
+ 3. CSを上げる
13
+
14
+ となります
15
+ SPI通信をやってくれる関数があったとすると、この手順を勝手にやってくれるわけです。
16
+
17
+
18
+ ですので、CSをGPIOで代用する場合
19
+
20
+ 1. GPIOを下げる
21
+ 2. 適当なダミーのチャンネルでSPI通信の関数を呼ぶ
22
+ 3. GPIOを上げる
23
+
24
+ とすれば、動きは再現できます。
25
+ ただし、ダミーで使ったCSも同時に下がってしまうので、このCSは繋がないでおく必要があります。

1

途中送信してもうた

2017/12/07 11:42

投稿

ozwk
ozwk

スコア13553

answer CHANGED
@@ -1,1 +1,6 @@
1
- spi通信というのはmosi,miso,sclk
1
+ spi通信というのはmosi,miso,sclkは共通です。
2
+ それだと誰と通信してるか判断できないので、
3
+ 通信相手一つ一つに固有のcs(チップセレクト)をつなげて識別します。
4
+ 通信したい相手のcsだけLレベルにすることでその相手と通信するという取り決めです。
5
+
6
+ そういうわけなので、別にcsは専用ピンでなくても比較的簡単に代用できます。