回答編集履歴

1

回路、動作チェックについて追記

2020/03/14 00:45

投稿

thkana
thkana

スコア7703

test CHANGED
@@ -75,3 +75,53 @@
75
75
 
76
76
 
77
77
  bytes_tointについては、この質問内では敢えて回答しません。
78
+
79
+
80
+
81
+ ---
82
+
83
+ 回路図について
84
+
85
+ [SwitchScienceのサイトにあるリンク](http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Components/General%20IC/PS-MPU-6000A.pdf)から辿ってデータシートを見てみました。
86
+
87
+ - 22ページの標準参考回路に入っているコンデンサ類が一切入っていません。C1,C2,C4は無くてもなんとか動くかも知れませんが(但し安定性は保証できませんね)、チャージポンプのC3が無くて動くかなぁ?
88
+
89
+
90
+
91
+ - 11pinのFSYNCは21ページで、"Connect to GND if unused."だそうです。書いてあるとおりにしましょう。
92
+
93
+ - 1pinのCLKINも同上
94
+
95
+ - 8PinのVLOGICが未接続なのはかなり怪しいです。
96
+
97
+ - ついでに、[SwitchScienceのボードの回路図](http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/IMU/MPU-6050_Breakout%20V11.pdf)を見てみると、I2CのID切り替えの9pinはLowで0x68, Highで0x69となっています。オープン時にどうなるかはどこかにドキュメントがあるのでしょうが、普通はオープンでは内部プルアップでHigh扱いのことが多い(つまり0x69設定)と思いますがどうでしょう。
98
+
99
+
100
+
101
+ (感想:これ、動くのか?)
102
+
103
+
104
+
105
+ この仕様書、I2Cのレジスタマップとか載ってないのかな? そのへんは何で確認しましたか?
106
+
107
+
108
+
109
+ ---
110
+
111
+ せっかくmicroPythonでインタプリタ環境なのですから、REPLで
112
+
113
+ ```Python
114
+
115
+ ad=0x68 # 前述 本当にこれでいいのかは要確認
116
+
117
+ i2c = I2C(scl = Pin(5), sda = Pin(4), freq = 10000) #お試しとしてクロックを下げてみる
118
+
119
+ i2c.writeto(ad,'\x6B') # リセット これで正しいのか、ドキュメントは一応確認して下さい。少なくとも参考としているgithubに載っているやり方とはちょっと違っています
120
+
121
+ #手打ちなら待ち時間の設定は不要でしょう
122
+
123
+ i2c.readfrom_mem(ad,0x3B,2)
124
+
125
+ ```
126
+
127
+ とかして、デバイスとの通信がちゃんとできているのか、それらしい値が取得出来るのかを単独で試してみればよいのではないでしょうか。