Multi Source Translation Content

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Multi Source Translation Content

ディスカッション

ソート順:
MPXH6300A/MPXx6250A/MPXH6400A圧力センサーのメディア互換性 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、 フルオロシリコーンゲルとメディア適合ゲルを使用した貴社のセンサシリーズのメディア適合性についてお伺いします。具体的には、MPXH6300A/MPXx6250A/MPXH6400A。 各フルオロシリコーン/メディア対応ゲルと互換性のある液体のリストはありますか? 液体と長時間直接接触するとパフォーマンスに影響がありますか? 具体的には、シリコン オイルがこれらのセンサと組み合わせて使用するのに適した液体かどうかを知りたいです。 よろしくお願いします、 ドミトリ Re: Media Compatibility of MPXH6300A/MPXx6250A/MPXH6400A pressure sensors <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、トーマス。 リンク先の文書を以前に読んだことがありますが、そこには役立つ情報がいくつか記載されていました。 しかし、表の結果が何を示しているかは少し不明瞭です。 たとえば、「メディア耐性ゲル」の下の 2 番目の列には、「テスト済み」と「正常」の両方が表示されます。これは、「テスト済み」が適切であることを意味しますか、それとも適切ではないことを意味しますか? また、表を見ると、さまざまなゲルを使用した長期的な特性について結論を導き出すことはできません。これらのトピックについてさらに情報を提供してもらえますか? よろしくお願いいたします。 ドミトリ Re: Media Compatibility of MPXH6300A/MPXx6250A/MPXH6400A pressure sensors <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、ドミトリさん。 F フルオロシリコーン と改良されたメディア耐性ゲルの両方を使用した NXP IPS のメディア互換性を扱った弊社の AN3728 を 詳しく見ることをお勧めします。 よろしくお願いいたします。 トーマス
記事全体を表示
MPR121 的矩阵式 PCB 布局设计方案 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 除 AN4600 中的配置外,MPR121 还支持哪些其他矩阵式 PCB 布局的列行配置? 换句话说,我可以设计 4 列(ELE0-ELE3)和 8 行(ELE4-ELE11)吗? AN4600 推荐的块尺寸为 3.5 - 4.00 毫米。那是木块的侧面尺寸吗? 传感器盖板的最大厚度是多少? 盖板是否必须粘贴在 PCB 上? 印刷电路板和盖板之间是否有空气间隙? 触摸传感器 Re: Matrix PCB layout design options for MPR121 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,詹姆斯、 感谢您使用我们的社区。MPR121 没有"支持的配置" ,您可以使用更适合您应用的配置,唯一需要改变的是插值算法,这完全取决于您的矩阵阵列。 建议电极的最小面积为 3x3mm。 以下应用笔记可以回答您的所有问题: http://cache.freescale.com/files/sensors/doc/app_note/AN3863.pdf 希望对你有所帮助。 -乔希
記事全体を表示
動かないデバイスのMAG3110キャリブレーション <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 電源を入れても動かないデバイスがあるのですが、どの方向を向いているのか知りたいです。MAG3110 磁力計のキャリブレーション手順では、デバイスを移動して (図 8 または類似の図)、結果として得られる測定範囲にソリューションを適合させます。少量の PCB/デバイスのサンプルの硬鉄と軟鉄の較正を決定し、それを同じレイアウトの他のすべてに使用できると想定するのはどの程度合理的でしょうか? 磁気センサ Re: MAG3110 calibration of devices that don't move <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> トーマスの返答を確認してください。 mag3110からのデータを処理する方法 私があなたに提供する追加情報があれば、その方法を理解できるはずです。Hardiron キャリブレーションを使用し、次に arctan(Y/Z) を適用します。全てのピースが揃っているので、それを全て結合するだけです。 アンソニー Re: MAG3110 calibration of devices that don't move <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 水平と水平の間の角度を計算したいだけの場合はどうすればいいでしょうか? 発信したiPhone Re: MAG3110 calibration of devices that don't move <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> はい、調整する必要があります。そうしないと、不正確な結果になります。 Re: MAG3110 calibration of devices that don't move <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 水平に対する角度を知りたいだけです。mag3110で何ができるでしょうか?調整が必要ですか?詳しいやり方を教えてください 発信したiPhone Re: MAG3110 calibration of devices that don't move <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、マンディさん。 このソフトウェア機能は、HardIron (ボードと磁力計によってもたらされるオフセット) をキャリブレーションするためのものです。ただし、これは 1 つの重要な条件を満たせば機能します。キャリブレーションの実行中にボード/MAG31110 を 3 軸で回転させる必要があるということです。 下のグラフを見てください(ここではボードは一定速度で回転していますが、そうする必要はありません) 磁力計を回転させると、磁場(コンパスのように地球によって誘導される)が変化します。最小値と最大値をキャプチャすることで、MAG3110 のオフセットを計算できるようになります。これらの値を OFF_axis_xSB レジスタに書き込むことで、MAG3110 はこのハードアイアン ベクトル補正を生の測定値に適用できるようになります。これがキャリブレーションです。 これがお役に立てば幸いです。 アンソニー Re: MAG3110 calibration of devices that don't move <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは。 デモを参考にキャリブレーション方法を使用します。しかし、私が間違っている場合、なぜこの方法で調整できるのかわかりません。mag3110 組み込みオフセットをどのように使用すればよいですか? スクリーンショットは私の調整方法です Re: MAG3110 calibration of devices that don't move <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、ベン。 MAG3110 組み込みオフセット キャリブレーションを使用しましたか、それとも実際の磁気外部キャリブレーションを使用しましたか?自動キャリブレーションの場合は、1、2、または3軸で動作します。 「静的(非動的)キャリブレーション」を実行することがどの程度合理的であるかを判断することは困難です。最終的なアプリケーションに応じて異なりますが、合理的ではないと言えます。それについてさらに詳しく教えていただけますか? ありがとうございました。 アンソニー
記事全体を表示
关于接收 NTM88 示例的问题 要配置我的 RF 接收器,我需要 NTM88 示例代码中的设置,例如:载波频率 (434MHz?会不会是 433.92MHz?)、传输速率(最大 19200 波特?),但主要是偏差。另一个问题是,发送的 CRC 是将所有值都设为 1 还是 0? Re: Questions for receiving the NTM88 example 亲爱的以色列 请看下面应用工程师的回答。 说明 寄存器的默认值见用户手册。参见寄存器描述中的 “RESET” 行:它包含开启射频模块时不同位的值。 致以最崇高的敬意 约瑟夫 Re: Questions for receiving the NTM88 example 感谢约瑟夫帮我解决问题!阅读代码,查看是否有以下说明:"434.0083 - 433.9131 = +/- 47.6kHz" 这就是中心频率的推导率吗?还是与 BFREQ/AFREQ = 3.17 kHz 有关? Re: Questions for receiving the NTM88 example 亲爱的以色列 下面是我联系的一位应用工程师的回答。 说明 射频模块在 main.c 中的 u8InitRf() 函数中初始化。 这里配置了控制频率、波特率、频率偏差......的寄存器。 如需了解寄存器值与频率、波特率......之间的对应关系,请参阅用户手册,其中详细介绍了所有寄存器: https://www.nxp.com/webapp/Download?colCode=UM11227&appType=license 致以最崇高的敬意 约瑟夫 Re: Questions for receiving the NTM88 example 感谢您的回答!我已经有了代码示例,我正在查找 NTM88 的默认射频设置,特别是 CRC 发送 0 还是 1,以及 433mhz 时的导出值。 Re: Questions for receiving the NTM88 example 亲爱的以色列 有关 NTM88 的代码示例,请参阅NTM88 产品页面。代码示例位于软件部分。 致以最崇高的敬意 约瑟夫
記事全体を表示
0.2g 未満の加速度を測定するのに最適な加速度センサはどれですか? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 0.2g 未満の加速度での Z 軸の動きを測定したいです。どの加速度センサを調べるべきでしょうか? 加速度センサ センシング・プラットフォーム Re: Optimal accelerometer for measure accelerations less than 0.2g? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、プラヴィーンさん。 MMA8451Qは、マーケットで最も低ノイズのデジタル部品と言えるでしょう。優れた温度特性と14ビットの分解能を備えており、このようなアプリケーションに最適です。可能な限り低いODRを選択し、±2gのレンジを設定し、低ノイズ(LNOISEビット = 1)モードと高解像度(SMODS = 1)モードの両方を使用することで、最高のノイズ性能が得られます。また、傾き誤差を補正するために、内蔵ハイパスフィルタの使用も推奨されます。 お役に立てれば幸いです。 よろしくお願いいたします。 トーマス Re: Optimal accelerometer for measure accelerations less than 0.2g? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ありがとう、トーマス。私のアプリケーションに関する詳細は以下のとおりです。 加速度センサは直線に沿って約 1 メートル移動します。最大加速度はおそらく 0.5g 以下、平均は 0.1g 以下です。加速度センサはしばらく加速し、その後減速して停止し、その後後退します。 この動きが行われるたびに加速度と移動距離が変化するため、毎回正確に測定したいと思います。 私はプロトタイプを構築しており、最初は加速度センサからデジタル出力を取得したいと考えています。この加速度センサをRasPiに接続しています。 データシートを確認したところ、MMA8451Q が試してみる価値があるようです。距離を測定するのは大きな課題であることは承知していますが、私が説明したような制約のある環境では、それが可能だと思いますか。RasPi でいくつかのプロセッシングアルゴリズムを実行できます。検討すべき後プロセッシングアルゴリズムについて何か提案はありますか? よろしくお願いします。 プラヴィーン Re: Optimal accelerometer for measure accelerations less than 0.2g? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、プラヴィーンさん。 アプリケーションと要件についてもう少し詳しく説明していただけますか? 信号調整された電圧出力を備えた 低GのZ軸加速度センサをお探しなら 、 MMA1270KEG(R2) をご検討ください。この製品は、±2.5gのフルスケール範囲と750mV/gの感度で加速度を測定します。 また、低消費電力で高感度を実現する新しい 3 軸アナログ加速度センサFXLN83xxQファミリも検討することをお勧めします。この製品およびその他の(デジタル)デバイス( MMA8451Q 、 FXLS8471Q 、 MMA8491Q )の詳細については、ファクトシートを参照してください。 よろしくお願いいたします。 トーマス 追伸: 私の回答がご質問の解決に役立った場合は、「正解」または「役に立った」と評価してください。ありがとうございます。
記事全体を表示
単純な傾斜計の精度? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> X 平面と Y 平面で +/- 20 度の傾き角度を測定するために、チップが垂直に取り付けられたシンプルな傾斜計が必要です。 精度は +/- 0.5 度である必要があります。チップは垂直に取り付けられているため、3 軸加速度センサが必要になると思います。 FXLS8471Qの使用を検討していますが、データシートの24ページには「すべての角度の精度は+/- 2度です」と記載されています。 http://cache.freescale.com/files/sensors/doc/data_sheet/FXLS8471Q.pdf?pspll=1 加速度センサ Re: Simple Inclinometer Accuracy? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、パックマン 「加速度ベクトル振幅」機能 (FXLS8471Q および FXOS8700) をシンプルでありながら効果的な傾斜計として使用する可能性について触れておきたいと思います。詳細については、AN4692 アプリケーションノートの 3.2 項を参照してください。 基本的には、デバイスがデフォルトの垂直位置で静止しているときに、測定された加速度を A_VECM_INITX/Y/Z レジスタに保存するだけです。次にA_VECM_THSで希望の角度(例:アプリケーションノートの式 12 によれば、20° の傾きの場合は 0.3473g になります)。傾きしきい値に達したときやそれを超えたときにフラグを立てるように INT1 または INT2 割り込みラインをプログラムできます。 このソリューションの利点は、正確な傾き検出が実現できることです。 - デバイスの取り付け位置に関係なく(3Dベクトル振幅計算に基づいているため)、 - 任意の閾値(0~90°の範囲内)を選択できます。 - ホスト MCU からのプロセッシングは必要ありません。 そうは言っても、傾き計に選択する部品番号に関係なく (上記の「ゼロ設定」または同等のキャリブレーションを実行したと仮定)、誤差の主な原因の 1 つは加速度センサオフセット (多くの場合 TCO と呼ばれます) の温度変動であり、その点では当社の加速度センサ製品は非常に安定しています。 よろしく、ジャック。 Re: Simple Inclinometer Accuracy? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、パックマン MMA9550LR1 と MMA9551LR1 には、MCU (Coldfire V1 32 ビット) と加速度センサが同じパッケージに組み込まれています。この種のデバイスに興味があるなら、はい、使用できます。そうでない場合は、あまり意味がないので、代わりに MMA8652、MMA845x、または FXOS8700 を使用することをお勧めします。 Re: Simple Inclinometer Accuracy? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、パックマン 申し訳ありませんが、1mrad = 0.057 度、1 度 = 0.017 rad SO、0.057 度が角度誤差です。 すてきな一日を、 ホセ・レイエス ----------------------------------------------------------------------------------------------------------------------- 注: この投稿で質問が解決した場合は、「正解」ボタンをクリックしてください。ありがとう! ----------------------------------------------------------------------------------------------------------------------- Re: Simple Inclinometer Accuracy? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> MMA9550LR1 またはMMA9551LR1 もお勧めですか? 再度、感謝します Re: Simple Inclinometer Accuracy? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 情報と洞察に感謝します。 ちなみに、 1mg の誤差は 1 mradian (三角法) の角度誤差に等しく、これは 1/57 (57/1000)度の角度誤差 = 0.02 度 = 0.057 度ですか? Re: Simple Inclinometer Accuracy? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、パックマン はい、何も変更しなくても、Freescale のすべての加速度センサの角度精度は +/- 2 度です。ただし、当社のアプリケーション エンジニアは、当社の加速度センサで達成できる精度に関する非常に詳細な作業を終えたところです。 問題は、はんだ付け中の熱応力によって、各軸で最大 30 mg のゼロ g オフセットが発生し、また各軸でゲインが 1% 変化して 10 mg になることです。角度精度の大まかな見積もりとして、1 mg の誤差は 1 mradian (三角法) の角度誤差に等しく、これは 1/57 度の角度誤差 = 0.02 度になります。 追加の誤差の原因は、ピックアンドプレース マシンによって回路基板上の加速度計パッケージがわずかに回転することです。そのソースからは約 0.5 度の誤差が見られます。 はんだ付け中にキャリブレーションが変化するため、お客様は最終製品で再キャリブレーションを実行する必要があります。これには、最終製品を複数の方向に配置して 12 個の追加の新しいキャリブレーション パラメータを計算することが含まれます。これらのパラメータは、不揮発性メモリに保存され、外部 MCU によって適用されます。これを実行する方法を説明したアプリケーション ノート AN4399 があります。3x3 ゲイン マトリックスと 3x1 オフセット ベクトルを修正する 12 ポイント アルゴリズムをお勧めします。 AN4399: http://cache.freescale.com/files/sensors/doc/app_note/AN4399.pd Freescale の MMA845x ファミリ、MMA8652、および FXOS8700 加速度センサの測定によると、このアルゴリズムを適用した後、結果として生じる誤差は各軸で 3mg RMS になります。これは、0.17 度 RMS の RMS 角度誤差に相当します。 MMA8652 (下記のデータシートへのリンク) の基本分解能は 1mg ですが、複数の測定値を平均化することでこれよりもはるかに優れた分解能を実現できることに留意してください。したがって、私は、100Hz = 1秒で100回の測定の時定数で平均化することを提案するMMA8652を提案します。 MMA8652 データシート: http://cache.freescale.com/files/sensors/doc/data_sheet/MMA8652FC.pdf すてきな一日を、 ホセ・レイエス ----------------------------------------------------------------------------------------------------------------------- 注: この投稿で質問が解決した場合は、「正解」ボタンをクリックしてください。ありがとう! -----------------------------------------------------------------------------------------------------------------------
記事全体を表示
Windows Compact 2013 上で FXOS8700CQ のセンサーフュージョンを実装する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> FXOS8700CQ ユニット (MCU ボード上ではない) を使用して正確なコンパスの方向を計算しようとしています。   当社では、デバイスに直接マウントされた FXOS8700CQ ユニットからのデータへのアクセスを提供する Windows Compact 2013 BSP を実行しています。BSP は次の 2 つの構造体を返すことができます。 struct COMPASS _READING { short X; short Y; short Z; } 磁力計から、そして 加速度センサからの struct ACCEL_READING { short X; short Y; short Z; } 。   NXP センサ Fusion|NXPからサンプル FreescaleSensorFusionRevision5 をダウンロードしましたが、サンプルのコードでは代わりに次の構造体が使用されています。 構造体MagSensor { int16 iBs[3]; int16 iBc[3]; float fBs[3]; float fBc[3]; int16 iCountsPeruT; float fuTPerCount; float fCountsPeruT; uint8 iWhoAmI; } および 構造体アクセルセンサー { int16 iGs[3]; int16 iCountsPerg; float fGs[3]; float fgPerCount; uint8 iWhoAmI; }   さらに、サンプルアプリケーションFreescaleSensorFusionRevision5は、ダウンロードに含まれていないヘッダーファイル(I2CFreedom.hなど)を使用します。UART.h、FTM.h)   融合アルゴリズムを実行するために BSP から十分な情報が得られるかどうか、または入手可能な情報に基づいて別のアプローチを取る必要があるかどうかを理解しようとしています。   コンパスの方向を決定するために、ピッチとロールの計算(傾きを補正するため)に基づく他のアルゴリズムを使用しようとしましたが、計算によって生成される結果は非常にノイズが多く、コンパスの方向とあまり関係がないようです。   受け取った読み取り値を含むサンプル ファイルが添付されています。   どなたかアドバイスを頂ければ幸いです 元の添付ファイルは、 compass_data.txt.zipに移動されました。 センサ・フュージョン Re: Implementing Sensor Fusion for the FXOS8700CQ on Windows Compact 2013 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> アンドリュー、 まず、返信が遅れたことをお詫び申し上げます。あなたの投稿の通知を見逃してしまいました。 BSP はセンサ値を返します。これは、生データに関して必要なすべてです。BSP に磁気キャリブレーション ソフトウェアがすでに含まれているかどうかご存知ですか?そうでない場合は、自分でそれを含める必要があります (センサ フュージョン ライブラリの一部です)。 5.00 センサ フュージョンから始めないことをお勧めします。7.xx バリアントは、ハードウェア インターフェイスを生成するためにプロセッサ Expert を必要とせず、代わりに、BSP に簡単に切り替えられる低レベルの SDK への直接アクセスに依存するため、目的に非常に適しています。7.xx ライブラリは、Welcome to MCUXpresso | MCUXpresso Config Toolsで生成された FRDM-K64F または FRDM-K22F SDK の一部として含めることができます。SDK を生成する前に、ISSDK および FreeRTOS オプションを選択してください。ドキュメントは /middleware/issdk_1.0/algorithms/sensorfusion/docs にあります。 [email protected]まで直接お問い合わせいただければ、あなたの問題について話し合うために、喜んで Skype セッションを設定させていただきます。 よろしくお願いいたします。 Mike
記事全体を表示
MPX2010DPは空気の流れを計算します <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 拝啓、 以下の条件で空気流量(kg/s)を計算するにはどうすればよいでしょうか?ぜひお勧めください。ありがとうございます 1. パイプ径:6mm 2. オリフィス径:5mm 3. 圧力差(MPX2010DP圧力センサから取得):0.5 psi 圧力センサ Re: MPX2010DP calculate air flow <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 親愛なるヨゼフへ 迅速なサポートをありがとうございます。 Re: MPX2010DP calculate air flow <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ジェフ様 空気の流量を計算する方法と計算式が記載されたリンクを見つけました。こちらのリンクをご覧ください: https://allsensors.com/engineering-resources/white-papers/pressure-point-11-calculating-flow-rate-from-pressure-measurem… こちらもご覧ください:低速はダクト内の空気の流れに悪影響を及ぼしますか? | Energy Vanguard あなたにとっても役立つかもしれません。 敬具、 ヨゼフ
記事全体を表示
FXTH87 Evaluation Module or Development Kit Hi. I'm studing on TPMS and looking for the FXTH87 Family DVK to implement the system. According to "Xtrinsic FXTH87 Evaluation Design Reference Manual", It seem that the DVK or EVM are exist. But I was not able to find the web-site that sales the device. How can i get it ? And I also need to a device that can receive the sensing data from FXTH87. Thank you for your interesting. Pressure Sensors Sensing Platforms Re: FXTH87 Evaluation Module or Development Kit Hi. I don't receive any answer from Pascal Bernard. So, i try to contact with Freescale Korea Inc, and request the any help. At the result, I got the FXTH87 Module from Freescale Korea Inc. If you want to get the FXTH87 evaluation board, i advise you to try to contact with branch office of your location. I hope that this answer is helpful. Regards. Re: FXTH87 Evaluation Module or Development Kit Hi! Only Pascal Bernard can help with FXTH87 Development kit and evaluation board? I wrote to him, but didn't receive any answer... We working on prototype of commercial TPMS. With plans begin to produce it in Russia at 2016 Thank you! Re: FXTH87 Evaluation Module or Development Kit Hi Sol, New FXTH87 family evaluation boards are available in a limited quantity, please email directly MBW108 with your contact information and application description. Meanwhile, you might find useful the Xtrinsic FXTH87 Family Evaluation Design Reference Manual including the schematic, BOM and other useful information. Regards, Tomas PS: If my answer helps to solve your question, please mark it as "Correct" or “Helpful”. Thank you.
記事全体を表示
Humidity of 90% Hi, are the pressure sensors MPXV2010DP and MPXV2053DP to be used with an ambient condition of a temperature of 45 degrees Celsius and a humidity of 90%? In the data sheet I have no information found. Thanks for any information Pressure Sensors Re: Humidity of 90% Thanks for the information Guenter Re: Humidity of 90% Hi Guenter, The two pressure sensors you mentioned have an operating temperature range from -40°C to 125°C, so 45 degrees still good. Now for standard pressure sensor products, any environment other than dry air, will have some impact on the reliability and lifetime of the product. In general, our pressure sensors were designed and are warranted for use in clean dry air only.  However, we offer an application note (AN3728) that mentions the media compatibility for our pressure sensors. Also I'd like to recommend using the MPVZ5010 series instead because this other pressure sensors come with an special gel, which is media resistant and is more likely to successfully measure the pressure in a highly moist environment and last for long.   Darío
記事全体を表示
センサタイプ MPXH6300A <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> センサータイプ MPXH6300A には、より媒体耐性のあるゲルのオプションはありますか?現在のデバイスにはフロロシリコーンタイプのゲルが使用されています 圧力センサ Re: sensor type MPXH6300A <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> トーマスさん、「受け取ったままの」状態では、同じリールに曇ったゲルと透明なゲルが混在しています...曇った外観はパフォーマンスに影響しますか、それともこれは許容できる状態ですか? Re: sensor type MPXH6300A <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、フィル。 いいえ、ありません。メディア耐性ゲルを備えたシリーズは、 MPXHZ6250AおよびMPXHZ6400Aシリーズのみです。 よろしくお願いいたします。 トーマス 追伸: 私の回答が質問の解決に役立った場合は、「正解」とマークしてください。ありがとう。
記事全体を表示
传感器类型 MPXH6300A <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 对于 MPXH6300A 型传感器,是否可以选择耐介质性更强的凝胶?当前设备具有氟硅类凝胶 压力传感器 Re: sensor type MPXH6300A <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Tomas,在"收到的" 条件下,同一卷筒上混有混浊和透明凝胶....,混浊的外观是否会影响性能,或者这是可以接受的情况? Re: sensor type MPXH6300A <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,菲尔、 不,没有。只有MPXHZ6250A和MPXHZ6400A系列带有抗介质凝胶。 顺祝商祺! 托马斯 PS:如果我的回答有助于解决您的问题,请标记为"正确" 。谢谢。
記事全体を表示
MMA8452Q MCU独立ライブラリ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、   私は、I2C_read() および I2C_write() 関数を使用しない ARM プロセッサと MMA8452Q をインターフェイスしようとしているので、センサーと MCU をインターフェイスするのに役立つライブラリを探しています。他にも同じ課題に直面した人はいますか?ATSAMD21 プロセッサを使用しています。 インテリジェント・センシング・フレームワーク Re: MMA8452Q MCU independent libraries <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> アンソニー、 ご提案ありがとうございます。 あなたの提案を検討して、後ほどご連絡させていただきます。 よろしくお願いします。 ニール。 Re: MMA8452Q MCU independent libraries <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ニール、 質問に戻ると、読み取り/書き込み関数を再定義して、ライブラリをポータブルにすることができます。 #I2C_Read vATSAMD21_Read を定義します #I2C_Write vATSAMD21_Write を定義します void vATSAMD21_Read(uint8_t* __au8_outBuffer, uint8_t __u8_length) { // ここにコード } void vATSAMD21_Write(uint8_t* __au8_inBuffer, uint8_t __u8_length) { // ここにコードを記述 } すべてのコードを壊すことなくライブラリを適応させる簡単な方法です。 アンソニー Re: MMA8452Q MCU independent libraries <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、ニールさん。 ATSAMD21 プロセッサには I²C ペリフェラルが付属しています。デバイスのデータシートを読んで、独自の I2C_Read&Write 関数を記述できるはずです。ATSAMD21 I²Cペリフェラルを構成するには、おそらくいくつかのレジスタが必要です。 完了すると、MMA8452Q 加速度センサとインターフェースできるようになります。 ここで私たちがあなたを助けることができるかどうかわかりません...これは MCU の問題です。ATMEL MCU フォーラムを探してください。彼らは自社製品に対してより効率的かつ慣れているはずです。 ちなみに、MMA8452Q センサの設定に問題がある場合 (i²c 通信が修正されたら)、遠慮なくコミュニティに再度お問い合わせください。 よろしくお願いいたします。 アンソニー
記事全体を表示
MPX2202A / MPX599D 配線の問題 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、 CASE344-15のMPX2202A Si圧力センサを購入しました。データシートの 8 ページには 3 つの接続スタイルがあり、それぞれが大きく異なるため、正しく接続するのに大きな問題があります。どのスタイルを使用すればよいですか?CASE867のMPX5999Dについても同じ質問ですか?よろしくお願いします。 圧力センサ Re: MPX2202A / MPX599D wiring problem <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、トーマス。 ありがとうございました。迅速かつ正確な回答でした! よろしくお願いいたします、ルーカス。 Re: MPX2202A / MPX599D wiring problem <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、ルーカス。 MPX2202A は差動出力 (+Vout と -Vout) を備えた補償型圧力センサなので、ピンの説明は次のとおりです。 1 – GND 2 – +Vout 3 – 対 4 – -Vout MPX599A は、シングルエンド出力を備えた完全に統合された圧力センサです。 1 – Vout 2 – GND 3 – 対 4 – V1 5 – V2 6 – ヴェックス V1、V2、および VEX ピンは工場でのトリミングに使用され、その後レーザーカットされます。これらのピンは浮かせたままにしておくことをお勧めします。 よろしくお願いいたします。 トーマス 追伸: 私の回答がご質問の解決に役立った場合は、「正解」とマークしてください。ありがとうございます。
記事全体を表示
FXOS8700 SPI question I am want to use the FXOS8700 in SPI mode. I set the parameters of the SPI bus according to the FXOS8700 data sheet.  In order to get the FXOS into SPI mode, I tri-state the MISO pin before toggling the reset pin, and waiting the required time for the auto detection circuit to put the device into SPI mode. void FXOS8700_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_MISO; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_Delay(10); GPIO_InitStruct.Pin = GPIO_PIN_RST; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_RST, GPIO_PIN_SET); HAL_Delay(1); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_RST, GPIO_PIN_RESET); HAL_Delay(1); }  Next, initialize the SPI bus. void MX_SPI1_Init(void) { hspi1.Instance = SPI1; hspi1.Init.Mode = SPI_MODE_MASTER; hspi1.Init.Direction = SPI_DIRECTION_2LINES; hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; hspi1.Init.NSS = SPI_NSS_SOFT; hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_128; hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi1.Init.CRCPolynomial = 10; if (HAL_SPI_Init(&hspi1) != HAL_OK) { Error_Handler(); } } My STM32 only connects to the FXOS8700. Therefore, the cs_b of FXOS8700 is directly grounded. During the reading process, cs_b remains at a low voltage, so it is not operated in the code. I then attempt to read the WHO_AM_I register and get the value 0xff instead of 0xff which is what I would expect. Below is the code I am using to reset the device and read the WHO_AM_I register: unsigned char FXOS8700CQ_ReadRegister(uint8_t RegisterAddress) { uint8_t tx_data[3]; unsigned char rx_data[3]; tx_data[0] = (RegisterAddress & 0x7F); tx_data[1] = (RegisterAddress & 0x80); tx_data[2] = 0x00; if (HAL_SPI_TransmitReceive(&hspi1, tx_data, rx_data, 3, HAL_MAX_DELAY) != HAL_OK) { return 0x01; } return rx_data; } The final result is below: rx_data[0] = 0xFF rx_data[1] = 0xFF rx_data[2] = 0xFF Anybody else getting this problem? Magnetic Sensors Re: FXOS8700 SPI question During the reset process of FXOS8700, I set SA0 to a high impedance state. After resetting, int1 was detected and a reset signal can be detected. Is there any way to detect if FXOS8700 has switched to SPI mode? Re: FXOS8700 SPI question Hi Tomas,I have revised CS_S according to your suggestion, and now it is completely controlled by the MCU. I still haven't received the correct signal yet. I captured the signal through a logic analyzer as follows: Re: FXOS8700 SPI question Hi, First of all, please note that the FXOS8700CQ is EOL and not recommended for new designs. Based on description, the first thing I would recommend to try is to toggle the CS_B pin between low and high to latch data during SPI communication. Grounding the CS_B pin directly may not work. Next, as I am not familiar with STM MCUs, I cannot check your SPI initialization. Please double check that it matches the FXOS8700 requirements: Clock Polarity (CPOL): 0 (idle low) Clock Phase (CPHA): 0 (data captured on the leading edge of the clock) Your read a register seems to be correct.  Do you have a logic analyzer or an oscilloscope to see what is going on the bus? BRs, Tomas
記事全体を表示
Accelerometer precision calibration Hello, Sensor fusion includes a function to calibrate the accelerometer. This is well explained in the manual and visually accessible in the calibration tab of the windows toolbox. According to the sensorfusion manual, calibration models for the accelerometer rely on AN5286 mathematics (with similar mathematics to AN5019 magnetometer calibration).  My question is related to calibration functions. According to AN5286, there are 3 functions available with a 4, 7 and 10 parameter calibration model. But the calibration tab in the toolbox allows up to 12 parameter calibration. There is another application note, AN4399, very similar to AN5286, that includes the 12 parameter model. It also includes a calibration procedure for the accelerometer in the temperature range. I would like to know if the 12 parameter model of the toolbox is in fact similar to the one described in AN4399. We will perform high/low temperature tests to evaluate how the output values change with temperature. I think that the variation of the sensitivity of the gyroscope should not be much of a problem (assuming a reasonable ±5% tolerance) but the variation of the accelerometer offset is usually not negligible (assuming offset variations in the ±200mg range). It would also depend if offset is similar in the three axis which I suppose it is not. thank you, SensorFusion Re: Accelerometer precision calibration Hello Paul, Thanks very much. It's what I thought. Regards, Re: Accelerometer precision calibration Hi, Yes, the 12 parameter calibration model described in AN4399 is the one which is employed in SF Precision Accelerometer Calibration.
記事全体を表示
MPXM2053 电源电压 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 能否使用 Vs = 5 VDC 为 MPXM2053GS 供电?所选仪器放大器 INA333 的共模电压为 2.5 V。 压力传感器 Re: MPXM2053 Supply Voltage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 谢谢您! Re: MPXM2053 Supply Voltage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,海科、 是的,该传感器可以在 5V 电源电压下使用,最小电压约为 3V,以获得正确的比率输出。所选仪表放大器应正常。 此致, 托马斯
記事全体を表示
圧力センサの高度範囲の計算 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは。MPX4115A 空気圧センサを検討しています。 私は気圧高度を測定する UAV アプリケーションとしてこれを検討しています。これで測定できる高度の範囲がどの程度なのかを知りたいです。つまり、0 -> ****** メートルまたはフィートです。 また、同様のパッケージサイズとインターフェースを備えた、より優れたセンサーオプション(解像度と範囲)がある場合は、お知らせください。 よろしくお願いします。 圧力センサ Re: Calculating the altitude range for pressure sensor <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、ダニエル。 MPX4115A は、アナログ出力を備えた絶対圧力センサーです。真空密封された基準を基準としてポート上の圧力を測定します。圧力範囲は15kPa~115kPaです。高度と圧力に関する米国標準大気モデルによれば、これは -1080 メートル (115kPa) から 13503 メートル (15kPa) の高度範囲に相当します。 代替可能な部品としては、小型パッケージ(SOP または SSOP)のMPXxx6115A シリーズがあります。主な特徴は同じです。 アナログ出力を好まない場合は、 MPL3115A2が良い選択肢です。校正済みの圧力範囲は50kPa~110kPaで、高度範囲は-698m~5572mに相当します。I2Cインターフェースを介して高度を直接読み取ることができ(追加の計算はほとんど不要)、 30cm以内の高度データを提供します(オーバーサンプリング有効時)。この製品についてさらに詳しく知りたい方は、 michaelestanleyがこの製品に関する3つの記事を公開しています。 これが役に立つことを願います。 よろしくお願いいたします。 トーマス
記事全体を表示
DPS 読み取りのためにジャイロスコープ値を統合しますか? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、 FXAS21002C ジャイロスコープに関する機能上の質問があります。センサからの値をリアルタイムで印刷できます。しかし、動きが止まったときにゼロに戻るのではなく、角度変位を表示してその値をその位置に保持したいと考えています。一定時間にわたって値を積分すると問題が解決するのではないかと思います。私は C の初心者なので、実装するための詳細な参考資料やサンプル コードがあれば幸いです。 よろしくお願いします。 Re: Integrating Gyroscope values for dps readings? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、Priyank Sさん 動きを止めた後にジャイロスコープの値がゼロに戻る理由は、ジャイロスコープが実際には位置ではなく、角度変位の速度を測定しているためです。あなたができることは、あなたが言ったように、一定時間にわたって値を積分して修正することです。 または、他の解決策としては、システムに加速度センサを追加して、角度変位の前後の位置を実際に測定する方法があります。 残念ながら、この特定のアプリケーションを実装するための参考資料やサンプル コードはありませんが、次のリンクで FXAS2100x ジャイロ スコープのベアメタル サンプル プロジェクトを見つけることができます: https://community.freescale.com/docs/DOC-100869 これが Freescale ジャイロスコープの使用開始に役立つことを願っています。 すてきな一日を、 ホセ・レイエス ----------------------------------------------------------------------------------------------------------------------- 注: この投稿で質問が解決した場合は、「正解」ボタンをクリックしてください。ありがとう! -----------------------------------------------------------------------------------------------------------------------
記事全体を表示
最近、MMA7660のデバッグをしています。他の部分はすべて正常に動作しているのですが、割り込みレベルが最初はハイレベルから始まり、ポジション変更後にローレベルに下がり、その後ハイレベルに戻らなくなります。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 以下が私のコードです: /* * mma7660.c- 3軸方向/モーション用のLinuxカーネルモジュール * 検出センサー * * 著作権 (C) 2009-2010 フリースケール・セミコンダクタ株式会社 * * このプログラムはフリーソフトウェアです。再配布および改変が可能です。 * GNU General Public Licenseの条件に従って、 * フリーソフトウェア財団; ライセンスのバージョン2、または * (オプション) それ以降のバージョン。 * * このプログラムは役に立つことを期待して配布されていますが、 *ただし、いかなる保証もなし。 * 商品性または特定目的への適合性。参照 * 詳細については GNU General Public License を参照してください。 * * GNU General Public Licenseのコピーを受け取っているはずです * このプログラムと一緒に。そうでない場合は、フリーソフトウェア * Foundation, Inc.、675 Mass Ave、Cambridge、MA 02139、米国。 / #include #include #include #include #include #include #include #include #include #include #include #include #include /* * 定義 / #1の場合 #define assert(式)\ if(!(式)) {\ printk("アサーションに失敗しました!")%s,% d、 %s,% s\n",\ __FILE__ 、 __LINE__ 、 __func__ 、#expr);\ } #それ以外 #define assert(expr) do{} while(0) #endif #define MMA7660_DRV_NAME "mma7660" #MMA7660_XOUT 0x00 を定義します #MMA7660_YOUT 0x01 を定義します #MMA7660_ZOUT 0x02 を定義します #MMA7660_TILT 0x03 を定義します #MMA7660_SRST 0x04 を定義します #MMA7660_SPCNT 0x05 を定義します #define MMA7660_INTSU 0x06 #MMA7660_MODE 0x07 を定義します #MMA7660_SR 0x08 を定義します #MMA7660_PDET 0x09 を定義します #MMA7660_PD 0x0A を定義します #define MK_MMA7660_SR(FILT、AWSR、AMSR)\ (FILT<<5 | AWSR<<3 | AMSR) #MK_MMA7660_MODE(IAH、IPP、SCPS、ASE、AWE、TON、MODE) を定義します\ (IAH<<7 | IPP<<6 | SCPS<<5 | ASE<<4 | AWE<<3 | TON<<2 | モード) #define MK_MMA7660_INTSU(SHINTX、SHINTY、SHINTZ、GINT、ASINT、PDINT、PLINT、FBINT)\ (SHINTX<<7 | SHINTY<<6 | SHINTZ<<5 | GINT<<4 | ASINT<<3 | PDINT<<2 | PLINT<<1 | FBINT) #MODE_CHANGE_DELAY_MS 100 を定義します ssize_t show_orientation(構造体デバイス*dev、構造体属性*attr、char *buf); ssize_t show_axis_force(構造体デバイス *dev、構造体属性 *attr、char *buf); ssize_t show_xyz_force(構造体デバイス*dev、構造体属性*attr、char *buf); 静的構造体デバイス *hwmon_dev; 静的 int test_test_mode = 0; 静的構造体 i2c_client *mma7660_i2c_client=NULL; //static struct mxc_mma7660_platform_data* plat_data; //リン 静的 u8 方向; static SENSOR_DEVICE_ATTR(all_axis_force, S_IRUGO, show_xyz_force, NULL, 0); //linux/include/linux/hwmon-sysfs.h で定義されています。34行目 静的SENSOR_DEVICE_ATTR(x_axis_force、S_IRUGO、show_axis_force、NULL、0); 静的SENSOR_DEVICE_ATTR(y_axis_force、S_IRUGO、show_axis_force、NULL、1); 静的SENSOR_DEVICE_ATTR(z_axis_force、S_IRUGO、show_axis_force、NULL、2); 静的SENSOR_DEVICE_ATTR(orientation, S_IRUGO, show_orientation, NULL, 0); 静的構造体属性* mma7660_attrs[] = { &sensor_dev_attr_all_axis_force.dev_attr.attr、 &sensor_dev_attr_x_axis_force.dev_attr.attr、 &sensor_dev_attr_y_axis_force.dev_attr.attr、 &sensor_dev_attr_z_axis_force.dev_attr.attr、 &sensor_dev_attr_orientation.dev_attr.attr, ヌル }; 静的定数構造体 attribute_group mma7660_group = { .attrs = mma7660_attrs、 }; 静的void mma7660_read_xyz(int idx, s8 *pf) { s32 結果; mma7660_i2c_client をアサートします。 する { 結果=i2c_smbus_read_byte_data(mma7660_i2c_client、idx+MMA7660_XOUT); アサート(結果>=0); }while(result&(1<<6)); //アラートの場合は再度読み込み *pf = (結果&(1<<5)) ?(結果|(~0x0000003f)) : (結果&0x0000003f); printk("dbg:mma7660_read_xyz()/*pf=0x%x\n",*pf); } 静的void mma7660_read_tilt(u8* pt) { u32 結果; mma7660_i2c_client をアサートします。 する { 結果 = i2c_smbus_read_byte_data(mma7660_i2c_client、MMA7660_TILT); アサート(結果>0); }while(result&(1<<6)); //アラートの場合は再度読み込み *pt = 結果 & 0x000000ff; } 静的 int print_orientation(int orient,char *buf) { int 結果 = 0; char buf1[10], buf2[10]; スイッチ((orient>>2)&0x07) { ケース1: //結果 = sprintf(buf, "左\n"); 結果 = sprintf(buf1, "左"); 壊す ケース2: //結果 = sprintf(buf, "右\n"); 結果 = sprintf(buf1, "右"); 壊す ケース5: //結果 = sprintf(buf, "下向き\n"); 結果 = sprintf(buf1, "下向き"); 壊す ケース6: //結果 = sprintf(buf, "上向き\n"); 結果 = sprintf(buf1, "上向き"); 壊す デフォルト: 結果 = sprintf(buf1, "不明");    } スイッチ(方向 & 0x03) { ケース1: //結果 = sprintf(buf, "Front\n"); 結果 = sprintf(buf2, "Front"); 壊す ケース2: //結果 = sprintf(buf, "Back\n"); 結果 = sprintf(buf2, "戻る"); 壊す デフォルト: //結果 = sprintf(buf, "不明\n"); 結果 = sprintf(buf2, "不明"); } 結果=sprintf(buf," %s,% s",buf1,buf2); 結果を返します。 } ssize_t show_orientation(構造体デバイス *dev、構造体属性 *attr、char *buf) { int 結果; 結果 = print_orientation(orientation,buf); 結果を返します。 } ssize_t show_xyz_force(構造体デバイス *dev、構造体属性 *attr、char *buf) { 整数 i; s8 xyz[3]; (i=0; i<3; i++) の場合 mma7660_read_xyz(i, &xyz); printk("dbg:show_xyz_force()/(xyz[0]= %d,xyz[1]=% d,xyz[2]=%d)\n", xyz[0], xyz[1], xyz[2]); sprintf(buf, "( %d,% d,%d)\n", xyz[0], xyz[1], xyz[2]); を返します。 } ssize_t show_axis_force(構造体デバイス *dev、構造体属性 *attr、char *buf) { s8 フォース; int n = to_sensor_dev_attr(attr)->index; mma7660_read_xyz(n, &force); printk("dbg:show_axis_force()/force=%d\n", フォース); sprintf(buf, "%d\n", force) を返します。 } 静的 void mma7660_worker(構造体 work_struct *work) { u8 傾き、新しい方向; char buf1[20], buf2[20]; int 結果 = 0; mma7660_read_tilt(&tilt); new_orientation = 傾斜 & 0x1f; if(orientation!=new_orientation){ //printk("dbg:/mma7660_worker(),orientation= %d,new_orientation=% d\n",orientation,new_orientation); print_orientation(orientation,buf1); print_orientation(新しい方向、バッファ2); printk("dbg:/mma7660_worker(),方向が%sから%sに変わります\n",buf1,buf2); 方向 = 新しい方向; //アクティブ+自動ウェイクモードを再度開始する mma7660_i2c_client の場合 { 結果 = i2c_smbus_write_byte_data(mma7660_i2c_client, MMA7660_MODE, MK_MMA7660_MODE(0, 0, 0, 0, 0, 0, 0)); //スタンバイ状態に入る アサート(結果==0); 結果 = i2c_smbus_write_byte_data(mma7660_i2c_client, //MMA7660_MODE、MK_MMA7660_MODE(0, 1, 0, 0, 0, 0, 1)); MMA7660_MODE、MK_MMA7660_MODE(0, 1, 0, 1, 1, 0, 1)); //IPP=1、ASE=1、AWE=1、MODE=1 アサート(結果==0); } } それ以外 printk("dbg:/mma7660_worker(),自動スリープモードを終了して自動ウェイクモードに移行します\n"); } DECLARE_WORK(mma7660_work、mma7660_worker); // 割り込みハンドラ 静的irqreturn_t mmx7660_irq_handler(int irq, void *dev_id) { スケジュール作業(&mma7660_work); printk("dbg:/mmx7660_irq_handler(irq= %d,dev_id=% s)\n",irq,(char*)dev_id); IRQ_RETVAL(1)を返す。 } /* 初期化関数 / 静的 int mma7660_init_client(構造体 i2c_client *client) { int 結果; 整数 irq; struct hrtimer タイマー; printk("%s %d\n", __func__ , __LINE__ ); mma7660_i2c_client = クライアント; //plat_data = (struct mxc_mma7660_platform_data *)client->dev.platform_data; //assert(plat_data); if(テスト_テスト_モード) { /* * デバイスをプローブします。デバイスをテストモードに設定し、 * XYZレジスタの書き込みと検証 / 結果 = i2c_smbus_write_byte_data(クライアント、MMA7660_MODE、MK_MMA7660_MODE(0, 0, 0, 0, 0, 1, 0)); アサート(結果==0); mdelay(MODE_CHANGE_DELAY_MS); 結果 = i2c_smbus_write_byte_data(クライアント、MMA7660_XOUT、0x2a); アサート(結果==0); 結果 = i2c_smbus_write_byte_data(クライアント、MMA7660_YOUT、0x15); アサート(結果==0); 結果 = i2c_smbus_write_byte_data(クライアント、MMA7660_ZOUT、0x3f); アサート(結果==0); 結果 = i2c_smbus_read_byte_data(クライアント、MMA7660_XOUT); printk("%sx %x\n", __func__ , 結果); 結果 = i2c_smbus_read_byte_data(クライアント、MMA7660_YOUT); printk("%sy %x\n", __func__ , 結果); 結果 = i2c_smbus_read_byte_data(クライアント、MMA7660_ZOUT); printk("%sz %x\n", __func__ , result); アサート(結果=0x3f); } // 方向検出ロジックを有効にする 結果 = i2c_smbus_write_byte_data(クライアント、 MMA7660_MODE, MK_MMA7660_MODE(0, 0, 0, 0, 0, 0, 0)); //スタンバイ状態に入る //printk("結果=i2c_smbus_write_byte_data(クライアント、MMA7660_MODE、MK_MMA7660_MODE(0, 0, 0, 0, 0, 0, 0))=%d\n",結果); アサート(結果==0); 結果 = i2c_smbus_write_byte_data(クライアント、MMA7660_SRST、0x03); //AWSRS=1、AMSRS=1 結果 = i2c_smbus_write_byte_data(クライアント、 MMA7660_SR, MK_MMA7660_SR(2, 2, 1)); //REG = 0x08,サンプルレートレジスタ, //MMA7660_SR, MK_MMA7660_SR(2, 2, 2)); //REG = 0x08、サンプルレートレジスタ、 //FILT = 2、AMSR[2:0]またはAWSR[1:0]で設定されたレートでの3つの測定サンプル // デバイスが縦向き/横向きのデータを更新する前に一致する必要があります // TILT(0x03)レジスタ内。 //AWSR = 2、8 サンプル/秒 自動ウェイクモード //AMSR = 1、64サンプル/秒、アクティブおよび自動スリープモード //AMSR = 2、32サンプル/秒、アクティブおよび自動スリープモード //printk("結果=i2c_smbus_write_byte_data(クライアント、MMA7660_SR、MK_MMA7660_SR(2, 2, 1));= %d\n",結果); アサート(結果==0); 結果 = i2c_smbus_write_byte_data(クライアント、 MMA7660_INTSU、MK_MMA7660_INTSU(0、0、0、0、1、0、1、1)); //MMA7660_INTSU、MK_MMA7660_INTSU(1、1、1、1、1、1、1、1)); // ASINT =1、自動スリープを終了すると割り込みが発生します // PLINT =1、上/下/右/左の位置変更により割り込みが発生します // FBINT =1、前後位置の変化により割り込みが発生する //printk("結果=i2c_smbus_write_byte_data(クライアント、MMA7660_INTSU、MK_MMA7660_INTSU(0、0、0、0、1、0、1、1));= %d\n",結果); アサート(結果==0); 結果 = i2c_smbus_write_byte_data(クライアント、 MMA7660_SPCNT、0xA0); //printk("結果=i2c_smbus_write_byte_data(クライアント、MMA7660_SPCNT、0xA0); = %d\n",結果); アサート(結果==0); 結果 = i2c_smbus_write_byte_data(クライアント、 MMA7660_MODE、MK_MMA7660_MODE(0, 1, 0, 0, 0, 0, 1)); //MMA7660_MODE、MK_MMA7660_MODE(0, 1, 0, 1, 1, 0, 1)); //IPP=1、ASE=1、AWE=1、MODE=1 //printk("結果=i2c_smbus_write_byte_data(クライアント、MMA7660_MODE、MK_MMA7660_MODE(0, 1, 0, 0, 0, 0, 1)); = %d\n",結果); アサート(結果==0); // MMA7660のINTはimx51EVKのGPIO4_17に接続されています // ここで割り込みハンドラをインストールします //printk("plat_data->irq=%d\n",plat_data->irq); //assert(plat_data->irq); クライアント->irq = 13; 結果 = request_irq(client->irq, mmx7660_irq_handler, IRQF_TRIGGER_FALLING、MMA7660_DRV_NAME、NULL); アサート(結果==0); mdelay(MODE_CHANGE_DELAY_MS); { u8 ティルト; char buf1[20]; mma7660_read_tilt(&tilt); 方向 = 傾き&0x1f; print_orientation(orientation,buf1); printk("dbg:/mma7660_init_client(),初期化状態 %s\n",buf1); } 結果を返します。 } 静的構造体 input_polled_dev *mma7660_idev; #POLL_INTERVAL 100 を定義する #INPUT_FUZZ 4 を定義する #INPUT_FLAT 4 を定義する #include 静的void report_abs(void) { 整数 i; s8 xyz[3]; s16 x、y、z; (i=0; i<3; i++) の場合 mma7660_read_xyz(i, &xyz); /* 符号付き10ビットを符号付き16ビットに変換する */ x = (short)(xyz[0] << 6) >> 6; y = (short)(xyz[1] << 6) >> 6; z = (short)(xyz[2] << 6) >> 6; input_report_abs(mma7660_idev->input、ABS_X、x); input_report_abs(mma7660_idev->input、ABS_Y、y); input_report_abs(mma7660_idev->input、ABS_Z、z); 入力同期(mma7660_idev->入力); printk("dbg:report_abs()/x= %d,y=% d,z=%d\n",x,y,z); } 静的void mma7660_dev_poll(構造体input_polled_dev *dev) { report_abs(); } ////////////////////////////終わり////// /* * I2C 初期化/プローブ/終了関数 / 静的int __devinit mma7660_probe(構造体i2c_client *クライアント、 定数構造体 i2c_device_id *id) { int 結果; 構造体 i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); 構造体 input_dev *idev; if(!i2c_check_functionality(アダプタ、I2C_FUNC_SMBUS_BYTE|I2C_FUNC_SMBUS_BYTE_DATA)) { printk("%s I2Cチェック機能が失敗しました。\n", __func__ ); -ENODEV を返します。 } // アサート(結果); /* MMA7660チップを初期化する */ 結果 = mma7660_init_client(クライアント); アサート(結果==0); 結果 = sysfs_create_group(&client->dev.kobj,&mma7660_グループ); アサート(結果==0); hwmon_dev = hwmon_device_register(&client->dev); アサート(!(IS_ERR(hwmon_dev))); dev_info(&client->dev, "ビルド時間 %s %s\n", __DATE__ , __TIME__ ); /*入力ポーリングデバイスレジスタ */ mma7660_idev = 入力_割り当て_ポーリング_デバイス(); もし (!mma7660_idev) { dev_err(&client->dev, "alloc poll device に失敗しました!\n"); 結果 = -ENOMEM; 結果を返します。 } mma7660_idev->ポーリング = mma7660_dev_poll; mma7660_idev->ポーリング間隔 = POLL_INTERVAL; idev = mma7660_idev->入力; idev->name = MMA7660_DRV_NAME; idev->id.bustype = BUS_I2C; idev->dev.parent = &client->dev; idev->evbit[0] = BIT_MASK(EV_ABS); //絶対座標の最大範囲を設定します (-512,512)? input_set_abs_params(idev、ABS_X、-512、512、INPUT_FUZZ、INPUT_FLAT); input_set_abs_params(idev、ABS_Y、-512、512、INPUT_FUZZ、INPUT_FLAT); input_set_abs_params(idev、ABS_Z、-512、512、INPUT_FUZZ、INPUT_FLAT); 結果 = input_register_polled_device(mma7660_idev); if (結果) { dev_err(&client->dev, "ポーリングデバイスの登録に失敗しました!\n"); 結果を返します。 } //呼び出し側はプルメソッドを設定し、capabilities(id,name,phys,bits)を設定する必要があります。 //対応するinput_dev構造体 ///////////////////////////// 結果を返します。 } 静的int __devexit mma7660_remove(構造体i2c_client *クライアント) { int 結果; 結果 = i2c_smbus_write_byte_data(クライアント、MMA7660_MODE、MK_MMA7660_MODE(0, 0, 0, 0, 0, 0, 0)); アサート(結果==0); free_irq(mma7660_i2c_client->irq, NULL); sysfs_remove_group(&client->dev.kobj, &mma7660_group); hwmon_device_unregister(hwmon_dev); 結果を返します。 } #ifdef CONFIG_PM 静的int mma7660_suspend(struct i2c_client *client, pm_message_t mesg) { int 結果; 結果 = i2c_smbus_write_byte_data(クライアント、 MMA7660_MODE、MK_MMA7660_MODE(0, 0, 0, 0, 0, 0, 0)); アサート(結果==0); 結果を返します。 } 静的 int mma7660_resume(構造体 i2c_client *クライアント) { int 結果; 結果 = i2c_smbus_write_byte_data(クライアント、 MMA7660_MODE、MK_MMA7660_MODE(0, 1, 0, 0, 0, 0, 1)); アサート(結果==0); 結果を返します。 } #それ以外 #定義 mma7660_suspend NULL #定義 mma7660_resume NULL #endif /* CONFIG_PM */ 静的定数構造体 i2c_device_id mma7660_id[] = { { MMA7660_DRV_NAME, 0 }, { } }; モジュールデバイステーブル(i2c、mma7660_id); 静的構造体 i2c_driver mma7660_driver = { .driver = { .name = MMA7660_DRV_NAME、 .owner = このモジュール、 }, .suspend = mma7660_suspend、 .resume = mma7660_resume、 .probe = mma7660_probe, .remove = __devexit_p(mma7660_remove)、 .id_table = mma7660_id、 }; 静的 int __init mma7660_init(void) { i2c_add_driver(&mma7660_driver) を返します。 } 静的void __exit mma7660_exit(void) { i2c_del_driver(&mma7660_driver); } MODULE_DESCRIPTION("MMA7660 3軸方向/モーション検出センサードライバー"); MODULE_LICENSE("GPL"); モジュールバージョン("1.1"); モジュールの初期化(mma7660_init)。 モジュール終了(mma7660_exit); Re: 我最近在调试MMA7660,其他都行,就是中断一开始是高电平,位置变化后变为低电平,无法恢复为高电平 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、トーマス: 皆様のフィードバックに基づいて修正した後も、以前と同じままです。 一つ言い忘れていましたが、もう一つの現象は割り込み関数に入ることができないことです。 私は AM335X プラットフォームを使用しており、割り込み機能に入っても問題はないだろうと見積もっています。 [email protected] 送信者: [email protected] 送信日時: 2015-03-04 17:43 受信者: jive-47801551-50wr-2-afcg 件名: Re: Re: - 最近MMA7660のデバッグをしています。他の部分はすべて正常に動作しているのですが、割り込みレベルが最初はハイレベルですが、ポジション変更後にローレベルに落ちてしまい、ハイレベルに戻すことができません。 ありがとう、トーマス!あなたの提案に従って修正します。 [email protected] 出典:トーマス・ヴァヴェルカ 送信日時: 2015-03-04 17:28 受信者: 張雲峰 件名: Re: - 現在、MMA7660 をデバッグ中です。他の部分はすべて正常に動作しているのですが、割り込みレベルが最初はハイレベルから始まり、ポジション変更後にローレベルに落ちてしまい、ハイレベルに戻すことができません。 最近、MMA7660のデバッグをしています。他の部分はすべて正常に動作しているのですが、割り込みレベルが最初はハイレベルから始まり、ポジション変更後にローレベルに下がり、その後ハイレベルに戻らなくなります。 センサーに関するTomas Vaverkaからの返信 - 全文を見る こんにちは、張さん。 次の手順で構成される簡単なテストを実行することをお勧めします。 1. MODEレジスタのMODEビットをクリアして、デバイスをスタンバイモードにします。 2. SRレジスタのAMSR[3:0]ビットとFILT[2:0]ビットを使用して、目標の消費電力レベルや希望する応答速度に基づいてサンプルレートを選択します(詳細については、AN3837の表5を参照してください)。 3. INTSUレジスタのPLINTビットとFBINTビットの両方を設定して、方向割り込みを有効にします。 4. ニーズに応じて MODE レジスタの IPP ビットと IAH ビットの両方を設定し (オープン ドレインまたはプッシュプル、アクティブ ハイまたはアクティブ ロー)、MODE レジスタの MODE ビットを設定してデバイスをアクティブ モードにします。 5. ISR で TILT レジスタを読み取って割り込みピンをデアサートし、オシロスコープまたはロジック アナライザを使用して割り込みピンのアクティビティを監視します。 お役に立てれば幸いです。それでも割り込みが機能しない場合はお知らせください。さらに調査いたします。 よろしくお願いいたします トーマス 追伸: 私の回答が質問の解決に役立った場合は、「正解」または「役に立った」とマークしてください。ありがとう。 あなたの質問は解決しましたか? もしそうなら、コミュニティ スレッドで「正解」をクリックして感謝の意を表しましょう。 このメールに返信するか、Freescaleコミュニティのメッセージにアクセスしてこのメッセージに返信してください。 電子メールまたはFreescaleコミュニティでセンサーに関する新しいディスカッションを開始してください 最近のMMA7660のデバッグでは、他のすべては正常に動作しますが、割り込みは最初はハイになり、位置変更後にローになり、これらのストリームではハイに戻すことができません。受信トレイ Re: 我最近在调试MMA7660,其他都行,就是中断一开始是高电平,位置变化后变为低电平,无法恢复为高电平 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ありがとう、トーマス!あなたの提案に従って修正します。 [email protected] 出典:トーマス・ヴァヴェルカ 送信日時: 2015-03-04 17:28 受信者: 張雲峰 件名: Re: - 現在、MMA7660 をデバッグ中です。他の部分はすべて正常に動作しているのですが、割り込みレベルが最初はハイレベルから始まり、ポジション変更後にローレベルに落ちてしまい、ハイレベルに戻すことができません。 最近、MMA7660のデバッグをしています。他の部分はすべて正常に動作しているのですが、割り込みレベルが最初はハイレベルから始まり、ポジション変更後にローレベルに下がり、その後ハイレベルに戻らなくなります。 センサーに関するTomas Vaverkaからの返信 - 全文を見る こんにちは、張さん。 次の手順で構成される簡単なテストを実行することをお勧めします。 1. MODEレジスタのMODEビットをクリアして、デバイスをスタンバイモードにします。 2. SRレジスタのAMSR[3:0]ビットとFILT[2:0]ビットを使用して、目標の消費電力レベルや希望する応答速度に基づいてサンプルレートを選択します(詳細については、AN3837の表5を参照してください)。 3. INTSUレジスタのPLINTビットとFBINTビットの両方を設定して、方向割り込みを有効にします。 4. ニーズに応じて MODE レジスタの IPP ビットと IAH ビットの両方を設定し (オープン ドレインまたはプッシュプル、アクティブ ハイまたはアクティブ ロー)、MODE レジスタの MODE ビットを設定してデバイスをアクティブ モードにします。 5. ISR で TILT レジスタを読み取って割り込みピンをデアサートし、オシロスコープまたはロジック アナライザを使用して割り込みピンのアクティビティを監視します。 お役に立てれば幸いです。それでも割り込みが機能しない場合はお知らせください。さらに調査いたします。 よろしくお願いいたします トーマス 追伸: 私の回答が質問の解決に役立った場合は、「正解」または「役に立った」とマークしてください。ありがとう。 あなたの質問は解決しましたか? もしそうなら、コミュニティ スレッドで「正解」をクリックして感謝の意を表しましょう。 このメールに返信するか、Freescaleコミュニティのメッセージにアクセスしてこのメッセージに返信してください。 電子メールまたはFreescaleコミュニティでセンサーに関する新しいディスカッションを開始してください 最近のMMA7660のデバッグでは、他のすべては正常に動作しますが、割り込みは最初はハイになり、位置変更後にローになり、これらのストリームではハイに戻すことができません。受信トレイ Re: 我最近在调试MMA7660,其他都行,就是中断一开始是高电平,位置变化后变为低电平,无法恢复为高电平 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、張さん。 次の手順で構成される簡単なテストを実行することをお勧めします。 1. MODEレジスタのMODEビットをクリアして、デバイスをスタンバイモードにします。 2. SRレジスタのAMSR[3:0]ビットとFILT[2:0]ビットを使用して、目標の消費電力レベルや希望する応答速度に基づいてサンプルレートを選択します(詳細については、 AN3837の表5を参照してください)。 3. INTSUレジスタのPLINTビットとFBINTビットの両方を設定して、方向割り込みを有効にします。 4. ニーズに応じて MODE レジスタの IPP ビットと IAH ビットの両方を設定し (オープン ドレインまたはプッシュプル、アクティブ ハイまたはアクティブ ロー)、MODE レジスタの MODE ビットを設定してデバイスをアクティブ モードにします。 5. ISR で傾きレジスタを読み取って割り込みピンをデアサートし、オシロスコープまたはロジック アナライザを使用して割り込みピンのアクティビティを監視します。 お役に立てれば幸いです。それでも割り込みが機能しない場合はお知らせください。さらに調査いたします。 よろしくお願いいたします。 トーマス 追伸: 私の回答がご質問の解決に役立った場合は、「正解」または「役に立った」と評価してください。ありがとうございます。
記事全体を表示