回答編集履歴

3

誤字の修正など

2015/11/12 14:04

投稿

T.Kanno
T.Kanno

スコア915

test CHANGED
@@ -112,9 +112,9 @@
112
112
 
113
113
  ```
114
114
 
115
- SSの制御は用意で行ってください。
115
+ SSの制御は上位で行ってください。
116
116
 
117
- SPIの制御は、いくつかパターンがありますのでセンサーに合わせて実装する必要がありますので注意してください。上記は、あくまで一例です。
117
+ SPIの制御は、いくつかパターンがありますセンサーに合わせて実装する必要がありますので注意してください。上記は、あくまで一例です。
118
118
 
119
119
 
120
120
 
@@ -127,7 +127,3 @@
127
127
 
128
128
 
129
129
 
130
-
131
-
132
-
133
-

2

サンプルの追記

2015/11/12 14:04

投稿

T.Kanno
T.Kanno

スコア915

test CHANGED
@@ -54,6 +54,71 @@
54
54
 
55
55
 
56
56
 
57
+ ---
58
+
59
+ サンプル(すみません、コンパイルもしていません)例
60
+
61
+
62
+
63
+ ```C
64
+
65
+
66
+
67
+ #define SS_CLK ...
68
+
69
+ #define SS_MOSI ...
70
+
71
+ #define SS_MISO ...
72
+
73
+
74
+
75
+ unsigned char ss_transfer(unsigned char write_data)
76
+
77
+ {
78
+
79
+ unsigned char i;
80
+
81
+ unsigned char input_data;
82
+
83
+
84
+
85
+ SS_CLK = 0; /* アイドル時は CLK = L */
86
+
87
+ for(i = 0; i < 8; i++)
88
+
89
+ {
90
+
91
+ SS_MOSI = (write_data & 0x80) ? 1 : 0;
92
+
93
+ SS_CLK = 1; /* CLK = H */
94
+
95
+ delay(); /* 必用ならディレイ */
96
+
97
+ SS_CLK = 0; /* CLK = L */
98
+
99
+ input_data <<= 1;
100
+
101
+ input_data += SS_MISO;
102
+
103
+ write_data >>= 1;
104
+
105
+ }
106
+
107
+ return input_data;
108
+
109
+ }
110
+
111
+
112
+
113
+ ```
114
+
115
+ SSの制御は用意で行ってください。
116
+
117
+ SPIの制御は、いくつかパターンがありますのでセンサーに合わせて実装する必要がありますので注意してください。上記は、あくまで一例です。
118
+
119
+
120
+
121
+ ソフトによるSPI通信は、検索すればいろいろ転がっているようですので、調べてみるのも面白いでしょう。
57
122
 
58
123
 
59
124
 
@@ -66,4 +131,3 @@
66
131
 
67
132
 
68
133
 
69
-

1

追記します

2015/11/12 13:59

投稿

T.Kanno
T.Kanno

スコア915

test CHANGED
@@ -17,3 +17,53 @@
17
17
 
18
18
 
19
19
  おそらく、現状はセンサ側の CS をアサートした瞬間にセンサがバスを操作してしまい、その結果、同じSPI回線を使用しているUSBが切断されてしまっている状況だと思います。
20
+
21
+
22
+
23
+ ---
24
+
25
+ 対策?を追記
26
+
27
+
28
+
29
+
30
+
31
+ 現状の構成や部材のままの前提で、対策を考えると、
32
+
33
+
34
+
35
+ プロセッサで使用可能な残りのリソースは TWI と I2C ですが、どれも8回線分には無理があると思います。
36
+
37
+ センサー側の仕様を見ると確かに I2C には2個までしかぶら下げられないようですね。
38
+
39
+
40
+
41
+ となると、GPIOポートを使ってソフトウェアでI2CかSPIを実現する位しか思い浮かびませんが、I2Cはいろいろ面倒になりそうなので、SPIを1回線3本分と SSが8つで、合計 11本のGPIOを確保すれば実現できると思います。それぐらいは、あまっていますよね?
42
+
43
+
44
+
45
+ 応用がわからないのですが、ハード駆動の通信を、ソフト駆動の通信に変更しても、応答速度はそれほど劣化しないと思いますが、問題になるでしょうか?
46
+
47
+
48
+
49
+ また、写真を拝見すると、SSが繋がっていないようですが、デバッグ用に1本だけ? それとも、見えないところにデコーダーがある?
50
+
51
+
52
+
53
+ SPIのソフトウェア実装については、それほど難しくは無いと思います。おそらく100行前後で出来ると思います。
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+