Multi Source Translation Content

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Source Translation Content

讨论

排序依据:
FXOS8700 I2C SDA Held Low Head note to the reader, this is a hardware issue (we believe) and is a rare occurrence in a production level setting that we have seen multiple times. Backstory: We utilize the FXOS8700 configured for I2C in a production device of ours. Our PCBs are manufactured and populated with a contract manufacturer, we have fielded three to four hundred of these devices and have experienced the following failure mode of the FXOS8700 in a handful of instances. We would like to know if NXP or any other end users of the FXOS8700 have experienced this same failure mode and if they have been able to determine the root cause of the issue. Failure Mode Description: At some point in the devices life (whether it be days, months, or a years of normal operation) the FXOS8700 permanently drives the SDA line of the I2C bus to logic low (it is not fully driven to ground which is shown in scope captures below). The SDA line is stuck in logic low state regardless of what we do to the device. Our error handling code attempts to reset the FXOS8700 using the external reset pin, and we have even tried a full power cycle of the device by removing the power source and re-inserting it. In order to verify that the FXOS8700 was indeed driving the SDA line low instead of the host processor, we obtained a device displaying this failure mode and cut the SDA trace past the pull-up resistor as shown in the schematic below: We probed the FXOS8700 side of the pull-up resistor and it was being driven logic low by the FXOS8700 as shown in the scope captures below: We then hooked a discrete resistor to VCC and probed the other side of the SDA line that is hooked up to the processor. This was done as an effort to prove that it was the FXOS8700 driving the signal low and not the processor. As seen in the below scope capture the line was pulled high by the pull-up resistor. As stated above, this is not an issue that presents it self right away. If it were a manufacturing defect when populating the PCB, these devices would fail immediately instead of some time into their service life after normal operation. I am unsure what the problem might be, whether it could be mechanical stresses on the PCB, or if there is something that is breaking internally on these FXOS8700 devices after some time. Or something else. Accelerometers Magnetic Sensors Re: FXOS8700 I2C SDA Held Low Tomas, I have returned with another data point. Since my last post in July, we have been running the PCB with the transplanted FXOS8700 in application. The other day the same failure mode was encountered. Again this is the same issue where a hard reset of the device, and attempted clock pulsing rescue will not recover the FXOS from it's failure state. I wrote a small program to attempt to rescue the device and shed a little more light on this issue but I have so far been unsuccessful. I am attaching the source code for this application in a zip file for anyone who comes across this post to look at. I am somewhat tempted to send you the PCB displaying this problem for you to examine with your engineering team as I am unsure how much more we can do here to test it. The "bad" FXOS8700 was removed from it's original PCB and mounted on a brand new (problem free) PCB. After a few months of application the "bad" FXOS failed again. This leads me to believe that it is not so much the PCB as it is the FXOS it self. Please see the attached application code and let me know if there is more that I can do to rescue the device from I2C lock up. Re: FXOS8700 I2C SDA Held Low Tomas, Okay we have successfully transplanted the FXOS8700 in question to a new PCB. To keep things simple these are the notations of this post: Old PCB = The original PCB that had the original FXOS8700 on it, which this post is about. New PCB = The new PCB that was shown to work fine, and the original FXOS8700 was transplanted to. We took the old PCB and removed the FXOS8700 in question from it, we repaired the trace we cut and placed a brand new FXOS8700 on the old PCB. We booted it up and everything worked fine! We took the original FXOS8700 that was removed from the old PCB and placed it on a brand new PCB that was shown to be functional, and.. it worked fine! So, now we are at a loss as to what was happening, we checked and triple checked all the electrical connections to ensure there was no short to the ground plane, we tried resetting, clocking 9 clocks out, and hard resetting and none of that worked. As soon as we remove the part from the PCB and put it on a new PCB it works fine. And the old PCB works fine with a new part as well.. - Warren Re: FXOS8700 I2C SDA Held Low Attached is the schematic layout for the FXOS and the host processor. We will attempt to move the IC to a new PCB today, it may be difficult because we have the QFN package but we will try. I'll let you know how it goes! Thanks, Warren Re: FXOS8700 I2C SDA Held Low Hi Warren, It sounds really strange. I have asked also my colleagues from our application team to look into it. Meanwhile, could you please post here your complete schematic and let us know if you have tried to replace the FXOS8700CQ on a PCB having this issue? Could you please also try to use „the faulty“ part on a PCB without this issue? I want to figure out if it is a part or board problem. Best regards, Tomas Re: FXOS8700 I2C SDA Held Low Hi Tomas, Clocking out 9 cycles on SCL does not free the SDA line.  - Warren Re: FXOS8700 I2C SDA Held Low Hi Tom, Based on your descriprion, is my understanding correct that even a hardware reset or a full power cycle does not release the SDA line? Yes, a full power cycle of the entire system does not release the SDA line. It should also be noted that the SDA pin is not shorted to ground (we did quite a lot of probing to make sure). It's being held at about 0.1 V. If the data line (SDA) is stuck LOW, the master should send nine clock pulses. The device that held the bus LOW should release it sometime within those nine clocks. If not, then use the HW reset or cycle power to clear the bus.“ We do try an external reset, and then attempt to read the WHO_AM_I register, however we don't explicitly try to just pump out 9 clock cycles. That is something we can try here, however since a power cycle doesn't release the bus I am unsure if this will help. I have one more question. In your previous thread, you were asking about the SPI mode. Are you considering using the SPI instead of I2C because of this issue? The main reason we are looking to switch to SPI is the increased speed of the bus (400 kHz vs 1 MHz), and also less overhead / code. Internally we would like to understand exactly why this particular issue is happening regardless of if we make the switch to SPI in our next generation of boards. I will try to clock out 9 cycles on the SCL line to see if we can release the bus and get back to you on it.  Thanks! - Warren Re: FXOS8700 I2C SDA Held Low Hi Warren, I have not heard of such a problem so far and I am not really sure what is causing that. I am afraid it is going to be difficult to identify a potential root cause since the issue appears sporadically and on a few devices only. Based on your descriprion, is my understanding correct that even a hardware reset or a full power cycle does not release the SDA line? One thing you can also try out is to send nine clock pulses as recommended in the UM10204, page 20: „If the data line (SDA) is stuck LOW, the master should send nine clock pulses. The device that held the bus LOW should release it sometime within those nine clocks. If not, then use the HW reset or cycle power to clear the bus.“   I have one more question. In your previous thread, you were asking about the SPI mode. Are you considering using the SPI instead of I2C because of this issue? Best regards, Tomas
查看全文
BRKT-STBC-AGM01 上的 MISO 线路 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我在 FXAS21002C 3 轴陀螺仪和 FXOS8700C 6 轴集成电子罗盘上使用 BRKT-STBC-AGM01 分线板。我必须在 SPI 模式下使用它。看来两个传感器的 MOSI 和 CLK 是通用的。MISO 线路分开的原因是什么?我可以做空它们,只用 CS 进行区分吗? 我只想确保两个传感器使用 MISO 的共用线路不会给我带来任何麻烦。 加速度传感器 陀螺仪 传感平台 Re: MISO line on BRKT-STBC-AGM01 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,莫希特、 是的,OR 门是一种可行的变通方法,也可以使用三态缓冲器,将 MISO 线路和 CS_B 线路作为缓冲器的输入。 顺祝商祺! 托马斯 Re: MISO line on BRKT-STBC-AGM01 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 这就很清楚了。您认为如果使用 OR 门,是否可以将两个 MISO 信号连接到同一个微型引脚? 如果是,我强烈建议在 EVM 上设置一个 OR 门控 MISO 输出选项。 Re: MISO line on BRKT-STBC-AGM01 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,莫希特、 原因请参见FXOS8700CQ 数据表(第 17 页): " FXOS8700CQ 在 CS_B 引脚处于停用状态(逻辑高电平)时不会对 MISO 引脚进行三态,如果总线上存在多个从属设备,则可能导致总线冲突。" 因此,FXOS8700CQ 将 MISO 拉低至 GND,而不是三态,这将阻止 FXAS21002C 向主设备发送数据。 顺祝商祺! 托马斯
查看全文
咨询FXPS7550A4 2、5、8、9、10、11是悬空吗?6、7、14是悬空吗?3号脚连接VCC?4、15显示内部连接到VSS,那么板端悬空吗?17号脚需要连接到VSS吗? Re: 咨询FXPS7550A4 你好,刘先生、 请参见数据表中的表 3。您可以在那里找到如何连接所有这些引脚的建议。 顺祝商祺! 托马斯
查看全文
你好,我正在寻找一个无线压力传感器 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,我正在寻找一个无线压力传感器,用于监测我的山地自行车轮胎压力。 我使用 Arduino Uno 与传感器通信,它的压力范围应该在 20-70 psi 之间。我需要有人帮我选择,因为有太多的传感器可供选择...谢谢 Re: Hi, I'm looking for a wireless pressure sensor <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好, 我们有一个集成芯片(7mm*7mm),带有压力传感器、温度传感器、两轴加速度计以及无线连接:射频发射器(315MHz或434MHz)和低频接收器(125KHz)。它通常用于汽车,但完全适合您的应用。 我为自行车轮胎推荐此零件编号:FXTH870511DT1. 您可在我们的胎压监测系统网页 (胎压监测传感器|恩智浦 )上查看所有 恩智浦 产品组合。 祝你愉快 安东尼 Re: Hi, I'm looking for a wireless pressure sensor <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好, 目前,我们还没有提供带有蓝牙模块的完整 BTPS 解决方案,该模块可将轮胎气压发送到智能手机或智能手表等设备上。 就压力传感器本身而言,我建议考虑使用 mpxx6400a系列集成模拟压力传感器,该传感器具有温度补偿、校准和片上放大器电路。全额定压力(400kPa)下的输出电压通常为 4.8V。 此致, 托马斯 PS:如果我的回答有助于解决您的问题,请标记为"正确" 。谢谢。
查看全文
How does FXTH87 use BDM to debug in STOP mode? Hello, I am using the FXTH87 chip for debugging. When STOP is entered into STOP1 mode, BDM is disconnected from FXTH87. I see the  FXTH871X6 datasheet: 3.5.3 Active BDM Enabled in STOP Mode Entry into the ACTIVE BACKGROUND DEBUG mode from RUN mode is enabled if the ENBDM bit in BDCSCR is set. The BDCSCR register is not memory mapped so it can only be accessed through the BDM interface by use of the BDM commands READ_STATUS and WRITE_CONTROL. My question is how to use the commands READ_STATUS and WRITE_CONTROL to enable ENBDM? I am using codewarrior10.7. Thanks! Pressure Sensors Re: How does FXTH87 use BDM to debug in STOP mode? Hello Lison,  I have received confirmation from our AE. The ENBDM is enabled by default when using the latest version of CodeWarrior.  I hope this information can be helpful.  Have a great day,  Paulina Re: How does FXTH87 use BDM to debug in STOP mode? Hello Lison, To enable the active background debug, this is done by default when using the target FXTH870000 (default TPMS target) in the latest CodeWarrior version. The latest CW version (CW11) can be installed from here for free using the special edition (CW for MCUs Eclipse IDE, special edition). If the debug session is nonetheless disconnected when using CW11 and the target FXTH870000, it may be due to a bad hardware connection (USB cable going from the computer to the multilink, or ribbon cable from the multilink to the FXTH), or to a reset due to an instruction problem in the code (for example jump to a wrong address). I’m pending to provide more information about the use of READ_STATUS and WRITE_CONTROL once I have it from internal support. I apologize for the delayed response. Have a great day, Paulina Re: How does FXTH87 use BDM to debug in STOP mode? I see the  FXTH871X6 datasheet, Chapter 15 develoment support: How to use it?
查看全文
MMA8652の低消費電力について問題があります <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ハイ MMA8652 に関していくつか問題があります。ODR=1.56(CTRL_REG1=0x38)を設定しました、低電力モード(CTRL_REG2=0x1b)で動作します。電流は 6.5 uA のはずです。     しかし、デジタル電流計で電流が 170 uA であると読み取りました。なぜ? そして私の回路図はこんな感じ 私のコードは IIC_write(CTRL_REG1,0x38); //ODR = 1.56Hz、スタンバイ IIC_write(XYZ_DATA_CFG_REG,0x02); //+/-8g IIC_write(CTRL_REG2,0x1b); //低消費電力 IIC_write(PULSE_CFG_REG, 0x15); //X、Y、Zの単一パルスを有効にする IIC_write(PULSE_THSX_REG, 0x78); //Xしきい値を7.56gに設定 IIC_write(PULSE_THSY_REG, 0x78); //Yしきい値を7.56gに設定 IIC_write(PULSE_THSZ_REG, 0x78); //Zしきい値を7.56gに設定 IIC_write(PULSE_TMLT_REG, 0x28); //タップ検出の時間制限を25msに設定する IIC_write(PULSE_LTCY_REG, 0x28); // レイテンシ時間を50msに設定 IIC_write(CTRL_REG4, 0x08); //パルス検出割り込みが有効 IIC_write(CTRL_REG5, 0x08); //INT1をシステム割り込みにルーティングする data = IIC_read(CTRL_REG1); //アクティブモード データ |= 0x01; IIC_write(CTRL_REG1、データ); ありがとう !全員! Re: I have some problem about MMA8652's low power <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、トーマス ご返信ありがとうございます! 理由はもうわかっています。MCUのIICが動作していないため、センサーのレジスタはデフォルト値を使用します。 これは私のせいです! 再度、感謝します ! (追記:私は中国人です。私の苗字は「呉」であって、「俊」ではありません。(笑) Re: I have some problem about MMA8652's low power <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、ジュンさん。 この電流消費量をどのように測定していますか?他にも電流を消費しているデバイスはありませんか? また、データシートに記載されている電流消費量は VDD = 2.5V に適用され、2.5V 電圧レールと VDD 入力間の電流計でのみ測定されていることにも注意してください。 よろしくお願いいたします。 トーマス 追伸: 私の回答が質問の解決に役立った場合は、「正解」とマークしてください。ありがとう。
查看全文
MPX5700 在水中 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好!我的雇主正在购买几台 MPX5700DP...问题是:这些传感器能否用于精确测量水压(非蒸馏水),且不会发生劣化? 如果不够,我们应该买哪些? 谢谢您! 压力传感器 Re: MPX5700 in water <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,法比安、 请看看这个主题类似的主题。 此致, 托马斯
查看全文
AN5019の磁気校正に関する質問 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、 私はAN5019 Rev 2.0、セクション5「7つのパラメータモデル」に従って磁気校正を行っています。 22ページの内容がよく分かりません。 |A|=1について…それは言う この段落についてさらに情報を教えていただけますか?減衰が 40% または 60% であると仮定するとどうなるでしょうか?計算に何か変化はありますか? |A|=10 を希望通りに設定できますか? これらを理解する前にどのような知識が必要ですか?教えてください。 どうもありがとうございます。 センサ・フュージョン Re: Question about Magnetic Calibration in AN5019 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、 いいえ、減衰が 40% または 60% であると仮定しても、|A|=10 にすることはできません。その理由は、あなたが送信した段落で述べられているように、地磁気の強度の大きさを軟鉄から分離することは物理的に不可能であり、NXP ソフトウェアでは常にふるい鉄マトリックスの行列式を |A|=1 に設定する理由です。 ハードアイアンおよびソフトアイアンキャリブレーション の完全なソースコードとライセンスは、次の URL からダウンロード できます: https://www.nxp.com/support/developer-resources/evaluation-and-development-boards/freedom-development-boards/sensors/nxp-e-compass-software:E-Compass?lang=en&lang_cd=en& 当社は、FRDM_K64F および FRDM_K22F 用のMCUXpresso からの KDSK ダウンロードを介して、センサー フュージョン ライブラリ バージョン 7.2 のハード鉄およびソフト鉄用の 10 要素磁気キャリブレーション モデルを含む完全なソース コードを備えた、完全に最適化された MCU ソフトウェアを提供します。 *KSDK をビルディングするときは、ISSDK チェックボックスをオンにしてください。 ダウンロードすると、プロジェクトの magnetic.c ファイル内に 10 要素のコードが具体的に見つかります。
查看全文
センサ Fusion 5.0 K22F のサンプル プロジェクトが動作しない <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> サポートおよびフォーラムメンバーの皆様へ   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 接続を使用します。   この時点では、サンプル プロジェクトがテストされ、問題なく動作すると予想していたため、まったくわかりません。どのようなご指導もいただければ幸いです。助けてくれてありがとう!   ありがとうございます。よろしくお願いします。 ダニエル センサ・フュージョン Re: Sensor Fusion 5.0 K22F example project not working <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ありがとう、マイク。 Sensor Fusion Toolbox は dotNetFramework 4 を使用します。winetricks を使用するとインストール可能ですが、32 環境では 64 ビット OS を使用します。そうですね、私は運が悪いですね Android apk は Proguard で無効になっていますか? よろしくお願いいたします。 ハビエル Re: Sensor Fusion 5.0 K22F example project not working <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ハビエル、 ご指摘のとおり、プロセッサ Expert のサポートは徐々に廃止されていきます。7.00 (KSDK バージョン) がリリースされた後でも、バージョン 5.00 (PE ベース) のセンサ フュージョン リリースを Web から削除する予定はありません。したがって、短期から中期の期間であれば問題なく使用できるはずです。V7.00 がオンラインになったら (これも来月予定)、全員に切り替えることを強くお勧めします。更新されたライブラリには、使用するのがさらに魅力的になると思われる機能が多数あります。詳細については、このスペースの他の投稿を参照してください。 Sensor Fusion Toolbox の Linux バージョンはありません。SO、あなたは運が悪かったのです。 Re: Sensor Fusion 5.0 K22F example project not working <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ご説明ありがとうございます。 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 を一度試しました。 よろしくお願いいたします。 ハビエル Re: Sensor Fusion 5.0 K22F example project not working <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ハビエル、 KSDK 2.0 は、センサ フュージョン ライブラリではまだサポートされていません。来月にはバージョンをリリースする予定です。FSFK-K64F プロジェクトが使用に適しています。フュージョン出力を表示するためにセンサー フュージョン ツールボックスをダウンロードしましたか? Mike Re: Sensor Fusion 5.0 K22F example project not working <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは!、 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? よろしくお願いいたします。 ハビエル Re: Sensor Fusion 5.0 K22F example project not working <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ダニエル、 謝罪は必要ありません。再び元気になってよかったです。 よろしくお願いいたします。 Mike Re: Sensor Fusion 5.0 K22F example project not working <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> マイケル様 迅速なご対応誠にありがとうございます。はい、センサーシールドなしでボードを使用しています。サンプルプロジェクトがセンサボードの構成に適用され、build.hがシールドが使用されていない場合はそれに応じて変更する必要があります。ご提案いただいた変更を加えました。今は問題なく動作するようになりました。 コードに誤りがあったり、テストされていないと言ったこと、心よりお詫び申し上げます。明らかに、build.h の設定を忘れたのは私の不注意によるものでした。ごめん。 サポートありがとうございます! よろしくお願いいたします。 ダニエル Re: Sensor Fusion 5.0 K22F example project not working <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ダニエル、 過去数年間、センサのチームはデバッグ構成に関していくつかの問題を抱えていました。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
查看全文
Question about Magnetic Calibration in AN5019 Hi, I am doing mag calibration according to AN5019 Rev 2.0, Section 5. Seven Parameter Model I cannot really understand the content in page 22.  About |A|=1..it says Can you give me more information about this paragraph? what if we assume that attenuation is 40% or 60%? Does it make any change on computing?? Can we make |A|=10 as we want?? what knowledge should I have before I can understand these?? please let me know it. Thank you very much SensorFusion Re: Question about Magnetic Calibration in AN5019 Hi, No, it is not possible to make |A|=10, even if you assume that attenuation is 40% or 60%, reason is mentioned in the paragraph you sent telling that it is physically impossible to separate out the magnitude of the geomagnetic field strength from the soft iron, reason of why in the NXP software, we always set the determinant of the sift iron matrix |A|=1. You can download the complete source code and license for the Hard-Iron and Soft-Iron Calibration from: https://www.nxp.com/support/developer-resources/evaluation-and-development-boards/freedom-development-boards/sensors/nxp-e-compass-software:E-Compass?lang=en&lang_cd=en& We provide full optimized MCU software with full source code including 10 element magnetic calibration models for Hard-Iron and Soft-Iron on version 7.2 of sensor fusion library via KDSK download from MCUXpresso for FRDM_K64F and FRDM_K22F. *Please check the ISSDK checkbox when building your KSDK. Once downloaded you can find specifically the 10 element code can be found in the file magnetic.c in the projects.
查看全文
Accelerometer as tilt sensor Hello. I was about to develop tilt sensor using Acclerometer.Could someone please explain me how the value of low medium and high value of G affect the tilt sensing. Accelerometers Re: Accelerometer as tilt sensor Pavan, Inclination sensing is a static measurement that uses the gravity vector and its projection on the axes of the accelerometer to determine the tilt angle. Therefore, to achieve the highest resolution of a tilt measurement, low-g/high-sensitivity accelerometers are required. For example, the output of our 14-bit accelerometer operating in the ±2g range will change by 8192 counts as the accelerometer is rotated 180° from pointing downward to upward, giving an average sensitivity of one count per 0.022° change in tilt. I hope this answers your question. Regards, Tomas Re: Accelerometer as tilt sensor Thanks for the response. But than what does 1g, 2g, 200g, +\-2g and other values tell us. Re: Accelerometer as tilt sensor Hi Pavan, Accelerometers are sensitive to the difference between the linear acceleration of the sensor and the local gravitational field. The data sheet for any accelerometer will denote the positive x, y, and z axes on the sensor package and, by convention, these are defined so that a linear acceleration aligned in the direction of these axes will give a positive accelerometer output. A gravitational field component aligned along the same axes directions will, however, result in a negative reading on the accelerometer. Using an accelerometer, you can calculate the angle between the gravitational vector measured by the accelerometer and the initial orientation with the gravitational field pointing downwards along the z-axis. You can find excellent documentation explaining how to measure the tilt angle using accelerometers in the application note AN3461 that you can find in the following link: http://cache.freescale.com/files/sensors/doc/app_note/AN3461.pdf Best regards, Jose
查看全文
FXTH8705026T1 tire pressure monitor sensor Hi, for the FXTH8705026T1 tire pressure monitor sensor, it is possible also to measure pressure lower than 100kPa ? Thanks Pascal Pressure Sensors Re: FXTH8705026T1 tire pressure monitor sensor Hi Tomas, thank you very much for your feedback. If the FXTH8705 is an absolute sensor I can measure tire pressure from 0 to 350KPa ( I subtract the atmospheric pressure from reading ). Best regards, Pascal Re: FXTH8705026T1 tire pressure monitor sensor Hi Pascal, The pressure sensor inside the FXTH8705 is an absolute type pressure sensor. Its output (Pout) is converted and internally processed using both the TPMS_READ_PRESSURE and TPMS_COMP_PRESSURE routines resulting in a fixed pressure range of 100kPa to 450kPa. If Pout < 100kPa, the “underflow” status flag is set and Pcode = 0 (FAULT) as shown in “Pressure Measurement Characteristic” tab of the datasheet.  Best regards, Tomas
查看全文
有关 AN5019 中磁性校准的问题 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好, 我正在根据 AN5019 Rev 2.0 第 5 节进行磁场校准。七参数模型 我不太理解第 22 页的内容。 关于 |A|=1...It says 您能给我更多关于这一段的信息吗?如果我们假设衰减为 40% 或 60% 呢?它对计算有什么影响吗? ,在理解这些内容之前,我应该掌握哪些知识? 非常感谢 传感器融合 Re: Question about Magnetic Calibration in AN5019 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好, 不,即使你假设衰减为40%或60%,也不可能做出|A|=10,你发送的段落中提到了原因,即实际上不可能将地磁场场强度与软铁分开,这就是为什么在恩智浦软件中,我们总是设置筛铁矩阵的行列式 |A|=1。 您可 从以下网址下载 硬铁和软铁校准 的完整源代码和许可证 : https://www.nxp.com/support/developer-resources/evaluation-and-development-boards/freedom-development-boards/sensors/nxp-e-compass-software:E-Compass?lang=en& lang_cd=en & 我们通过从MCUXpresso下载用于 FRDM_K64F 和 FRDM_K22F 的 KDSK,在传感器融合库的 7.2 版上提供带完整源代码的全优化 MCU 软件,包括用于硬铁和软铁的 10 元磁校准模型。 *请在构建 KSDK 时选中 ISSDK 复选框。 下载后,您可以在项目中的 magnetic.c 文件中找到 10 个元素的具体代码。
查看全文
血压计-mpx5050 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我们希望了解以下情况。 1. 如何将阀门连接至 mpx5050 2。该设备的阀门规格是什么 3. 连接到 MPX5050 的袖带规格 4. 如何将空气泵入袖带。 Re: BLOOD PRESSURE MONITOR -mpx5050 你好,戴维、 请分享您的电子邮件地址,以便就 BP 计进行更多讨论。 我们有兴趣生产同样的产品。 谢谢并致以诚挚的问候 卡拉姆-钱德 电子邮件:[email protected] Re: BLOOD PRESSURE MONITOR -mpx5050 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好 要获得有关软管应用的更多信息,您可以参考以下应用笔记: AN1513 - 安装技术和管道选项​ 我建议您使用内径较小的软管,比传感器外径小 0.5 毫米即可。 如果按照前面提到的建议,只需将管子推到端口即可。 此外,我想推荐应用笔记 AN1571-数字血压计。 本应用笔记描述了数字血压计的概念,该概念使用集成的压力传感器、模拟信号调节电路、微控制器硬件/软件和液晶显示器。 希望这些信息对你有用。 如果我误解了你的问题,请随时告诉我。 我很乐意提供帮助。 祝您有美好的一天。 戴维-迪亚兹 注:如果本帖回答了您的问题,请点击 "正确答案 "按钮。谢谢!
查看全文
MPX5010DP Sensitivity to sensor orientation I am currently using a MPX5010DP for a pitot tube project with an Arduino microprocessor and I am finding that the sensor output is sensitive to the sensor orientation.  Sometimes a vertical orientation of the sensor gives stable values, other times a horizontal orientation gives more stable values - it is not consistent. Does anybody have any further information on sensor orientation. Thanks.  #MPX5010DP #sensor-orientation Re: MPX5010DP Sensitivity to sensor orientation Hi md63 These devices are very sensitive to any change. To ensure optimal performance, we recommend implementing auto-zero according to the application note, This process ensures a “start from Zero” and the measures will be more stable, as linked below: Implementing Auto-Zero for Integrated Pressure Sensors I hope this information has helped you, please let me know if you need help with anything else. Have a great day and best of luck.
查看全文
MMA8451Q加速度センサを使って速度を計算できますか? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、皆さん。 私は MMA8451Q 加速度センサを使用しており、これを移動物体に配置すると、X、Y、Z の値が得られます。これらの x、y、z 値から、移動する物体の速度と加速度を判断できるかどうか。 Re: Can we Calculate Speed using MMA8451Q Accelerometer <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 残念ながら答えは明確に「いいえ」です。加速度センサは、ある程度の測定誤差を伴い、加速度と重力を測定します。加速度を積分して速度を取得し、さらにもう一度積分して変位を取得すると、測定誤差も無制限に積分されることになります。最大で数秒以内に、速度と変位は非常に不正確になり、これらの誤差は時間の経過とともに無制限に直線的および二次的に増加します。 Re: Can we Calculate Speed using MMA8451Q Accelerometer <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 皆さんこんにちは。 物体の加速度がわかっている場合は、積分を適用することで速度データの比例近似値を得ることができます。 残念ながら、当社の新しい加速度センサを使用してこれを行う方法についての情報が記載された更新されたドキュメントはありませんが、加速度センサ MMA7260 (現在は製造されていません) を使用して速度 (およびポジショニング) を計算する方法について説明したアプリケーションノートはありますので、参考として使用できます。 加速度計を用いたポジショニングアルゴリズムの実装 - AN3397 役に立つと思われる場合は、MMA8451 のサンプル コードを次の場所から参照してください。 MMA8451Q - ベアメタルのサンプル・プロジェクト この情報が皆様のお役に立てれば幸いです。 素晴らしい一日をお過ごしください。 デビッド・ディアス。 Re: Can we Calculate Speed using MMA8451Q Accelerometer <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> これについて誰か応答できますか? 加速度センサ「MMA8451Q」を使って速度を計算してみた人はいますか?
查看全文
俯仰角度应为 -180 到 +180 度,而不是 -90 到 +90 度 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好, 我正在使用恩智浦传感器融合库。在我的应用程序中,方向将在前端显示单元中以欧拉角度以偏航、俯仰和滚动显示。 恩智浦融合源代码输出偏航为 0 至 360 度,俯仰为 -90 至 +90 度,滚动 -180 度至 +180 度。 但是根据我的应用程序,俯仰角度应该是-180到+180度,而不是-90到+90度。 这意味着当我将俯仰轴从 0 旋转到 360 度时,我的显示屏应该会显示 0 ---> 45 ---> 90 (89+) ---> 135 ---> +180/-180 --> - 135 ---> -90 (89) ---> -45 ---> 0. 而不是 0 ---> 45 ---> 90(89+) ----> 45 ---> 0 ---> -45 ---> -90(89) ---> -45 ---> 0. 在根据旋转矩阵计算引脚间距时,是否有可能应用任何其他数学/逻辑...? 请给我建议。 提前感谢您 传感平台 传感器融合 Re: Pitch angle should be -180 to +180 Degrees instead of -90 to +90 Degrees <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好, 我认为我的问题本身是错误的...由于表示超过 +-90(即 +-180)的俯仰将为 3D 帧中的每个方向提供两个欧拉角解决方案...因此,在 NED 参考框架中,音高仅限于 +-90。 应用笔记 AN5017 的第 1.8 节对此进行了明确的解释。感谢恩智浦,如果没有它,我可能会举步维艰。 非常感谢,恩智浦。
查看全文
加速度センサベクトル振幅 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは。FXOS8700 で A_VECM 機能を使用しようとすると、奇妙な応答が発生します。 次のコードがあります: MMA865x_スタンバイ(); IIC_RegWrite(CTRL_REG4,0x02); //データレディ割り込みを無効にし、A_VECM割り込みを有効にする IIC_RegWrite(A_VECM_THS_MSB,0x80); //MSB THSを更新し、条件が満たされない場合はリセットする print_string("A_VECM_THS_MSB= ",16); print_hex(IIC_RegRead(A_VECM_THS_MSB)); WaitPrintBuffer(); IIC_RegWrite(A_VECM_THS_LSB,Acc_THS); // LSB THSを更新 print_string("A_VECM_THS_LSB= ",16); print_hex(IIC_RegRead(A_VECM_THS_LSB)); WaitPrintBuffer(); IIC_RegWrite(A_VECM_CNT,Acc_COUNT); //カウンターを更新 print_string("A_VECM_CNT= ",13); print_hex(IIC_RegRead(A_VECM_CNT)); printENTER; WaitPrintBuffer(); IIC_RegWrite(A_VECM_CFG,0x78); //0111 1000 ラッチ有効、A_VECM_INIT、イベント発生時に参照を更新しない IIC_RegWrite(M_CTRL_REG1,((IIC_RegRead(M_CTRL_REG1))&(~0x03))); //Accelerometer_Onlyを有効にする Data_Mode= Accelerometer_Only; //EX0割り込みを通知して加速度センサデータを読み取る IIC_RegWrite(M_CTRL_REG2,((IIC_RegRead(M_CTRL_REG2))&(~0x20))); //自動インクリメントモードを無効にする // IntSource=IIC_RegRead(TRANSIENT_SRC); // 割り込みをクリアするために0x1E TRANSIENT_SRCレジスタを読み出す MMA865x_Active(); //センサをアクティブにする このコードを使用すると、プログラムは正常に動作し、デバイスを移動するたびに A_VECM がアサートされます。 この段階で、print_string() 行を削除することにしました。 それを実行した後、A_VECM は一度アサートされ、それ以降はアサートされなくなります。 print_string() 行を単純な遅延に置き換えてみました: for(i=0; i<60000; i++); この行では、A_VECM が問題なく再びアサートされます。 CNTR_REG4 を読み取ることができ、0x02 に設定されています。ただし、A_VECM はアサートされません。 その理由は何でしょうか? よろしくお願いします。 加速度センサ 磁気センサ Re: accelerometer vector magnitude <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、トーマス 正しいリンクをありがとうございます。 問題はまだ存在します。 私のプロジェクトの詳細(コード)は以下をご覧ください センサー初期化: MMA865x_スタンバイ(); IIC_RegWrite(CTRL_REG4,0x02); IIC_RegWrite(A_VECM_THS_MSB、0x80); IIC_RegWrite(A_VECM_THS_LSB、Acc_THS); IIC_RegWrite(A_VECM_CNT、Acc_COUNT); IIC_RegWrite(A_VECM_INITX_MSB、0x00); IIC_RegWrite(A_VECM_INITX_LSB、0x00); IIC_RegWrite(A_VECM_INITY_MSB、0x00); IIC_RegWrite(A_VECM_INITY_LSB、0x00); IIC_RegWrite(A_VECM_INITZ_MSB、0x00); IIC_RegWrite(A_VECM_INITZ_LSB、0x00); IIC_RegWrite(A_VECM_CFG,0x78); IIC_RegWrite(M_CTRL_REG1,((IIC_RegRead(M_CTRL_REG1))&(~0x03))); IIC_RegWrite(M_CTRL_REG2,((IIC_RegRead(M_CTRL_REG2))&(~0x20))); MMA865x_アクティブ(); IntSource=IIC_RegRead(INT_SOURCE); 今、 A_VECMイベントをポーリングしています General_IntSource = IIC_RegRead(INT_SOURCE); General_IntSource&0x02の場合、readdata(); そして最後に関数readdata() void readdata (void) // { IntSource=IIC_RegRead(INT_SOURCE); MMA865x_スタンバイ(); IIC_RegWrite(M_CTRL_REG1,((IIC_RegRead(M_CTRL_REG1))|0x03)); //ハイブリッドモード IIC_RegWrite(M_CTRL_REG2,((IIC_RegRead(M_CTRL_REG2))|0x20)); //磁気自動インクリメントを有効にする IIC_RegWrite(CTRL_REG4,0x01); //データ準備割り込みを有効にし、A_VECM割り込みを無効にする MMA865x_アクティブ(); //センサをアクティブにする ここで、データ準備割り込みを使用して加速度センサと磁気データを数回読み取り、新しいデータを取得します。 データの読み取りが完了したら、 A_VECM割り込みを再度受け入れるようにパラメータを設定します。 MMA865x_スタンバイ(); IIC_RegWrite(CTRL_REG4,0x02); //データレディ割り込みを無効にし、A_VECM割り込みを有効にする for (i=0; i<60000; i++); - この行を削除すると、システムを再起動しない限り、A_VECM割り込みはアサートされなくなります。 IIC_RegWrite(M_CTRL_REG1,((IIC_RegRead(M_CTRL_REG1))&(~0x03))); //加速度計のみを有効にする IIC_RegWrite(M_CTRL_REG2,((IIC_RegRead(M_CTRL_REG2))&(~0x20))); //自動インクリメントモードを無効にする MMA865x_アクティブ(); //センサをアクティブにする IntSource=IIC_RegRead(INT_SOURCE); //割り込みをクリアするために0x0C INT_SOURCEレジスタを読み出す } 最初の割り込みは常にアサートされ、システムは期待どおりに動作します。すべてのデータの読み取り値を取得します。 遅延線を配置してもシステムは正常に動作します。問題は、それがなぜ必要なのかということです。 デバッグのために数行印刷していたので、遅延が必要だというアイデアを得ました。これらの行を削除すると、最初の A_VECM の後の割り込みが発生しなくなりました。 調査の結果、連続した割り込みを取得するには、CTRL_ REG4 の設定後に遅延が必要であることがわかりました。 デバッグ モードでGeneral_IntSource変数の値が 0x00 になっているのを確認できるため、割り込みがアサートされていないことは確かです。 このCASEについて調査してご意見を頂ければ幸いです。 よろしくお願いします。 メイア MMA865x_スタンバイ(); IIC_RegWrite(CTRL_REG4,0x02); IIC_RegWrite(A_VECM_THS_MSB、0x80); IIC_RegWrite(A_VECM_THS_LSB、Acc_THS); IIC_RegWrite(A_VECM_CNT、Acc_COUNT); IIC_RegWrite(A_VECM_INITX_MSB, 0x00); IIC_RegWrite(A_VECM_INITX_LSB, 0x00); IIC_RegWrite(A_VECM_INITY_MSB, 0x00); IIC_RegWrite(A_VECM_INITY_LSB, 0x00); IIC_RegWrite(A_VECM_INITZ_MSB, 0x00); IIC_RegWrite(A_VECM_INITZ_LSB, 0x00); IIC_RegWrite(A_VECM_CFG,0x78); IIC_RegWrite(M_CTRL_REG1,((IIC_RegRead(M_CTRL_REG1))&(~0x03))); IIC_RegWrite(M_CTRL_REG2,((IIC_RegRead(M_CTRL_REG2))&(~0x20))); MMA865x_アクティブ(); IntSource=IIC_RegRead(INT_SOURCE); Re: accelerometer vector magnitude <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、メイアさん。 申し訳ございませんが、正しいリンクは次のとおりです: https://community.freescale.com/docs/DOC-106050 私の設定を再現してみて、問題が解決しない場合はお知らせください。 よろしくお願いいたします。 トーマス Re: accelerometer vector magnitude <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、トーマス 迅速なご対応ありがとうございます。 残念ながら、サンプルコードとして送信されたリンクを開くことができません。 実際、私は一時割り込みを扱うプログラムから以前のコード部分をコピーして貼り付けたSO、INT_Source ではなく一時ソースを読み取りました。 質問に添付したコードは、A_VECM 割り込みを処理する最後の部分です。 割り込みがアサートされた直後に、INT_SOURCE レジスタを読み取ります。 最後に、あなたの提案に従って行を変更しました // IntSource=IIC_RegRead(TRANSIENT_SRC); // 割り込みをクリアするために0x1E TRANSIENT_SRCレジスタを読み出す そしてそれを IntSource=IIC_RegRead(INT_SOURCE); //割り込みをクリアするために0x0C INT_SOURCEレジスタを読み出す 問題はまだ存在しています。 私のCASEのポイントは、一拍違うことです。 行の後に遅延がある場合のように見えます: IIC_RegWrite(CTRL_REG4,0x02); //データレディ割り込みを無効にし、A_VECM割り込みを有効にする 中断されることはあります。 遅延は、いくつかのレジスタを設定して印刷することによって行われます(質問で送信したコードを参照してください)。 あるいは単純に for(i=0; i<60000; i++); とすることで遅延を実装することもできます。 このようなCASE、最初の割り込みの後に A_VECM 割り込みが発生しますが、これは常に予想どおりにアサートされます。 遅延が実装されていない場合、最初にアサートされた後の割り込みは発生しません。 よろしくお願いします。 メイア・サドリー Re: accelerometer vector magnitude <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、メイアさん。 私のサンプルコードを見てください。SRC_A_VECM ステータス ビットをクリアし、INTx ピンをデアサートするには、INT_SOURCE レジスタ (0x0C) を読み取る必要があります。 お役に立てれば幸いです。 よろしくお願いいたします。 トーマス 追伸: 私の回答が質問の解決に役立った場合は、「正解」とマークしてください。ありがとう。
查看全文
加速度计矢量幅度 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,我在尝试使用 FXOS8700 的 A_VECM 功能时遇到了一个奇怪的反应。 我有以下一段代码: MMA865x_Standby(); IIC_RegWrite(CTRL_REG4,0x02); //禁用数据就绪中断,启用 A_VECM 中断 iic_regWrite (a_vecm_ths_msb,0x80); //更新 MSB THS,条件失败时RESET print_string("A_VECM_THS_MSB=",16); print_hex(IIC_RegRead(A_VECM_THS_MSB)); WaitPrintBuffer(); IIC_RegWrite(A_VECM_THS_LSB,Acc_THS); //更新 LSB THS print_string("A_VECM_THS_LSB=",16); print_hex(IIC_RegRead(A_VECM_THS_LSB)); WaitPrintBuffer(); IIC_RegWrite(A_VECM_CNT,Acc_COUNT); //更新计数器 print_string("A_VECM_CNT=",13); print_hex(IIC_RegRead(A_VECM_CNT)); printENTER; WaitPrintBuffer(); iic_regWrite (a_vecm_CFG,0x78); //0111 1000 锁定启用,A_VECM_INIT,事件发生时不要更新引用 IIC_RegWrite(M_CTRL_REG1,((IIC_RegRead(M_CTRL_REG1))&(~0x03))); //Enable Accelerometer_Only Data_Mode= Accelerometer_Only; // 通知 EX0 中断以读取加速计数据 IIC_RegWrite(M_CTRL_REG2,((IIC_RegRead(M_CTRL_REG2))&(~0x20)); /禁用自动递增模式 // IntSource=IIC_RegRead(TRANSIENT_SRC); //读取 0x1E TRANSIENT_SRC 寄存器以清除中断 MMA865x_Active(); // 激活传感器 使用这段代码,程序运行良好,每次我移动设备时都会钳位 A_VECM。 在这个阶段,我决定删除 print_string() 行。 在我这样做之后,A_VECM 被钳位过一次,不再钳位了。 我试着用简单的延迟来替换 print_string() 行: for(i=0; i<60000; i++); 使用这条线,再次钳位 A_VECM 没有问题。 我可以读取 CNTR_REG4,它被设置为 0x02。但是没有钳位 A_VECM。 你知道这是什么原因吗? 谢谢! 加速度传感器 磁力传感器 Re: accelerometer vector magnitude <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,托马斯 感谢提供正确的链接。 问题依然存在。 更多项目详情(代码)请见下文 传感器初始化 MMA865x_Standby(); IIC_RegWrite(CTRL_REG4,0x02); IIC_RegWrite(A_VECM_THS_MSB,0x80); IIC_RegWrite(A_VECM_THS_LSB,Acc_THS); IIC_RegWrite(A_VECM_CNT,Acc_COUNT); IIC_RegWrite(A_VECM_INITX_MSB, 0x00); IIC_RegWrite(A_VECM_INITX_LSB, 0x00); IIC_RegWrite(A_VECM_INITY_MSB, 0x00); IIC_RegWrite(A_VECM_INITY_LSB, 0x00); IIC_RegWrite(A_VECM_INITZ_MSB, 0x00); IIC_RegWrite(A_VECM_INITZ_LSB, 0x00); IIC_RegWrite(A_VECM_CFG,0x78); IIC_RegWrite(M_CTRL_REG1,((IIC_RegRead(M_CTRL_REG1))&(~0x03))); IIC_RegWrite(M_CTRL_REG2,((IIC_RegRead(M_CTRL_REG2))&(~0x20))); MMA865x_Active(); IntSource=IIC_RegRead(INT_SOURCE); 现在我正在轮询 A_VECM 事件 General_IntSource= IIC_RegRead(INT_SOURCE); if (General_IntSource&0x02) readdata(); 最后是函数readdata() 无效 readdata(void) // { IntSource=IIC_RegRead(INT_SOURCE); MMA865x_Standby(); IIC_RegWrite(M_CTRL_REG1,((IIC_RegRead(M_CTRL_REG1))|0x03)); //混合模式 IIC_RegWrite(M_CTRL_REG2,((IIC_RegRead(M_CTRL_REG2))|0x20)); //启用磁性自动增量功能 IIC_RegWrite(CTRL_REG4,0x01); // 启用数据就绪中断并禁用 A_VECM 中断 MMA865x_Active(); // 激活传感器 在这里,我使用数据就绪中断多次读取加速度计和磁场数据,以检索新数据 在最终完成读取数据后,我设置了重新接受A_VECM 中断的参数 MMA865x_Standby(); IIC_RegWrite(CTRL_REG4,0x02); /禁用数据就绪中断,启用 A_VECM 中断 f@@ or (i=0; i < 60000; i++); -如果删除此行,除非我重新启动系统,否则不会再钳位 A_VECM 中断 IIC_RegWrite(M_CTRL_REG1,((IIC_RegRead(M_CTRL_REG1))&(~0x03)); //Enable Accelerometer_Only IIC_RegWrite(M_CTRL_REG2,((IIC_RegRead(M_CTRL_REG2))&(~0x20))); //禁用自动递增模式 MMA865x_Active(); // 激活传感器 IntSource=IIC_RegRead(INT_SOURCE); //读取 0x0C INT_SOURCE 寄存器以清除中断 } 始终钳位第一个中断,系统按预期运行。我获得了所有数据读数。 当放置延迟线时,系统也能正常工作。问题是为什么需要它。 我之所以认为需要延迟,是因为我在调试时打印了几行。当我删除这些行之后,在第一个 A_VECM 之后就不再出现中断了。 经过调查,我意识到在设置 CTRL_ REG4 后需要延迟才能获得连续的中断。 我肯定知道中断没有钳位,因为在调试模式下我能看见 General_intSource 变量的值为 0x00。 如果您能调查这个案件并提出您的见解,我将不胜感激。 谢谢! 梅厄 MMA865x_Standby(); IIC_RegWrite(CTRL_REG4,0x02); IIC_RegWrite(A_VECM_THS_MSB,0x80); IIC_RegWrite(A_VECM_THS_LSB,Acc_THS); IIC_RegWrite(A_VECM_CNT,Acc_COUNT); IIC_RegWrite(A_VECM_INITX_MSB,0x00); IIC_RegWrite(A_VECM_INITX_LSB,0x00); IIC_RegWrite(A_VECM_INITY_MSB,0x00); IIC_RegWrite(A_VECM_INITY_LSB,0x00); IIC_RegWrite(A_VECM_INITZ_MSB, 0x00); IIC_RegWrite(A_VECM_INITZ_LSB, 0x00); IIC_RegWrite(A_VECM_CFG,0x78); IIC_RegWrite(M_CTRL_REG1,((IIC_RegRead(M_CTRL_REG1))&(~0x03))); IIC_RegWrite(M_CTRL_REG2,((IIC_RegRead(M_CTRL_REG2))&(~0x20))); MMA865x_Active(); IntSource=IIC_RegRead(INT_SOURCE); Re: accelerometer vector magnitude <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,梅厄 对不起,正确的链接是: https://community.freescale.com/docs/DOC-106050 请尝试重现我的设置,如果问题仍然存在,请告诉我。 此致, 托马斯 Re: accelerometer vector magnitude <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,托马斯 感谢您的及时回复。 很遗憾,我无法打开您发送的示例代码链接。 事实上,我是从一个处理瞬时中断的程序中复制粘贴了一段以前的代码,所以我读取的是瞬时源,而不是 INT_Source。 我在问题中附上的代码是处理 A_VECM 中断的最后一部分。 中断钳位后,我立即读取了 INT_SOURCE 寄存器。 最后,我按照你的建议修改了这一行 // IntSource=IIC_RegRead(TRANSIENT_SRC); //读取 0x1E TRANSIENT_SRC 寄存器以清除中断 改为 IntSource=IIC_RegRead(INT_SOURCE); //读取 0x0C INT_SOURCE 寄存器以清除中断 问题依然存在。 我的情况则不同。 看起来,如果我在该行后面有一个延迟: IIC_RegWrite(CTRL_REG4,0x02); //禁用数据就绪中断,启用 A_VECM 中断 我确实被打断了。 延迟是通过设置和打印几个寄存器来实现的(见我在问题中发送的代码)、 或甚至通过简单的 for(i=0; i<60000; i++); 来实现延迟。 在这些情况下,我确实会在第一个中断之后 A_VECM 中断,这种中断总是按预期进行钳位。 如果未实现延迟,则在钳位的第 1 次之后我不会被中断。 谢谢! 梅厄-苏德利 Re: accelerometer vector magnitude <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,梅厄 请看我的示例代码。您需要读取 INT_SOURCE 寄存器 (0x0C) 以清除 SRC_A_VECM 状态位并取消 INTx 引脚的置信。 希望对你有所帮助。 此致, 托马斯 PS:如果我的回答有助于解决您的问题,请标记为"正确" 。谢谢。
查看全文
Pressure Sensor MPXM2051GST1 spec On revision 5 of the MPXM2051G specification, 22 April 2021, on page 5 the Linearity in Table 4 shows a min of -0.3 and a max of +3.0 %Vfss. The maximum of +3.0 % seems high. Is this spec correct? Re: Pressure Sensor MPXM2051GST1 spec Dear Adam, the application engineer confirmed, that the max. linearity value is a typo and it should be 0.3%VFSS, not the not 3%VFSS.  With Best Regards, Jozef Re: Pressure Sensor MPXM2051GST1 spec Dear Adam, thank you for the research you have conducted. Due to the new information you shared I think yes, the max. linearity value is most probably 0.3%VFSS, not 3%VFSS. I have contacted an application engineer for confirming the correct value and asked to fix the mistake in the datasheet rev. 5 if the 0.3% is correct. I will let you know the answer from the application engineer. With Best Regards, Jozef Re: Pressure Sensor MPXM2051GST1 spec Jozef, Thanks for the reply. Sorry to be a bother, but on Rev 4 of the MPXM2051G specification the Linearity is listed as -0.3% to +0.3%, page 4, table 3. This is also the case for revision 1, 2, and 3 of the MPXM2051G spec. Revision 4 of the spec is attached. The revision history on the rev 5 specification also does not mention a change to the Linearity spec.  Thanks for your help with this. Adam M Re: Pressure Sensor MPXM2051GST1 spec Dear Adam, unfortunately yes. The MPXM2051GS has such high linearity error. If you want a similar gauge sensor with much better linearity error, you can use for example MPX2050, which has the linearity error +/-0.25%.  Please check this link for other differential and gauge pressure sensors up to 115kPa.  With Best Regards, Jozef
查看全文