ひずみゲージADC HX711 のナゾシグナル
押力センサー内蔵シフトノブのアンプ的装置を開発中です。センサーにはストレインゲージが使われているので、対応ADコンバータのHX711に接続しマイコンから読み出していますが、上の方のビットが全部1とかひどい値をたまに受信します。HX711は80Hz(80SPS)のデータレートモードに設定し、マイコンでの読み出しは50〜80Hzで試しました。
問題がプログラムなのか回路なのかストレインゲージのノイズ??なのか何日も悩みながらオシロをポチポチしていたら、読み出すためのシリアルクロック(PD_SCK)を入れる前にHX711から80ns程度のデータアウトプット(DOUT)が出ているところが見つかりました。
データシートでは送信後のDOUTがLowになると次の送信準備完了となっていますが、実はそこから10ms以上経って出力されるデータシートに載っていないナゾシグナル後でないと読み出してはいけないようです。さもないとどこかのタイミングでデータにこれが重なり1を読んでしまいます。
DOUTがLowになってから12.5ms後に送信要求(80Hzタイマーの使い回しで数字に意味は無い)、としたのが直前の写真で、これで何時間か読み出しを続けていますが異常値はありません。というかですね、1回の読み出しにトータル23ms必要ということは43Hzです。80Hzモードなのに。。。
仕様と違う速度はとりあえず目をつぶって、プログラム的には単純に40Hzで読み出せばいいのかなと試したんですが、タイミングが変わる時があるのか異常値が出ることがありました。前述のようにLow後一定時間待つか、このナゾシグナル自体を確認してから送信要求を出すか、ですね。うちでは後者にしてますので今後発売のHX711が「改良されないこと」を祈るばかりです(笑)。
■ 追記 19.12.02
HX711はノイズが、、、と書かれたサイトがたまにありますが、上記によるものだと思います。そして以下にも気を配ることでさらに安定するでしょう。
今回の製品はシフトレバー前後にひずみゲージを貼る2ゲージ法のためそこでの温度によるズレはある程度無視できると思いますが、ブリッジ回路の残り2辺に用いる抵抗器が車載用途だとわりとシビアなようです。普通の厚膜チップ抵抗は変化が大きすぎ、2つの抵抗器がパッケージングされ温度がそろいやすいSOT-23の5ppmタイプでだいぶ改善されました。現在はもうひとけた上の(高額な)0.2ppm薄膜チップ抵抗を使っています。製品目的次第ですね。
あとひずみゲージの配線をコネクターで接続する場合、普通の端子だと少しぐらついただけで大きく値が変化する場合がありますが、金めっきのものを用いることでだいぶ解決できました。