Multi Source Translation Content

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Multi Source Translation Content

Discussions

Sort by:
Facemesh Landmark 模型 ptq 转换中的性能下降 本仓库中使用的是 NXP 在 ptq 之后发布的 Google FaceMesh 模型: nxp-demo-experience-demos-list/downloads.json 位于 lf-6.12.3_1.0.0 · nxp-imx-support/nxp-demo-experience-demos-list 但该模型基于谷歌旧的 FaceMesh 模型,该模型有 468 个地标点。 现在我们想升级到谷歌新的 FaceMesh 模型,它有 478 个地标点。我们希望在 iMX 95 FRDM 板 NPU 上运行此程序。所以,我们想把它量化。我们使用的是NXP的eIQ-neutron-sdk-linux-3.1.3量化该模型。 经过量化之后,我们发现模型性能显著下降,几乎无法实际使用。 最初我们使用 MIN-MAX 选项对其进行量化。那个模型根本没法用。然后我们尝试使用百分位数选项,发现将百分位数设置为 95 时性能更好(即使这是回归器的输出)。 但这仍然无法带来理想的性能。 1)NXP为旧版FaceMesh(468)模型创建ptq文件时,使用了MIN-MAX选项吗?或者百分位数? 2)量化后性能急剧下降时,我们还需要检查其他方面吗? 3) 我们使用 CelebA 数据集进行性能分析,在 scripts 目录中使用 serialize_image.py 脚本并设置了模型特定选项。我们应该运行完整的媒体管道并创建校准数据集,还是应该修改 serialize 脚本? 提供的选项 serialize_image.py : -i //218 x 178 正面 RGB 图像 -o -f bin -t float32 -m 0到1 -s 256,256 -布局 NHWC -co RGB tflite-profiler: --input --dataset --输出 tflite-quantizer: --input --profile --quantize-inputs=false --quantize-outputs=false --quantization-calibration-method= //最小值、最大值或百分位数 Re: Performance degradation in Facemesh Landmark model ptq conversion 嗨@dhilshad , 感谢您联系恩智浦技术支持! 1)很遗憾,我们目前没有相关信息。 2)这种行为是预期的。量化只是部署过程的一部分;将模型转换为嵌入式硬件上执行并进行优化还涉及几个额外的步骤,例如图优化、运算符映射、硬件特定的转换和运行时验证。因此,即使模型已经量化,模型的行为和性能也可能发生变化。 对于新的设计和评估,我建议使用 eIQ Olive,因为它为 NXP i.MX 平台上的模型优化和部署提供了一个更现代化的框架。它包括更新的工作流程和对当前机器学习部署场景的改进支持。 更多信息请参考以下教程和文档: https://eiq.nxp.com/learning-hub/tools/olive/index.html 这些资源涵盖了在 i.MX 设备上部署机器学习模型的推荐工作流程和最佳实践。 此致, 查维拉 Re: Performance degradation in Facemesh Landmark model ptq conversion @Chavira你好,谢谢你的回复。并指出相关文档 在这里需要澄清的是,我们主要关注的是模型的准确性。对于 FaceMesh 模型,我们发现输出的特征点精度不足以满足我们的应用需求。正如我之前所说,我们发现保持 95 百分位截断值比 MIN MAX 截断值略好一些。但仍然无法与 NXP 的 ptq 模型(FaceMesh 468)的精度相提并论。 我们还有一点需要说明: 1)我们尝试只提供生产环境中的 8 个样本作为代表性数据集。这样略微改善了结果。然后我们添加了来自同一环境的 250 张图像,并进行了分析和量化。但这导致准确率下降。 你知道这种行为可能是什么原因造成的吗? 2)另外,NXP 是否已经将 Google 的新 FaceMesh 模型(具有 478 个地标)转换为 ptq 模型?
View full article
ICODE SLIはICODE SLIXに切り替えられません クライアントは私が提供したICODE SLIチップを使っていますが、このチップは終了しています。ICODE SLIXへの切り替えを試みていますが、クライアントのRFIDリーダーが認識できません。 Re: ICODE SLI can't be switch to ICODE SLIX こんにちは、 ICODE SLIXはISO15693レベルでICODE SLIと後方互換性を持つことを意図しているため、リーダーは少なくとも在庫管理時にSLIX UIDを検出すべきです。リーダーが認識できない場合は、まず故障がRFインベントリレベルにあるのか、アプリケーションのタグ識別ロジックにあるのかを確認してください。一般的な原因には、AFI/UIDフィルタリング、SLI製品認識のハードコード、古いリーダーファームウェア、または移行時のSLIX特有のセキュリティや機能の使用などがあります。最初のテストでは、AFIフィルタリングとタグホワイトリストを無効にし、標準ISO15693インベントリを実行し、UID/DSFID/AFIを読み取り、アプリケーションの受け入れロジックを旧SLIタグと比較します。 よろしくお願いします。 Re: ICODE SLI can't be switch to ICODE SLIX このスレッドを適切なコミュニティに移してください。これはColdfireや68kの部品ではありません。
View full article
dtb 是否会更改 LAW 配置(T2080RDB)? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好, 我使用的是 T2080RDB。我想更改 PCI 设备的内存位置。我已经更换了 dtb。但是,由于 LAW 寄存器没有被修改,因此它不起作用。 我想知道是否必须更改 uboot 和 dtb(两者)才能获得正常功能。 BR QorIQ T4 设备 Re: Does dtb change the LAW configuration (T2080RDB)? 关于 LAW 配置的变化,这是一个有趣的问题。在许多情况下,即使是微小的调整也会影响功能,因此最好还是通过可靠的资源进行交叉检查。我发现,查看结构化指南(如蜂巢规划器设置)确实有助于了解配置如何与不同的设置保持一致。此外,还强烈建议在受控环境中跟踪更新和测试更改。 Re: Does dtb change the LAW configuration (T2080RDB)? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 设备树仅反映由引导加载程序建立的本地地址映射。Linux 不会改变法律。 如果你想更改 LAW 设置,请在 U-启动 中的主板专用代码中进行更改,然后调整设备树 因此。 Re: Does dtb change the LAW configuration (T2080RDB)? 有趣的问题。据我观察,更新 DTB 通常会更改硬件描述和启动设置,而不是直接修改 LAW 配置,除非固件或板级支持包明确地将它们绑定在一起。我在查看Tarrant 属性详细信息时发现了一些有用的背景信息,这让我意识到验证配置更改的重要性,而不是想当然地认为它们是自动生效的。比较前后设置可能是确认 LAW 是否真正受到影响的最安全方法。 Re: Does dtb change the LAW configuration (T2080RDB)? T2080RDB 上采用 LAW 配置的 DTB 行为可能取决于所使用的具体设置和软件版本。查看配置文件和相关文档可能有助于确认参数的应用方式。有关组织化记录系统的更多参考资料,例如DeSoto Court Appeals等资源可以提供结构化数据访问的示例。检查日志并在受控环境中测试更改也有助于确定确切的影响。
View full article
ICODE SLI can't be switch to ICODE SLIX My client has been using the ICODE SLI chip I provided, but this chip has been EOL. We are trying to switch to the ICODE SLIX, but the client's RFID reader cannot recognize it. Re: ICODE SLI can't be switch to ICODE SLIX Hello, ICODE SLIX is intended to be backward compatible with ICODE SLI at the ISO15693 level, so the reader should at least detect the SLIX UID during inventory. If the reader cannot recognize it, please first check whether the failure is at RF inventory level or in the application’s tag-identification logic. Common causes are AFI/UID filtering, hardcoded SLI product recognition, old reader firmware, or use of SLIX-specific security/features during migration. For the first test, disable AFI filtering and tag whitelisting, perform a standard ISO15693 inventory, read UID/DSFID/AFI, then compare the application’s acceptance logic against the old SLI tag. Regards Re: ICODE SLI can't be switch to ICODE SLIX Please move this thread to the appropriate community. This isn't a Coldfire or 68k part.
View full article
Facemesh Landmarkモデルptq変換におけるパフォーマンス低下 このリポジトリでは、ptq後にNXPがリリースしたGoogleのFaceMeshモデルを使っていました: nxp-demo-experience-demos-list/downloads.json at lf-6.12.3_1.0.0 ·NXP-IMX-support/NXP-demo-experience-demos-list しかしこのモデルは、468のランドマークポイントを持つGoogleの旧FaceMeshモデルに基づいています。 次に、Googleの新しいFaceMeshモデルに移行したいと考えています。これには478のランドマークポイントがあります。これをiMX 95 FRDMボードのNPU上で実行したいと考えています。そこで、これを量子化したかったのです。NXPのeIQ-neutron-sdk-linux-3.1.3を使っていますこのモデルを量子化するために。 この量子化の後、モデルのパフォーマンスは著しく劣化し、実際に使うにはほとんど使えない状態です。 当初はMIN-MAXオプションを使用して量子化していました。そのモデルは使い物にならなかった。次に、パーセンタイルオプションを使用してみたところ、パーセンタイルを95に設定した方がパフォーマンスが向上することがわかりました(これは回帰モデルの出力でしたが)。 しかし、それでも十分な性能は得られていません 1) NXPが古いFaceMesh(468)モデルのptqファイルを作成した際、どのオプションを使っていましたか?MIN-MAX?それともパーセンタイル? 2) 量子化後にパフォーマンスが著しく低下した場合、他に確認すべき事項はありますか? 3) CelebAデータセットでプロファイリングを行い、スクリプトのserialize_image.pyをモデルオプションで使いました。メディアパイプ全体を実行してキャリブレーションデータセットを作成するか、シリアル化スクリプトで変更すべきか オプション提供 serialize_image.py: -i //218 x 178 前面向けRGB画像 -<パス/トゥ/calib_bins> -Fビン -T float32 -0to1 -256、256 -NHWCレイアウト -コRGB TFLITE-Profiler: --input --データセット --出力 TFLITE-クオンタイザ: --input --プロファイル --quantize-inputs=false --quantize-outputs=false --量子化-キャリブレーション-方法= //最小最大値またはパーセンタイル Re: Performance degradation in Facemesh Landmark model ptq conversion こんにちは@dhilshad。 NXPサポートにご連絡いただきありがとうございます! 1) 残念ながら、現時点ではその情報は入手できません。 2) この挙動は想定内です。クオンタイズは展開プロセスの一部に過ぎません。組み込みハードウェア上でモデルを変換・最適化するには、グラフ最適化、演算子マッピング、ハードウェア固有の変換、ランタイム検証など、いくつかの追加ステップが必要です。その結果、モデルがすでに量子化されていても、モデルの挙動や性能は異なることがあります。 新しいデザインや評価には、eIQ Oliveの使用をおすすめします。NXP i.MX プラットフォームでのモデル最適化と展開のためのよりモダンなフレームワークを提供するからです。ワークフローの更新と、現在の機械学習展開シナリオへのサポート強化が含まれています。 詳細については、以下のチュートリアルおよびドキュメントをご参照ください。 https://eiq.nxp.com/learning-hub/tools/olive/index.html これらのリソースは、i.MX デバイスに機械学習モデルを導入するための推奨ワークフローやベストプラクティスをカバーしています。 よろしくお願いします、 チャビラ Re: Performance degradation in Facemesh Landmark model ptq conversion こんにちは、 @Chavira さん。返信ありがとうございます。そして、ドキュメントを指摘しています ここで念のために言うと、主な関心はモデルの正確さです。FaceMeshモデルの場合、出力するランドマークポイントはアプリケーションに対して十分に正確でないことがわかります。先ほど申し上げたように、95パーセンタイルをカットオフ値として設定する方が、MIN MAXよりもわずかに良い結果が得られることが分かりました。しかし、それでもNXPのptqモデル(FaceMesh 468)で見られる精度には及びません。 もう一つ気づいた点があります。 1) 代表的なデータセットとして、本番環境から8つのサンプルだけを用意して試してみました。これは結果をわずかに改善させた。次に、同じ環境から250枚の画像を追加し、プロファイリングと量子化を行った。しかし、これによって精度が低下した。 なぜこのような行動が起こるのか、何か心当たりはありますか? 2) また、NXPはすでにGoogleの新しいFaceMeshモデル(478ランドマーク搭載)をPTQに変換していますか?
View full article
ICODE SLI 无法切换到 ICODE SLIX 我的客户一直在使用我提供的 ICODE SLI 芯片,但该芯片已经停产了。我们正在尝试切换到 ICODE SLIX,但客户的 RFID 阅读器无法识别它。 Re: ICODE SLI can't be switch to ICODE SLIX 你好, ICODE SLIX 旨在向后兼容 ISO15693 级别的 ICODE SLI,因此读卡器至少应该在盘点期间检测到 SLIX UID。如果读卡器无法识别,请先检查故障是出在射频存货层面还是出在应用程序的标签识别逻辑层面。常见原因包括 AFI/UID 过滤、硬编码的 SLI 产品识别、旧的读卡器固件,或者在迁移过程中使用 SLIX 特有的网络安全/功能。对于第一个测试,禁用 AFI 过滤和标签白名单,执行标准的 ISO15693 清单,读取 UID/DSFID/AFI,然后将应用程序的接受逻辑与旧的 SLI 标签进行比较。 此致 Re: ICODE SLI can't be switch to ICODE SLIX 请将此帖移至合适的社区。这不是Coldfire或68k零件。
View full article
Front and Rear Lights – Logic Control 1 Table of Contents • Introduction • Simulink Model Overview • Inputs • Algorithm • LED Output • Diagnostics • References • Conclusion 2 Introduction This article describes how the Front Lights System (FLS) and the Rear Lights System (RLS) applications work internally, by walking through the Simulink models and describing how signals travel from the CAN bus all the way to the LED strip on the evaluation board. The goal is to give a practical understanding of what each model does, from the moment a command is received up to the moment the corresponding lamp is turned on. Both nodes are described together because they share the same overall architecture, the same execution pattern, and almost the same set of subsystems. The differences between them are limited to the lighting functions that only make sense on one side of the vehicle (Daytime Running Lights on the front, Stop Lights on the rear) and to a few CAN identifiers. Presenting them side by side keeps the article shorter and highlights how the same design pattern is reused across projects. Earlier articles in this series introduced the boards, the toolchain, and the general project layout. This article focuses on the application logic. 3 Simulink Model Overview Each application is implemented as an individual Simulink model, one for the Front Node and one for the Rear Node, structured into communication, control, and output subsystems. From a model perspective, the application can be divided into four logical areas: CAN reception and unpacking Per-function logic control LED aggregation Diagnostics Figure 1 - Front Lights main Simulink application Figure 2 - Rear Lights main Simulink application The reception area receives CAN frames from the Central Controller and makes the extracted signals available to the rest of the model through shared Data Store Memory blocks. The control area contains one Stateflow chart per lighting function and decides which lamps should be on or off. The output area builds the color pattern from the lamp requests. This separation keeps the model modular and makes it easier to add new lighting functions without changing the reception or the actuation logic. 4 Inputs Each node receives information from three main categories of inputs. CAN Network Inputs CAN communication is the main source of information for both applications. All messages come from the Central Controller and are defined in the DBC file that ships with each project. On the Front Lights node the application consumes: Gear Mode - 4 bits Activate Headlights - 0 = OFF, 1 = LOW BEAM, 2 = HIGH BEAM Activate Fog Lights - 1-bit on/off command Turn Commands - packs the signals: Activate Hazard Lights Turn Left Turn Right On the Rear Lights node the set is almost the same, with Gear Mode replaced by Press Brake - an 8-bit signal that carries the brake pedal position. The other three messages are shared with the front node. Local Fault Input On top of the CAN traffic, each node reads a digital fault input through a DIO block. The value of this pin is stored in a shared Data Store ( FLS_Fault or RLS_Fault ) and is consumed by every logic-control chart. When the fault is asserted, the charts switch to a dedicated fault branch and the LEDs display a blink pattern to signal the condition visually. Configuration Inputs Before normal operation begins, each model runs an Initialize Function that sets up the peripherals used by the application. Figure 3 - Initialize Function This subsystem enables the CAN controller interrupts and moves the controller into the started mode. 5 Algorithm Internally, each node performs four main processing activities. Message Reception The first step consists of collecting the incoming CAN traffic. Reception is interrupt-driven: a Can_RxIndication handler is registered at the top level of the model and fires a function-call trigger every time a new frame arrives. The trigger runs the CAN Unpack subsystem exactly once and captures the frame identifier, the payload, and the length. Model Representation of Message Reception Inside the CAN Unpack subsystem there is one CAN Unpack block per DBC message. Each block decodes the incoming frame and extracts the signals declared in the DBC file. Figure 4 - Front Lights CAN reception subsystem Figure 5 - Rear Lights CAN reception subsystem Overall, the reception subsystem receives the CAN frames, decodes the payload into named signals, and places them into the shared Data Stores. Per-Function Logic Control Every lighting function is implemented as a dedicated Stateflow chart. All charts follow the same skeleton: an Idle state where the lamp is OFF, one or more active states covering the operating modes, and a small fault branch ( Fault_Detected and Fault_Detected_Off ) that toggles a per-function fault flag whenever the shared fault input is asserted. Head Lights Logic Control The head lights chart reads CCS_ActivateHeadLights and moves from Idle to Head_Lights_LowBeam when the command equals 1, and to Head_Lights_HighBeam when it equals 2. Direct crossovers between the two beams are allowed without going through Idle. When the fault input is asserted, the chart enters the fault branch and toggles Low_Beam and High_Beam to create a blink pattern. Figure 6 - Head Lights logic control chart Fog Lights Logic Control The fog lights chart moves from Idle to Fog_Lights_Active when CCS_ActivateFogLights is 1 and returns to Idle when the command drops back to 0. The fault branch is identical to the one used by the head lights chart. Figure 7 - Fog Lights logic control chart DRL Logic Control (Front only) The DRL chart only exists on the front node. It keeps the daytime running lights on whenever the vehicle is in a drive gear: Idle moves to DRL_Active when CCS_GearMode is between 1 and 4, and drops back to Idle when the gear returns to 0. Fault handling is identical to the other charts. Figure 8 - DRL logic control chart (Front Lights only) Stop Lights Logic Control (Rear only) The stop lights chart keeps the stop lights on as long as the brake pedal is pressed: Idle transitions to Brake_Active when CCS_PressBrake is different from 0, and returns to Idle when the pedal is released. The fault branch is identical to the other charts. Figure 9 - Stop Lights logic control chart (Rear Lights only) Turn Lights (Turn Signals and Hazards) The turn lights chart handles both the direction indicators and the hazard lights, and also generates the blinking pattern. It uses parallel states: an outer super-state selects between Idle, Turn_Left_Active, Turn_Right_Active and Hazard_Active, while inside each active super-state a pair of On and Off states swaps every 500 ms using after(0.5, sec) transitions. From Idle, the chart enters Turn_Left_Active when CCS_TurnLeft is asserted, Turn_Right_Active when CCS_TurnRight is asserted, and Hazard_Active when CCS_ActivateHazardLights is asserted. Direct crossovers between left and right are allowed. When the fault input is asserted, the chart moves into the fault branch. Figure 10 - Turn Lights logic control chart 6 LED Output The per-function charts do not drive the LED strip directly. They only produce simple lamp requests, and a central Stateflow chart is in charge of turning those requests into a color pattern that the LED strip can display. Each lighting mode has its own state inside this chart, and every state sets the colors that represent that mode on the strip. For example, the head lights use white, the fog lights light up a few dedicated pixels, and the turn signals move step by step across one side of the strip. The hazard mode reuses the same effect on both sides at the same time. On the front node the chart also includes a state for the daytime running lights, and on the rear node it includes a state for the stop lights. Once the color pattern is ready, it is passed to a Function-Call Subsystem that sends it to the physical LED strip. This subsystem takes care of the low-level details, so the rest of the model only deals with lighting behavior. Figure 11 - LED output chart 7 Diagnostics Alongside the normal lighting behavior, each node also reports its own health to the rest of the system. A local fault input is read at runtime and made available to every logic chart, so the lamps can switch to a fault indication whenever a problem is detected on the board. The same fault information is also sent back to the Central Controller over CAN, using a short dedicated message. This way, the rest of the vehicle can react to a lighting-node fault without having to check anything manually. In addition, the model exposes its internal signals to FreeMASTER, which allows the developer to observe the CAN commands, the lamp requests, and the fault flags live during development and troubleshooting. 8 References Front and Rear Lights - Overview Front and Rear Lights - SW & HW Environment Model-Based Design Toolbox (MBDT) Community Model-Based Design Toolbox (MBDT) - S32K3 - How To MATLAB® and Simulink® Documentation 9 Conclusion This article described the internal behavior of the Front Lights and Rear Lights nodes by looking at how information flows through the models. It explained how CAN commands are received, interpreted by dedicated Stateflow charts, and finally turned into the corresponding lighting behavior on the LED strip, while the local fault status is reported back to the Central Controller. Because both applications share the same architecture, they were presented together. The only real differences are the set of lighting functions specific to each side of the vehicle (DRL on the front, Stop Lights on the rear) and the identifiers used for the fault message. The next articles in the series will take a closer look at specific parts of these applications, such as the CAN communication, the LED driving, and the tools used to validate and troubleshoot the lighting behavior.
View full article
imx8mmini sai1 最大サンプルレート hi SAI1 Connectのコーデックはサンプルレート768kHz/32bitに対応しています。 SAI1-RX0 codec_DOUT接続。 768kHz/32bitおよびL/Rチャネルで読み取れるデータはありませんが、SAI1-TXFS/SAI1-TXCは768kHz/49.152Mhzを出力可能です。768khz/16bitおよび384khz/32bitのL/Rチャネル読み取りは問題ありません。カーネルバージョン6.1.36です。 ありがとうございます。 Re: imx8mmini sai1 max sample rates コーデックdtsについては以下の通りです。 「-f S32_LE -r 384000 -c 2 -d 1 test.wav」を指定して arecord コマンドを実行します。または「-f S16_LE -r 786000 -c 2 -d 1 test.wav」でも問題ありません。しかし、「-f S32_LE -r 768000 -c 2 -d 1 test.wav」で実行すると、test.wav は NULL になります。 Re: imx8mmini sai1 max sample rates こんにちは、 デバイスツリーの設定を教えていただけますか? どのコーデックを使用していますか? よろしくお願いいたします。 Re: imx8mmini sai1 max sample rates こんにちは、 サンプルレートに関連するエラーが出る場合、クロックソースがそのサンプルレートに必要な周波数を生成できないため、原因かもしれません。 特定のサンプリングレートを得るためには、外部クロックなどの専用のクロックソースを使用する必要がある場合があります。 よろしくお願いいたします。 Re: imx8mmini sai1 max sample rates こんにちは、 テスト中にアンダーフローエラーやオーバーフローエラーが発生しますか? よろしくお願いいたします。 Re: imx8mmini sai1 max sample rates 768kHzの32ビット×2チャンネルで読み取ると、SAI1_TXFS/SAI1_TXC出力は正常(768kHz/49.152MHz)です。コーデックのデータ出力ピン(SAI1_RX0に接続)は、オシロスコープで確認するとデータ出力があります。imx8mminiのSDMAが動作していない可能性はありますか? Re: imx8mmini sai1 max sample rates テスト中に以下のようなカーネル出力エラーが発生しました。 [ 506.336480] [858] wait_for_avail:1936: asoc-simple-card sound-pcmdev: キャプチャ書き込みエラー (DMA または IRQ の問題?) Re: imx8mmini sai1 max sample rates こんにちは、 dmesg の内容を共有してください。 dmesg | grep -i -E "xrun|overrun|dma|fifo|sdma|sai" そのエラーログではオーバーランが原因かもしれません。例えば、期間とバッファサイズを増やしてみてください。 arecord -D hw:0,0 -f S32_LE -r 768000 -c 2 --buffer-size=65536 --period-size=8192 -d 5 test.wav よろしくお願いいたします。 Re: imx8mmini sai1 max sample rates こんにちは、ホルヘカスさん: ご返信ありがとうございます。 期間とバッファサイズを増やした場合も同じエラーが発生します。 ------------------------------------ root@mx8mm:/tmp# arecord -v -D hw:0,0 -f S16_LE -r 768000 -c 2 -d 1 test.wav WAVEファイル「test.wav」を録音しています:署名付き16ビットリトルエンディアン、レート768000 Hz、ステレオ ハードウェアPCMカード0 'pcmdev-オーディオ' device 0 subdevice 0 その構成は以下の通りです: ストリーム:キャプチャ アクセス:RW_INTERLEAVED フォーマット:S16_LE サブフォーマット:STD チャネル数:2 レート:768000 正確なレート:768000(768000/1) MSBITS:16件 buffer_size:131064 period_size:16383 period_time:21332 tstamp_mode:なし tstamp_type:単調 period_step : 1 avail_min:16383 period_event : 0 start_threshold : 1 stop_threshold:131064 silence_threshold:0 silence_size : 0 境界:9222809086901354496 appl_ptr : 0 hw_ptr : 0 root@mx8mm:/tmp# test.wav -la -rw-r--r-- 1 ルート 7月22日 22:09 test.wav 3072044 root@mx8mm:/tmp# arecord -D hw:0,0 -f S32_LE -r 768000 -c 2 --buffer-size=65536 --period-size=8192 -d 5 test.wav WAVEファイル「test.wav」を録音しています:署名付き32ビットリトルエンディアン、レート768000 Hz、ステレオ arecord: pcm_read:2221: read error: input/output error root@mx8mm:/tmp# dmesg |grep -i -E "xrun|overrun|dma|fifo|sdma|sai" [ 0.00000] OF: 予約済みメモリ:初期化されたNode Linux、CMA、互換性ID Shared-DMA-プール [ 0.000000] 予約メモリ:0x00000000b8400000にDMAメモリプールを作成、サイズ1 MiBで [ 0.00000] OF: 予約済み メモリ: 初期化されたノードvdevbuffer@b8400000、互換性のあるid shared-dma-pool(共有済みDMA-プール) [0.000000] DMA [記憶0x0000000040000000-0x00000000bfffffff] [ 0.000000] DMA32 空 [ 0.000000] ポリシーゾーン:DMA [ 0.043871] DMA:原子力割り当て用に事前割り当てされた256 KiB GFP_KERNELプール [ 0.044176 DMA: 事前割り当て256 KiB GFP_KERNEL|GFP_DMA原子割り当てプール [ 0.044364] DMA: 事前割り当て256 KiB GFP_KERNEL|GFP_DMA32原子割り当てプール [ 0.105243] iommu: DMAドメインTLB無効化ポリシー:厳格モード [ 0.195002] IMX-SDMA 302C0000.DMA-コントローラー:imx/sdma/sdma-imx7d.binの直接ファームウェアロードがエラー-2で失敗しました [ 0.195018] IMX-SDMA 302C0000.DMA-コントローラー:sysfsへのフォールバック:imx/sdma/sdma-imx7d.bin [ 0.199761] MXS-DMA 3300000.DMA-コントローラー:初期化 [ 1.996379] mmc2: 30b60000.mmc 上のSDHCIコントローラ [30b60000.mmc]ADMAの使用 [ 2.786360] mmc1: 30b50000.mmc 上のSDHCIコントローラー [30b50000.mmc]ADMAの使用 [ 8.812860] IMX-SDMA 302C0000.DMA-コントローラー:ファームウェアが見つかりました。 [ 8.818748] IMX-SDMA 30BD0000.DMA-コントローラー:ファームウェアが見つかりました。 [ 8.825901] IMX-SDMA 30BD0000.DMA-コントローラ:ファームウェア4.6をロードしました [ 91.326700] [857] soc_hw_sanity_check:775: 30010000.sai-pcmdevice-codec:ASoC: pcmdevice-codec <-> 30010000.sai 情報: [ 91.326722] [857] soc_hw_sanity_check:777: 30010000.sai-pcmdevice-codec:ASoC: レートマスク 0x154c0 [ 91.326728] [857] soc_hw_sanity_check:778: 30010000.sai-pcmdevice-codec:ASoC: ch 最小2 最大8 [ 91.326734] [857] soc_hw_sanity_check:780: 30010000.sai-pcmdevice-codec:ASoC: レート最小 44100 最大 768000 [ 91.342776] [857] fsl_sai_set_bclk:460: fsl-sai 30010000.sai:クロック周波数49152000Hzに基づく周波数24576000Hzの比率2 [ 91.342784] [857] fsl_sai_set_bclk:481: fsl-sai 30010000.sai:最適な適合: 時計ID=1、div=2、偏差=0 [ 91.343315] [857] dapm_update_dai_unlocked:2698: fsl-sai 30010000.sai:30010000.saiキャプチャのDAIルートを更新します [ 113.965788] [861] soc_hw_sanity_check:775: 30010000.sai-pcmdevice-codec:ASoC: pcmdevice-codec <-> 30010000.sai 情報: [ 113.965809] [861] soc_hw_sanity_check:777: 30010000.sai-pcmdevice-codec:ASoC: レートマスク 0x154c0 [ 113.965816] [861] soc_hw_sanity_check:778: 30010000.sai-pcmdevice-codec:ASoC: ch 最小2 最大8 [ 113.965822] [861] soc_hw_sanity_check:780: 30010000.sai-pcmdevice-codec:ASoC: レート最小 44100 最大 768000 [ 113.977610] [861] fsl_sai_set_bclk:460: fsl-sai 30010000.sai:クロック周波数49152000Hzに基づく周波数49152000Hzの比率1 [ 113.977618] [861] fsl_sai_set_bclk:481: fsl-sai 30010000.sai:最適な適合: 時計ID=1、div=1、偏差=0 [ 113.978149] [861] dapm_update_dai_unlocked:2698: fsl-sai 30010000.sai:30010000.saiキャプチャのDAIルートを更新します [ 124.127055] [861] wait_for_avail:1936: asoc-simple-card sound-pcmdev: キャプチャ書き込みエラー (DMA または IRQ の問題?) root@mx8mm:/tmp# ls test.wav -la -rw-r--r-- 1 root root 44 7月 22 22:09 test.wav root@mx8mm:/tmp#
View full article
i.MX 9 准备好了吗? 几年前我开始了一个项目,当时 NXP 的 i.MX 9 系列 MPU 开始发布,但它们基本上无法获得,所以我选择了性能强大的 i.MX 8。现阶段,它的性能远远超过我的需求,我想换用性能小得多的微处理器。我原本打算买最小的 i.MX 8,但他们最小的 CPU 是 i.MX91。我一直在想,如果选择91型而不是更成熟的8型,会不会更好。散热是我最关心的问题,所以我认为新的总是更好,但我不知道它们是否已经“达到标准”,因为它们还比较新。更公平的比较,例如将港口升级到 8 级,也可能是一个激励因素。
View full article
About the Finite-State Machine (FSM) of i.MX8Mplus We use Toradex's Veridin i.MX8Mplus at our company. At that time, the SOM_PW_ON signal is input to control the SoM's power supply. (Directly connected to the ON/OFF signal of the i.mx8MPlusSoC). *Please refer to the waveform on the attached oscilloscope.   Due to the circuit configuration on the SoM side, the voltage should be High (1.8V), but for about 800 msec after startup, it remains at an intermediate potential of approximately 0.3-0.4V. I'd like to know how this voltage (0.3 to 0.4V) is handled as an ON/OFF signal on the SoC side. This information was not included in the datasheet or reference manual. I think that in cases of very short ON/OFF operations (<5s), the system may proceed to shutdown. Would the operation detection criteria be the transition from High to Low edge state and the duration of the Low state? I would also like to know the exact minimum/maximum times for those times. i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: i.MX8MplusのFinite-State Machine (FSM)について For i.MX8M Plus, ONOFF is handled as a level-held button input with configurable 0/50/100/500 ms qualification and 5/10/15 s forced-off timing, and your observed 0.3–0.4 V on a 1.8 V ONOFF net is most consistently interpreted as logic Low by the available input-threshold documentation. Re: i.MX8MplusのFinite-State Machine (FSM)について Thank you for your reply. The observed V values of 0.3–0.41.8V on the ONOFF network are most consistently interpreted as logically low by the available input threshold documentation. By the way, could you also tell me about the voltage threshold that is interpreted as logically low? Furthermore, if interpreted as logically low, the ON/OFF state will remain logically low for approximately 800 msec after startup before changing to logically high. In that case, would it be considered that a button input occurred? My concern is whether a button press might cause the system to automatically shut down immediately after startup. Re: i.MX8MplusのFinite-State Machine (FSM)について By the way, could you also tell me about the voltage threshold that is interpreted as logically low? I apologize. I would like to know the voltage threshold at which the logic value is interpreted. Re: i.MX8MplusのFinite-State Machine (FSM)について Thank you for your reply. The observed V values of 0.3–0.41.8V on the ONOFF network are most consistently interpreted as logically low by the available input threshold documentation. By the way, could you also tell me about the voltage threshold that is interpreted as the logical high? Furthermore, if interpreted as logically low, the ON/OFF state will remain logically low for approximately 800 msec after startup before changing to logically high. In that case, would it be considered that a button input occurred? My concern is whether a button press might cause the system to automatically shut down immediately after startup. To the NXP TechSupport representative What do you think about this matter? I have one more question: ON/OFF is processed as a level hold button input, with conditions of 0/50/100/500 ms. Regarding that point, I believe the default is 0. In this case, if the level momentarily exceeds the logical high or logical low threshold due to noise or other factors, will the level be held? I am concerned that with this default setting, if noise is received, there is a possibility of malfunction if something that causes a logic judgment opposite to the currently held level logic is introduced, even for a moment. Re: i.MX8MplusのFinite-State Machine (FSM)について @Rita_Wang I have added a few more questions. We apologize for the inconvenience, but please provide your response. Re: i.MX8MplusのFinite-State Machine (FSM)について @Rita_Wang How is the confirmation process going? Please provide an answer. Re: i.MX8MplusのFinite-State Machine (FSM)について Sorry to miss your message, I can help checking it and will give you reply next week. Wish you have a nice day Re: i.MX8MplusのFinite-State Machine (FSM)について @Rita_Wang Thank you for your assistance. This is Mori from Pal Giken. It's been almost a week now, how is the response going? Thank you for your cooperation.
View full article
关于 i.MX8Mplus 的有限状态机 (FSM) 我们公司使用的是 Toradex 的 Veridin i.MX8Mplus。 此时,输入 SOM_PW_ON 信号以控制 SoM 的电源。(直接连接到 i.mx8MPlusSoC 的 ON/OFF 信号)。*请参考所附示波器上的波形。   由于 SoM 侧的电路配置,电压应为高电压 (1.8V),但在启动后约 800 毫秒内,电压保持在约 0.3-0.4V 的中间电位。 我想知道 SoC 端是如何处理 0.3 至 0.4V 电压作为 ON/OFF 信号的。 该信息未包含在数据表或参考手册中。 我认为,在极短的开/关操作(<5秒)的情况下,系统可能会关机。操作检测标准是否应该是从高电平到低电平的转换以及低电平状态的持续时间? 我还想知道这些时间段的具体最短/最长时间。 i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: i.MX8MplusのFinite-State Machine (FSM)について 对于 i.MX8M Plus,ONOFF 被处理成一个按住按钮输入,可配置 0/50/100/500 毫秒的延迟和 5/10/15 秒的强制关机时间,并且观察到 0.3–0.4根据现有的输入阈值文档,1.8V ONOFF 网络上的 V 最常被解释为逻辑低电平。 Re: i.MX8MplusのFinite-State Machine (FSM)について 感谢你的回复。 根据现有的输入阈值文档,观察到的 ONOFF 网络上的 V 值在 0.3–0.41.8V 范围内最一致地被解释为逻辑上的低值。 顺便问一下,您能否也告诉我一下逻辑上被解释为低电压的阈值是多少? 此外,如果解释为逻辑低,则 ON/OFF 状态在启动后将保持逻辑低约 800 毫秒,然后变为逻辑高。 在这种情况下,是否可以认为发生了按钮输入? 我担心按下按钮是否会导致系统在启动后立即自动关机。 Re: i.MX8MplusのFinite-State Machine (FSM)について 顺便问一下,您能否也告诉我一下逻辑上被解释为低电压的阈值是多少? 抱歉。我想知道逻辑值被解读时的电压阈值。 Re: i.MX8MplusのFinite-State Machine (FSM)について 感谢你的回复。 根据现有的输入阈值文档,观察到的 ONOFF 网络上的 V 值在 0.3–0.41.8V 范围内最一致地被解释为逻辑上的低值。 顺便问一下,您能否也告诉我一下被解释为逻辑高电平的电压阈值是多少? 此外,如果解释为逻辑低,则 ON/OFF 状态在启动后将保持逻辑低约 800 毫秒,然后变为逻辑高。 在这种情况下,是否可以认为发生了按钮输入? 我担心按下按钮是否会导致系统在启动后立即自动关机。 致恩智浦技术支持代表 你对此事有何看法? 我还有一个问题: ON/OFF 被处理为电平保持按钮输入,条件为 0/50/100/500 毫秒。 关于这一点,我认为默认值是 0。在这种情况下,如果由于噪声或其他因素导致电平瞬间超过逻辑高电平或逻辑低电平阈值,电平是否会被保持? 我担心,在这种默认设置下,如果接收到噪声,即使只是一瞬间,如果引入了导致逻辑判断与当前保持的逻辑电平相反的因素,也可能导致故障。 Re: i.MX8MplusのFinite-State Machine (FSM)について @Rita_Wang 我又补充了一些问题。 给您带来的不便,我们深表歉意,请您尽快回复。 Re: i.MX8MplusのFinite-State Machine (FSM)について @Rita_Wang 确认流程进展如何? 请提供答案。 Re: i.MX8MplusのFinite-State Machine (FSM)について 很抱歉错过了您的消息,我可以帮忙查看,下周会回复您。 祝你今天过得愉快 Re: i.MX8MplusのFinite-State Machine (FSM)について @Rita_Wang 谢谢你的帮助。 这是Pal Giken的Mori。 已经过去快一周了,反响如何? 感谢您的合作。
View full article
i.MX 9は「もう完成形」と言えるのでしょうか? 数年前にプロジェクトを始めたのですが、NXPの i.MX 9シリーズMPUがリリースされ始めていましたが、ほとんど入手困難だったため、重い i.MX 8 にしました。現段階では、これは私の必要以上の性能なので、もっと小型のMPUに移行したいと考えています。最小の1 i.MX 8を買うつもりでしたが、i.MX91が彼らのCPUの中で最も小さいです。より成熟した8よりも91の方が良いのではないかと考えていました。サーマルが一番気になるので、新品の方が良いと思いますが、まだ新しいので「まだ成熟している」かはわかりません。8に移植されるのがより公平な動きも動機になるかもしれません。
View full article
imx8mmini sai1 最大采样率 hi sai1连接编解码器支持 768kHz/32bit 采样率。SAI1 -RX0 连接 codec_DOUT。 没有 768kHz/32bit 和 L/R 通道的数据可供读取。但SAI1-TXFS/SAI1-TXC 可以输出 768kHz/49.152MHz 的数据。读取 768kHz/16bit 和 384kHz/32bit 的 L/R 通道数据正常。内核版本 6.1.36。 谢谢。 Re: imx8mmini sai1 max sample rates 关于编解码器 DTS 的信息如下: 运行 arecord 命令,参数为“-f S32_LE -r 384000 -c 2 -d 1 test.wav”或者“-f S16_LE -r 786000 -c 2 -d 1 test.wav”也可以。但是运行“-f S32_LE -r 768000 -c 2 -d 1 test.wav”,test.wav 为 NULL。 Re: imx8mmini sai1 max sample rates 你好, 请问您能否分享一下您的设备树配置? 你使用的是哪种编解码器? 顺祝商祺! Re: imx8mmini sai1 max sample rates 你好, 如果出现与采样率相关的错误,可能是由于时钟源无法产生该采样率所需的频率造成的。 有时需要使用专用时钟源(例如外部时钟)来获得特定的采样率。 顺祝商祺! Re: imx8mmini sai1 max sample rates 当使用 768kHz 32bit x 2 通道读取时,SAI1_TXFS/SAI1_TXC 输出正常(768kHz/49.152MHz)。用示波器检查时,编解码器数据输出引脚(连接到 SAI1_RX0)有数据输出。imx8mmini sdma 是否有可能不工作? Re: imx8mmini sai1 max sample rates 你好, 测试过程中是否出现下溢或溢出错误? 顺祝商祺! Re: imx8mmini sai1 max sample rates 测试过程中出现如下内核打印错误: [ 506.336480] [858] wait_for_avail:1936: asoc-simple-card sound-pcmdev: 捕获写入错误(DMA 或 IRQ 问题?) Re: imx8mmini sai1 max sample rates 你好, 请分享您的 dmesg: dmesg | grep -i -E "xrun|overrun|dma|fifo|sdma|sai" 根据该错误日志,问题可能是由溢出引起的,请尝试增加周期和缓冲区大小,例如: arecord -D hw:0,0 -f S32_LE -r 768000 -c 2 --buffer-size=65536 --period-size=8192 -d 5 test.wav 顺祝商祺! Re: imx8mmini sai1 max sample rates 嗨JorgeCas : 谢谢你的回复。 增加周期和缓冲区大小时出现同样的错误。 ------------------------------------ root@mx8mm:/tmp# arecord -v -D hw:0,0 -f S16_LE -r 768000 -c 2 -d 1 test.wav 正在录制 WAVE 文件“test.wav”:有符号 16 位小端序,采样率 768000 Hz,立体声 硬件 PCM 卡 0 'pcmdev-audio' 设备 0 子设备 0 其结构如下: 流:捕获 访问权限:读写交错 格式:S16_LE 子格式:STD 通道数:2 利率:768000 准确汇率:768000 (768000/1) 毫秒比特:16 缓冲区大小:131064 period_size:16383 period_time:21332 tstamp_mode:无 tstamp_type:单调 period_step:1 可用最小值:16383 period_event:0 起始阈值:1 停止阈值:131064 沉默阈值:0 静音大小:0 边界:9222809086901354496 appl_ptr:0 hw_ptr:0 root@mx8mm:/tmp# ls test.wav -la -rw-r--r-- 1 root root 3072044 7月 22 22:09 test.wav root@mx8mm:/tmp# arecord -D hw:0,0 -f S32_LE -r 768000 -c 2 --buffer-size=65536 --period-size=8192 -d 5 test.wav 正在录制 WAVE 文件“test.wav”:有符号 32 位小端序,采样率 768000 Hz,立体声 arecord: pcm_read:2221: 读取错误: 输入/输出错误 root@mx8mm:/tmp# dmesg | grep -i -E "xrun|overrun|dma|fifo|sdma|sai" [ 0.000000] OF: 保留内存: 已初始化节点 linux,cma, 兼容 ID shared-dma-pool [ 0.000000] 保留内存:在 0x00000000b8400000 创建了大小为 1 MiB 的 DMA 内存池 [ 0.000000] OF:保留内存:已初始化节点 vdevbuffer@b8400000,兼容 ID shared-dma-pool [ 0.000000] DMA [内存 0x0000000040000000-0x00000000bfffffff] [ 0.000000] DMA32 为空 [ 0.000000] 政策区域:DMA [ 0.043871] DMA:已预分配 256 KiB GFP_KERNEL 池用于原子分配 [ 0.044176] DMA:已为原子分配预分配 256 KiB GFP_KERNEL|GFP_DMA 池 [ 0.044364] DMA:已为原子分配预分配 256 KiB GFP_KERNEL|GFP_DMA32 池 [ 0.105243] iommu:DMA 域 TLB 失效策略:严格模式 [ 0.195002] imx-sdma 302c0000.dma-controller:直接加载 imx/sdma/sdma-imx7d.bin 固件失败,错误代码 -2 [ 0.195018] imx-sdma 302c0000.dma-controller:回退到 sysfs 备选方案:imx/sdma/sdma-imx7d.bin [ 0.199761] mxs-dma 33000000.dma-controller:已初始化 [ 1.996379] mmc2:30b60000.mmc 上的 SDHCI 控制器 [30b60000.mmc]使用ADMA [ 2.786360] mmc1:30b50000.mmc 上的 SDHCI 控制器 [30b50000.mmc]使用ADMA [ 8.812860] imx-sdma 302c0000.dma-controller:已找到固件。 [ 8.818748] imx-sdma 30bd0000.dma-controller:已找到固件。 [ 8.825901] imx-sdma 30bd0000.dma-controller:已加载固件 4.6 [ 91.326700] [857] soc_hw_sanity_check:775: 30010000.sai-pcmdevice-codec:ASoC:pcmdevice-codec <-> 30010000.sai 信息: [ 91.326722] [857] soc_hw_sanity_check:777: 30010000.sai-pcmdevice-codec:ASoC:速率掩码 0x154c0 [ 91.326728] [857] soc_hw_sanity_check:778: 30010000.sai-pcmdevice-codec:ASoC:通道数最少 2 个,最多 8 个 [ 91.326734] [857] soc_hw_sanity_check:780: 30010000.sai-pcmdevice-codec:ASoC:速率最小值 44100 最大值 768000 [91.342776][857]fsl_sai_set_bclk:460:fsl-sai 30010000.sai:基于时钟频率 49152000Hz,频率为 24576000Hz 的比例为 2 [91.342784][857]fsl_sai_set_bclk:481:fsl-sai 30010000.sai:最佳拟合:时钟 id=1,div=2,偏差=0 [ 91.343315] [857] dapm_update_dai_unlocked:2698: fsl-sai 30010000.sai:更新 30010000.sai 捕获的 DAI 路由 [ 113.965788] [861] soc_hw_sanity_check:775: 30010000.sai-pcmdevice-codec:ASoC:pcmdevice-codec <-> 30010000.sai 信息: [ 113.965809] [861] soc_hw_sanity_check:777: 30010000.sai-pcmdevice-codec:ASoC:速率掩码 0x154c0 [ 113.965816] [861] soc_hw_sanity_check:778: 30010000.sai-pcmdevice-codec:ASoC:通道数最少 2 个,最多 8 个 [ 113.965822] [861] soc_hw_sanity_check:780: 30010000.sai-pcmdevice-codec:ASoC:速率最小值 44100 最大值 768000 [113.977610][861]fsl_sai_set_bclk:460:fsl-sai 30010000.sai:基于时钟 49152000Hz,频率为 49152000Hz 的比例为 1 [113.977618][861]fsl_sai_set_bclk:481:fsl-sai 30010000.sai:最佳拟合:时钟 id=1,div=1,偏差=0 [ 113.978149] [861] dapm_update_dai_unlocked:2698: fsl-sai 30010000.sai:更新 30010000.sai 捕获的 DAI 路由 [ 124.127055] [861] wait_for_avail:1936: asoc-simple-card sound-pcmdev: 捕获写入错误(DMA 或 IRQ 问题?) root@mx8mm:/tmp# ls test.wav -la -rw-r--r-- 1 root root 44 7月 22 22:09 test.wav root@mx8mm:/tmp#
View full article
SAF85xx HSEアップデート SMR こんにちは、NXPさん。 コードの内容変更 により署名バイトのみが変更され 、コードサイズ、開始アドレス、キー、署名へのポインタなどが変更されていない場合でも、SMRを更新する必要がありますか? Re: SAF85xx HSE Update SMR こんにちは、 SMR(セキュアメモリ領域)エントリには、HSEがアプリケーションイメージを検証するために使用するメタデータが含まれています。たとえ: サイズは変わりません 開始アドレスは変わりません キーハンドルは変更なし 署名ポインターは変更されません …コードの内容に変更を加えると署名が変わり、HSEは新しい署名を検証する必要がある。 このため、署名を保持するSMRエントリを更新された署名バイトで書き換える必要があります。 SMRエントリは認証済みブートチェーンの一部です。HSEは、対応するSMRエントリに新しい署名が反映されていない限り、更新されたバイナリを検証できません。 参考情報:AptivにはNXPの専属FAEがおりますので、詳細についてはお気軽にお問い合わせください。 よろしくお願いいたします。 ピーター Re: SAF85xx HSE Update SMR ご回答ありがとうございます。 Re: SAF85xx HSE Update SMR こんにちは、 もし私が新しいアプリケーション+新しい署名(新しいアプリケーションと地図)をフラッシュした場合はどうでしょうか。「コードサイズ、開始アドレス、キー、署名へのポインタ」が変更されない場合、SMRを再インストールする必要がありますか?
View full article
i.MX RT1050 下载算法 我现在开发环境是MCUXPRESSO IDE ,用的是i.MX RT1050 。我了解到因为i.MX RT1050 没有内部flash,所以在使用外部flash时需要下载算法。但是这个下载算法又和自己选用的flash有关。官方有没有说明怎么样得到自己想要的下载算法可以快速用起来? Re: i.MX RT1050 下载算法 Hi SDFDSFSF , 建议您按照以下顺序做: 1. 在工程属性里选择外部Flash下载算法,NXP提供了一些主流Flash下载算法。 您可以右键工程->Properties->MCU settings->Memory details选择NXP支持的flash驱动: MCUXpresso的flash驱动通常放在nxp\LinkServer_xx.x.xx\binaries\Flash下面,以.cfx为扩展名。 2. 如果选择的Flash支持SFDP,优先尝试SFDP driver 在MCUXpresso中可以选择类似MIMXRT1050_SFDP_QSPI.cfx这样的Driver。这类 SFDP driver 的意义是通过 flash 自描述参数减少对具体料号专用算法的依赖。 3. 使用模板自己做 请参考应用手册 https://www.nxp.com/docs/en/application-note/AN13386.pdf 生成客户自定义cfx文件。修改时关键参数要来自外部flash datasheet和SDK里的flexspi_nor_polling demo的测试结果。 除了下载算法,还需要XIP/Boot Header配置,请参考Solved: Flash interface initialization - NXP Community  以上是基本的方法。您可以告诉更具体的情况,比如您使用的是什么型号的Flash,您现在进行到哪一步遇到什么具体的困难,这样能更好的帮助到您。 Best Regards, Shelly Zhang i.MX RT1050 下载算法 我用的是JLINK,在MCUXpresso中选择的是MIMXRT1050_SFDP_QSPI.cfx。下载失败 Re: i.MX RT1050 下载算法 怎么样自己做一个JLINK在MCUXpresso ide里面用的 imxrt1052的现在算法? 我的flash是WINBOD 25Q256JVEQ. 我现在的MCUXpresso ide版本是MCUXpresso IDE v25.6。SDK_EVBK是26.06.00。我不知道用哪个例程可以修改生成自己想要的下载算法。 Re: i.MX RT1050 下载算法 Dear @SDFDSFSF , 参考示例在nxp/LinkServer目录下,工程名为iMXRT1050_QSPI: 如果你的引脚跟评估板不一样,需要修改引脚配置。Flash的配置也需要根据datasheet修改。 请确认以下事项: 1. Flash硬件引脚是否配置正确。必须根据RT1050硬件开发手册配置FlexSPI引脚: 只能选择A组或B组,FlexSPI_DQS需要悬空。 2. 在SDK中导入evkbimxrt1050_flexspi_nor_polling_transfer的example,根据flash的datasheet修改flash的配置。(这步可以省略,这步只是为了验证flash的配置是否正确) 3. 将正确的flash配置修改到工程iMXRT1050_QSPI。这步请参考 https://www.nxp.com/docs/en/application-note/AN13386.pdf Best Regards, Shelly Zhang Re: i.MX RT1050 下载算法 可能是您的硬件引脚配置跟评估板有差异,建议您修改iMXRT1050_QSPI工程自己生成cfx文件。 Re: i.MX RT1050 下载算法 我再MCUXpresso IDE下面用JLINK 有关系吗?我看到有的说在是MCXPpresso IDE算法仅能在CMSIS-DAP类型仿真器下使用?
View full article
S32K148EVB-Q176 收到的却是 UJA1131 而不是 UJA1132 您好, 我最近购买了一块S32K148EVB-Q176板。根据文档和原理图,我原本以为它会配备 UJA1132,但我收到的板子却是 UJA1131。 正因如此,我只有一个 LIN 接口,而我原本期望的是 UJA1132 的功能。 我只是想问一下这是否正常。S32K148EVB-Q176 是否有不同版本,配备不同的 SBC,还是我收到了错误的板? 谢谢! Re: S32K148EVB-Q176 received with UJA1131 instead of UJA1132 你好@sousou54 , 感谢您提交的报告。目前该问题正在调查中。 请您提供产品包装盒上白色大标签的照片?标签上的信息可以帮助我们识别板的制造细节。 由于标签可能包含产品特定信息,您可以私信分享照片,或者通过开通支持案例(支持)来分享照片,而不是公开发布。 此致, 朱利安 Re: S32K148EVB-Q176 received with UJA1131 instead of UJA1132 你好@sousou54 , 特此通知,我已收到您的照片,并已转发给相关团队。 我正在等待回复。感谢您的理解与合作。 此致, 朱利安 Re: S32K148EVB-Q176 received with UJA1131 instead of UJA1132 嗨@sousou54 , 有关此事的更多信息,请联系您的 NXP 代表或您购买此套件的代理商。他们应该能够提供帮助。 此致, 朱利安
View full article
通过禁用 i.MX95 上的 CPU/GPU/VPU 来降低功耗 您好,NXP, 我们正在寻找降低基于 i.MX95 的系统整体功耗的方法。 请问您能否帮忙解答以下问题? 是否可以在不需要时完全关闭单个 CPU 核心的电源? 如果我们的应用程序不使用 GPU 和 VPU,是否可以完全关闭它们? 如果不需要使用 CPU/GPU/VPU,是否可以在启动后默认禁用它们以进一步降低功耗?(通过设备树?) 是否有推荐的软件配置或参考文档可以实现最低的功耗? 我们的电路板支持包 基于 Yocto 5.2 / Linux 6.12.x。 谢谢。 顺祝商祺! 肖恩 Linux Re: Reducing Power Consumption by Disabling CPU/GPU/VPU on i.MX95 关于您的问题: 是否可以在不需要时完全关闭单个 CPU 核心的电源? A:是的,可以。 如果我们的应用程序不使用 GPU 和 VPU,是否可以完全关闭它们? A:是的,如果不用它们的话。 如果不需要使用 CPU/GPU/VPU,是否可以在启动后默认禁用它们以进一步降低功耗?(通过设备树?) 答:是的,对于 GPU/VPU 类平台设备,通常的做法是将相关的设备树节点状态设置为“禁用”;这样 Linux 就不会注册/探测该设备。 是否有推荐的软件配置或参考文档可以实现最低的功耗? A:我们有 AN14449 — i.MX 95 功耗测量:测量低功耗用例、BCU 程序、DSM、Linux 挂起和 BBSM 的主要参考。 如有任何疑问,请随时联系我们。 祝你今天过得愉快
View full article
S32K344 QSPI Initializes SCLK不按我们希望出来 我用S32K344 LQFP176 做一个访问QSPI外设的产品,我们期望把QSPI做成和LSPI类似的应用,不是用QSPI访问FLASH,而是普通的设备。 我已经配置了时钟树QSPI_SFCK为20MHz,也将相关FLASH的寄存器关掉了,使用了LUT表,调试过程中也看到LUT执行了,但是QSPI的SCLK没有产生,SD0-SD3上面有超高速的波形出来。可以帮我看看怎么使用这个QSPI访问非FLASH设备吗? Re: S32K344 QSPI Initializes SCLK不按我们希望出来 S32K344 QuadSPI 模块主要用作串行闪存接口,而不是用作任意 QSPI 外设的通用 LSPI 类接口。QSPI_SFCK 时钟配置仅为 QuadSPI 模块提供时钟源;它不会自动生成外部 SCLK。外部 SCKFA 信号仅作为闪存导向的 LUT/IP 命令引擎执行的有效 QuadSPI 命令序列的一部分而生成。因此,如果连接的设备不遵循类似闪存的命令/地址/数据协议,或者 LUT 序列/引脚配置与此类事务不匹配,则该行为可能不适合此应用。对于通用外部设备,如果所需的协议可以在该设备中实现,则应使用 LSPI。如果必须使用 QuadSPI,则外部设备协议需要与 QuadSPI 闪存式事务模型兼容,并且需要相应地检查 LUT 序列、引脚复用、片选、命令/地址/数据阶段和 IP 命令触发。
View full article
NXPS32K358: ブートローダーがアプリケーションにジャンプした後にFreeRTOSタスクが実行されない サンプルアプリケーションプロジェクトを作成し、それをブートローダーとして使用しています。実際のアプリケーションプロジェクトは同一で、唯一の違いはフラッシュスタートのアドレスだけです。 ブートローダーは無事にアプリケーションにジャンプし、アプリケーションは実行を開始します。しかし、アプリケーション内ではxTaskCreate()関数は実行されません。 ブートローダーからFreeRTOSベースのアプリケーションにジャンプする際に、追加の設定が必要ですか?例えば、FreeRTOSタスクを作成・実行する前に、起動、割り込み、ベクターテーブル、スタックポインタ、スケジューラ関連の設定などを行う必要がありますか? 私はそのことを紹介しました コミュニティからの統一ブートローダーデモ チケット。解決策は得られませんでした。問題はFreeRTOSを含めたときだけで、RTOSなしでアプリケーションは問題なく動作することです。  S32K344では動作しますが、NXPS32K358では動作しません。 追加情報が必要な場合はお知らせください。 Re: NXPS32K358: FreeRTOS Tasks Not Running After Bootloader Jumps to Application 私たちのプロジェクトで使用されているブートローダーからアプリケーションへのジャンプコード: void Boot_JumpToApp(uint32 i_AppAddr) { uint32_t appStack; uint32_t 関数; uint8 i;   DisableAllInterrupts();   S32_SysTick->CSRr = 0; S32_SysTick->RVR = 0; S32_SysTick->CVR = 0;   for(i = 0; i < 10; i++)     { S32_NVIC->ICER[i] = 0xFFFFFFFFU; S32_NVIC->ICPR[i] = 0xFFFFFFFFU;    } appStack = *(volatile uint32_t *)0x00442000; __set_MSP(appStack); S32_SCB->VTOR = 0x00442000; func = *(uint32_t volatile *)(((uint32_t)0x00442004)); (* (void (*) (void)) func)(); } Re: NXPS32K358: FreeRTOS Tasks Not Running After Bootloader Jumps to Application こんにちは、 @Indhumathi さん。 根本原因を絞り込むために、以下の割り込みハンドラが実際に実行されているか確認していただけますか? SVCハンドラ(vPortSVCHandler)—最初のFreeRTOSタスクを開始する役割を担う PendSVハンドラー(vPortPendSVHandler)—タスク間のコンテキスト切り替えを担当 SysTick ハンドラ (vPortSysTickHandler / xPortSysTickHandler) — FreeRTOS のティック処理を担当 最も簡単な確認方法は、アプリケーション内の各ハンドラのエントリにブレークポイントやGPIOトグルを配置することです。 ありがとうございました。 よろしくお願いいたします。 ダニエル
View full article
S32K148 FlexCAN 仅输出 SOF 脉冲,然后进入总线关闭状态 我用S32DS开发了这个程序。当尝试发送 CAN 帧时,TX 引脚上只会输出一个短的低电平脉冲,后续的 ID 和数据位会被截断,因此无法发送完整的帧。USB-CAN 分析仪未收到任何数据,FlexCAN 控制器直接进入总线关闭状态。 我已经检查了时钟配置和寄存器值,并测试了不同的 CAN 通道,但问题仍然没有解决。我想找出哪个配置参数设置错误。感谢您的帮助。 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 嗨,朱利安, 感谢你的回复。我想更正并补充我之前匆忙写成的消息中的一些重要细节。 主板:这是第三方主板(不是 NXP EVB),型号为 S32K148_REV2_Q144。值得注意的是:我发现卖家提供的原理图存在错误(标注的收发器位置与实际 PCB 丝印不符),因此该电路板的参考设计文档可能并不完全可靠。 官方 CAN 示例:我尝试构建 Can_example_S32K148,但遇到了与 CAN 本身无关的环境问题(缺少工具链/包含路径,最终 Port_Ci_Port_Ip.h 和 Port_Ci_Port_Ip_Cfg.h 之间出现版本不匹配错误——“不同的供应商 ID”/“AutoSar 版本号不同”)。这看起来像是 RTD 包版本与我的项目不匹配,而不是 IDE 版本问题。我会尝试解决这个问题,但我认为这与硬件问题的核心无关。 新证据(来自您已审阅过的我自己的项目):自从我上次留言以来,我使用逻辑分析仪进行了更深入的验证: MB8 内容 100% 正确— 直接从 CDD_CanTransmit() 之后的寄存器读取:CS=0x0C080000 (CODE=0xC 待定,DLC=8),ID=0x00400304 (>>18 = 0x10,与配置匹配),DATA=0x01020304/0x05060708 (与我的 8 字节有效载荷完全匹配)。 引脚上的 TX 信号也正确——同时探测 PTE5 和收发器的 TXD 输入(200MHz 逻辑分析仪),两个波形相同,证实 PCB 走线良好。 但传输在大约 8-9 位转换后中止(大致为 SOF + 几个仲裁位),控制器随后进入总线关闭状态(ESR1 确认 FLTCONF=11,TXERRCNT 每次尝试递增)。 即使正确连接了 USB-CAN 分析仪并启用了 120Ω 终端(总线未浮空), CANH/CANL 也显示为零活动。作为对照测试,我在另一块已知可正常工作的 STM32 板上运行了相同的设置(浮空与终端),终端后 CANH 显示出了正确的转换。在我的 S32K148 板上,在相同的端接条件下,CANH/CANL 保持完全平坦。 在 CAN1 上也出现了同样的结果(不同的引脚/收发器)。 由于 MCU 端的 TXD 信号在收发器输入端之前均已确认正常,但即使正确端接,CANH/CANL 信号也始终没有响应,因此我怀疑是收发器输出级(或两个通道共用的某个部分,例如……)出现了问题。电源瞬态行为——我只能用逻辑分析仪检查,无法用示波器检查。 问题: “TXD 在收发器输入端正确,但 CANH/CANL 在正确端接下完全平坦”是否更强烈地表明收发器硬件故障,还是存在其他常见的板级问题(使能/待机电路、电源去耦)也可能导致这种症状? 当总线上没有实际活动时,FlexCAN 是否应该在发送完前几个仲裁位后中止(而不是完成整个帧并在 ACK 时失败)?我想确认一下我对位监控机制的理解是否正确。 对于示例项目中的 RTD 版本不匹配问题——是否有办法检查哪个 RTD 版本与给定的 S32 配置工具版本匹配,以便我可以获取匹配的示例包? 再次感谢您的帮助。 此致敬礼,艾普丽尔 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 嗨,朱利安, 我非常惊讶,也很感谢您回复我的问题。   我使用的是自己设计的硬件板;只有电源电路与官方 EVB 原理图不同,而其余电路与参考设计一致。 我测试了官方的 CAN 示例项目。我只配置了 CAN0 引脚,而没有启用和配置 MCAL 层中的 PORT 模块,但项目一直编译失败。   具体的编译错误是: “f ../board/Port_Ci_Port_Ip_Cfg.h:47:10: 致命错误: Port_Ci_Port_Ip_Types.h: 没有该文件或目录”。   我的自定义项目文件中已有此头文件,但是导入此官方示例项目后,代码生成过程中并未自动生成此头文件。 缺少头文件错误是否可能是由于 IDE 软件版本不匹配造成的?目前我正在使用S32DS 为 S32 平台进行开发,现在我正在下载S32DS for ARM 2.2.2来切换开发环境。 期待您的指导。   顺祝商祺!   四月 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 你好@April , 从你的项目来看,配置和流程似乎都是正确的。请问您使用的是恩智浦半导体的S32K148EVB芯片,还是您自己设计的芯片? 您是否尝试过测试 RTD 中包含的 Can_example_S32K148 项目?您可以简单地添加 CAN0 引脚并禁用环回模式以启用 Tx/Rx 并测试该程序。 最后,您是否确认两个节点(S32K148 和 CAN 分析仪)都设置为相同的位时序和协议配置(CAN 与 CAN FD)?您可以使用以下工具来计算值: MPC5xxx/S32Kxx/LPCxxxx:CAN / CAN FD 位定时计算。 如果您使用的是自定义设计,您可以参考S32K148 EVB 的原理图和S32K1xx 硬件设计指南,了解 CAN 接口设计和建议。 此致, 朱利安 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 你好@April , 1. 是的,这表明是收发器故障,而不是模块配置问题。能否确认一下您的定制设计中使用的是哪种收发器? 我建议检查 STB、EN、S、RS、WAKE、INH 或类似引脚与实际安装的收发器是否匹配。 S32K148 EVB 使用UJA1132HW ,但是,如果您使用的是TJA1043之类的芯片,则必须将其配置为正常模式( STB_N = 高EN = 高)。 2. 是的,如果收发器实际上没有驱动总线,那么在几个仲裁位之后提前中止是合理的。 3. 通常情况下,“不同的供应商 ID”/“AutoSAR 版本号不同”错误会在导入项目并尝试使用不同的 RTD / S32 配置工具版本更新配置时出现;但是,如果您只是从“文件 -> 新建 -> 从示例创建 S32DS 项目”导入示例,则应该不会有任何兼容性问题: 从您分享的项目来看,您使用的是 S32K1 RTD 3.0.0。然而,当我导入 QLP04 项目时,从属性中可以看到配置的是 GCC 11.4: 根据 RTD 版本说明,3.0.0QLP04 仅支持 NXP GCC 10.2: 我不确定你是如何导入和编译这个项目的,但请确保你至少安装了 S32DS 3.6.4 版本。仅安装了一个RTD软件包。S32DS不支持同时安装多个RTD版本。 此致, 朱利安 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 你好@April , 感谢您提供的补充信息。 1. 关于 TJA1051,确实该收发器只有 S 引脚用于配置正常模式,但是,请检查您是否使用的是TJA1051T/E衍生型号,因为该型号有一个额外的 EN 引脚,您必须将其拉高: 2. “找不到文件”错误很可能是由于端口配置错误,从而导致工具生成了错误的代码。您在端口容器中遇到的错误是由于“引脚”功能组名称应该以“端口容器名称”+“外围设备功能组名称”的形式命名造成的,在您的情况下应该是“ PortContainer_0_VS_0 ”。 在申请RMA之前,能否请您测试一下我附上的项目?这是 MCAL 中的一个简单的测试代码,它使 Rx 以中断模式运行,Tx 以轮询模式运行。成功回波 10 帧后,绿色 LED 指示灯会切换状态。 我使用 PCAN-USB 分析仪,通过 J11 CAN 接头对该程序进行了测试,设置如下: 我可以看到帧已成功回放,并且绿色 LED 指示灯每 10 帧切换一次: 由于我使用的是 S32K148-EVB,因此不需要启用收发器,但是,在您的设置中,请检查TJA1051 是否已正确启用(以及是否还需要启用 EN 引脚)。 此致, 朱利安 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 嗨,朱利安, 再次感谢您的耐心等待——自从我上次发消息以来,又有一些更新。 收发器检查:我仔细查看后确认它是TJA1051 ,而不是 UJA1132 系列 SBC。这个只有一个使能引脚(S 引脚),在我的板上硬连接到地(= 正常模式),所以你提到的多引脚 STB_N/EN 逻辑在这里并不适用——控制电路的这一部分看起来已经是正确的了。 与第二个独立项目进行交叉验证:我为该板(从经销商处购买)构建并运行了一个完全不同的 CAN 演示,使用了较旧的 Processor Expert/S32 SDK 堆栈 — can_pal — 而不是 RTD/AUTOSAR。按下按钮后,CAN_Send() 函数被正确调用,但我注意到返回值始终为 STATUS_BUSY (0x002),这意味着之前的传输实际上从未完成。就像我的 RTD 项目一样,USB-CAN 分析仪在所有三个通道上都没有接收到任何信号。现在我有两个完全独立的驱动程序堆栈,它们都给出了相同的结果,这让我相当确信这不是我这边的软件/配置问题。 关于官方示例项目:我按照您的建议将 GCC 版本切换回 10.2,但在构建过程中仍然遇到同样的“文件未找到”错误。我进一步研究了一下,现在怀疑这可能与端口模块(MCAL 层)未完全配置有关——似乎存在一个与端口模块和引脚工具的功能组链接方式相关的验证错误,但我无论尝试什么都无法正确配置它。 它们就是一个例子: 这是我之前自己搭建的项目的一部分: 鉴于目前的情况——控制引脚接线看起来正确,引脚上的 TXD 也已确认正确,并且两个独立的软件堆栈在所有三个通道上都显示出一致的“无总线活动”/传输卡顿行为——您认为这是否足以将其视为硬件故障并进行 RMA,或者还有其他值得先检查的地方吗? 再次感谢你在这件事上提供的帮助。 此致敬礼,艾普丽尔 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 你好@April , 我很高兴现在一切都按预期运行了! 请问之前的错误原因是什么?是简单的硬件连接问题吗? 祝你今天也过得愉快! 此致, 朱利安 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 你好,朱利安, 我迫不及待地想告诉你,现在一切都完美运行了!我非常激动地与大家分享这个好消息。我已经订购了全新的MCU板和CAN收发器进行重新测试,这次通信运行完美无瑕。原来我之前遇到的持续 BusOff 错误完全是硬件故障。 我还加载了您附加的测试项目,它也运行良好。你的示例代码可以像你描述的那样流畅地发送和接收 CAN 帧。 我非常感谢您这些天来给予我的所有耐心指导。我完全被这个问题难住了,独自一人根本无法解决这个问题,是你的详细回复帮我摆脱了困境。 祝您身体健康,工作顺利,天天幸福! 此致, 四月 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 你好@Julián_AragónM , 哈哈,不是线路问题。原有的 TJA1051 收发器模块存在缺陷,导致了 BusOff 问题。 再次非常感谢您的帮助!^_^ 此致, 四月
View full article