Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
The license for S32 Design Studio version 3.4 on the S32 platform has expired. My S32 Design Studio (for S32 platform) v.3.4 has expired. Could you please extend the validity period of my activation code? S32 Design Studio Version v.3.4 Order Number: S32DS-3-4_188376977 Purchase order number Total number of licenses: 101 Activation code: 7EEF-99B6-BDC8-8692 Re: S32平台S32 Design Studio 3.4版本的许可证已过期。 Hi,  your S32DS license has been extended. Please activate S32DS again with your old code.  回复: S32平台S32 Design Studio 3.4版本的许可证已过期。 thank you
View full article
S32K312 BCTU – FIFOウォーターマークコールバックは機能しているが、最終変換コールバックがトリガーされない こんにちは、NXPコミュニティの皆さん、 私はS32 Design StudioとS32K3 RTD 7.0.1を使ってS32K312 MCUを扱っています。 BCTUをソフトウェアトリガーでADCコンバージョンのリストをトリガーするように設定しました。私はBCTU FIFO1ウォーターマークコールバックとBCTU最終変換コールバックの両方をテストしています。 現在の構成: MCU:S32K312 ドライバ:S32K3 RTD 7.0.1 ADCインスタンス: ADC0 BCTU変換リスト:4つのADCチャネル(0、2、4、3) トリガーソース:BCTUソフトウェアトリガー 割り込み: BCTU_IRQn が有効 通知:FIFO1ウォーターマークと最終変換コールバック 観察された行動: FIFO1のウォーターマーク通知を有効にすると、ウォーターマークのコールバックが正常にトリガーされ、FIFO1のADC変換結果を読み取ることができます。 しかし、BCTUの最終変換通知を有効にしても、対応するコールバックがトリガーされません。 デバッグ中に以下のことが観察されました。 実行は Bctu_0_Isr() に入ります。 ドライバは有効になっているBCTU割り込みソースをチェックします。 条件 if((*Reg & Mask) != 0U) は、最終変換通知に対して false と評価されます。 割り込み処理中に検査した場合、BCTU MSRレジスタのLIST0_Lastビットは0のままです。 その結果、最終変換コールバックは実行されません。 質問: FIFO1ウォーターマークコールバックは正しく動作するのに、BCTU最終変換コールバックがトリガーされないのはなぜですか? MSR.LIST0_Lastが1になる原因となるハードウェアの状態は具体的にどのようなものですか? 最終変換割り込みには、BCTU変換リスト、トリガー設定、または割り込み有効化設定における追加設定が必要ですか? FIFO1のウォーターマークコールバックとBCTUの最終変換コールバックの両方を同じ変換リストに使うことは可能ですか? LIST0_Lastステータスフラグは、ハードウェアまたはRTD割り込みハンドラによって自動的にクリアされますか?もしそうなら、どの時点でですか? 最後の変換イベント情報が正しく生成されていることを確認するために、どのBCTUレジスタを監視すべきでしょうか? なぜFIFOウォーターマークの割り込みは正しく動作しているのに、BCTUの最終変換割り込みは期待通りに生成・処理されないのか、教えていただけますか? 必要に応じてBCTUの設定、レジスタ値、ISRデバッグの観測結果のスクリーンショットも提供できます。 再開まで今しばらくお待ちください。 #s32k312 #adcbctu #bctuswconv #listlastconv Re: S32K312 BCTU – FIFO Watermark Callback Working, but Last Conversion Callback Not Triggered こんにちは、 記憶が正しければ、最後の変換通知はADC変換結果の宛先がADCnDRに設定されている場合にのみ生成されます。 リファレンス・マニュアルのLIST_IEN説明にも記載されています。   BR、ペトル  
View full article
マルチコアプロジェクトにおける追加MPU領域の設定 私は基本的に2つのSDKsのサンプルを組み合わせたプロジェクトを作っています。私はRT1170-EVKB SDKのバージョン26.09.00を使っています。このプロジェクトのアイデアは、マルチコアの例とLVGLの例を取り、M7コアがグラフィックスを実行し、その後プログラムを実行するM4コアと通信することです。そのために、SDKsの例を挙げました: freertos_message_buffers(プライマリとセカンダリの両方)をベースプロジェクトとして使用します。その後、lvgl_guider_cm7プロジェクトのコードやドライバーファイルをコピー&ペーストして、ゆっくりとグラフィックを追加しています。 私はlvgl_guider_cm7 mcux_config.hを保持しています同じファイルにしてPXPとVGLiteを使ったようにします。そのためには、フレームバッファをキャッシュ以外の場所に配置する必要があります。SDKの例で使われている共有メモリも非キャッシュに配置する必要があります。こうなると、ディスプレイにアーティファクト(本来あるべきでないオブジェクトに小さな線が入る現象)が発生します。 __USE_SHMEMプリプロセッサを外すことで直せますが、当然ながらマルチコア通信が失敗します。原因はBOARD_EarlyConfigMPU関数にあると考えています。関数の中には、次のような部分があります。 #elif defined(__MCUXPRESSO) #if defined(__USE_SHMEM) extern uint32_t __base_rpmsg_sh_mem; extern uint32_t __top_rpmsg_sh_mem; uint32_t nonCacheStart = (uint32_t)(&__base_rpmsg_sh_mem); uint32_t size = (uint32_t)(&__top_rpmsg_sh_mem) - nonCacheStart; #else extern uint32_t __base_NCACHE_REGION; extern uint32_t __top_NCACHE_REGION; uint32_t nonCacheStart = (uint32_t)(&__base_NCACHE_REGION); uint32_t size = (uint32_t)(&__top_NCACHE_REGION) - nonCacheStart; #endif このセクションでは、__USE_SHMEMプリプロセッサに基づいて、共有メモリまたは通常の非キャッシュのいずれかの非キャッシュを定義します。関数のさらに下では、MPU領域を次のように宣言しています: volatile uint32_t i = 0; ... while ((size >> i) > 0x1U) { i++; } if (i != 0) { /* The MPU region size should be 2^N, 5<=N<=32, region base should be multiples of size. */ BOARD_EARLY_ASSERT(!(nonCacheStart % size)); BOARD_EARLY_ASSERT(size == (uint32_t)(1 << i)); BOARD_EARLY_ASSERT(i >= 5); /* Region 10 setting: Memory with Normal type, not shareable, non-cacheable */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_NONCACHE, nonCacheStart); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 0, 0, 0, 0, i - 1); } 今度は、MPU内の両方の領域を定義して、LVGLがアーティファクトなしで動作し、rpmsgメッセージバッファが通信できるようにしたいと考えています。私の記憶領域は以下の通りです: 私が試みたのは、上記のコードを修正して両方のMPUリージョン定義を実行することでした。例えば: #elif defined(__MCUXPRESSO) extern uint32_t __base_NCACHE_REGION; extern uint32_t __top_NCACHE_REGION; uint32_t nonCacheStart = (uint32_t)(&__base_NCACHE_REGION); uint32_t nonCacheSize = (uint32_t)(&__top_NCACHE_REGION) - nonCacheStart; #if defined(__USE_SHMEM) extern uint32_t __base_rpmsg_sh_mem; extern uint32_t __top_rpmsg_sh_mem; uint32_t rpmsgShmemStart = (uint32_t)(&__base_rpmsg_sh_mem); uint32_t rpmsgShmemSize = (uint32_t)(&__top_rpmsg_sh_mem) - rpmsgShmemStart; #endif この方法だと、通常の非キャッシュ領域は常に定義され、共有メモリ領域は使用される場合にのみ定義される。MPUのリージョン定義を次のように修正しました: volatile uint32_t i = 0; ... while ((nonCacheSize >> i) > 0x1U) { i++; } if (i != 0) { /* The MPU region size should be 2^N, 5<=N<=32, region base should be multiples of size. */ BOARD_EARLY_ASSERT(!(nonCacheStart % nonCacheSize)); BOARD_EARLY_ASSERT(nonCacheSize == (uint32_t)(1 << i)); BOARD_EARLY_ASSERT(i >= 5); /* Region 10 setting: Memory with Normal type, not shareable, non-cacheable */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_NONCACHE, nonCacheStart); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 0, 0, 0, 0, i - 1); } #if (__USE_SHMEM) i = 0; while ((rpmsgShmemSize >> i) > 0x1U) { i++; } if (i != 0) { /* The MPU region size should be 2^N, 5<=N<=32, region base should be multiples of size. */ BOARD_EARLY_ASSERT(!(rpmsgShmemStart % rpmsgShmemSize)); BOARD_EARLY_ASSERT(rpmsgShmemSize == (uint32_t)(1 << i)); BOARD_EARLY_ASSERT(i >= 5); /* Region 16 setting: Memory with Normal type, not shareable, non-cacheable */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_SHMEM, rpmsgShmemStart); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 0, 0, 0, 0, i - 1); } #endif この作業を行う際に、board.h 内に追加の MPU 領域用のマクロを作成しました。こんな感じで: #define BOARD_MPU_REGION_SHMEM (16) /* rpmsg shared memory */ これらの変更を加えたことで、LVGLはアーティファクトなしで描画できるようになったが、マルチコア通信は依然として失敗する。マルチコア通信を動かすM4Threadにブレークポイントを設けました。時には最初にメッセージを受信したことを通知してトリガーされますが、メッセージデータが誤っているため、そのメッセージデータに関連するコードは実行されません。ブレークポイントが数回トリガーされると、それ以降は二度とトリガーされなくなります。 このプロジェクトを実行するために、MPU領域の定義など、何か見落としている点はありますか? Re: Multicore Project setup of an additional MPU region 変更はプライマリコアにのみ適用されました。プライマリコアはBOARD_EarlyConfigMPUを実行し、セカンダリコアはBOARD_ConfigMPUを実行するため、セカンダリコアの機能には、プライマリコアに変更を加えた動作が既に含まれています。以下は、セカンダリコアがハードウェア初期化時に実行する処理の一部です。 #elif __CORTEX_M == 4 void BOARD_ConfigMPU(void) { #if defined(__CC_ARM) || defined(__ARMCC_VERSION) ... #elif defined(__MCUXPRESSO) extern uint32_t __base_NCACHE_REGION; extern uint32_t __top_NCACHE_REGION; uint32_t nonCacheStart = (uint32_t)(&__base_NCACHE_REGION); uint32_t nonCacheSize = (uint32_t)(&__top_NCACHE_REGION) - nonCacheStart; #elif defined(__ICCARM__) || defined(__GNUC__) ... #endif #if defined(__USE_SHMEM) #if defined(__CC_ARM) || defined(__ARMCC_VERSION) ... #elif defined(__MCUXPRESSO) extern uint32_t __base_rpmsg_sh_mem; extern uint32_t __top_rpmsg_sh_mem; uint32_t rpmsgShmemStart = (uint32_t)(&__base_rpmsg_sh_mem); uint32_t rpmsgShmemSize = (uint32_t)(&__top_rpmsg_sh_mem) - rpmsgShmemStart; #elif defined(__ICCARM__) || defined(__GNUC__) ... #endif #endif そして関数の後半では次のようになります。 uint32_t i = 0; /* Only config non-cacheable region on system bus */ assert(nonCacheStart >= 0x20000000); ... while ((nonCacheSize >> i) > 0x1U) { i++; } if (i != 0) { /* The MPU region size should be 2^N, 5<=N<=32, region base should be multiples of size. */ assert(!(nonCacheStart % nonCacheSize)); assert(nonCacheSize == (uint32_t)(1 << i)); assert(i >= 5); /* Region 0 setting: Memory with device type, not shareable, non-cacheable */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_NONCACHE, nonCacheStart); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, i - 1); } #if defined(__USE_SHMEM) i = 0; while ((rpmsgShmemSize >> i) > 0x1U) { i++; } if (i != 0) { /* The MPU region size should be 2^N, 5<=N<=32, region base should be multiples of size. */ assert(!(rpmsgShmemStart % rpmsgShmemSize)); assert(rpmsgShmemSize == (uint32_t)(1 << i)); assert(i >= 5); /* Region 1 setting: Memory with device type, not shareable, non-cacheable */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_RPMSG_SHMEM, rpmsgShmemStart); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, i - 1); } #endif どちらのプロジェクトも、プリプロセッサで__USE_SHMEMが定義されています。以下は、セカンダリコアのメモリ構成です。 他に何か見落としている点があるのでしょうか?それとも、私の変更方法が間違っているのでしょうか?メインプロジェクトの設定にある「リンカースクリプトの管理」セクションに何か追加する必要はありますか?機会があれば、EVK-Bボード上で動作するプロジェクトの.zipをアップロードして、問題を確認したり再現したりできると思います。 Re: Multicore Project setup of an additional MPU region こんにちは、 @CMoran さん。 あなたの理解は理にかなっていますが、あなたが言及した変更がCM7とCM4の両方のコアに適用されたかどうかは明確ではありませんでした。各コアにはboard.hの定義があり、そこで、それぞれがMPUの独自の構成を使用して、初期ハードウェア初期化時にセットアップを行います。ご指摘の変更がプライマリコアのみに適用された場合、コアがメモリ領域を均等に扱わない可能性があり、その結果、このような予期せぬ動作が発生すると考えられます。 変更が両方のコアに適用され、MPU設定が一致していることを確認してください。また、両方のプロジェクトのプリプロセッサ定義で__USE_SHMEMが設定されていることも確認してください。 Re: Multicore Project setup of an additional MPU region こちらが.zipファイルですその中には、M7およびM4プロジェクトが含まれている。修正しても結局うまくいかなかったので、修正前の状態のままにしておきました。この例では、ターミナルを開いて中央のボタンを押すと、m7コアとm4コアの両方からメッセージが表示されます。画面上を移動する設定アイコンには、説明されているように多数の不具合が発生しています。 m7プロジェクトから__USE_SHMEMプリプロセッサを削除すると、設定アイコンの不具合は解消されますが、マルチコア通信が失敗します。 上記で適用した変更を加えることで設定アイコンも修正されますが、マルチコア通信は失敗します。 このデモで使用されているスクリーンはRK055HDMIPI4MA0です。 Re: Multicore Project setup of an additional MPU region 残念ながら、新しいメモリ領域定義を作成する前に: #define BOARD_MPU_REGION_SHMEM (16) /* rpmsg shared memory */ 私は単に、キャッシュ以外の用途で定義済みのメモリ領域を再利用していただけです。 #define BOARD_MPU_REGION_NONCACHE (10) /* Noncacheable space in application */ そして、私も同じ結果になった。非キャッシュ領域に合わせて、新しいメモリ領域の定義を10に変更しました。コア同士の通信はうまくいかなかった。 ブレークポイントを使用して両方のコアでrpmsg共有メモリの開始位置とサイズを確認しましたが、両方とも正しい開始位置(0x20340000)とサイズ(0x10000)でした。両方のコアのARM_MPU_RASR()関数の4番目のパラメータを1に変更し、その領域が「共有可能」であることを示すようにしました。相変わらず成果は出ていない。あなたかチームメンバーの方に時間があれば、私のプロジェクトのコードを別の返信に投稿しましたので、ご覧ください。試せばいいアイデアが尽きかけています。 Re: Multicore Project setup of an additional MPU region こんにちは、 @CMoran さん。 わかった。最初の返信に戻りますが: あなたは、メモリ領域の新しい定義を作成したと述べました。 #define BOARD_MPU_REGION_SHMEM (16) /* rpmsg shared memory */ しかし、ARM_MPU_RBAR() の定義では、MPU_RBAR_REGION_Msk が使用されており、これは 15 と定義されています。 #define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) CM7では、地域の数を16と定義しており、0~15の番号が付けられている。 つまり、実際にはリージョン0を設定しているのです。 Re: Multicore Project setup of an additional MPU region こんにちは、 @CMoran さん。 プロジェクトをビルディングし、その結果生まれた.ldのメモリ領域を分析した後、LVGLのフレームバッファとマルチコアメッセージバッファが、非連続した物理メモリであるためマージできない別々のメモリ領域に配置されている領域が見えます。 LVGLフレームバッファ用のNCACHE_REGION(アドレス0x81000000、16MB、SDRAM内) マルチコアメッセージバッファ用のrpmsg_sh_mem(アドレス0x20340000、64KB、OCRAM内) とはいえ、MPUリージョン7は現在、キャッシュ可能なノーマルメモリとして0x20300000〜0x2037FFFF KB(512KB)をカバーしており、この範囲にはrpmsg_sh_mem領域も含まれます。これにより、共有メモリがキャッシュ可能になり、あなたが見ているようなコア間通信エラーが発生する可能性があります。リージョン7のサイズを縮小して、すでにキャッシュできないリージョン3にrpmsg_sh_memが落ちるようにすることは、既存ドライバのMPUレベルの変更なしにメッセージバッファの適切な機能を確保する簡単な解決策かもしれません。 Re: Multicore Project setup of an additional MPU region こんにちは、 @EdwinHzさん あなたの提案を少し試してみました。MPUのリージョン7(OCRAM2)を512KBから256KBに変更しました。 /* Region 7 setting: Memory with Normal type, not shareable, outer/inner write back */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_OCRAM_B, 0x20300000U); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_256KB); __USE_SHMEM プリプロセッサを削除した後、rpmsg_sh_mem は MPU 領域 3 にフォールスルーしますが、これは既にキャッシュ不可として定義されています。私が作成したデモは、意図したとおりに動作するようになりました。
View full article
I.MX8 NPUのScarthgapとWrynoseの性能差 こんにちは、NXPさん。 NXPが提供する`mobilenet_v1_1.0_224_quant.tflite`のベンチマークテストを実施しました。VX NPUデリゲートを用いたモデル。以下の結果は、Scarthgap 6.6.23および Wrynose 6.18.37 で繰り返しベンチマークを実行した際の、定常状態の `Inference (avg)` 実行時間です。 Wrynoseの平均推論時間は、Scarthgapの結果よりも約27%長い。 この差は想定内ですか?確認すべきNPU、デリゲート、またはベンチマークの設定はありますか? ベンチマークコマンドは以下のとおりです。 ```bash ./benchmark_model--graph=mobilenet_v1_1.0_224_quant.tflite --external_delegate_path=/usr/lib/libvx_delegate.so 「`」 敬具 ガブリエル・ゴスデン Re: I.MX8 NPU performance difference between Scarthgap and Wrynose こんにちは、 i.MX の8M Plus EVKでも同様の性能差を再現できました。同じMobileNetモデルとテスト構成を用いて、Scarthgapで約2.96ms、Wrynoseで3.55msと約20%の推論時間増加を測定しました。 私のテストでは、両方のリリースで完全なモデルが正常に委任されており、関連するNPU/MLクロック周波数も同じレートで設定されていることが確認されました。プロファイリングによって、パフォーマンスの差はVXデリゲートの実行パス内に留まっていることも確認しました。 この挙動は再現可能であり、利用可能な結果はCPUフォールバックや低いNPUクロック周波数ではなく、ソフトウェア実行スタックに関連していることが示されています。
View full article
FS26 standby Hi, NXP expert, I have encountered a problem related to FS26: Testing revealed that the FS26 cannot enter standby mode. Single-step execution continues, but the FS26 fails to enter standby mode. A reset occurs whenever the Sbc_fs26_SetOperatingMode() interface is run at full speed. The hardware wake signal has been removed, and no other signals are connected to the reset pin. Small Engine Driver Re: FS26 standby Hi Chenxu From which state did you switch to standby state? Could you please provide the command you issued? Re: FS26 standby Hi, thank you for your help, the problem is solved. Testing revealed that when the wake-up time is less than 5ms, reading the M_WIO_FLG register returns 0, indicating that the wake-up source cannot be read. Could you please help answer this question? Thank you. Re: FS26 standby HI CHENXU Please submit a new ticket for the new topic! https://support.nxp.com/s/?language=en_US
View full article
Request for timing model (.v) for LPPDR4 simulation using HyperLynx. Hi, I am using MIMX8ML8CVNKZAB for a project and trying to simulate the LPDDR4-interface using HyperLynx. Hyperlynx request a timing model file (*.v) for the memory controller. Can you please provide me with the timing model for MIMX8ML8CVNKZAB. Best regards, Buddika Re: Request for timing model (.v) for LPPDR4 simulation using HyperLynx. Hello, We don't provide special Verilog Design File for our chip, we just follow JEDEC spec, and Hyperlynx provide many standard .v file for different DDR type. Use the default timing is enough, for example: Best regards.
View full article
IC COD COD(ウェハーの位置)の確認にご協力ください。 MC9S12XDP512MAG Re: IC COD こんにちは、Weijun Ni ご連絡ありがとうございます。 残念ながら、COD/COA情報はコミュニティ内で共有することは許可されていません。 https://support.nxp.com/s/?language=en_US からチケットを送信してください。そちらでサポートいたします。 ご理解いただきありがとうございます。 ベッキー
View full article
MIMXRT1176DVMABのための最小システムデザインガイド 親愛なるNXPサポートチームへ、 私はQuectel RG255CGL00AB-4M2-SGASA_A モデムを中心に構築されたネットワーク製品のために、 MIMXRT1176DVMAB を基にしたカスタムPCBを設計しています。最初のバージョンは順調に動作しており、現在i.MX RT1176を使用した次期バージョンの開発を進めています。 MCUはMacとQuectelモデムの間に位置し、Mac向けのUSBネットワークインターフェースとインターネットトラフィックの転送を提供します。また、モデムの起動・回復、デバイス識別、トラフィックの制限と使用状況の計定、診断、安全なファームウェアアップデート、リモートフリートマネジメントも、補助アプリを必要とせずに処理します。 以下の場所を教えていただけるか、案内していただけませんか: 電源ユニット、クロック、起動設定、リセット、外部フラッシュ、プログラミング/デバッグインターフェースを網羅した簡潔な 最小システムのハードウェアデザインガイド です。 の 回路図シンボルとPCBフットプリントのCADファイル(KiCad互換フォーマットが望ましい)。 カスタムPCB上でMCUを実装するための関連する参考回路図やアプリケーションノートなどがあれば教えてください。 EVKB回路図には初期設計には不要なペリフェラルが多く含まれているため、重要な回路の明確な参照が特に役立ちます。 お時間とご協力に感謝いたします。 Re: Minimum-System Design Guide for MIMXRT1176DVMAB こんにちは、 @Onyeka さん。 まずは MIMXRT1160/1170プロセッサのハードウェア開発ガイドから始めることをお勧めします。そこには基板レイアウトの推奨事項や設計チェックリストの情報が載っています。さらに、一部のピンが使用されない場合、ガイドには未使用のピンの取り扱いに関する推奨事項を記載したセクションが含まれています。 CADモデルについては、 i.MX RT1170 製品ページの購入/Parametricセクションで特定の部品番号を検索すると見つかります。 よろしくお願いします パブロ
View full article
IC COD 请帮忙确认晶圆位置(COD) MC9S12XDP512MAG Re: IC COD 你好倪伟军 感谢您的联系。 遗憾的是,社区不允许分享死亡/死亡原因信息。 请提交工单至 https://support.nxp.com/s/?language=en_US ,我们将竭诚为您提供帮助。 谢谢您的理解 贝基
View full article
I.MX8 NPU performance difference between Scarthgap and Wrynose Hi NXP, I have benchmarked NXP’s provided `mobilenet_v1_1.0_224_quant.tflite` model using the VX NPU delegate. The results below are the steady-state `Inference (avg)` timings from repeated benchmark runs on Scarthgap 6.6.23 and Wrynose 6.18.37. The Wrynose average inference time is about 27% higher than the Scarthgap result.  Is this difference expected? Are there NPU, delegate, or benchmarking settings I should check? The benchmark command was: ```bash ./benchmark_model --graph=mobilenet_v1_1.0_224_quant.tflite --external_delegate_path=/usr/lib/libvx_delegate.so ``` Kind regards, Gabriel Gosden Re: I.MX8 NPU performance difference between Scarthgap and Wrynose Hello,  I was able to reproduce a similar performance difference on our i.MX 8M Plus EVK. Using the same MobileNet model and test configuration, I measured approximately 2.96 ms on Scarthgap compared with 3.55 ms on Wrynose, which is approximately a 20% increase in inference time. My testing confirms that the complete model is successfully delegated in both releases, and the relevant NPU/ML clock frequencies are configured at the same rates. I also confirmed through profiling that the performance difference remains within the VX Delegate execution path. The behavior is reproducible and the available results indicate that the difference is associated with the software execution stack rather than CPU fallback or a lower nominal NPU clock frequency. 
View full article
请求使用 HyperLynx 进行 LPPDR4 仿真的时序模型 (.v)。 您好, 我正在使用 MIMX8ML8CVNKZAB 进行一个项目,并尝试使用 HyperLynx 模拟 LPDDR4 接口。 Hyperlynx 请求内存控制器的时序模型文件(*.v)。请问能否提供MIMX8ML8CVNKZAB的时序模型? 顺祝商祺! 布迪卡 Re: Request for timing model (.v) for LPPDR4 simulation using HyperLynx. 你好, 我们不提供芯片专用的Verilog设计文件,我们只是遵循JEDEC规范,而Hyperlynx提供了许多标准的.v文件。适用于不同DDR类型的文件。使用默认定时就足够了,例如: 顺祝商祺!
View full article
IC COD Please help confirm the COD (wafer location) for  MC9S12XDP512MAG Re: IC COD Hello Weijun Ni Thanks for reaching out. Unfortunately, COD/COA information is not allowed to be shared in community. Please kindly submit a ticket https://support.nxp.com/s/?language=en_US , we will help there Thanks for understanding Becky
View full article
Scarthgap 和 Wrynose 的 I.MX8 NPU 性能差异 您好,NXP, 我已经对 NXP 提供的 `mobilenet_v1_1.0_224_quant.tflite` 进行了基准测试。使用 VX NPU 代理的模型。下面的结果是在 Scarthgap 6.6.23和 Wrynose 6.18.37 上重复基准测试运行的稳态“推理(平均)”计时结果。 Wrynose算法的平均推理时间比Scarthgap算法的结果高出约27%。 这种差异是预期之内的吗?我应该检查哪些 NPU、委托或基准测试设置? 基准测试命令为: ```bash ./benchmark_model--graph=mobilenet_v1_1.0_224_quant.tflite --external_delegate_path=/usr/lib/libvx_delegate.so ``` 此致敬礼, 加布里埃尔·戈斯登 Re: I.MX8 NPU performance difference between Scarthgap and Wrynose 你好, 我在我们的 i.MX 8M Plus EVK 上也重现了类似的性能差异。使用相同的 MobileNet 模型和测试配置,我在 Scarthgap 上测得的时间为约 2.96 毫秒,而在 Wrynose 上测得的时间为 3.55 毫秒,推理时间大约增加了 20% 。 我的测试证实,两个版本中都成功委托了整个模型,并且相关的 NPU/ML 时钟频率配置为相同的速率。我还通过性能分析确认,性能差异仍然存在于 VX Delegate 执行路径中。 该现象可复现,现有结果表明,差异与软件执行堆栈有关,而非CPU回退或较低的NPU标称时钟频率。
View full article
HyperLynxを用いたLPPDR4シミュレーション用のタイミングモデル(.v)の要請。 こんにちは、 プロジェクトでMIMX8ML8CVNKZABを使っていて、HyperLynxを使ってLPDDR4インターフェースをシミュレートしようとしています。 Hyperlynxはメモリコントローラ用のタイミングモデルファイル(*.v)を要求します。MIMX8ML8CVNKZABのタイミングモデルを教えていただけますか? よろしくお願いいたします。 ブッディカ Re: Request for timing model (.v) for LPPDR4 simulation using HyperLynx. こんにちは、 私たちのチップには特別なVerilog Design Fileは提供していません。JEDEC仕様に従っています。Hyperlynxは多くの標準.vを提供しています異なるDDRタイプ用のファイル。デフォルトのタイミングを使用すれば十分です。例えば、次のようになります。 よろしくお願いいたします。
View full article
FS26 standby Hi,NXP专家,我遇到一个FS26相关的问题: 测试发现FS26无法进入standby模式,单步运行的时候可以运行下去,但是FS26无法进入standby。只要全速运行Sbc_fs26_SetOperatingMode()接口的时候会出现复位。硬件上的Wake信号已经去掉了,且reset引脚上没有接其他信号。 Small Engine Driver Re: FS26 standby Hi Chenxu 您是从哪个状态切换到standby状态? 如何发的命令能给出吗? Re: FS26 standby Hi,谢谢你的帮助,这个问题解决了。 测试发现当唤醒时间小于5ms的话,读M_WIO_FLG寄存器出现0,读不到唤醒源的情况。可以帮忙回答这个问题吗,谢谢 Re: FS26 standby HI CHENXU 新的topic请重新提交新的ticket吧! https://support.nxp.com/s/?language=en_US
View full article
i.MX95: neutron_perf.sh で NPU 負荷が 100% と誤って表示される (perf_counters 行はバイト単位で読み取られます) こんにちは、 i.MX95では、neutron_perf.sh(eiq-examples-npu-utils、UG10166セクション8.4.5.1)が、実際の負荷が約60%であるにもかかわらず、NPU負荷が100%と表示されることがあります。 環境 - 基板: IMX95LPD5EVK-19 - BSP: LF_6.18.20_2.0.0 (neutron_perf.sh は lf-6.18.37_2.1.0 と同じです) - eIQ Neutron SDK 3.2.3 繁殖のステップ 1. MobileNetモデルを、neutron-compilerでimx95用に変換します(TensorFlow Liteの例フォルダ内のTensorFlow Liteフォルダ内のmobilenet_v1_1.0_224_quant.tflite)。 2. ボード上で、変換したモデルと背景にNeutron Delegateをbenchmark_modelして同時にneutron_perf.shを実行します。 3. 実際の負荷は約60%ですが、60秒間に100%と表示されたことが11回ありました。 原因 1.debugfsのperf_countersファイルはシーク可能ではないため、bashの「read」コマンドは1バイトずつ読み込みます。ドライバ関数perf_counters_read()はすべての読み取り呼び出しで回線を再構築するため、1行が異なるモーメントの値を混ぜ、一部の値は切れます。私たちのテストでは、「read」がついた300件中52件が破損し、「cat」で300件中0件が壊れました。 2. 32ビットカウンターが最大値に達すると、ドライバはそれを0にリセットします。スクリプトは負の差の絶対値を取り、これが100%となります。 提案された修正案(テスト済み:同じテストで100%成功しなかった) 1. 行全体を一度に読み込み(例えば cat の場合)、それを変数に分割します。 2. NACTの差が負の場合は、絶対値を取る代わりに32乗の2を加えます。 必要ならパッチを共有できます。 ドライバ側では、perf_countersにseq_fileを使うことで原因1(未確認)も防げる可能性が高いです。 注:修正後も、NACTが最大値に達するたびに(負荷が60%の場合、約7秒ごと)、NPU負荷は1インターバル低下します。これは、次の読み取りでリセットされるまでNACTがそこで停止するためです。 質問 1.これは既知の問題ですか? 2. 修正はFUTUREのBSPリリースに含まれることはCANか? よろしくお願いします。 Re: i.MX95: neutron_perf.sh shows false 100% NPU Load (perf_counters line is read byte by byte) こんにちは、 2週間返信がなかったので、念のためご連絡いたしました。 レポートの確認を容易にするため、提案された修正案をパッチファイル(neutron_perf_fix.patch.txt)として添付しました。neutron_perf.sh の 2 行だけを変更します。最初の投稿で説明したとおりです。 1. cat コマンドで perf_counters の行全体を一度に読み込み、それを変数に分割します。 2. NACTの差が負の値の場合は、絶対値を取る代わりに2の32乗を加えます。 このパッチは、GitHub の nxp-imx/eiq-example リポジトリ (ブランチ lf-6.18.20_2.0.0) にある npu_utils/neutron_perf.sh を対象としています。これはUG10166(i.MX Machine Learning ユーザー's Guide)第8.4.5.1節で説明されているスクリプトです。 https://www.nxp.com/docs/en/user-guide/UG10166.pdf NXPの誰かが、私の最初の投稿の2つの質問を確認してもらえますか? 1.これは既知の問題ですか? 2. この問題はFUTUREのBSPリリースでCAN修正でしょうか?添付のパッチはあくまで提案です。例えばドライバ側の別の修理も問題ありません。 よろしくお願いします。
View full article
FS26スタンバイ NXPのエキスパートの方、こんにちは。FS26に関連する問題が発生しました。 テストの結果、FS26がスタンバイモードに移行できないことが判明しました。シングルステップ実行は継続されますが、FS26はスタンバイモードに移行できません。Sbc_fs26_SetOperatingMode()インターフェースがフルスピードで実行されるたびにリセットが発生します。ハードウェアウェイク信号は削除されており、リセットピンには他の信号は接続されていません。 小型エンジンドライバー Re: FS26 standby こんにちは、チェンシュウ どの状態からスタンバイ状態に切り替えましたか? 実行したコマンドを教えていただけますか? Re: FS26 standby こんにちは、ご協力ありがとうございました。問題は解決しました。 テストの結果、ウェイクアップ時間が5ms未満の場合、M_WIO_FLGレジスタの読み取り値が0となり、ウェイクアップソースが読み取れないことが判明しました。この点についてご回答いただけますでしょうか?よろしくお願いいたします。 Re: FS26 standby こんにちは、チェンシュー 新しいトピックについては、新しいチケットを送信してください! https://support.nxp.com/s/?language=en_US
View full article
i.MX95:neutron_perf.sh 显示错误的 100% NPU 负载(perf_counters 行是逐字节读取的) 你好, 在 i.MX95 上,neutron_perf.sh(eiq-examples-npu-utils,UG10166 第 8.4.5.1 节)有时会显示 100% NPU 负载,而实际负载约为 60%。 环境 - 板:IMX95LPD5EVK-19 - BSP:电路板支持包。LF_6.18.20_2.0.0(lf-6.18.37_2.1.0 中的 neutron_perf.sh 相同) - eIQ Neutron SDK 3.2.3 重现步骤 1. 使用 neutron-compiler 将电路板支持包。中的 MobileNet 模型(TensorFlow Lite 示例文件夹中的 mobilenet_v1_1.0_224_quant.tflite)转换为 imx95 格式。 2. 在板上,以转换后的模型和 Neutron 委托在后台运行 benchmark_model,同时运行 neutron_perf.sh。 3. 实际负载约为 60%,但在 60 秒内出现了 11 次 100% 的情况。 原因 1.debugfs 中的 perf_counters 文件不可查找,因此 bash“read”命令一次读取一个字节。驱动函数 perf_counters_read() 会在每次读取调用时重建行,因此一行会混合来自不同时刻的值,并且某些值会出错。在我们的测试中,300 个包含“read”的读取中有 52 个被破坏,而 300 个包含“cat”的读取中没有一个被破坏。 2. 当 32 位计数器达到其最大值时,驱动程序将其 RESET 到 0。脚本取负差值的绝对值,即 100%。 建议的修复方案(已测试:在同一测试中未达到 100% 的成功率) 1. 一次性读取整行(例如,使用 cat),然后将其拆分为变量。 2. 当 NACT 差值为负数时,将 32 的幂加 2,而不是取绝对值。 如有需要,我们可以分享补丁。 在驱动程序方面,使用 seq_file 作为 perf_counters 可能也能防止原因 1(未经验证)。 注意:即使进行了修复,每次 NACT 达到最大值时(大约每 7 秒达到 60% 的负载),NPU 负载也会下降一个时间间隔,因为 NACT 会在那里停止,直到下一次读取将其 RESET。 问题 1.这是已知问题吗? 2. 该修复程序能否包含在未来的 电路板支持包。版本中? 谢谢! Re: i.MX95: neutron_perf.sh shows false 100% NPU Load (perf_counters line is read byte by byte) 你好, 这是善意的后续跟进,因为两周以来一直没有收到回复。 为了方便审阅报告,我已将建议的修复方案作为补丁文件(neutron_perf_fix.patch.txt)附上。它只修改了 neutron_perf.sh 文件中的两行代码。正如我在第一篇帖子中所述: 1. 使用 cat 命令一次性读取 perf_counters 行,然后将其拆分为变量。 2. 当 NACT 差值为负数时,将 32 的幂加 2,而不是取绝对值。 该补丁针对 GitHub 上的 nxp-imx/eiq-example 存储库(分支 lf-6.18.20_2.0.0)中的 npu_utils/neutron_perf.sh。这是 UG10166(i.MX 机器学习用户指南)第 8.4.5.1 节中描述的脚本: https://www.nxp.com/docs/en/user-guide/UG10166.pdf NXP 的工作人员能否帮忙查看一下我第一篇帖子中的两个问题? 1.这是已知问题吗? 2. 这个问题能否在未来的 电路板支持包。 版本中得到解决?附件中的补丁只是一个建议。采取其他解决方案,例如在驾驶员侧进行修复,也是可以的。 谢谢!
View full article
MIMXRT1176DVMAB 的最小系统设计指南 尊敬的恩智浦技术支持团队: 我正在根据以下内容设计定制PCB: MIMXRT1176DVMAB 一款基于 Quectel 的网络产品 RG255CGL00AB-4M2-SGASA_A 调制解调器。我们的第一个版本运行良好,现在我们正在使用 i.MX RT1176 开发下一个版本。 MCU 将位于 Mac 和 Quectel 调制解调器之间,提供面向 Mac 的 USB 网络接口并转发互联网流量。它还可以处理调制解调器的启动和恢复、设备识别、流量限制和使用情况统计、诊断、安全固件更新以及远程车队管理,而无需配套应用程序。 请问您能否提供或指引我联系以下机构: 简明扼要 最小系统硬件设计指南 涵盖该部件的电源、时钟、启动配置、复位、外部闪存和编程/调试接口。 这 原理图符号和PCB封装CAD文件,最好是KiCad兼容格式。 任何与在定制PCB上实现MCU相关的参考原理图或应用笔记。 EVKB 原理图包含许多我们最初设计中不需要的外围设备,因此,一份专注于基本电路的参考资料将特别有帮助。 感谢您抽出时间提供帮助。 Re: Minimum-System Design Guide for MIMXRT1176DVMAB 嗨@Onyeka , 我建议先从MIMXRT1160/1170 处理器的硬件开发指南入手,因为它提供了有关板布局建议和设计清单的信息。此外,如果某些引脚将不使用,该指南还包含一个章节,其中提供了处理未使用引脚的建议。 关于 CAD 模型,您可以在i.MX RT1170产品页面的“购买/参数化”部分搜索特定零件编号来找到它们。 此致 巴勃罗
View full article
i.MX95: neutron_perf.sh shows false 100% NPU Load (perf_counters line is read byte by byte) Hello, On i.MX95, neutron_perf.sh (eiq-examples-npu-utils, UG10166 section 8.4.5.1) sometimes shows 100% NPU Load while the actual load is about 60%. Environment - Board: IMX95LPD5EVK-19 - BSP: LF_6.18.20_2.0.0 (neutron_perf.sh is the same in lf-6.18.37_2.1.0) - eIQ Neutron SDK 3.2.3 Steps to reproduce 1. Convert the MobileNet model in the BSP (mobilenet_v1_1.0_224_quant.tflite in the TensorFlow Lite examples folder) with neutron-compiler for imx95. 2. On the board, run benchmark_model with the converted model and the Neutron delegate in the background, and run neutron_perf.sh at the same time. 3. The actual load is about 60%, but 100% was shown 11 times in 60 seconds. Cause 1. The perf_counters file in debugfs is not seekable, so the bash "read" command reads it one byte at a time. The driver function perf_counters_read() rebuilds the line on every read call, so one line mixes values from different moments, and some values break. In our test, 52 of 300 reads with "read" were broken, and 0 of 300 with "cat". 2. When a 32-bit counter reaches its maximum value, the driver resets it to 0. The script takes the absolute value of the negative difference, which gives 100%. Proposed fix (tested: no 100% in the same test) 1. Read the whole line at once (for example with cat), and then split it into the variables. 2. When the NACT difference is negative, add 2 to the power of 32 instead of taking the absolute value. We can share the patch if needed. On the driver side, using seq_file for perf_counters would probably also prevent cause 1 (not verified). Note: even with the fix, the NPU Load drops for one interval each time NACT reaches its maximum value (about every 7 seconds at 60% load), because NACT stops there until the next read resets it. Questions 1. Is this a known issue? 2. Could the fix be included in a future BSP release? Thank you. Re: i.MX95: neutron_perf.sh shows false 100% NPU Load (perf_counters line is read byte by byte) Hello, This is a gentle follow-up, as there has been no reply for two weeks. To make the report easier to review, I have attached the proposed fix as a patch (neutron_perf_fix.patch.txt). It changes only two lines of neutron_perf.sh, as described in my first post: 1. Read the perf_counters line all at once with cat, and then split it into the variables. 2. When the NACT difference is negative, add 2 to the power of 32 instead of taking the absolute value. The patch is against npu_utils/neutron_perf.sh in the nxp-imx/eiq-example repository on GitHub (branch lf-6.18.20_2.0.0). This is the script described in UG10166 (i.MX Machine Learning User's Guide), section 8.4.5.1: https://www.nxp.com/docs/en/user-guide/UG10166.pdf Could someone from NXP check the two questions in my first post? 1. Is this a known issue? 2. Could this issue be fixed in a future BSP release? The attached patch is only a suggestion. A different fix, for example on the driver side, is also fine. Thank you.
View full article