L3G4200Dランダムスパイク


8

L3G4200Dジャイロスコープに関してこのフォーラムを少し検索しましたが、この問題について言及したことはありませんが、他のフォーラムで他の人がそれについて話すのを見てきました。ジャイロスコープが静止していると、出力に奇妙な大きな値が表示されます。残念ながら、これがなぜだか誰も答えることができなかったようです。

したがって、私はi2cを使用して400kHz(高速モード)でジャイロからデータを収集し、マルチバイト読み取り(一度に6バイト)を使用してジャイロスコープデータを収集しています。100Hzでのサンプリング(上位800Hzも試した)、また、異なる値でのフィルタリングのオンとオフを試してみました。割り込みピンは使用していませんが、GYRCTRLREG4の「ブロックデータ更新」属性を使用しているため、LSBとMSBの両方が読み取られるまでデータは出力されません。フル2000dps、FIFOで何もしていません。正確であれば、正確なレジスタ値を投稿できますが、データシートが手元にない場合がほとんどです。

下の画像は私の問題を示しています。出力されているデータは適切であり、(私の知る限り)正しく計算されており、一般的なノイズは非常に許容範囲です。しかし、デバイスが静止しているときに、これらの迷惑な「ブリップ」がランダムに表示されることに気付きました。数秒間そのままにしておくと、これらのスパイクの1つが得られ、常に約250〜255になります(つまり、((output * 70)/ 1000 'を使用して変換すると〜18)。私が言うように、スパイクはランダムであり、任意の平面に表示できます(下の画像では、X平面の最初のスパイク、Yの2番目のスパイクを見ることができます)。 3つが同時に発生する可能性があります。大きな値は単一のサンプルの場合のみであり、通常に戻ります。

エラーブリップ

別のスレッドで、前述のように、GYRCTRLREG4のブロックデータ待機関数を使用する必要があることを確認しましたが、変更はありませんでした。私は、MSBがゼロ以上、つまり正の数である場合に問題を絞り込んだ後、MSBとLSBを組み合わせると、これらの大きな数が得られます。たとえば、X平面に必要な2バイトを取得します。LSBで-6を取得し、MSBで0を取得します。これらを組み合わせると250になり、変換すると(250 * 70)/ 1000 = 17.5 dps(つまり、静止/不正確には大きすぎます)。同じサンプルで、Yプレーンの2バイトは-3 LSBと-1 MSNで、これらを組み合わせると-3になり、変換すると-0.21になります(つまり、期待値/正しい)。

私はこの問題に何日も取り組んでいますが、磁力計でこれらのランダムなスパイクが少し表示されているので、(i2cを介して)デバイスを誤って読み取っているのだと思いますか?

提案や試してみたいことは本当に大歓迎です!


データシートへのリンクが役立つかもしれません:L3G4200Dデータシート
Tut

問題は解決しましたか?別のジャイロを使用して同じような問題に一日から行き詰まっています。私は毎秒1つのスパイクを持っていますが、これまでのところ解決できませんでした。
John

L3g4200dでも同じ問題が発生しています。あなたはそれを理解したことがありますか?
トラッパー

回答:


1

磁力計で同様の問題を観察しているので、I2Cバスに問題があると思います。断続的な動作のため、コードの問題である可能性がありますが、最初にバスの接続方法を確認します。確認/試行するいくつかのこと:

  • 外部プルアップ抵抗を使用していない場合は、SDAおよびSCLで10Kプルアップ抵抗を試してください。ほとんどのマイクロコントローラの内部プルアップは十分に強力ではありません。

  • 可能な場合はバスの長さを可能な限り短くし、高速信号から離して配線するようにしてください。

  • ブレッドボードを使用する場合は、過剰な静電容量を避けるために、接続をできるだけ直接保つようにしてください。

  • プルアップ抵抗がすでに含まれているプロトタイプボードを使用している場合、それらは並列になってしまう可能性があり、実際にはプルアップ抵抗値が低すぎる可能性があります。

  • クロックとデータのラインが見栄えよく四角になり、歪んでいないことを確認するのに理想的なスコープへのアクセスを調整できる場合。

これらの手順が機能しない場合、Texas Instrumentsは、プルアップ抵抗の計算および静電容量で発生する可能性のある問題の詳細について説明する、トラブルシューティングI2Cバスプロトコルアプリケーションレポートを用意しています。


お返事をありがとうございます。私は両方のブレッドボードでテストしましたが、ワイヤーは短く、抵抗値を10kから1.5kに変更しました(1.5kで解決しました)。私はまた、表面実装部品と非常に短いトラックで構成されたボードを持っています。後でスコープで確認しますが、プルアップ抵抗またはトラックに問題があった場合は驚きます。EMIの問題を解消するために、電子機器からデータを収集してみます。
ritchie888 2013

0

LSBとMSBの読み取りの間に新しいサンプルが取得されている可能性があります。したがって、MSB = 0およびLSB = -4の場合、252、つまり約1gが得られます。次の読み取り値がMSB = 1およびLSB = 2の場合、258が得られますが、これは妥当です。彼らの問題は、1つのサンプルでMSBのみが1に更新され、LSBが-4の場合、508、約2gであり、これはこの問題かもしれません。

CTRL_REG4のBDUはこれを防止するためのものです。センサーからレジスターを読み取って、ブロックホールドが有効になっていることを確認してください。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.