サポートおよびフォーラムメンバーの皆様へ
FRDM-K22F ボードでセンサ Fusion ライブラリを動作させるのに問題があります。ライブラリの 5.0 バージョンには、K22F 用の 2 種類のサンプル プロジェクト (MQXLite と「ベア ボード」) があります。ベアボード バージョンは正常にコンパイルおよび実行されますが、MQXLite バリアントはそうではありません。次のようなことが起こります:
- サンプル プロジェクトを Kinetis Design Studio にインポートすると、そのプロジェクトにデバッグ構成が表示されません。私が作成またはインポートした他のプロジェクトには対応するデバッグ構成がありますが、K22F MQXLite センサ Fusion サンプル プロジェクトにはそれがないため、奇妙です。この方法では、デフォルトではプロジェクトを実行 (デバッグ) できません。
- 自分でデバッグ構成を作成すると、プロジェクトがコンパイルされ、ボードにアップロードされます。しかし、正常に動作しません。すぐに「クラッシュ」します(PE_DEBUGHALT() または dispatch.s で停止します)。または、ボード上の赤い LED が点灯しているのが見えます。
- ソースファイル「ドライバ.h」で、FXOS8700 センサーの I2C アドレスが間違っています。0x1C ではなく 0x1E です。これを変更して再コンパイルしましたが、同じ問題が続きます。
この問題についてアドバイスをいただけませんか?追加情報は次のとおりです:
- 「drivers.h」内のセンサの I2C アドレスを修正する以外、ボードやサンプル プロジェクトには一切変更を加えていません。
- K22F ボードの 2 つのインスタンスでプロジェクトをテストしましたが、両方で同じ問題が発生しました。
- ライブラリのベアボード バージョンは正常に動作します。
- 以前、ライブラリのバージョン 4.22 を K22F ボードに移植しましたが、問題なく動作しました。
- KDSバージョン: 3.2
- デバッグには OpenOCD を使用したシンプルな USB 接続を使用します。
この時点では、サンプル プロジェクトがテストされ、問題なく動作すると予想していたため、まったくわかりません。どのようなご指導もいただければ幸いです。助けてくれてありがとう!
ありがとうございます。よろしくお願いします。
ダニエル
ありがとう、マイク。
Sensor Fusion Toolbox は dotNetFramework 4 を使用します。winetricks を使用するとインストール可能ですが、32 環境では 64 ビット OS を使用します。そうですね、私は運が悪いですね ![]()
Android apk は Proguard で無効になっていますか?
よろしくお願いいたします。
ハビエル
ハビエル、
ご指摘のとおり、プロセッサ Expert のサポートは徐々に廃止されていきます。7.00 (KSDK バージョン) がリリースされた後でも、バージョン 5.00 (PE ベース) のセンサ フュージョン リリースを Web から削除する予定はありません。したがって、短期から中期の期間であれば問題なく使用できるはずです。V7.00 がオンラインになったら (これも来月予定)、全員に切り替えることを強くお勧めします。更新されたライブラリには、使用するのがさらに魅力的になると思われる機能が多数あります。詳細については、このスペースの他の投稿を参照してください。
Sensor Fusion Toolbox の Linux バージョンはありません。SO、あなたは運が悪かったのです。
ご説明ありがとうございます。
PE で実験するために FSFK-K64F プロジェクトのコードを編集し、青色 LED にコンポーネントを追加し、緑色 LED のコンポーネントを無効にし、タスク ファイルでコードに少し変更を加えたところ、緑色 LED が点滅する代わりに青色 LED が点滅するようになりました。とても単純なもの。PE は使用されなくなることがわかったので、これ以上深く調べたくありませんでした。
センサ、FXOS8700、FXAS21002C、その他外部に追加するセンサからのデータを公開できる FRDM-K64F 用の KDS プロジェクトを実行したいと考えています。その後、SPI 経由でマイクロプロセッサから FRDM-K64F と通信してデータを読み取ることができるようになります。
これを実行するには、プロセッサ Expert または KSDK_2.0 を使用する必要があると思いますか?
フュージョン出力を表示するためにセンサー フュージョン ツールボックスをダウンロードしましたか?
私は Windows は使用せず、Linux のみを使用します。FRDM-K64F-AGM01 は正常であるが、FSFK-K64F プロジェクトは正常ではないことを証明するために、別のマシンで Sensor Fusion Toolbox を一度試しました。
よろしくお願いいたします。
ハビエル
ハビエル、
KSDK 2.0 は、センサ フュージョン ライブラリではまだサポートされていません。来月にはバージョンをリリースする予定です。FSFK-K64F プロジェクトが使用に適しています。フュージョン出力を表示するためにセンサー フュージョン ツールボックスをダウンロードしましたか?
Mike
こんにちは!、
K22F ではジャイロが利用できないため、プロジェクトは停止します。K22F 上の 8700 がシールド ボード上のアドレスとは異なるアドレスにあるため、I2C アドレスに「エラー」が発生しました。
はい、FRDM-K64F-AGM01 と FXOS8700 の I2C アドレスは異なり、0x1E です。
KSDK_2.0 のすべてのプロジェクトをインポートしましたが、センサ Fusion に関するものは見つかりません。
FreescaleSensorFusionRevision5 フォルダ内で見つけた FSFK_K64F プロジェクトを試してみましたが、データは表示されませんでしたが、表示方法がわかりません。minicom には奇妙な文字しかありませんでした。
FSFK-K64F は MQXlite を使用しますが、MQXlite は Processor Expert を使用しますが、これは現在積極的に開発されていません。
MQX Lite リアルタイム オペレーティング システム (RTOS)|NXP
MQX Lite は、現在は積極的に開発されていない プロセッサ Expert のコンポーネントとしてパッケージ化されています。最新の Kinetis デバイスのサポートが含まれている Kinetis ソフトウェア開発キットの使用を検討してください。
XSFLK_DS を読んでいましたが、MQXlite に関するものです。http://cache.nxp.com/files/sensors/doc/data_sheet/XSFLK_DS.pdf
KDS 3.2.0でPEなしでセンサフュージョンを使用する方法に関する情報はありますか?+ KSDK_2.0?
よろしくお願いいたします。
ハビエル
ダニエル、
謝罪は必要ありません。再び元気になってよかったです。
よろしくお願いいたします。
Mike
マイケル様
迅速なご対応誠にありがとうございます。はい、センサーシールドなしでボードを使用しています。サンプルプロジェクトがセンサボードの構成に適用され、build.hがシールドが使用されていない場合はそれに応じて変更する必要があります。ご提案いただいた変更を加えました。今は問題なく動作するようになりました。
コードに誤りがあったり、テストされていないと言ったこと、心よりお詫び申し上げます。明らかに、build.h の設定を忘れたのは私の不注意によるものでした。ごめん。
サポートありがとうございます!
よろしくお願いいたします。
ダニエル
ダニエル、
過去数年間、センサのチームはデバッグ構成に関していくつかの問題を抱えていました。SO、キットを出荷する前に、プロジェクトからそれらを削除することがよく(意図的に)あります。ユーザーは自分のハードウェアのニーズに合った構成を作成できると想定されています。
他の問題については、K22F ボードは持っているもののセンサー シールドがないため、K22F で 8700 センサーを使用していると推測してよろしいでしょうか。「FSFK」サブディレクトリの下にあるすべてのプロジェクトでは、すぐにビルドして実行するためにセンサ シールドが必要です。これは、デフォルト構成では、9 軸加速度/磁気/ジャイロを含む 6 つのセンサ フュージョン アルゴリズムがすべて構築されるためです。K22F ではジャイロが利用できないため、プロジェクトは停止します。K22F 上の 8700 がシールド ボード上のアドレスとは異なるアドレスにあるため、I2C アドレスに「エラー」が発生しました。シールド実装のアドレスは正しいです (はい、当社ではすべての標準構成をテストしています)。
これを試して、build.hに入ってくださいそして以下を見つけます:
// 通常はすべて有効: 実行される自由度アルゴリズム
#define COMPUTE_1DOF_P_BASIC // 1DOF 圧力(高度)と温度:(圧力)
#define COMPUTE_3DOF_G_BASIC // 3DOF 加速度 傾き: (accel)
#define COMPUTE_3DOF_B_BASIC // 3DOF mag eCompass (車載): (mag)
#define COMPUTE_3DOF_Y_BASIC // 3DOFジャイロ統合: (gyro)
#define COMPUTE_6DOF_GB_BASIC // 6DOF 加速度と磁気 eCompass: (加速度 + 磁気)
#define COMPUTE_6DOF_GY_KALMAN // 6DOF 加速度とジャイロ (カルマン): (加速度 + ジャイロ)
#define COMPUTE_9DOF_GBY_KALMAN // 9DOF 加速度、磁気、ジャイロ (カルマン): (加速度 + 磁気 + ジャイロ)
次のように変更します。
// 通常はすべて有効: 実行される自由度アルゴリズム
//#define COMPUTE_1DOF_P_BASIC // 1DOF 圧力(高度)と温度:(圧力)
#define COMPUTE_3DOF_G_BASIC // 3DOF 加速度 傾き: (accel)
#define COMPUTE_3DOF_B_BASIC // 3DOF mag eCompass (車載): (mag)
//#define COMPUTE_3DOF_Y_BASIC // 3DOFジャイロ統合: (gyro)
#define COMPUTE_6DOF_GB_BASIC // 6DOF 加速度と磁気 eCompass: (加速度 + 磁気)
//#define COMPUTE_6DOF_GY_KALMAN // 6DOF加速度とジャイロ(カルマン): (加速度 + ジャイロ)
//#define COMPUTE_9DOF_GBY_KALMAN // 9DOF 加速度、磁気、ジャイロ(カルマン): (加速度 + 磁気 + ジャイロ)
これにより、ジャイロと高度計に関連するすべてのビルド オプションが無効になります。
よろしくお願いいたします。
Mike