Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
MIMRT700ボード上の大規模なデータセットでNPU tfliteモデルを評価するにはどうすればいいですか? 私の質問はタイトルの通りです。 私はtfliteモデルを使っていますが、NPUのTfliteモデルに変換しました。tfliteモデルとNPUのTfliteモデルの予測が場合によっては異なることを確認しました(大きな違いはありません)。そこで、大規模なデータセットに対して評価NPU tfliteモデルを実行したいと考えています。 現在はサンプルtflm_cifar10_cm33_core0 に従って推論NPU tfliteモデルをMIMRT700で実行しており、うまく動作しています。しかし、このサンプルでは、静止画像用にimage_data.hを修正しました(カメラは使用していません)。このサンプルを新しいCASE「大規模データセットで評価NPUのtfliteモデルを実行する」用に修正したいです。 私はSDカードを使用して画像を保存し、推論時にimage_data.hとして読み込む予定です。でも、どこから始めればいいのか分かりません MIMRT700にはデバッグ、eUSB、USB-OTGの3つのマイクロUSBポートがあることがわかりました。 何かおすすめやご提案があれば、ぜひ教えてください。各イメージを手動で実行する(ビルド+フラッシュ)と、非常に時間がかかります。 Re: How to evaluate NPU tflite model on large dataset on MIMRT700 board? @EdwinHz 応援してくださりありがとうございます。 SDカードの方法は良いです。ハードウェアは得意ではないので、チームメイトの提案で。 先ほど挙げたこの方法はどうでしょうか? 現在、私はtflm_cifar10_cm33_core0サンプルを使用して推論を実行するために、以下の手順を踏んでいます。 - image_data.h をサンプルにコピーします - ビルドボタンをクリックします デバッグボタンをクリックし、次に続行ボタンをクリックして推論を実行します。 チームメイトと話し合い、コマンドラインでビルドや推論を実行できるかどうかも話し合いました。とても良いです。もしうまくいけば、毎回image_data.hを変更するスクリプトを作成し、推論を構築し実行し、推論結果をPCに戻すことができます。これについてコメントはありますか? NXPがビルド、フラッシュ、サンプルtflm_cifar10_cm33_core0の実行に関するガイドラインがあれば、より簡単にカスタマイズできるということです。ハードウェアは得意ではないのでこの方法が気に入っています(NXPがこの方法をサポートしていれば、Pythonスクリプトを作成して毎回image_data.hを作成し、ビルドし、フラッシュし、実行して結果をPCに戻し、保存できます.csvファイルなど)。この方法(ビルド、フラッシュ、実行、コマンドライン経由でPCに結果を返す)をサポートするベンダーも多く見かけます。NXPもこの方法をサポートしていると思います。 Re: How to evaluate NPU tflite model on large dataset on MIMRT700 board? こんにちは、 @nnxxpp さん。 ご指摘のとおり、この例では静的ヘッダー方式を採用しています。しかし、SDカードを介してイメージをマウントするパイプラインを構築する方が、大規模なデータセットにははるかに適しているだろう。 画像をSDカードに事前にロードしておき、SDカードをマウントし、画像リストを開いて、各画像に対して次の操作を行います。 - 入力バッファへの読み込み - NPU推論を実行する - 「results.csv」に結果を書き込むファイル 現時点でこれを例示するサンプルコードはありませんが、使用しているtflm_cifar10_cm33_core0 sdcard_fatfsと、すでに初期化やカードマウントを処理し、SDカード利用に関するすべてのAPIを備えたSDKの例の両方を参照できます。 SDカードのサンプルを実行して理解し、バイナリイメージファイルの読み込みをテストすることをお勧めします。次に、tflm サンプルに SD カードのコンポーネントを追加し、SD カードの初期化と FatFs コードをインポートし、最後に静的ファイル image_data.h を置き換えます。f_read() を使用して SD カードから読み取った画像情報を含むバッファを入力として使用します。 画像をあらかじめテンソル形式で保存しておけば、処理が簡素化され、JPEG/PNGのデコード処理が不要になる。 BR、 エドウィン。 Re: How to evaluate NPU tflite model on large dataset on MIMRT700 board? さらに情報を追加したいです。 現在、私はtflm_cifar10_cm33_core0サンプルを使用して推論を実行するために、以下の手順を踏んでいます。 - image_data.h をサンプルにコピーします - ビルドボタンをクリックします デバッグボタンをクリックし、次に続行ボタンをクリックして推論を実行します。 チームメイトと話し合い、コマンドラインでビルドや推論を実行できるかどうかも話し合いました。とても良いです。もしうまくいけば、毎回image_data.hを変更するスクリプトを作成し、推論を構築し実行し、推論結果をPCに戻すことができます。これについてコメントはありますか?本当にありがとうございます。 Re: How to evaluate NPU tflite model on large dataset on MIMRT700 board? また、SDカードMIMRT700表示されているのも見ました。画像を読み込んでtflm_cifar10_cm33_core0してSDカードに保存できるなら、とても良いです。 でも正直に言うと、どう始めたらいいかは分かっています。私はハードウェアに詳しくありません。 Re: How to evaluate NPU tflite model on large dataset on MIMRT700 board? こんにちは、 @nnxxpp さん。 わかりました。 MCUXpresso SDKプロジェクトはコマンドラインから実行でき、スクリプトでプロセスを自動化できます。私たちのSDKコマンドラインフローはwest buildを使っており、flashはwest flash -r linkserverで行えます。 AN14700では、セクション「7.3」のパート8で説明されているように、CLIを使用してプロジェクトをコンパイルします。変換モデルを動かせ」と言いました。 したがって、このプロセスを自動化するためのスクリプトの一般的な応用は以下の通りです: 1. 新しいimage_data.hをコピーする 2. WestBuildを使用して構築する 3. West Flash を使用したプログラム 4. UARTログの取得 「一般的な推奨方法」ではありませんが、あなたの用途にも十分効果的でしょう。 BR、 エドウィン。
View full article
S32K144EVB-Q100 Rev D 原理图 你好。我正在寻找S32K144EVB-Q100 Rev D的原理图。我似乎无法让该板发送任何CAN消息。是否有可用于在该板上通过 CAN 0 发送消息的示例代码?我使用 SPI 确认了 CAN 收发器处于强制正常模式,因此 CAN 应该可以正常工作。 Re: S32K144EVB-Q100 Rev D Schematic 您可以查看 S32DS 中针对S32K144EVB 的示例代码……如果您有相关代码,请分享一下,因为我找不到……
View full article
申请延长 S32 Design Studio for ARM 2018.R1 的许可 我们目前在一款产品中使用S32 Design Studio for ARM 2018.R1 (Windows)版本。该软件的许可证最近已过期,我们无法激活它。 当我们尝试使用激活码生成激活密钥时,生成的密钥也被报告为已过期,导致我们无法使用 IDE。 我们的激活码是: 激活码: FF6A-EDA4-CDF0-7186 请您延长或续订与此激活码关联的许可证,或者告知我们如何才能重新获得软件访问权限? 您的协助将不胜感激,因为本项目依赖于此开发环境。 谢谢!
View full article
How to ensure that gPTP Layer 2 packets are transmitted with the highest priority via GMAC0 on the S Hello  How to ensure that gPTP Layer 2 packets are transmitted with the highest priority via GMAC0 on the S32G399? Re: How to ensure that gPTP Layer 2 packets are transmitted with the highest priority via GMAC0 on t Make sure the gPTP frame enters Q4. How to implement this? Re: How to ensure that gPTP Layer 2 packets are transmitted with the highest priority via GMAC0 on t Hi,zhijie Thank you for your reply and information. You can try to implement this function by referring to the BSP User Manual as the following picture. It can be considered to set a separate time window for Q4, giving it a higher priority. Additionally, Make sure the gPTP frame enters Q4. The following commands for layer2 time window setting can be used as a reference: tc qdisc add dev eth0 root taprio \ num_tc 5 \ map 0 1 2 3 4 \ queues 1@0 1@1 1@2 1@3 1@4 \ base-time 0 \ sched-entry S 10 50000 \ sched-entry S 0f 450000 \ sched-entry S 1f 96 \ flags 0x2 Hope this information can help you. BR Joey Re: How to ensure that gPTP Layer 2 packets are transmitted with the highest priority via GMAC0 on t Do you use gPTP with GMAC0 on M-core or A-core? A: on A-core Are you currently utilizing GMAC's TSN feature? Did the VLAN be used? A: Utilizing GMAC's TSN feature:gptp;No VLAN on gptp packets. The GMAC controller provides five Tx/Rx queues,  I need to route all gPTP traffic to the highest-priority Tx/Rx queue(q4). Could you advise the corresponding register configurations and code implementation methods and How to configure(such as:tc,ip) at LInux? Re: How to ensure that gPTP Layer 2 packets are transmitted with the highest priority via GMAC0 on t Hi,zhijie Thank you for contacting us. Could you tell me more information? Do you use gPTP with GMAC0 on M-core or A-core? Are you currently utilizing GMAC's TSN feature? Did the VLAN be used? BR Joey Re: How to ensure that gPTP Layer 2 packets are transmitted with the highest priority via GMAC0 on t Hi,zhijie Thank you for your reply. You can try to configure the queue information in the gmac0 section of the device tree. It is included this file of arch\arm64\boot\dts\freescale\s32cc.dtsi.         gmac0: ethernet@4033c000 {             status = "disabled";             compatible = "nxp,s32cc-dwmac"; mtl_rx_setup_gmac0: rx-queues-config {                 snps,rx-queues-to-use = <5>;                 #address-cells = <1>;                 #size-cells = <0>;                 queue@0 {                 };                 queue@1 {                 };                 queue@2 {                 };                 queue@3 {                 };                 queue@4 {                 };             };             mtl_tx_setup_gmac0: tx-queues-config {                 snps,tx-queues-to-use = <5>;                 #address-cells = <1>;                 #size-cells = <0>;                 queue@0 {                 };                 queue@1 {                 };                 queue@2 {                 };                 queue@3 {                 };                 queue@4 {                 };             };  Also, can find the RX queue packet routing configuration in the GMAC driver, you can try to set the node as the "snps,route-ptp" for Q4. You can contact us at any time if you still have any question.   BR Joey
View full article
32ビット並列受信(立ち上がりエッジピン)(FRDM-MCXN947) 現在、32ビットパラレルシフターを構成して、外部デバイスからデータを受信するようにしようとしています。その際、ピンの1つ(FLEX_D4/DATA_VALID)をデータシフトのための信号として使用します。 これまでの進歩により、DATA_VALIDがトリガーされたときに32ビットデータを読み込み、そのデータをeDMA Ping-Pongバッファに移動させることが可能になりました。現在、Printf文を使用してバッファデータをコンソールに読み出すテストを行っています。Shifterにエラーが発生した場合(データシートによると通常はオーバーランを示す)、それもコンソールに出力されます。 私の主な問題はTimerConfigにあると考えています。DATA_VALIDの立ち上がりエッジでShifterが何度も読み取りをトリガーしてしまうのですが、正しいデータを実際に移動させながら一度だけ読み取りを行うような設定が見つかりません。 コンソール出力: 読み取りバッファA: 0x3fffefff シフトエラーコード: 0x8 シフターの状態: 0x0 SHIFTSDEN: 0x8 DMA CSR: 0x0 DMAエラー: 0x0 TCD BITER: 0x2 CSR: 0x12 CH_MUX: 0x40 バッファBの読み取り: 0x3ffffefff シフトエラーコード: 0x8 シフターの状態: 0x0 SHIFTSDEN: 0x8 DMA CSR: 0x0 DMAエラー: 0x0 TCD BITER: 0x2 CSR: 0x12 私のFLEX_IOの設定ファイルを添付します。ありがとう。 クロック|タイマー 通信・制御(I3C |I2C |SPI |FlexCAN |イーサネット |FlexIO) 開発ボード MCX N Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) 更新: 「 kFLEXIO_TimerDisableOnTriggerFallingEdge 」がCPUをコールバック内に留めていたことが分かりました。 タイマー比較後に無効にしたいのですが、このオプションでは SHIFTBUF は 0x0 の値のみを報告し、SHIFTERR フラグは報告しません。 Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) こんにちは、 @carlos_oさん、返信ありがとうございます! 思ったようにタイマーをエッジで表示DATA_VALIDきましたが、Threadは更新しませんでした。現在使用しているコードを添付します。 私が現在直面している問題は、FlexIOを他のデバイスと同等の速度で動作させることです。今のセットアップでは基本的にサンプリングDATA_VALIDで、高速になるとシフターがオーバーランになることがあります。私の考えでは、私のデザインにはMCXとホストデバイス間で共有クロックが必要であり、ホストデバイスが32ビットデータを送る予定だと思います。32ビットデータバス内のピンをこの信号に使えるので、FlexIOのピンを分割する必要がありません。このアイデアについて何かご意見があればぜひお聞かせください! 以前のご質問にお答えします。 1.レジスタは、低速でも意図どおりにデータが格納されています。DATA_VALIDの降下エッジごとに、SHIFTBUFは32ピンからデータを保存し、EDMAは散布・採集方法でピンポンバッファに転送します。 2. アナログ Discovery 2で入力をシミュレートしています。アナログ Discovery 2はデータピンが16本しかないため、32ビットの上限値を書き込み、DATA_VALIDピンでクロックをシミュレートし、未使用のピンを固定しています。低速走行時におけるテストデータは正しく一致している。 3. 私はFRDM-MCXN947を使用しています Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) こんにちは、 @Flexin_On_The_IO さん。 投稿ありがとうございます! あなたのレジスターで現在の行動について教えていただけますか? どのようなテストデータを受信しようとしていますか?また、現在どのようなデータが受信されていますか? どのMCXNを使っているのか教えていただけますか? これはカスタムボードですか?そうでない場合は、使用しているボードを指定してください。 Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) こんにちは、 @Flexin_On_The_IO さん。 返信が遅くなり申し訳ありません。 目指している速度を具体的に教えていただけますか? AN14284 『FlexIO Emulated インターフェース のタイミングパラメータチューニング』をレビューすると良いでしょう。このアプリのノートにはあなたの目標に役立つ情報が載っているかもしれません。    Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) こんにちは、 @carlos_o さん。 私が最低限達成したい速度は18.5MHzです。シフターは約6.25MHzで追いつくことは確認できますが、ハードウェアの制限で高速で問題が:Pました。 下は私のAnalog Discovery 2の波形で、MCLK信号とデータ用のバイナリカウンタ(AD2のピン数が少ないため12ビットのみ)、そしてDATA_VALID信号を手動で制御しています。 高周波数(20 MHz)になると、AD2は実際にはまともな方形波を出せず、信号の整合性が悪いためにFRDMが望ましくないシフトをトリガーしているのではないかと気づきました。 送っていただいたファイルを拝見しましたが、私が解決したいと考えている問題の解決策になるかもしれないと思いました。DATA_VALIDがMCLKと同時に立ち上がり/立ち下がりする場合、クロックが完全にデクリメントできないため、データのシフトが欠落すると考えられます。 私の主な質問は、シフターは通常、他のデバイスからのトリガー信号がローになった後でも、完全なシフトサイクルを完了するために遅延クロック/タイマーを必要とするのかということです。現在のシステム構成では、データを取りこぼさないように、MCLKのエッジ間でDATA_VALIDがハイレベルを維持する必要があります。
View full article
LPC55S69でUSB HS PLLがロックしない 私はLPCシリーズのマイクロコントローラを用いた初めてのUSB対応製品に取り組んでおり、PHYを直接扱うのはこれが初めてです。これはカスタム基板上で、USB1高速USB接続を使用しています。 現在、dev_cdc_vcom_bm SDKの例を自分のデバイスで動かそうとしています(LPCXpresso55S69の開発ボードでテストした後です)。私のカスタム基板の明らかな違いは、16MHzの水晶発振子ではなく、20MHzの水晶発振子が搭載されている点です。 最初の問題として、PLL_SICレジスタがPLL_LOCKを0と表示しているため、PLLがロックされていないことが分かりました。USBクロック、USB PLL電源、およびUSB PLL有効化が有効になっています。クロック分周器は、20MHzクロックの場合、24で分周するように設定されています(値4)。PLL_PREDIV = 0。USB1_3V3は3.299Vと安定しているので、入力電圧は問題なさそうです。 もう一つの潜在的な問題点は、20MHzの水晶発振器ではなく、20MHzの発振器を使用していることです。別のThreadでそれが問題だと見かけましたが、それはKinetisの部品で、同じIPかどうかはわかりません。たとえそうだとしても、それが論点ずらしだったとしても驚かないだろう。 添付はデバイスの回路図ですが、今回の場合はそれが問題になるはずです。 PLLをロックさせるために、次にどこを調べれば良いか、何か考えはありますか? LPC55xx Re: USB HS PLL not Locking on LPC55S69 こんにちは、 @martinjaymckee さん。 回路図を見ると、LPC55S69のXTAL32M_PピンはECS-2520MVLC-200-CN発振器の出力から駆動されていますが、XTAL32M_Nは接続されていません。 LPC55S69上のUSB HS PLLは、システム発振器ブロックから基準信号を取得します。SDKの例は通常、結晶がXTAL32M_PとXTAL32M_Nに接続されていることを前提としています。 水晶発振器の代わりに外部クロック源を使用する場合は、発振器ブロックの設定を異なるものにする必要があります。 BR ハリー Re: USB HS PLL not Locking on LPC55S69 なるほど、それはもっともだ。XO32Mはバッファバイパスを使用するように設定済みです。メインクロックPLLが正しい発振器入力を使用していることを確認しました。 USB PLLを動作させるために、XO32Mクロックブロックで他に設定を変更する必要はありますか?
View full article
利用管道进行日志记录 大家好, 我正在尝试集成 freemaster pipes 进行日志记录(以后可能会用到它的更多功能)。 由于我使用的是 Linux 系统,所以我尝试了 freemaster light + python 的方案。 我可以正常连接,但是当尝试打开管道并打印管道日志消息时,我没有通过 rpc 服务器收到任何数据。 为了验证目标实现,我还通过 Windows GUI 进行了检查,发现它可以正确读取管道,因此问题似乎出在 PC 端。 请参见附件中的示例 Python 脚本。任何提示都欢迎。 顺祝商祺! Re: Utilize pipe for logging 没关系,看来我需要在接收端显式调用 PipeFlush 函数。没想到会这样。附件为可运行示例,供您参考。
View full article
无法检测到 LPC18xx 的看门狗复位 我无法检测看门狗何时RESET。我目前正在按照用户指南中的步骤操作,指南中指出: 看门狗超时标志(WDTOF)经过检查后可确定看门狗是否导致了复位条件。 WDTOF标志必须通过软件清零。 虽然设备重置成功,但之后该标志似乎并未被设置。 我看到之前有一个关于 LPC4357 类似问题的帖子(已解决:LPC4357:无法检测到看门狗 RESET - NXP 社区),但我没有在 LPC18xx 勘误表中看到任何相关信息。 请问LPC18xx是否存在与上述相同的问题? LPC18xx Re: Cannot detect watchdog reset for LPC18xx 嗨@ejg 谢谢你的帖子! 请问您使用的是哪一款LPC18xx? 另外,你们是在什么时候审查国旗的? 如果从lpc18xx_wwdt.h调用WWDT_Init函数,它会清除中断标志,因此需要先读取WDTOF。
View full article
IMX219 (RPi Cam v2) はプローブしますが、標準の imx93-11x11-frdm-imx219 を使用した FRDM-IMX93 上でストリーミングしません 環境 - ボード:FRDM-IMX93(i.MX93 11x11) - BSP:Yocto Scarthgap、linux-imx-6.6.36-2.1.0(カーネルコミット 20d9F5efABDD), MACHINE=imx93frdm, DISTRO=fsl-imx-xwayland - センサ:Raspberry Pi カメラモジュールv2(Sony IMX219)、P6 MIPI-CSIコネクタに搭載 - デバイスツリー:純正のarch/arm64/boot/dts/freescale/imx93-11x11-frdm-imx219.dtso 概要 BSPはこのボード用にIMX219デバイスツリーオーバーレイとセンサを同梱しています 電源が入り、I2Cで正しく検出されます(チップIDは0x10読み0x0219)。しかし、 V4L2キャプチャパイプラインはフレームを一切出力しません。たどってみると、どうやら 下流のステージングカメラドライバーには3つの独立した問題があります。本線 ソニーのIMX219ドライバーは現代のV4L2サブ開発モデルに従っていますが、NXPのステージングは CSI/ISIスタックは依然として古いov5640スタイルモデルを前提としています。 問題1 — メディアグラフの分解(「センサーレジスタが失敗」)。 drivers/staging/media/imx/imx8-media-dev.c: mxc_md_create_links()呼び出し media_entity_call(センサ、link_setupなど)。メインラインのIMX219ドライバーは対応していません 実装.link_setup、したがって、呼び出しは-ENOIOCTLCMD (-515)を返し、次のように扱われます 致命的だ。センサー>CSIリンクは一度も作成されず、メディア機器全体が解体されます: mx8-img-md: 登録センサーサブデバイス: imx219 2-0010 (1) mx8-img-md: created link [mxc_isi.0]=> [mxc_isi.0.capture] mx8-img-md: リンク [mxc-mipi-csi2.0] を作成しました=> [mxc_isi.0] mx8-img-md: subdev_notifier_complete エラー終了 mxc-md 42800000.bus:camera:センサーレジスタが故障しました MXC-MD:42800000のプローブ。バス:カメラエラー -515 で失敗しました (ov5640 は ov5640.c のおかげで動作します)(何もしない.link_setupを提供します。) 問題2 — streamonが中止(「サブ開発者に失敗s_power呼べ!」) ドライバ/ステージング/プレスリリース、製品ニュース/IMX/IMX8-ISI-cap.C: mxc_isi_cap_streamon() が呼び出します v4l2_subdev_call(src_sd, core, s_power, 1) は、失敗を致命的として扱います。imx219は ランタイム PM であり、非推奨の .s_power を実装していません。そうするとコールが戻ってきます -ENOIOCTLCMDとストリーミング中止: mxc_isi.0:サブデバイスs_powerの呼び出しに失敗しました! (ov5640 は ov5640.c のおかげで動作します).s_power を提供します。 問題3 — CSIがYUV422にハードコードされているが、RAW10を解析できない(リンクはあるがフレームは0) ドライバ/staging/media/imx/dwc-mipi-csi2.c は実質的に YUV422 専用です: - dwc_csi2h_formats[]はSBGGRのバイヤーコードのみを記載しており、SRGGBは含まれていません(IMX219はSRGGB10です)。 したがってfind_csi2h_format()は失敗し、フォーマットは静かにYUYVに戻ります。 - dwc_mipi_csi2_set_fmt() は CSI2H-> フォーマットを保存しないため、disp_mix_gasket_config() デフォルトのYUYVコードが表示されます。 - dwc_mipi_csi2_param_init() ハードコード ipi_cfg->data_type = DT_YUV422_8。 CSI は誤ったデータタイプを報告し、すべてのフレームがキャプチャされるにもかかわらず、フレームはキャプチャされません。 リンクが有効で、VIDIOC_STREAMONが0を返します。 mxc-mipi-csi2.0: フォーマット: 0x2008 <- YUYV; 期待値: 0x300f (SRGGB10) 私たちが成功した理由(ご検証のため) (a) imx8-media-dev / imx8-isi-cap に欠落したオプション操作を処理した後 (-ENOIOCTLCMD、link_setup / s_power)非致死的であり、(b)教えること dwc-mipi-csi2 について SRGGB8/10/12(交渉されたフォーマットを保存し、IPIを設定する) data_typeから)パイプラインは正しく表示されます:- MXC-mipi-csi2.0:フォーマット: 0x300f imx219 -> mxc-mipi-csi2.0 -> mxc_isi.0-> /dev/video0 約27fps、ライブフレームをキャプチャ。 修正(a)はセンサーに依存しず、このスタック上の現代的なメインラインセンサーにも役立ちます。 修正(b)はCSIにRAWバイヤーサポートを追加します。 副次的な注意点 — モジュールのロードオーダー 新規起動時にも、imx8_media_dev が実行されることによりグラフの登録に失敗します。 imx219モジュールがロードされる前に非同期通知器がロードされます。ビデオノードが登録され、 その後、登録が解除された。マニュアル「modprobe -r imx8_media_dev imx219; modprobe imx219;」 「modprobe imx8_media_dev」を実行すると、それが再構築されます。ソフト依存関係/ロード順序のヒントがあれば、 既成概念にとらわれずに仕事をする。 質問 1.IMX219 はこの BSP の FRDM-IMX93 で公式にサポート/検証されたカメラですか、 意図された/検証済みのパスは、AP1302 ISPモジュールですか?出荷されたimx219.dtso bare-IMX219は動作するはずだと示唆している。 2. 上記の3つの動作は、修正を受け入れるバグとみなされますか、それとも 推奨される構成や、動作確認済みの構成で、私たちが見落としているものはありますか? 3.もしお役に立てるようでしたら、パッチをクリーンなコミットとして共有させていただきます。 ありがとう! FRDM-i.MX93 #IMX219 RPI-CAM-MIPI Yocto Project Re: IMX219 (RPi Cam v2) probes but does not stream on FRDM-IMX93 with stock imx93-11x11-frdm-imx219 こんにちは、 ご連絡ありがとうございます。ソフトウェアチームに確認し、後のBSPで修正があるか再度確認します。できるだけ早く更新します。 よろしくお願いいたします。 アルド。 Re: IMX219 (RPi Cam v2) probes but does not stream on FRDM-IMX93 with stock imx93-11x11-frdm-imx219 こんにちは、 残念ながら、i.MX93 FRDM BSPは、後になってこの問題を調査していた際に、当社のBSPで正式にサポートされるまでサポートされていませんでした。そのため、このイメージは、同じBSPのベータ版である可能性があります。 FRDMボードは6.12.34から2.1.0までサポートしていますそして後のリリースについては、あなたの発見に感謝しますし、ボードに含まれるデフォルト画像を使って検証する方にとって役立つはずです。ソフトウェアチームで追跡します。 よろしくお願いいたします。 アルド。
View full article
S32K328:CM7_0 CM7_2 DTCMバックドアへのアクセスが不正確なバスフォールトを引き起こす NXPチームの皆様、こんにちは。   当社では、RTD 7.xを搭載したS32K328を使用しています。   ソフトウェアのセットアップ: - CM7_0はブートローダーを実行します。 - CM7_1は第二のアプリケーションで使用されます。 - CM7_2はアプリケーションコードの実行を目的としていません。 - TCMバックドア/AHBS経路を通じてCM7_2 DTCMをシステムメモリとして使用できるかどうかCM7_0評価しています。   リファレンス・マニュアルの文脈: 「メモリマップ」章では、ITCM/DTCMは他のマスター、特にCortex-M7コアやeDMAから32ビットAHBSインターフェースからアクセス可能であると述べられています。 「TCMをシステムメモリとして」のセクションでは、有効化されたコアは無効化または待機中のコアのTCMを以下以下で使用可能とされています: 1. ターゲットコアTCMコントローラクロックの有効化: MC_ME PRTN2_COFB2_CLKEN[REQ64] for Cortex-M7_2 2. ターゲットコアCPUWAITの設定: DCM_GPR DCMRWF4[CM7_2_CPUWAIT] 3. ターゲットコアクロック/アクセスパスの有効化: MC_ME PRTN0_CORE4_PCONF[CCE]   私たちが試したこと: 1. DCM_GPR DCMRWF4[CM7_2_CPUWAIT]を設定します。 2. MC_ME PRTN2_COFB2_CLKEN[REQ64]を設定します。 3. MC_ME PRTN2_PUPD[PCUD]を設定します。 4. MC_ME CTL_KEYシーケンスを適用しました。 5. PRTN2_PUPD[PCUD]がクリアされるまで待機しました。 6. PRTN2_COFB2_STATを読み取り、bit0/BLOCK64がアクティブであることを確認した。 7. MC_ME PRTN0_CORE4_PCONF[CCE]を設定します。 8. MC_ME PRTN0_CORE4_PUPD[CCUPD]を設定します。 9. MC_ME CTL_KEYシーケンスを適用しました。 10. PRTN0_CORE4_STAT[CCS]が1になるまで待機しました。 11. 実験のため、MPUを一時的に無効にした。 12. CM7_2 DTCMバックドアアドレスへの32ビット書き込みを1回試行しました。   観測結果: - PRTN2_COFB2_STATはTCMコントローラのクロック要求がアクティブであることを示します。 - PRTN0_CORE4_STAT[CCS] が 1 になります。 - CM7_2 DTCMバックドア領域への最初の32ビット書き込みにより、不正確なバスフォルトが発生し、ハードフォルトにエスカレートします。   質問: 1.S32K328の場合、CM7_0からアクセス可能な正しいCM7_2 DTCMバックドア/システムアドレス範囲は何ですか? 2. CM7_2 CM7_0 CM7_2がCPU待機中にいる間、DTCMバックドアアクセスはサポートされていますか? 3.MC_MEとDCM_GPRの設定以外に、CM7_0がCM7_2のDTCMバックドアに書き込めるようにするには、XRDCの設定が必要ですか? 4. テストのためにMPUを一時的に無効にした場合でも、MPU領域は必要ですか? 5. TCMバックドアパスを使用する前に、MSCM/MCM/XBIC/ENEDCの設定が必要ですか? 6.PRTN2_COFB2_STAT[BLOCK64]はTCMコントローラークロックが有効であることCM7_2確認するための正しいステータスビットでしょうか? 7. PRTN0_CORE4_STAT[CCS]は、クロック/アクセスパスが有効であることCM7_2確認するための正しいステータスビットでしょうか? 8. バックドアアクセスによるDTCM ECC初期化の場合、CM7_0からの32ビット書き込みで十分でしょうか? 9. 最初のバックドア書き込みによって不正確なバスフォルトが発生した場合、その障害がXRDC、インターコネクト、またはマッピングされていないアドレスのいずれに起因するものかを特定するために、どのフォルト/XRDCレジスタをチェックする必要がありますか?   現在の目標: 私たちは最小限の煙試験のみを検証したいのです。 - CM7_2 DTCMバックドアへの32ビット書き込み1回、 - それから読み返します、 - 生産用途を検討する前に。   よろしくお願いします。 Re: S32K328: CM7_0 access to CM7_2 DTCM backdoor causes imprecise BusFault こんにちは、 @krishna_Bugudi さん、 1. S32K3xx_memory_map.xlsx を参照してください。DTCM_2 バックドア (アドレス 0x21800000) 2. はい 3. なし 4. なし 5. なし 6. はい、RMのセクション3.4「TCMをシステムメモリとして」を参照してください。 7. はい 8. はい、RMの表102を参照してください。メモリECC初期化の概要 9. XRDCが無効になっていると書かれていましたね。したがって、XRDCによって報告されることはない。 住所はどこに書きますか? よろしくお願いいたします。 ダニエル Re: S32K328: CM7_0 access to CM7_2 DTCM backdoor causes imprecise BusFault こんにちは、ダニエルさん。   ご確認いただきありがとうございます。   テストを更新してRM/NXPの手順に完全に準拠するようにしましたが、依然としてストアのハングアップが発生しています。   確認済みの住所: 私たちは以下の宛先に手紙を書いています。   0x21800000   これはS32K3xx_memory_map.xlsxと一致します。   DTCM_2 バックドア: - 開始アドレス: 0x21800000 - 終了アドレス: 0x2181FFFF - S32K328実装サイズ:128KB   メモリマップには、PRAM2_TCM_XBICがS32K328の以下の場所に存在することも示されています。 0x40408000 - 0x4040BFFF   そしてそれを次のように説明しています。 「クロスバー整合性チェッカー(PRAM2およびTCMバックドアAHBスプリッター)」   一方、0x40400000 の TCM_XBIC は S32K328 用に予約済みとしてマークされています。   最新のテストシーケンス:   1. MC_ME PRTN2_COFB2_CLKEN[REQ64]を設定します。 2. MC_ME PRTN2_PUPD[PCUD]を設定します。 3. MC_ME CTL_KEYシーケンスを適用します。 4. PRTN2_PUPD[PCUD]がクリアされるまで待ちます。 5. PRTN2_COFB2_STATを読み込む。   観察結果: PRTN2_COFB2_STAT = 0x00000039   6. DCM_GPR DCMRWF4[CM7_2_CPUWAIT]を設定します。 読み上げ確認: DCMRWF4 = 0x00080000   7. MC_ME PRTN0_CORE4_ADDR を安全なループアドレスに設定します。 読み返し: PRTN0_CORE4_ADDR = 0x00402408   8. MC_ME PRTN0_CORE4_PCONF[CCE]を設定します。 9. MC_ME PRTN0_CORE4_PUPD[CCUPD]を設定します。 10. MC_ME CTL_KEYシーケンスを適用します。 11. PRTN0_CORE4_STAT[CCS]が1になるまで待ちます。   観察結果: PRTN0_CORE4_STAT = 0x00000001   12. MPU CM7_0一時的に無効化して隔離する。 無効化前のMPU_CTRL = 0x00000003   13. 32ビット書き込みを1回試行します。   *(volatile uint32_t *)0x21800000 = 0u;   最新のパンくずリスト:   [CORE2_DTCM_SMOKE] S4B: WORD0 書き込み開始アドレス=0x21800000   店舗の次のパンくずリストに到達していません。   [CORE2_DTCM_SMOKE] S4B1: DSBの前にWORD0ストアが発行されました   そのため、ストア自体が次の指示に到達する前に停止したり完了しないように見えます。今回の最新のテストでは、DSB(深層破壊領域)には到達していません。   質問: あなたが確認した内容: - 0x21800000 は正しい DTCM_2 バックドア アドレスです。 - CM7_2がCPUWAIT中である間はCM7_0アクセスがサポートされます。 - XRDC/MPU/MSCM/MCM/XBIC/ENEDC の追加設定は不要です。 - PRTN2_COFB2_STAT[BLOCK64] は正しいステータスビットです。 - PRTN0_CORE4_STAT[CCS] は正しいステータスビットです。 - 32ビット書き込みはDTCM ECC初期化に有効です。   最初の32ビットストアが完成前に0x21800000止まる原因は何でしょうか?   S32K328のPRAM2_TCM_XBIC(アドレス0x40408000)でTCMバックドアAHBスプリッタエラーを検査すべきでしょうか?   もしそうなら、以下の場所を教えていただけますか: 1.PRAM2_TCM_XBIC ステータス/エラーレジスタを読み取ります。 2. DTCM_2バックドアトランザクションの失敗時に想定されるエラー表示。 3. アクセスを再試行する前にエラークリアシーケンスが必要かどうか。 4. ストアが完了しなかった場合にキャプチャする必要のあるその他の MC_ME/DCM/MSCM/XBIC/fault レジスタ。   よろしくお願いいたします。 クリシュナ Re: S32K328: CM7_0 access to CM7_2 DTCM backdoor causes imprecise BusFault こんにちは、クリシュナさん。 Copilot は次のように述べています。「テストしたところ、プロジェクトでデフォルトの MPU が有効になっている場合 (system.c で設定) にのみこのエラーを再現できました。」S32DS RTDプロジェクトによって生成されました。プロジェクトでMPUが無効化されているかどうかを確認するためにMPUレジスタをダンプすることはできますか? よろしくお願いいたします。 ダニエル
View full article
Cannot detect watchdog reset for LPC18xx I have a problem detecting when a watchdog reset has occurred. I am currently following the steps listed in the user guide which states: The Watchdog time-out flag (WDTOF) can be examined to determine if the Watchdog has caused the reset condition. The WDTOF flag must be cleared by software. Although the device resets correctly, the flag doesn't appear to be set afterwards. I saw there was an old post related to a similar issue on the LPC4357 (Solved: LPC4357: Cannot detect watchdog reset - NXP Community), but I couldn't see anything listed in the LPC18xx errata. Please could you confirm whether the LPC18xx suffers from the same issue as above? lpc18xx Re: Cannot detect watchdog reset for LPC18xx Hi @ejg  Thank you for the post! Could you please specify which LPC18xx are you using?  Also, at what time did you review the Flag? If you call the WWDT_Init function from lpc18xx_wwdt.h it clears the interrupt flags, so the WDTOF needs to be read before. 
View full article
MCUXpresso SDK 支持 Ezurio Sona NX611 你好, MCUXpresso SDK FreeRTOS 是否支持 Ezurio Sona NX611 无线网卡?因为它使用的是NXP IW611无线电芯片,所以我认为应该可以支持,对吗? Re: Ezurio Sona NX611 support in MCUXpresso SDK 你好, 希望你一切都好。我建议您直接查看我们任何 SDK 示例的配置以及支持的模块。 例如,在 iMX RT1170 的 wifi_cli 中,您可以找到以下模块:   如果您正在寻找其他模块,则需要自行添加特定支持,并以 IW61x 的可用启用功能为基础。 顺祝商祺! 里卡多 Re: Ezurio Sona NX611 support in MCUXpresso SDK 谢谢。如何添加对该模块的特定支持?我看到 mcuxsdk/components/wifi_bt_module/ /tx_pwr_limits 中每个模块都有特定的设置。此外, mcuxsdk/中间件/wifi_nxp/incl/目录下还有多个校准数据头文件,例如wifi_cal_data_override.h ,其内容如下:“客户可以覆盖 ext_cal_data[] 中的数据以设置特定的天线校准数据”。 如何为新模块正确设置这些参数(功率限制和校准数据)? 是否有关于如何添加对新无线模块支持的完整手册?我的芯片是基于 IW611 的,所以我想我可以参考 NXP IW611-MURATA-2DL-M2,但我怎么知道我是否需要更改任何值呢? Re: Ezurio Sona NX611 support in MCUXpresso SDK 谢谢你, @Ricardo_Zamora 。 我选择了 NXP-IW611-MURATA-2DL-M2 卡,因为 Ezurio Sona NX611 使用的是相同的芯片 (IW611),我认为它应该可以工作。但是,当 SDK 代码尝试将固件下载到无线网卡时,出现以下错误: 09/07/2026 13:04:32.589 [RX] - [FW Download] Start to download firmware from 0x60143230: 727 09/07/2026 13:04:38.560 [RX] - [wifi_io] Error: SDIO - FW Ready Registers not set [wifi] Error: sd_wifi_init failed. status code -1 [wlcm] Error: wifi init/reinit failed. status code -1 [!] WPL_Init: Failed, error: 1 我知道 Sona NX611 不在支持的模块列表中,但我认为它应该仍然可以工作,因为它与某个支持的板共享无线芯片型号 IW611。 Re: Ezurio Sona NX611 support in MCUXpresso SDK 你好, 我建议选择 Ezurio,他们能提供针对该模块的特定支持。不同模块合作伙伴的具体实施方案可能有所不同。 此致, 里卡多
View full article
ADC向けモジュール選択アプリケーション MXPボードを中心にアプリケーションを開発し始めたいのですが、使える特定の計算モジュールを選ぶのに苦労しています。種類が多すぎて少し圧倒されていて、どの製品が本当に自分の必要を満たしてくれるのか分かりません。 私の理解では、ADCを提供するSoCは複数存在する。より高い計算能力と、少なくとも4つのADCチャネルが必要です。どの特定の開発ボードを使い、どのモジュールやボードを使ってこのアプリケーションを作ればよいのでしょうか?購入可能な基板の選定を手伝ってくれるサプライヤーはありますか? Re: Module selection for ADC application MPUは十分な処理能力を確保するためだと思いますし、消費電力やコストをあまり心配しないからです。私たちはProfinetを利用できることにも関心があります。そして、1チャネルあたり100ksps以上のADCチャネルが少なくとも4つあるはずです。私の理解では、i.MX 9 MPUが適合する可能性があると思います。 私が考えている代替案としては、別々のADCモジュールとイーサネットモジュールを持つRaspberry Pi Picoを買うことです。しかし、NXPのシステムなら私のニーズをすべて満たしてくれるはずだと私は考えています。しかし、特定のチップで妥協しても製品の種類が非常に多様で、私にとって最も重要な機能である適切なADCが手に入るかどうかはしばしば不透明です。 Re: Module selection for ADC application こんにちは、 何を探しているのですか? これはMCUですか?MPUですか? プロジェクトについてさらに詳しい情報を提供していただければ、その点でお手伝いできます。 また、ウェブページ内に商品検索機能もあります https://www.nxp.com/design/design-center/development-boards-and-designs:EVDEBRDSSYS?collection=devBoardsDesigns&start=0&max=12&language=en&query=typeTax%3E%3Et633_t763 敬具/サルドス、 アルド。 Re: Module selection for ADC application こんにちは、 はい、どのi.MX9ファミリーでも使えるはずです。グラフィックやその他のペリフェラルによって、どちらがあなたの用途に合うかによります。 そのため、i.MX91、i.MX93、i.MX95はFRDMボードを搭載し、ADCの仕様も同じです: • 8チャネルで構成されており、そのうち4チャネルはパッケージ内のピンに接続されています。 • 1MS/sの動作周波数をサポートします • 複数の開始変換モード(通常、注入) ノーマルモードではワンショットおよびスキャン(連続)変換に対応しています インジェクターモードはワンショット変換のみに対応しています • 任意のADCチャネルで16のトリガーチャネルを使用可能にするTRGMUXのサポート i.MX93 https://www.nxp.com/products/i.MX93 i.MX93 FRDM https://www.nxp.com/design/design-center/development-boards-and-designs/FRDM-IMX93 i.MX91 https://www.nxp.com/products/i.MX91 i.MX91 FRDM https://www.nxp.com/design/design-center/development-boards-and-designs/FRDM-IMX91 i.MX95 https://www.nxp.com/products/i.MX95 i.MX95 FRDM https://www.nxp.com/design/design-center/development-boards-and-designs/FRDM-IMX95 また、それぞれのEVKも確認してみると良いでしょう。RPIについて言及されているので、FRDMボードがあなたにとって興味深いものになると思います。 よろしくお願いいたします。 アルド。
View full article
LPC55S69上的USB HS PLL无法锁定 我正在开发我的第一个采用 LPC 系列微控制器的 USB 产品,这也是我第一次直接操作 PHY。这是在定制电路板上,使用 USB1 高速 USB 连接。 我目前正在尝试让 dev_cdc_vcom_bm SDK 示例在我的设备上运行(在 LPCXpresso55S69 开发板上测试之后)。我的定制电路板最明显的区别在于它安装的是 20MHz 晶振而不是 16MHz 晶振。 我找到的第一个问题是 PLL_SIC 寄存器显示 PLL_LOCK 为 0,因此 PLL 没有锁定。USB时钟、USB PLL电源和USB PLL使能已启用。时钟分频器设置为 24 分频(值 4),用于 20MHz 时钟。PLL_PREDIV = 0。USB1_3V3 读取到稳定的 3.299v,因此输入电压似乎正常。 另一个潜在的问题是,我使用的是 20MHz 振荡器,而不是 20MHz 晶体振荡器。我看到另一个帖子也遇到了同样的问题,但那是 Kinetis 的一个部件,我不确定是不是同一个 IP。即便如此,如果这只是个转移视线的伎俩,我也不会感到惊讶。 附件是该设备的原理图,不过这应该不是问题所在。 关于如何使PLL锁定,您有什么下一步的考虑方向吗? LPC55xx Re: USB HS PLL not Locking on LPC55S69 嗨@martinjaymckee 从你的原理图来看,LPC55S69 XTAL32M_P 引脚由 ECS-2520MVLC-200-CN 振荡器输出驱动,而 XTAL32M_N 引脚则未连接。 LPC55S69 上的 USB HS PLL 的参考信号来自系统振荡器模块。SDK 示例通常假设 XTAL32M_P 和 XTAL32M_N 之间连接有晶体。 当使用外部时钟源而不是晶体时,振荡器模块的配置方式应该有所不同。 BR 哈里 Re: USB HS PLL not Locking on LPC55S69 好吧,这很合理。我已经将 XO32M 配置为使用缓冲区旁路。我已经确认主时钟PLL使用的是正确的振荡器输入。 我还需要更改 XO32M 时钟模块的其他配置才能使 USB PLL 工作吗?
View full article
32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) I am currently trying to configure a 32-bit parallel Shifter to receive data from an external device with one of the pins (FLEX_D4/DATA_VALID) being used as a signal to Shift in the data.  The progress I have made has allowed me to read in the 32-bit data when DATA_VALID has triggered and move the data into an eDMA Ping-Pong buffer. I am currently testing through Printf statements of reading the buffer data to a console and if the Shifter has any errors (usually indicating Overrun according to the datasheet) they will print to the console as well.  I believe my main issue is with the TimerConfig as it is triggering the Shifter to read too many times on one rising edge of DATA_VALID but I have not found a configuration that allows me to read only once while actually moving the correct data.  Console Output:  Reading Buffer A: 0x3fffefff Shifter Error Code: 0x8 Shifter Status: 0x0 SHIFTSDEN: 0x8 DMA CSR: 0x0 DMA Error: 0x0 TCD BITER: 0x2 CSR: 0x12 CH_MUX: 0x40 Reading Buffer B: 0x3fffefff Shifter Error Code: 0x8 Shifter Status: 0x0 SHIFTSDEN: 0x8 DMA CSR: 0x0 DMA Error: 0x0 TCD BITER: 0x2 CSR: 0x12 My FLEX_IO setup is attached. Thank you. Clock|Timers Communication & Control(I3C | I2C | SPI | FlexCAN | Ethernet | FlexIO) Development Board MCXN Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) Update: I was able to deduce that "kFLEXIO_TimerDisableOnTriggerFallingEdge" was keeping my CPU in the callback. I believe I want to disable after a Timer Compare but with this option SHIFTBUF only reports a value of 0x0 but with no SHIFTERR flag.  Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) Hi  @Flexin_On_The_IO  Thank you for your post! Could you please share the current behavior you see in your register?  Which test data are you trying to receive and what you currently get?  Could you please share which MCXN are you using?  Is it a custom board? if not, please specify the board you are using Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) Hi @carlos_o thank you for the reply! I was able to get the Timer reading on DATA_VALID edge like I wanted but did not update the thread. My current code is attached. The problem I am facing now is getting the FlexIO to keep up with other devices. In my current setup I am basically sampling DATA_VALID and at higher speeds, the Shifter can get Overrun. My thinking is that my design requires a shared clock between the MCX & host device that would be sending the 32-bit data. I can use a pin within the 32-bit data bus to be this signal so I do not need to breakup the FlexIO pins. Any input on this idea would be welcome! To answer your previous questions: 1. The registers are populating as intended at lower speeds. On every DATA_VALID falling edge, the SHIFTBUF stores data from the 32 Pins and the EDMA transfers to my Ping-Pong buffer via a Scatter-Gather method. 2. I am simulating input through an Analog Discovery 2, since that only has 16 data pins I am just writing the upper values of the 32-bits, simulating a clock on the DATA_VALID pin, and tying the unused pins down. Test data is matching correctly at low speeds. 3. I am using the FRDM-MCXN947 Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) Hi @Flexin_On_The_IO  Apologize the late reply,  Could you please specify the speeds you are trying to achieve?  You could review AN14284: Timing Parameter Tuning for FlexIO Emulated Interface, this app note could have some helpful information to your goal.    Re: 32-Bit Parallel Receive on Rising Edge Pin (FRDM-MCXN947) Hello again, @carlos_o  The bare minimum speed I am trying to reach is 18.5MHz. I can confirm the Shifter does keep up at around 6.25MHz but I was having issues at higher speeds due to my hardware limitations :P.  Below is my Analog Discovery 2 waveform where I am just providing the MCLK signal, a binary counter for the data (12-bit only due to low pin count on AD2), and manually controlling the DATA_VALID signal.  When I get to higher frequencies (20 MHz) I realize the AD2 cannot actually provide a decent square wave and may be causing my FRDM to trigger undesired Shifts due bad signal integrity.  I was looking at the file you sent me and I think it may be a solution to an issue I want to take care of. If DATA_VALID rises/falls at the same time as MCLK I believe it misses the a Shift of data since the clock was not able to fully decrement. My main question is do the Shifters usually require a delayed clock/Timer in order to complete their full shift cycle even after the Trigger from the other device has gone low? My current setup requires the DATA_VALID to remain high between MCLK edges to not miss the data.
View full article
S32K328:CM7_0 访问 CM7_2 DTCM 后门导致总线故障不精确 您好,NXP团队,   我们正在使用 S32K328 和 RTD 7.x。   软件设置: - CM7_0 运行引导加载程序。 - CM7_1 被第二个应用程序使用。 - CM7_2 不用于执行应用程序代码。 - 我们正在评估 CM7_0 是否可以通过 TCM 后门/AHBS 路径使用 CM7_2 DTCM 作为系统内存。   参考手册内容: “内存映射”章节指出,其他主设备(包括其他 Cortex-M7 内核和 eDMA)可以通过 32 位 AHBS 接口访问 ITCM/DTCM。 “TCM 作为系统内存”部分指出,已启用的核心可以在以下情况下使用已禁用/等待的核心的 TCM: 1. 启用目标核心 TCM 控制器时钟: MC_ME PRTN2_COFB2_CLKEN[REQ64] 适用于 Cortex-M7_2 2. 设置目标核心 CPUWAIT: DCM_GPR DCMRWF4[CM7_2_CPUWAIT] 3. 启用目标内核时钟/访问路径: MC_ME PRTN0_CORE4_PCONF[CCE]   我们尝试了: 1. 设置 DCM_GPR DCMRWF4[CM7_2_CPUWAIT]。 2. 设置 MC_ME PRTN2_COFB2_CLKEN[REQ64]。 3. 设置 MC_ME PRTN2_PUPD[PCUD]。 4. 应用 MC_ME CTL_KEY 序列。 5. 等待 PRTN2_PUPD[PCUD] 清除。 6. 读取 PRTN2_COFB2_STAT 并观察到 bit0/BLOCK64 处于活动状态。 7. 设置 MC_ME PRTN0_CORE4_PCONF[CCE]。 8. 设置 MC_ME PRTN0_CORE4_PUPD[CCUPD]。 9. 应用 MC_ME CTL_KEY 序列。 10. 等待 PRTN0_CORE4_STAT[CCS] 变为 1。 11. 为进行实验,暂时禁用了 MPU。 12. 尝试向 CM7_2 DTCM 后门地址进行一次 32 位写入。   观察到的结果: - PRTN2_COFB2_STAT 表示 TCM 控制器时钟请求处于活动状态。 - PRTN0_CORE4_STAT[CCS] 变为 1。 - 首次向 CM7_2 DTCM 后门区域写入 32 位数据会导致不精确的 BusFault 升级为 HardFault。   问题: 1.对于 S32K328,从 CM7_0 可访问的正确 CM7_2 DTCM 后门/系统地址范围是什么? 2. 当 CM7_2 处于 CPUWAIT 状态时,是否支持从 CM7_0 访问 CM7_2 DTCM 后门? 3.除了 MC_ME 和 DCM_GPR 设置之外,是否还需要任何 XRDC 配置才能允许 CM7_0 写入 CM7_2 DTCM 后门? 4. 即使在测试中暂时禁用 MPU,是否也需要任何 MPU 区域? 5. 使用 TCM 后门路径之前是否需要进行任何 MSCM/MCM/XBIC/ENEDC 设置? 6.PRTN2_COFB2_STAT[BLOCK64] 是否是确认 CM7_2 TCM 控制器时钟是否活动的正确状态位? 7. PRTN0_CORE4_STAT[CCS] 是否是确认 CM7_2 时钟/访问路径是否处于活动的正确状态位? 8. 对于通过后门访问进行 DTCM ECC 初始化,从 CM7_0 写入 32 位是否足够? 9. 如果第一次后门写入导致不精确的总线故障,应该检查哪些故障/XRDC 寄存器来确定故障是由于 XRDC、互连还是未映射地址引起的?   当前目标: 我们只想验证一个最基本的冒烟测试: - 对 CM7_2 DTCM 后门进行一次 32 位写入, 然后回读, 在考虑任何生产用途之前。   谢谢! Re: S32K328: CM7_0 access to CM7_2 DTCM backdoor causes imprecise BusFault 你好@krishna_Bugudi , 1. 请参阅 S32K3xx_memory_map.xlsx 文件,DTCM_2 后门位于 0x21800000 2. 是 3. 无 4. 无 5. 无 6. 是的,请参阅 RM 第 3.4 节 TCM,即系统内存。 7. 是 8. 是的,请参阅 RM,表 102。内存 ECC 初始化摘要 9. 您提到XRDC已被禁用。因此,XRDC 不会报告此问题。 你要写什么地址? 此致, 丹尼尔 Re: S32K328: CM7_0 access to CM7_2 DTCM backdoor causes imprecise BusFault 你好,丹尼尔,   谢谢你的确认。   我们已更新测试,使其完全按照 RM/NXP 的顺序执行,但仍然看到商店挂起。   已确认地址: 我们写信给:   0x21800000   这与 S32K3xx_memory_map.xlsx 匹配:   DTCM_2 后门: 起始地址:0x21800000 - 结束地址:0x2181FFFF - S32K328 实现大小:128 KB   内存映射表还显示 PRAM2_TCM_XBIC 位于 S32K328 的以下位置: 0x40408000 - 0x4040BFFF   并将其描述为: “横杆完整性检查器(PRAM2 和 TCM 后门 AHB 分线器)”   TCM_XBIC 位于 0x40400000,标记为 S32K328 保留。   最新测试序列:   1. 设置 MC_ME PRTN2_COFB2_CLKEN[REQ64]。 2. 设置 MC_ME PRTN2_PUPD[PCUD]。 3. 应用 MC_ME CTL_KEY 序列。 4. 等待 PRTN2_PUPD[PCUD] 清除。 5. 读取 PRTN2_COFB2_STAT。   观察到: PRTN2_COFB2_STAT = 0x00000039   6. 设置 DCM_GPR DCMRWF4[CM7_2_CPUWAIT]。 回读确认: DCMRWF4 = 0x00080000   7. 将 MC_ME PRTN0_CORE4_ADDR 设置为安全循环地址。 回读: PRTN0_CORE4_ADDR = 0x00402408   8. 设置 MC_ME PRTN0_CORE4_PCONF[CCE]。 9. 设置 MC_ME PRTN0_CORE4_PUPD[CCUPD]。 10. 应用 MC_ME CTL_KEY 序列。 11. 等待 PRTN0_CORE4_STAT[CCS] 变为 1。   观察到: PRTN0_CORE4_STAT = 0x00000001   12. 暂时禁用 CM7_0 MPU 进行隔离。 禁用前的 MPU_CTRL = 0x00000003   13. 尝试一次 32 位写入操作:   *(volatile uint32_t *)0x21800000 = 0u;   最新面包屑日志:   [CORE2_DTCM_SMOKE] S4B:WORD0 写入开始地址=0x21800000   商店之后的下一个面包屑导航:   [CORE2_DTCM_SMOKE] S4B1:WORD0 存储于 DSB 之前   因此,商店本身似乎在执行到以下指令之前就停滞不前或未能完成。在最新的测试中,DSB 并未达到。   问题: 既然你已经确认了这一点: - 0x21800000 是正确的 DTCM_2 后门地址, - 当 CM7_2 处于 CPUWAIT 状态时,支持对 CM7_0 的访问, - 无需额外的 XRDC/MPU/MSCM/MCM/XBIC/ENEDC 设置, - PRTN2_COFB2_STAT[BLOCK64] 是正确的状态位, - PRTN0_CORE4_STAT[CCS] 是正确的状态位, - 32 位写入对 DTCM ECC 初始化有效,   什么原因会导致第一次 32 位存储到 0x21800000 的操作在完成前停滞?   我们是否应该检查 S32K328 上 0x40408000 处的 PRAM2_TCM_XBIC 是否存在 TCM 后门 AHB 分路器错误?   如果可以,请您提供以下信息: 1.要读取的 PRAM2_TCM_XBIC 状态/错误寄存器。 2. DTCM_2 后门交易失败的预期错误指示。 3. 在重试访问之前是否需要任何错误清除序列。 4. 当存储操作未完成时,应捕获的任何其他 MC_ME/DCM/MSCM/XBIC/故障寄存器。   此致, 克里希那 Re: S32K328: CM7_0 access to CM7_2 DTCM backdoor causes imprecise BusFault 你好,克里希纳, Copilot 说:我已经测试过了,只有当项目中启用默认 MPU(在 system.c 中配置)时才会出现此错误。由 S32DS RTD 项目生成)。能否导出 MPU 寄存器,以验证您的项目中是否禁用了 MPU? 此致, 丹尼尔
View full article
i.MX8MPLUS uSDHC HS400モード(ストロボ機能強化) HS400の強化ストロボを有効にするための推奨手順はありますか?MIX_CTRLレジスタのEN_HS400_MODEを設定するだけで十分でしょうか、それともSTROBE_DLL_CTRLレジスタに追加の変更が必要でしょうか? よろしくお願いいたします。 ステファン Re: i.MX8MPLUS uSDHC HS400 mode with enhanced strobe こんにちは、 @Stefan_CIT HS400ESでは、eMMC側とホスト側の両方で同時に設定を行う必要があります。EN_HS400_MODEを設定するだけでは、ホスト側の設定の一部に過ぎず、HS400拡張ストロボ機能を有効にするには不十分です。 Linux BSPを使っている場合、ドライバーは自動的にDLLとチューニングの設定を完成させます。 よろしくお願いします、 志明 Re: i.MX8MPLUS uSDHC HS400 mode with enhanced strobe こんにちは@Zhiming_Liu ご返信ありがとうございます。 私たちは #I.MX8MPLUSとINTEGRITY OSを使い、uSDHC-ドライバは自分たちで管理しています。そこで、Linuxドライバからプロセスを移行してみます よろしくお願いいたします。 ステファン Re: i.MX8MPLUS uSDHC HS400 mode with enhanced strobe ストローブDLLと強化ストロボモードへの切り替えについては、参考マニュアルにより良いドキュメントがあります。 https://www.nxp.com/docs/en/reference-manual/IMX93RM.pdf i.MX9プロセッサは同じuSDHC-IPを持っているようです。 よろしくお願いいたします。 ステファン
View full article
S32K144EVB-Q100 Rev D 回路図 こんにちは。S32K144EVB-Q100 Rev Dの回路図を探しています。ボードにCANメッセージを送らせることができません。そのボードのCAN 0にメッセージを送信するためのサンプルコードはありますか?SPIを使ってCANトランシーバが強制ノーマルモードになっていることを確認でき、CANは動作しているはずです。 Re: S32K144EVB-Q100 Rev D Schematic S32DSのサンプルコードでご確認くださいS32K144EVB...もし見つからなかったら教えてください...
View full article
无法在 Zephyr 的单个 FlexSPI 上配置两个或非闪存 您好, 我正在使用基于 i.mx RT1050 板的板。有两个 NOR 闪光灯连接到 flexspi 的两组闪光灯。我还使用库 1 来启动 XIP。当我只使用一个闪光灯时,它工作正常。但当我添加第二个闪光灯时,我遇到了一个问题,似乎 LUT 的空间不足。我的两个闪光灯是 w25q128 和 w25q64,分别连接到 flexspi 端口 A1 和 B1。   这是我在叠加文件中的配置。   / { chosen { zephyr,flash-controller = &w25q128jv; zephyr,flash = &w25q128jv; zephyr,code-partition = &slot0_partition; }; };   &flexspi { status = "okay"; rx-clock-source = <1>; pinctrl-0 = <&pinmux_flexspi1>; pinctrl-names = "default"; reg = <0x402a8000 0x4000>, <0x60000000 DT_SIZE_M(64)>; /delete-node/ is25wp064@0; w25q128jv: w25q128jv@0 { compatible = "nxp,imx-flexspi-nor"; size = ; reg = <0>; spi-max-frequency = <104000000>; status = "okay"; jedec-id = [ef 70 18]; erase-block-size = ; write-block-size = <16>; enter-4byte-addr = <0>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; boot_partition: partition@0 { label = "mcuboot"; reg = <0x00000000 DT_SIZE_K(256)>; }; /* Adjusted slot sizes for 16MB total */ slot0_partition: partition@20000 { label = "image-0"; reg = <0x00040000 (DT_SIZE_M(3) + DT_SIZE_K(512))>; }; slot1_partition: partition@320000 { label = "image-1"; reg = <0x00320000 DT_SIZE_M(3)>; }; storage_partition: partition@620000 { label = "storage"; reg = <0x00620000 (DT_SIZE_M(1) - DT_SIZE_K(768))>; }; }; }; w25q64jv: w25q64jv@2 { compatible = "nxp,imx-flexspi-nor"; size = ; /* 8MB (64Mbit) flash */ reg = <2>; /* FlexSPI B */ spi-max-frequency = <104000000>; status = "okay"; jedec-id = [ef 40 17]; /* Winbond W25Q64JV JEDEC ID */ erase-block-size = ; write-block-size = <16>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; data_partition: partition@0 { label = "data-storage"; reg = <0x00000000 DT_SIZE_M(8)>; }; }; }; };   而 pinmux 是   &pinctrl { pinmux_flexspi1: pinmux_flexspi1 { group_a { pinmux = <&iomuxc_gpio_sd_b1_06_flexspi_a_ss0_b>, <&iomuxc_gpio_sd_b1_07_flexspi_a_sclk>, <&iomuxc_gpio_sd_b1_08_flexspi_a_data0>, <&iomuxc_gpio_sd_b1_09_flexspi_a_data1>, <&iomuxc_gpio_sd_b1_10_flexspi_a_data2>, <&iomuxc_gpio_sd_b1_11_flexspi_a_data3>; drive-strength = "r0-6"; slew-rate = "fast"; nxp,speed = "200-mhz"; input-enable; }; group_b { pinmux = <&iomuxc_gpio_sd_b1_03_flexspi_b_data0>, <&iomuxc_gpio_sd_b1_02_flexspi_b_data1>, <&iomuxc_gpio_sd_b1_01_flexspi_b_data2>, <&iomuxc_gpio_sd_b1_00_flexspi_b_data3>, <&iomuxc_gpio_sd_b1_04_flexspi_b_sclk>, <&iomuxc_gpio_sd_b1_05_flexspi_b_ss0_b>; drive-strength = "r0-6"; slew-rate = "fast"; nxp,speed = "200-mhz"; input-enable; }; };     在启动过程中,程序会被打入这个 while 循环、   if (flash_flexspi_nor_probe(data)) { if (memc_flexspi_is_running_xip(&data->controller)) { /* We can't continue from here- the LUT stored in * the FlexSPI will be invalid so we cannot XIP. * Instead, spin here */ while (1) { /* Spin */ } } LOG_ERR("SFDP probe failed"); return -EIO; }     当我逐步调试它时,在我看来,每个闪存设备在 LUT 中都消耗了 40-48 个空间。因此,如果有两个闪光灯,就会超过 64 个 LUT 的最大值。   我是不是做错了什么?怎样才能让它发挥作用 i.MX RT105x Re: Cannot configure two NOR flashes on single FlexSpi in Zephyr 我知道您是独立使用两支闪光灯,而不是并联模式。您可以为用于 XIP 的闪存保留 LUT,并使用 IP 命令访问其他闪存。另一种方法是循环使用两个闪存的 LUT,因为两个闪存的区别在于大小,同时禁用第二个闪存的 SFDP。 BR, Omar Re: Cannot configure two NOR flashes on single FlexSpi in Zephyr 您好, 我也遇到了同样的问题。 请问您是如何解决这个问题的?我只需要将数据存储到第二个闪存中。如何仅对第二个闪存禁用 XIP? 谢谢! 顺祝商祺! 阿德里安·克莱里斯
View full article
IMX-8M-MINI DDR Controller timings for Winbond W664GG6RB-06 Hello, We are looking for an explanation for a non-working DDR4 timing set. In short, the timings generated by the DDR Tool passed calibration and stress tests, but led to sporadic Linux kernel crashes during boot, with an "undefined instruction" error. Setup (raw facts): - The SoC is an i.MX8M Mini Solo (single Cortex-A53), DDR4 (Winbond W664GG6RB-06) at 1200 MHz (DDR4-2400) in 1:2 DFI (DDR PHY Interface) frequency-ratio mode, with a single x16 4 Gb device (512 MB, no ECC). - The BSP is NXP L4.14.98_2.0.0 (Linux 4.14.98, U-Boot 2018.03); the DDR config was generated with MSCALE DDR Tool v3.31 (Windows version) and PHY training firmware v201709. The same firmware is used in Yocto to build the U-Boot image. - We are qualifying one common timing set for three interchangeable 4 Gb x16 DDR4 parts (Alliance AS4C256M16D4, ISSI IS43QR16256B, Winbond W664GG6RB-06), all operated at 1200 MHz. - To meet the slowest part's (Winbond) tRCD/tRP/tAA (~14.16 ns at the 2400 bin) we set CL=17 (17-17-17), which the Tool encodes as MR0 = 0x0864 with the matching CL-derived registers (e.g. DFITMG0 = 0x038C8207, DRAMTMG2 = 0x0609050D). - The DRAM runs static at the 2400 setpoint (DVFS/busfreq disabled in the device tree), so there is no frequency scaling by Linux at runtime. Observations: - The 17-17-17 config passes the DDR Tool stress test (~24 h) and U-Boot mtest (~1 h) with no errors. - Under Linux (on boots that reach the shell prompt) it also passes stressapptest + fio (crc32c-verified), continuously and even at Tj = 84 °C, for over an hour with zero data errors. - Nevertheless, Linux sporadically crashes during boot with "Internal error: undefined instruction" (corrupted kernel .text), ~1.1 s into the kernel, on roughly 5–7 % of cold boots (measured with an automated cold power-cycle loop). - The failure is die-independent: the CL=17 image crashes the same way on a second of these parts (ISSI), while the CL=16 image boots Linux reliably on that same ISSI part. - Both even-CL configs boot Linux reliably: 16-16-16 (our long-standing production timing) and a newly built 18-18-18 (no kernel crashes observed) — only the odd-CL 17-17-17 fails. - Only the CL-derived registers differ between the failing and working configs (MR0 CAS bits, DFITMG0 dfi_t_rddata_en, DRAMTMG2 read latency / rd2wr, DFITMG2 rdcslat, ODTCFG rd_odt_delay). Hypothesis: We suspect odd CAS latency at the 1:2 DFI ratio is the root cause: the read-data return latency is CL/2 in DFI clocks — a non-integer 8.5 for CL=17 versus integer 8.0 / 9.0 for CL=16 / 18. Since the read FIFO (written by DQS, read by the controller clock, Reference Manual §9.3.2.2.2) handles the steady state and steady stress passes, we suspect the marginality surfaces at read burst-to-burst transitions, where odd CL's half-DFI-clock offset would hit a first/last-beat edge case the RM does not document. Questions: Is odd CAS latency (e.g. CL=17) supported on the i.MX8M Mini DDR4 PHY in 1:2 DFI mode, or are there known constraints/errata for odd CL? In particular — can the DDR Tool produce an odd-CL configuration that passes its own stress test yet is marginal under real boot traffic, and is there a recommended way to constrain read burst-to-burst timing for odd CL? Attached: kernel crash console dump, the CL=17 .ds script for the DDR Tool, and the produced ddr4_timing.c. Any advice will be appreciated. Re: IMX-8M-MINI DDR Controller timings for Winbond W664GG6RB-06 Sorry, somehow attachments didn't attach. Here are they. Re: IMX-8M-MINI DDR Controller timings for Winbond W664GG6RB-06 Hello,  Please try again by modifying from CL=17 to CL=18, run ddr test and test your linux again, I recommend you to upgrade to a newer release.  Re: IMX-8M-MINI DDR Controller timings for Winbond W664GG6RB-06 Please check the timing parameter for the parts below for  CAS Latency   tRCD(ns)  tRP(ns) Alliance AS4C256M16D4     DDR4-2400                                             17      14.16   14.16 ISSI IS43QR16256B                   2400Mbps                                            16-16-16 (-083R) Winbond W664GG6RB-06  DDR4-2400                                            17-17-17 The 3 parameter for IS43QR16256B is different. So you may need dedicated setting for 3 parts instead using one setting for all 3 part. It seems the issue only happened at cold boots, right?
View full article