Darkside(リンクエラー修正しました)

2019年9月13日(金) 21:53

モジュールのバグ?

 センサーからの値が、取得できない。−1しか返って来ない。すべてのビットが1なわけで、バスがプルアップされているI2Cにおいては何も接続されていない状態に等しい。
 いちおうI2Cバスの信号を確認する。PICからの送信は、当然ちゃんと機能している。

 これプローブのGNDを取り付ける場所が無くて、CH2は DC-DC コンバーターのGNDに取り付けた。すなわち、CH1は本来の波形だがCH2はモーターノイズが乗っている。逆に言えば、黄色と水色のノイズ差がモーターノイズということだ。

 最後の方でクロックが密になっている部分が、センサー値の読み取り。センサーからの反応がない。取得値のパワーオン値は0なので、センサーが機能していればLが返って来るはずだ。それが、常にHである。

 INA226は電流測定用としてポピュラーで、ネット情報が豊富である。データーシートも読んで仕様確認するが、どこにも間違いが見つけられない。だが、データーシートの記載に1つ重要なものがあった。すなわち、メーカーIDを読み出せるのだ。
 I2C通信が正常に出来ていることを確認するのに使えるが、モジュールはスレイブアドレスを16通りも設定可能。もしかして、設定と異なるアドレスになっちゃってるのでは?

 スレイブアドレスを16通りに変化させつつ、メーカーIDを読んでみる。すると、88Hのとき正常に読み出せた。自分は80Hに設定したのに。
 アドレスの設定は、基板上の所定の位置をハンダ付け短絡させることによって行う。ハンダ付け不良だったのだろう、とハンダ付けし直したがアドレスは88Hのままだ。
 なぜ仕様通りのアドレスに設定されないのか気になったが、88Hでアクセス可能なのだから88Hとして扱うことにした。

 読み書きできるようになれば、後は早い。確かにモーター電流は不安定だが、平均化すればそれなりに使える。センサー設定で平均化を任せることができるが、それだと値の取得に時間が掛かる。
 ソフト的に移動平均を取るようにすれば、取得は高速だし値の安定性もなぜかセンサー任せより上。充分に、意味のある電流値が取れる。モーターに負荷を与えると、電流値が増大するのも良く分かる。

written by higashino [ラジコン用エアガン] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4