Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
S32G3 LLCE CANドライバーをfreeRTOSで動かす方法 こんにちは、みんな、 私はS32G-VNP-RDB3ボードを扱っており、このモジュールでLLCE CANを使おうとしています。NXPのウェブサイトを検索しましたが、S32G2のポーティング方法がS32DS3.4しか見つかりませんでした。S32DS3.5は搭載されていません。S32G3の移植方法。私のセットアップはS32DS3.5です。RTDは4.4.4です。EB Tresos StudioとLLCEの場合、どのバージョンを使ってコードをコンパイルCAN2CAN通過させるべきでしょうか?S32G-VNP-RDB3(S32G399A)のポーティング方法はどこで見つけられますか?以下は私のS32DS.3.5ですインストール手順。 ゴールドVIP Re: How to let S32G3 LLCE CAN driver run in freertos こんにちは、 @Jimmybai 投稿ありがとうございます。 よろしければ、お使いのシステム構成を教えていただけますか? 1. テストで使用したLLCEのバージョンは何ですか?使用したRTDのバージョンは何ですか?(RTD4.4.4は存在しないため) 2. では、RDB3上のFreeRTOS内にCAN2CANアプリケーションを実装したいのですか? BR チェイン Re: How to let S32G3 LLCE CAN driver run in freertos こんにちは、チェンインさん 実際、あなたのRTDバージョンが何を指しているのか分かりません。もしかしてLLCE RTDのことでしょうか?LLCE環境のセットアップ方法についてはほとんど知識がありません。私のセットアップはS32G399Aベンチで、S32G3 RTDは4.0.0です。セットアップとダウンロードの位置におすすめのLLCEとRTDのバージョンS32G399A教えてもらえますか?本当に、S32G3用のLLCE設定ガイドが必要なんです。ありがとう。 Re: How to let S32G3 LLCE CAN driver run in freertos こんにちは、 @Jimmybai ご返信ありがとうございます。 専用のバージョン依存関係がない場合は、まず AN13423 を参考にしてS32GプラットフォームでのCAN2CAN基本的な使い方を学ぶことをお勧めします BR チェイン
View full article
如何使用 S32 设计工作室 MCP 集成 如何使用S32 Design Studio MCP集成?是否有相关资料和文档? Re: How to use S32 Design Studio MCP Integration 你好, 遗憾的是,相关文档和使用示例仍在开发中。我希望它能尽快对外发布,但不知道具体日期。
View full article
FreeMaster Over CANは割り込み時にポーリングモードでコンパイルできません 「FreeMaster over CAN」と「s32k3xx_fm_over_can_s32ct」から生成されたコードから、ポーリングモードを有効にするために3 micoを変更しようとしています。 FMSTR_SHORT_INTR 、 FMSTR_POLL_DRIVEN 、およびFMSTR_DEBUG_TX しかしコンパイルに失敗しました。理由は、転送機能のフリーマスターオーバーが割り込み時に「s32k3xx_fm_over_can_s32ct」応答から可能になるためです。しかし、モータ制御の場合、少なくとも10kHzの高速タスクやBCTU、ホール、ワッチドッグ、フリーマスターはControllewr K312からの応答を受け取れず、ポーリングモードが必要です。 これら3つのマイクロコントローラを有効にして、「s32k3xx_fm_over_can_s32ct」のポーリングモードを開く方法 Re: FreeMaster Over CAN on interrupt fail to compile in polling mode 通信手段は相互に排他的な選択肢である。エラーメッセージはまさにそのことを意味しています。 FreeMASTERドライバールーチンはかなりの処理時間を必要とする場合があり、これら3つの設定は利用ケースに応じて実行のバランスを取るのに役立ちます。 FMSTR_POLL_DRIVEN - FreeMASTERルーチンはFMSTR_Poll関数内で完全に実行されます。開発者は呼び出しタイミングを決定しますが、FreeMASTERが通信速度に追いつけるような頻度で呼び出されるようにする必要があります。 FMSTR_LONG_INTR - FreeMASTERルーチンは完全にFMSTR_CanIIsr関数内で実行されます。デベオパーはシステムに高い優先度を割り当てることで実行を強制します(これは多数の割り込み時に最適だったため使われたと思います)。 FMSTR_SHORT_INTR - は前述の2つの混合であり、通信は割り込みハンドラー(FMSTR_CanIsr)で行われ、プロセッシングは(FMSTR_Poll)で行われます あなたが試すべきなのは、最後の方法(ポーリングと割り込みの組み合わせ)だと思います。それでも割り込みはCANフレームの読み取りを保証するかもしれませんが、FMSTR_Poll呼び出す頻度が十分でない場合(より高い優先度の割り込みによる)、ボードが時間通りに応答しないことがあります。その結果、FreeMASTERデスクトップツールでタイムアウトエラーが表示されます。 開発者は、計算集約型アプリケーションにおいてFreeMASTERドライバーのルーチンに十分な時間を割り当てられるかを確実にしなければなりません。 これでFreeMASTERの通信モードが明確になったことを願います。 Re: FreeMaster Over CAN on interrupt fail to compile in polling mode 以前、あなたと同じ設定で試してみました。 例えば、 FMSTR_POLL_DRIVENを1に変更しました(以前は割り込みモードとして0でした)。 // 割り込み駆動またはポーリング駆動のシリアル通信を選択します #define FMSTR_LONG_INTR 1 割り込みにおけるメッセージプロセッシングの完了 #define FMSTR_SHORT_INTR 0 //割り込みでキューイングが完了 #define FMSTR_POLL_DRIVEN 1 /*0 */ 7 エラー: 主に #if (FMSTR_LONG_INTR && (FMSTR_SHORT_INTR || FMSTR_POLL_DRIVEN )) || \ (FMSTR_SHORT_INTR && (FMSTR_LONG_INTR || FMSTR_POLL_DRIVEN )) || \ ( FMSTR_POLL_DRIVEN && (FMSTR_LONG_INTR || FMSTR_SHORT_INTR)) || \ !( FMSTR_POLL_DRIVEN || FMSTR_LONG_INTR || FMSTR_SHORT_INTR) 割り込みモードでは1つだけ選択可能です */ #エラーFMSTR_LONG_INTR、FMSTR_SHORT_INTR、またはFMSTR_POLL_DRIVENのいずれか1つだけを有効にする必要があります #endif コンパイル時に上記で3つのエラーが発生しました ../FMsrc/freemaster_private.h:326:2: エラー: #error FMSTR_LONG_INTR、FMSTR_SHORT_INTR、またはFMSTR_POLL_DRIVENのいずれか1つだけを有効にする必要があります 326 | #エラー FMSTR_LONG_INTR、FMSTR_SHORT_INTR、またはFMSTR_POLL_DRIVENのいずれか1つだけを有効にする必要があります。 | ^~~~~ ../FMsrc/freemaster_private.h:326:2: エラー: #error FMSTR_LONG_INTR、FMSTR_SHORT_INTR、またはFMSTR_POLL_DRIVENのいずれか1つだけを有効にする必要があります 326 | #エラー FMSTR_LONG_INTR、FMSTR_SHORT_INTR、またはFMSTR_POLL_DRIVENのいずれか1つだけを有効にする必要があります。 | ^~~~~ ../FMsrc/freemaster_private.h:326:2: エラー: #error FMSTR_LONG_INTR、FMSTR_SHORT_INTR、またはFMSTR_POLL_DRIVENのいずれか1つだけを有効にする必要があります 326 | #エラー FMSTR_LONG_INTR、FMSTR_SHORT_INTR、またはFMSTR_POLL_DRIVENのいずれか1つだけを有効にする必要があります。 | ^~~~~ 1つでは不十分だが、2つでもすべて失敗に終わった。 Re: FreeMaster Over CAN on interrupt fail to compile in polling mode こんにちは、 @millerhughes さん。 ポーリングモードを有効にするには、以下のマクロを更新する必要があります。 #define FMSTR_LONG_INTR 0 #define FMSTR_SHORT_INTR 0 #define FMSTR_POLL_DRIVEN 1 3つのうち1つだけを1に設定する必要があります。そうしないと、コードはコンパイルされません。 FMSTR_DEBUG_TXについてですが、これはTXラインを検証するためのデバッグマクロです。これまでの定義と合わせて、次の定義も考えられます。 #define FMSTR_DEBUG_TX 1 FreeMASTERドライバーに継続的にデバッグフレームを送信するよう指示します(注:これはTXラインの検査に役立ちますが、この機能が有効になっている間はFreeMASTERツールでボードに接続できません)。 コンパイルエラーログを共有してもらえますか? 私の知る限り、s32k3xx_fm_over_can_s32ct例はモデルベースデザインツールボックス(MBDT)チームによって実装されています 。Simulinkでアプリケーションを開発する場合、手動のコード変更ではなくブロック設定の更新が必要になるかもしれません。この場合、MBDT開発者は専用のMBDTコミュニティを通じて、あなたのユースケースにより適切な支援を提供できます 。 Re: FreeMaster Over CAN on interrupt fail to compile in polling mode ご説明ありがとうございます。はい、ポーリングと割り込みの組み合わせが私の目標です。 問題の要約:ターゲットk312は、freeamsterをしばらく実行した後、応答を送信できません。 フィードバックは以下のとおりです。 割り込みモード:フリーマスター動作中、上記の問題発生、FMSTR_LONG_INTRのみ ポーリングモード: コンパイル、freemaster が動作しない、freemaster_private.h:326:2 のエラーメッセージを削除しても FMSTR_POLL_DRIVEN: 混合:FreeMasterは動作し、コンパイルは可能ですがトラフィックの問題は残ります。FMSTR_LONG_INTRまたはFMSTR_SHORT_INTRまたはFMSTR_POLL_DRIVENの3つすべてが1に設定され、freemaster_private.h:326:2のエラーメッセージが削除されます: 今は正当化します:おそらくCANドライバーの問題かもしれません。 もし追加のサポートができるなら、どのような情報が必要ですか? Re: FreeMaster Over CAN on interrupt fail to compile in polling mode こんにちは、 @millerhughes さん。 FMSTR_LONG_INTRモードは、たとえ短時間しか動作しないとしても、唯一動作するモードなので、このモードのトラブルシューティングを試みるつもりです。私が調査するであろう事項は以下のとおりです。 ロジックアナライザでCANバスを点検して、CANメッセージがボードから送信されていないのか、送信されているものの破損しているのかを確認できますか? PC側で読み込んでいる変数はいくつありますか?変数の数は、PCツールとボード間でやり取りされるデータ量に正比例する。可能であれば、まずは少数の変数から始めて、徐々に数を増やしていき、どこで問題が発生するかを確認したいです。 CANインスタンスはFreeMASTERドライバー以外のルーチンで使われていますか? MATLAB/Simulinkモデルから始めましたか?それともS32 Design Studioのサンプルアプリケーションから始めましたか?元のソースによって、FreeMASTER CANドライバの実装は異なる場合があります。 可能であれば、ソースファイル( freemaster_s32_flexcan.hとfreemaster_s32_flexcan.cという名前である必要があります)を添付してください。 Re: FreeMaster Over CAN on interrupt fail to compile in polling mode 1. Peakcan Viewを使用してメッセージフローを監視しました。 はい、CANメッセージはもうボードから送信されていません フリーアムスターがスムーズに動作しているとき、メッセージが非常に速く点滅します。freeamasterがフリーズすると、S32k312minEVBから送信されたCANメッセージは停止したようですが、Freemasterからのメッセージは依然として表示され、動作が遅くなっています。 2、合計で20個の変数が少ないですが、その数はdemon fmプロジェクトs32k312_mc_pmsm_2sh_s32ct.pmpx "s32k344_mc_pmsm_2sh_s32ct"よりもはるかに少ないです。 3.フリーマスター専用のCANインスタンス; おっしゃる通り、私たちのBSWはRTDを使ってCANを使ったFMを実装し、DEMON s32k3xx_fm_over_can_s32ct MCALドライバーのflexcan_43とflexcan_ipwレイヤーを統合しています。しかし、上記の問題にはまだ取り組んでいます。 ちなみに、CANのIP層制限により、私たちのCANドライバは標準のmsg IDを受け入れることができるので、freeamsterの設定設定:標準送信、受信拡張。 添付ファイルに、あなたに近いと思われる4つのファイルがありますのでご確認ください。 すべてのCAN IP設定ファイルが必要ですか?実際、43/ipw はすべて demon s32k3xx_fm_over_can_s32ct と同じように構成されます。 直接メールで連絡することもできます。 Re: FreeMaster Over CAN on interrupt fail to compile in polling mode こんにちは、 @millerhughes さん。 残念ながらこのThreadには添付ファイルは見つかりませんでしたが、MBDTから入手したファイルでは、確かに私たちのチームの実装とは異なっていました。 MBDTの実装を私たちのバージョン(添付ファイル参照 - freemaster_s32k3xx_can.c とfreemaster_s32k3xx_can.hに対応しています)に置き換えてみてはどうでしょうか。 私が気づいた一つの矛盾点は、CAN割り込みハンドラのシグネチャです: FMSTR_BOOL FMSTR_CanIsr(FMSTR_U16 RxObjectId, FMSTR_U32 RxCanId, FMSTR_U32 RxMsgLength, const FMSTR_U8 * RxMsgData, FMSTR_U16 TxMsgBufId); 対 void FMSTR_CanIsr(void); CANの詳細(バッファIDなど)がfreemaster_cfg.hで定義されていると仮定しますハンドラー内でそれらは必要ありません。当社もRTD(低ハードウェア層)を使用しており、お客様の設定を変更する必要はありません。 Re: FreeMaster Over CAN on interrupt fail to compile in polling mode ファイルのアップロードリクエストに失敗しました。このThreadにファイルをアップロードする方法 Re: FreeMaster Over CAN on interrupt fail to compile in polling mode ただし、CAN readバッファをリセットする関数を探す助けを求めてください。 また、MBD CANドライバーコードCan_43_FLEXCAN_Ipw.cに変更が加わったのではないかと疑っています MBD MCAL CANドライバーをRTD非MCALドライバーに統合すると、機能Can_43_FLEXCAN_Ipw_ProcessRxMesgBufferが強制的にMEMCPYに転送されます。 手動転送がなければ、RTD非MCALのCANドライバーを使うCan_43_FLEXCAN_Ipw_ProcessRxMesgBufferすべてのCAN情報を読み取れません。 オリジナルのMBD DEMON s32k3xx_fm_over_can_s32ct手動転送は不要です。なぜなら、demonはMCAL CAN 43ドライバを使用しているからです。 Freemasterの問題を引き起こす場合、関数Can_43_FLEXCAN_Ipw_ProcessRxMesgBuffer()での手動転送を回避する方法はありますか? あるいは、あなたが知っている何らかの機能を使ってバッファを手動でリセットすることもできますか? static void Can_43_FLEXCAN_Ipw_ProcessRxMesgBuffer ( const Can_43_FLEXCAN_ControllerConfigType * Can_pControllerConfig、 const Can_43_FLEXCAN_HwObjectConfigType * Can_pHwObjectConfig、 uint8 u8MbIdx ) { Can_HwHandleType u8HwObjectID = 0U; Can_HwType CanIf_Mailbox; PduInfoType CanIf_PduInfo; const Can_43_FLEXCAN_HwObjectConfigType * Can_pHwObject = NULL_PTR; Flexcan_Ip_MsgBuffType * pReceivedDataBuffer = NULL_PTR; /**/ memcpy(&Can_Ipw_xStatus0,&FlexCAN_State0,sizeof(FlexCAN_State0)); /**/ u8HwObjectID = Can_Ipw_au16MbIdxToObjIDMap[Can_pControllerConfig-> Can_u8ControllerID ][u8MbIdx]; Re: FreeMaster Over CAN on interrupt fail to compile in polling mode フィードバック:RTD版Freemasterドライバーコードの提供ありがとうございます。 MBDのバージョン機能はFMSTR_CanIsr(*,*,*..*)はMCALドライバ freemaster_s32k3xx_canで、RTDドライバ freemaster_can_flexcanではFMSTR_CanIsr()によって使われています。 統合と実行時に、Freemasterがs32k312MINEVBとの接続に失敗しました。 フリーマスターがフリーズしたときにデバッグを始めました。S32K312N=MINEVBがメッセージを送信失敗したとき、SWが「読み取れる」状態になり、これが未完了のCAN読み取りを引き起こし、間接的には送信遅延が無制限になることがわかりました。 バッファがいっぱいになった場合にリセットするなど、読み取り用のバッファを手動でクリアする機能はありますか?
View full article
NXPカップ2026のNXPコミュニティ参加に関する質問 私は2026年のNXPカップに参加しています。コミュニティやグループの一部としてリアルタイムで情報やリソースの情報を伝えるメールは送っていますが、郵送中のグループリンクにはアクセスできません。それが私が直面している問題であり、その解決策を求めています。
View full article
关于加入 NXP 2026 杯社区的咨询 我将参加 2026 年 NXP 杯。我收到一封邮件,邀请我加入一些社区和群组,以便实时获取最新信息和资源,但我无法访问邮件中的这些群组链接。这就是我面临的问题,我希望得到解决方案。
View full article
S32K348-GPIO EIRQ to DMA request Dear NXP Support Team, I.m trying now approach, where GPIO PTD6 has setting as EIRQ14 ,rising edge detection and I want to map this pin signal to the DMA channel, where I try get current value from PIT_1 Timer[0]. This is setup as FreeRunning. Seems that SIUL2 is set correctly for PTDA and I can see toggling on this pin when signal (1Hz) from signal generator is connect on related MCU pin. But DMA not working for me My guess here is that I have problem with finding proper chain from PTD6 ->DMAMUX-> DMA channel 4. and find where exactly I can find these information. From S32K3xx_DMAMUX_map.xlsx I got this: so here is my first issue: Which source->request  is dedicated for PTD6(EIRQ14) ? And how is related Table 44 from RM manual?  Here is fragments of my code which I working on now: Setup PTD6 void Setup_PTD6_EIRQ14_for_DMA(void) {     /* 1. Configuration of physical pin PTD6 via MSCR register */     // PTD6 corresponds to index MSCR[102] (as seen on your screenshot)     IP_SIUL2->MSCR[102] = 0;              // Clear register     IP_SIUL2->MSCR[102] |= (1 << 19);     // IBE = 1 (Input Buffer Enable - configures pin as input)     IP_SIUL2->IMCR[542-(512)] = 3u;     // Optional: if the signal floats, you can enable Pull-Up (PUE=1, PUS=1) or Pull-Down (PUE=1, PUS=0)     /* 2. Activation of edge detection on line EIRQ[14] */     // We want to capture the timestamp on every rising edge     IP_SIUL2->IREER0 |= (1 << 14);        // IREER0[EIRE14] = 1 (Enable Rising Edge)     IP_SIUL2->IFEER0 &= ~(1 << 14);       // IFEER0[EIRE14] = 0 (Disable Falling Edge)     /* 3. Request routing: Change from Interrupt to DMA */     // This step ensures that the edge does not wake up the CPU (NVIC), but triggers the DMA line instead     IP_SIUL2->DIRSR0 |= (1 << 14);        // DIRSR0[DIRS14] = 1 (Select DMA Request instead of Interrupt)     /* 4. Final enable of DMA request generation for EIRQ[14] */     IP_SIUL2->DIRER0 |= (1 << 14);        // DIRER0[EIRE14] = 1 (Activate DMA request line) }   and setup DMA channel: void Setup_eDMA_Channel4_Capture_PIT1(void) {     /* 1. DMAMUX Initialization for eDMA Channel 4 */     // Map EIRQ14 (source 14) to eDMA channel 4     IP_DMAMUX_1->CHCFG[4] = DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE(7u);  // EIRQ14 is source 7 for DMAMUX_1     //IP_DMAMUX_0->CHCFG[4] = 0U;     /* 2. TCD Configuration for Channel 4 pointing to PIT_1 (Exact S32K3 bare-metal syntax) */     // Source: Current value of PIT_1 Timer 0     IP_TCD->TCD4_SADDR = (uint32_t)&(IP_PIT_1->TIMER[0].CVAL);     IP_TCD->TCD4_SOFF  = 0;       // Source does not increment     IP_TCD->TCD4_ATTR  = 0x0202;  // 32-bit source, 32-bit destination     // Minor Loop: Number of bytes transferred per single trigger     // In S32K3 this corresponds to the NBYTES_MLOFFNO register (no minor loop linking)     IP_TCD->NBYTES4.TCD4_NBYTES_MLOFFNO = 4;  // Transfer 4 bytes (32-bit) per trigger     // Destination: Our array in RAM     IP_TCD->TCD4_DADDR = (uint32_t)dma_timestamps;     IP_TCD->TCD4_DOFF  = 4;       // Shift by 4 bytes in RAM after each edge     // Circular buffer: wrap around to the beginning after filling the entire array     IP_TCD->TCD4_DLAST_SGA = -(BUFFER_SIZE * 4);     // Major Loop Counter: Total number of iterations in the loop     //IP_TCD->CITTER4.TCD4_CITER_ELINKNO = BUFFER_SIZE;     IP_TCD->CITER4.TCD4_CITER_ELINKNO = BUFFER_SIZE;     IP_TCD->BITER4.TCD4_BITER_ELINKNO = BUFFER_SIZE;     /* 3. eDMA channel activation for hardware triggers via official macro */     //IP_TCD->CH4_CSR |= DMA_TCD_CH4_CSR_ERQ_MASK;     /* 3. eDMA channel activation for hardware triggers (With asynchronous mode enabled) */     // Bit 0 (ERQ) = 1  -> Enables hardware triggers     // Bit 2 (EARQ) = 1 -> Enables asynchronous requests from external pins (SIUL2 EIRQ)     IP_TCD->CH4_CSR |= 3u;  // ERQ=1, EARQ=1 }   Here I guess is key line: IP_DMAMUX_1->CHCFG[4] = DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE(7u);  // EIRQ14 is source 7 for DMAMUX_1 where I'm little bit confused which IP_DMAMUX and which DMAMUX_CHCFG_SOURCE I need to use and where is proper information about this. Best regards Ondrej    Re: S32K348-GPIO EIRQ to DMA request Hi@OndrejK "Is this meaning, that MCU have 32 TCD channels and TCD 0 to 15 is valid for DMAMUX_0 and TCD 15 to31 is for DMAMUX_1 ?" yes, you can find these info in the datasheet, I copy it for your reference. Re: S32K348-GPIO EIRQ to DMA request Hi Senlent, thank you for your answer. please, can you pointed me from where popup your meaning about TCD mapping?  Is this meaning, that MCU have 32 TCD channels and TCD 0 to 15 is valid for DMAMUX_0 and TCD 15 to31 is  for DMAMUX_1 ? So I'm still little bit confused about information regarding DMAMUX and eDMA.  Best regards  Ondrej Re: S32K348-GPIO EIRQ to DMA request Hi@OndrejK Your understanding is correct: PTD6->EIRQ14->DMAMUX1.SOURCE 7. IP_DMAMUX_1->CHCFG[4] = DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE(7u); // EIRQ14 is source 7 for DMAMUX_1 However, the TDC settings are incorrect. My understanding is that they should be as follows: IP_DMAMUX_1->CHCFG[0] ->TCD 16 IP_DMAMUX_1->CHCFG[4] -> TCD 20 instead of TCD4 Re: S32K348-GPIO EIRQ to DMA request HI SenLent,  I made some changes in my code based on my observation. Here is my latest code: main initialization:       Setup_PTD6_EIRQ14_for_DMA();     Setup_PIT1_Timer0_FreeRunning();     Setup_DMAMUX_Channel0_ToTCD16_Capture_PIT1();      //clear EIRQ14 interrupt flag      IP_SIUL2->DISR0 = (1 << 14); and here is rest of code: void Setup_PTD6_EIRQ14_for_DMA(void) {     // 1. Aktivácia hodinového deliča pre filtre v SIUL2 (ak už nie je povolený inde)     IP_SIUL2->IFCPR = 0U; // Nastavenie deličky filtra na Functional Clock (bez dodatočného delenia) // 2. Voliteľne vypnite filter pre daný EIRQ index alebo ho nastavte na minimálny počet cyklov // Pre EIRQ14 (v závislosti od mapovania registrov IFMCR):     IP_SIUL2->IFMCR[14] = 0U; // 0U vypína digitálny filter, hrana prechádza okamžite ako čistý hardvérový trigger     /* 1. Configuration of physical pin PTD6 via MSCR register */     // PTD6 corresponds to index MSCR[102] (as seen on your screenshot)     IP_SIUL2->MSCR[102] = 0;              // Clear register     IP_SIUL2->MSCR[102] |= (1 << 19);     // IBE = 1 (Input Buffer Enable - configures pin as input)     IP_SIUL2->IMCR[542-(512)] = 3u;     // Optional: if the signal floats, you can enable Pull-Up (PUE=1, PUS=1) or Pull-Down (PUE=1, PUS=0)     /* 2. Activation of edge detection on line EIRQ[14] */     // We want to capture the timestamp on every rising edge     IP_SIUL2->IREER0 |= (1 << 14);        // IREER0[EIRE14] = 1 (Enable Rising Edge)     IP_SIUL2->IFEER0 &= ~(1 << 14);       // IFEER0[EIRE14] = 0 (Disable Falling Edge)     /* 3. Request routing: Change from Interrupt to DMA */     // This step ensures that the edge does not wake up the CPU (NVIC), but triggers the DMA line instead     IP_SIUL2->DIRSR0 |= (1 << 14);        // DIRSR0[DIRS14] = 1 (Select DMA Request instead of Interrupt)     /* 4. Final enable of DMA request generation for EIRQ[14] */     IP_SIUL2->DIRER0 |= (1 << 14);        // DIRER0[EIRE14] = 1 (Activate DMA request line) }   void Setup_DMAMUX_Channel0_ToTCD16_Capture_PIT1(void) {     /* 1. DMAMUX Initialization for eDMA Channel 4 */    // Podľa NXP tabuľky prislúcha SIUL2 DMA request 4 zdrojový index 7u     //IP_DMAMUX_1->CHCFG[4] = DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE(7u);     //follow doc ,first disable channel 4, then configure it, and finally enable it     IP_DMAMUX_1->CHCFG[0] = 0u;     /* 2. TCD Configuration for Channel 4 pointing to PIT_1 (Exact S32K3 bare-metal syntax) */     // Source: Current value of PIT_1 Timer 0     IP_TCD->TCD16_SADDR = (uint32_t)&(IP_PIT_1->TIMER[0].CVAL);     IP_TCD->TCD16_SOFF  = 0;       // Source does not increment     IP_TCD->TCD16_ATTR  = 0x0202;  // 32-bit source, 32-bit destination     // Minor Loop: Number of bytes transferred per single trigger     // In S32K3 this corresponds to the NBYTES_MLOFFNO register (no minor loop linking)     IP_TCD->NBYTES16.TCD16_NBYTES_MLOFFNO = 4;  // Transfer 4 bytes (32-bit) per trigger     // Destination: Our array in RAM     IP_TCD->TCD16_DADDR = (uint32_t)dma_timestamps;     IP_TCD->TCD16_DOFF  = 4;       // Shift by 4 bytes in RAM after each edge     // Circular buffer: wrap around to the beginning after filling the entire array     IP_TCD->TCD16_DLAST_SGA = -(BUFFER_SIZE * 4);     // Major Loop Counter: Total number of iterations in the loop     //IP_TCD->CITTER20.TCD20_CITER_ELINKNO = BUFFER_SIZE;     IP_TCD->CITER16.TCD16_CITER_ELINKNO = BUFFER_SIZE;     IP_TCD->BITER16.TCD16_BITER_ELINKNO = BUFFER_SIZE;     //IP_TCD->CH16_CSR |= 3u;  // ERQ=1, EARQ=1     //enable DMAMUX channel 0     IP_DMAMUX_1->CHCFG[0] = DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE(6u);     __asm volatile ("nop");     __asm volatile ("nop");     IP_TCD->CH16_CSR |= 3u; }   And I'm still not able fire up DMA transfer by EIRQ(14) when is this assert. On Debugger I can see flag appear when I change signal on MCU PTD6 pin . Next I can start manually DMA transfer by TCD16_CSR START bit and on TCD channel CITTER value is decreased and value form PIT1_TIMER[0] is stored to my dma_timestamps array. Btw: This should be defined in "normal" SRAM section. I had before set this to data_cache section , what lead to DMA "Destination bus error" new definition: __attribute__((aligned(32))) __attribute__((section(".mcal_data"))) uint32_t dma_timestamps[BUFFER_SIZE];   but If I skip manual START (need to be never set from beginning of code) and I change signal on PTD6 pin , DMA channel do nothing , CITTER register stay on initialize value. Please, can you help identify where I have problem? I still guess that I have issue with proper connection from PTD6-EIRQ(14) asserted flag to the TCD16 channel.  Maybe correct source for DMAMUX channel? For DMAMUX1-CH[0] I tested all sources (1 to 😎 of SUIL2 instances listed on DMAMUX excel table, without any success , but here I'm not sure if my steps was correct too     Re: S32K348-GPIO EIRQ to DMA request Hi@OndrejK I've created a demo for your reference, using PTD6 to trigger DMA for a single data transfer. It's based on S32K344 + RTD 7.0.1. And I've tested it; I can assure you that my understanding is correct. For PTD6, the source should 7.  IP_DMAMUX_1->CHCFG[0] = DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE(7u); Re: S32K348-GPIO EIRQ to DMA request Hi SenLent, about choosing DMA channel here was my imagine that I can choose freely one from related DMA_MUX groups Meantime I tested other DMA_MUX <->TCD combination and on my side working only next one  IP_DMAMUX_1->CHCFG[3] and TCD16. I got try next others: IP_DMAMUX_1->CHCFG[4] and TCD17. IP_DMAMUX_1->CHCFG[0] and TCD16. And please, why exactly only IP_DMAMUX_1->CHCFG[3] and TCD16. working ? And  how is the relationship between IP_DMAMUX_1->CHCFG[xx] and TCDyy ? Re: S32K348-GPIO EIRQ to DMA request Hi Senlent, thank you very match for your example. After some changes I have working example now. I attach my adjusted project , where was one important issue: SIUL ICU with DMA req enabling  was set up before whole DMA TCD channel was fully configured. In that case TCD_SADDR and TCD_DADDR was empty(zero values) and after that enabling DMA req in SUIL leads to DMA error - "Source bus error" what bring me sense.  After change order of this initialization. example start working for me. But I have still problem understand exact relation between DMAMUX channel and TCD channel. You wrote that DMAMUX should by configured as CHCGF[0].  After downloading and starting app in our S32k344 custom development board i found that DMAMUX-CHCFG[3] is configured and exactly in code in function  Dma_Mux_Ip_Init_Privileged is  line which exactly lead to this configuration: RegisterIndex = DMA_MUX_IP_GATE_OFFSET((pConfig->pChannelConfigArr[ChannelCount].Channel)); here is screenshot from lauterbach Trace32 debugger, where you can see final setup after all initialization steps: In Design studio I have next configuration after updating RTD to 7.0.1: is this correct and what does it mean that here  is  choice of 3 DMA Mux sources? Re: S32K348-GPIO EIRQ to DMA request Hi@OndrejK Good to hear that. This configuration tool may cause some confusion for developers who are just getting started. For the S32K348, there is no DMAMUX_3; only DMAMUX_0 and DMAMUX_1 exist. •For the S32K310, S32K311, and S32K312: DMAMUX_0 channels 0–5 and DMAMUX_1 channels 0–5 are mapped to eDMA Transfer Control Descriptor (TCD) 0–5 and eDMA Transfer Control Descriptor (TCD) 6–11, respectively. Programming of DMAMUX_0 channels 6–15 and DMAMUX_1 channels 6–15 is therefore not expected; however, if programmed, any access will result in either an error response for channels 8–15 or no error response for channels 6–7. •For the remaining S32K3xx devices: DMAMUX_0 channels 0–15 and DMAMUX_1 channels 0–15 are mapped to eDMA Transfer Control Descriptors (TCDs) 0–15 and eDMA Transfer Control Descriptors (TCDs) 16–31, respectively. The above is taken from the data sheet, and it is easy to understand: The “DMA Hardware Channel” corresponds to the TCD number. When you select DMA_CHANNEL_0 ~ DMA_CHANNEL_15, DMAMUX_0 is used by default; when you select 16–31, DMAMUX_1 is used by default. For example, in this topic, PTD6 corresponds to Source 7 of DMAMUX_1, so “DMA Hardware Channel” can be set to any value between DMA_CHANNEL_16 and DMA_CHANNEL_31. Let’s take another example: if you select EIRQ 7 to trigger DMA, then “Dma Hardware Channel” can be set to any value between DMA_CHANNEL_0 and DMA_CHANNEL_15. Re: S32K348-GPIO EIRQ to DMA request Hi@OndrejK Here is the right order: IP_DMAMUX_0>CHCFG[0] and TCD0. IP_DMAMUX_0->CHCFG[1] and TCD1. IP_DMAMUX_0->CHCFG[2] and TCD2. IP_DMAMUX_0->CHCFG[3] and TCD3. IP_DMAMUX_0->CHCFG[4] and TCD4. IP_DMAMUX_0->CHCFG[5] and TCD5. IP_DMAMUX_0->CHCFG[6] and TCD6. IP_DMAMUX_0->CHCFG[7] and TCD7. IP_DMAMUX_0->CHCFG[8] and TCD8. IP_DMAMUX_0->CHCFG[9] and TCD9. IP_DMAMUX_0->CHCFG[10] and TCD10. IP_DMAMUX_0->CHCFG[11] and TCD11. IP_DMAMUX_0->CHCFG[12] and TCD12. IP_DMAMUX_0->CHCFG[13] and TCD13. IP_DMAMUX_0->CHCFG[14] and TCD14. IP_DMAMUX_0->CHCFG[15] and TCD15. IP_DMAMUX_1->CHCFG[0] and TCD16. IP_DMAMUX_1->CHCFG[1] and TCD17. IP_DMAMUX_1->CHCFG[2] and TCD18. IP_DMAMUX_1->CHCFG[3] and TCD19. IP_DMAMUX_1->CHCFG[4] and TCD20. IP_DMAMUX_1->CHCFG[5] and TCD21. IP_DMAMUX_1->CHCFG[6] and TCD22. IP_DMAMUX_1->CHCFG[7] and TCD23. IP_DMAMUX_1->CHCFG[8] and TCD24. IP_DMAMUX_1->CHCFG[9] and TCD25. IP_DMAMUX_1->CHCFG[10] and TCD26. IP_DMAMUX_1->CHCFG[11] and TCD27. IP_DMAMUX_1->CHCFG[12] and TCD28. IP_DMAMUX_1->CHCFG[13] and TCD29. IP_DMAMUX_1->CHCFG[14] and TCD30. IP_DMAMUX_1->CHCFG[15] and TCD31. Re: S32K348-GPIO EIRQ to DMA request Hi Senlent, meantime I tested this same project with my other colleague , which use S32DS version 3.6.3 and Ozone debugger and his results is same as your.  Seems that you have right. but I'm completely out what's going on on my side?  😞 Re: S32K348-GPIO EIRQ to DMA request Hi SenLent, I made test on latest S32 DS project  and I added more DMA_MUX configurations. Here is screenshot of my setup: and here is result after download build code to our board: As you can see, your described order for assigning DMA_MUX and TCD is not followed. Is this same bug on RTD software or ? Re: S32K348-GPIO EIRQ to DMA request Hi@OndrejK It's obvious that this might be related to the debugger you're using, or perhaps the version of the debugger. Re: S32K348-GPIO EIRQ to DMA request Hi@OndrejK This is the demo you provided; I haven't made any modifications. These are my test results. Re: S32K348-GPIO EIRQ to DMA request here is my project, just adjusted latest one which I attached before  I created 2 channel on DMA_MUX_0 as DMA_Channel_0 and DMA_Channel_1. and for these channel is assigned DMA_MUX_0->CHCFG[3] and DMA-MUX_0-CHCFG[2]. Same "mixed" order you can see on DMA_MUX_1 Re: S32K348-GPIO EIRQ to DMA request Hi@OndrejK I can't see what the problem is. Could you explain it more clearly, or provide the complete test project so I can tell you where your doubts lie? Re: S32K348-GPIO EIRQ to DMA request Hi SenLent,  finaly i found where is "issue" here. Problem is that Ozone and Lauterbach just presenting different way od DMA_MUX->CHCFG and final trick is that these CHCFG register is mapped on MCU side (base adress for DMA_MUX_1 is 0x40284000) in this order: 0x40284000 ->CHCFG[3] 0x40284001  ->CHCFG[2] 0x40284002 ->CHCFG[1] 0x40284003 ->CHCFG[0] 0x40284004 ->CHCFG[7] 0x40284005 ->CHCFG[6] 0x40284006 ->CHCFG[5] 0x40284007 ->CHCFG[4] 0x40284008 ->CHCFG[11] .... see my screenshot below and from this moment my result give me sense and corresponding with your tips 🙂 Thank you for your support  and I guess that this ticked can be resolved Re: S32K348-GPIO EIRQ to DMA request Hi@OndrejK Good, please click "ACCEPT AS SOLUTION" to close this topic.
View full article
i.MX8M Plus DDR4-3200 EVK設計ファイルおよびDDR4レイアウトガイド こんにちは 、 私たちはi.MX8M Plus+DDR4で製品を設計したいと考えています。 NXPはi.MX8M Pluse+DDR4-3200およびDDR4レイアウトのデザインファイル(schと.brd)を私たちに提供できますか? Re: i.MX8M Plus DDR4-3200 EVK Design file and DDR4 layout guide 私も同じアプローチで取り組んでいます。 参考までに。i.MX 8M Plusを基盤としたAIロボットプラットフォーム 「I-MX8MPLUS-ALROBOT-FORM」はDDR4リファレンスデザインです。 アクセスするにはNXPに連絡する必要があります。 Re: i.MX8M Plus DDR4-3200 EVK Design file and DDR4 layout guide @seungyeon既にメールで添付してお送りしましたので、ご確認ください。
View full article
FRDM-i.MX95 开发板无法从 SD 卡启动或进入 USB 串口下载器模式 问题概要 使用Win32DiskImager将提供的基础镜像写入 microSD 卡。 设置SW1 = 11以启动 SD 卡。 使用一根 USB-C 线缆将电路板连接到 PC,首先通过J1(调试 UART) ,然后通过J3(USB 设备)进行 USB 下载测试。电路板通过J25供电。 板成功通电(电源指示灯亮起)。 SD启动模式 已将J1连接到PC。 打开 PuTTY,端口115200,端口 8N1,无流量控制。 已尝试所有检测到的 COM 端口(COM3、COM4、COM5、COM6)。 多次按下 RESET 键并重启主板。 不显示启动日志或串口输出。 USB 串口下载器模式 将SW1 = 01更改为 USB 串行下载器模式。 断开 J1 连接,并将J3连接到电脑。 Windows 检测到未知 USB 设备(设备描述符请求失败),错误代码为 43 。 uuu.exe -lsusb 无法检测到主板。 请问有人能帮忙吗?FRDM-IMX95 #NXP iMX95 Re: FRDM-i.MX95 Board Not Booting from SD Card or Entering USB Serial Downloader Mode 你好@shuru_2604 您的计算机似乎没有成功自动更新其 USB 驱动程序。您可以点击以下链接下载 CH344 驱动程序并自行安装。 https://file.wch.cn/download/file?id=312https://www.wch.cn/downloads/CH343CDC_ZIP.html BR
View full article
kw45 Hello team, WE were designing a product using KW45 and we saw it  supports LPSPI, but we wanted to interact with the QSPI flash W25Q128JWFIQ TR. Does it supports? if it does, what and all possible hardware and software configurations need to be done Communication & Control(I3C | I2C | SPI | FlexCAN | Ethernet | FlexIO) Re: kw45 Hi, @TejasN2255  Thanks for creating case to us. Yes, it supports. You can use KW45 to interact with the QSPI flash W25Q128JWFIQ TR. But because KW45 doesn't have FlexSPI and no execute-in-place (XIP) path, so you could only talk to the W25Q128JWFIQ over its LPSPI peripheral. To use it, you need to be careful for the Supply voltage. The W25Q128JWFIQ is 1.8 V nominal (1.7–1.95 V). The KW45's I/O rail feeding LPSPI1 (VDD_MEM on the EVK) must be set to 1.8 V; do not tie it to a 3.3 V rail. You can refer to our KW45B41Z-EVK_SCH schematics page 5, we have a similar connection with AT25XE161D-MAHN-T, but the difference is the Supply voltage.  Best regards, Christine.
View full article
使用 MCUXpresso IDE 配置 RT1170 的外部闪存 我目前使用的是搭载 MIMXRT1176CVM8B 的定制电路板。同时,还使用了外置闪光灯,部件号为:W25Q01NW。 但我无法将 MCUXpresso IDE 中的代码烧录到这个新闪存中。(错误截图已附上) 我还修改了evkbmimxrt1170_flexspi_nor_config.c文件。 修改的参数是: .sflashA1Size = 128u * 1024u * 1024u, // 已更改:因为新的闪存大小为 128MB。 还有其他配置参数需要更改吗? 提前致谢 Re: Configuring external flash using MCUXpresso IDE for RT1170 能否帮忙分享一下电路图以便我审核,因为这是一个 1.8V 的设备?同时,闪存和SoC之间的SPI时钟频率如何? Re: Configuring external flash using MCUXpresso IDE for RT1170 你好@brundasathish , 请问您是否正在使用MIMXRT1160/1170 硬件开发指南表 11“ROM 引导加载程序外设引脚复用”中提到的推荐的 FlexSPI NOR QSPI 引脚?我强烈建议您仔细阅读这份文件,其中提供了有关电路板布局建议和设计清单的信息,以确保一次性成功并避免电路板启动问题。 另外,能否请您使用 Secure Provisioning Tool v26.6 中的 启动内存配置 功能测试一下您的闪存配置?这是为了验证您的FCB配置。 BR 哈比卜 Re: Configuring external flash using MCUXpresso IDE for RT1170 你好@db16122 , 电源配置为 1.8V,时钟频率为 133MHz。 Re: Configuring external flash using MCUXpresso IDE for RT1170 你好@Habib_MS , 非常感谢您的回复。我们已经为闪存配置了 flexspi2,以下是已配置的引脚。这是 MCUXpresso IDE 引脚配置的快照。 我们尝试使用安全配置工具配置闪存。这就是我们得到的回复。 谢谢。 Re: Configuring external flash using MCUXpresso IDE for RT1170 你好@brundasathish , 要从 FlexSPI2 次级引脚组启动,需要配置相应的 eFuse,如 RM 的表 10-1“ROM 引导加载程序外设引脚复用”中所述,如下图所示: 请注意,eFuse编程是不可逆的操作。请您确认相应的熔丝是否已充分熔断,以便使用这组辅助引脚?如果熔丝烧断正常,请您使用启动内存配置再次测试您的闪存配置。 另外请注意,此引脚配置仅支持低速读取操作,因为它不提供 DQS 信号路径。因此,在 SDR 模式下最大支持频率为 60 MHz,在 DDR 模式下最大支持频率为 30 MHz。请参考以下社区帖子,其中包含更详细的解释。 BR 哈比卜 Re: Configuring external flash using MCUXpresso IDE for RT1170 你好@Habib_MS , 非常感谢您的回复。 我目前正在使用 MCU 安全配置工具(串行下载器)模式配置和测试外部闪存。 我已使用外部启动开关上的 BOOT_CFG [11] 引脚将 FLEXSPI_INSTANCE 设置为 1(因为使用的是 FLEXSPI2)。 如何启用 FLEXSPI_PIN_GROUP_SEL?是通过MCU安全配置工具中的OTP配置吗? 通过上述启动开关更改(串行下载器模式和 BOOT_CFG [11] =1)以及 MCU 安全配置工具中下面附加的启动内存配置,我能够初始化闪存,读取闪存内容。 但我无法擦除或写入。 我附上了启动内存配置的截图。 谢谢! 布伦达·萨蒂什 Re: Configuring external flash using MCUXpresso IDE for RT1170 供参考,关于 133MHz 设置,原理图来自 AN12183,标题为“如何启用 FLEXSPI NOR Flash 的调试功能”。 Re: Configuring external flash using MCUXpresso IDE for RT1170 你好@brundasathish , 是的,可以使用OTP 配置来实现这一点。如果您的闪存设置测试正常,您可以使用“转换为完整 FCB”按钮来创建 FCB,并查看此社区帖子,特别是从第 15 点开始的步骤。该部分更详细地解释了安全配置工具如何生成启动内存配置,并有助于阐明该工具生成的参数和输出。 我想提一下,FlexSPI2 次级引脚组支持的最大时钟频率在 SDR 模式下为 60 MHz,在 DDR 模式下为 30 MHz。更多详情请参阅此社区帖子。 请问您目前使用的是哪个版本的MCUXpresso 安全配置工具? 最新版本为 v26.06,我强烈建议使用此版本,因为它包含了最新的增强功能、错误修复和整体改进,与之前的版本相比。 BR 哈比卜 Re: Configuring external flash using MCUXpresso IDE for RT1170 你好@brundasathish , 请确保您已选择正确的工作区,要创建新工作区,您可以参考 Mcuxpresso Secure provisioning tool v26.06 用户指南中的“创建新工作区”部分。 如 Mcuxpresso Secure 配置工具 v26.06 用户指南的“ PFR/IFR/BCA/FCF 和 OTP 差异”部分所述,OTP 配置是逐项烧录的: 我还强烈建议您查看指南中的OTP 配置部分,因为它提供了在 RT1170 上正确编程 OTP 熔丝的重要信息。 BR 哈比卜 Re: Configuring external flash using MCUXpresso IDE for RT1170 你好@Habib_MS , 我使用的是版本 26.06 的安全配置工具。 当在安全配置工具中为 FLEXSPI_PIN_GROUP_SEL 配置 OTP 时,是只有这一位会被熔断,还是熔断字段中的所有其他值都会被熔断在一起? 先行致谢。 此致, 布伦达·萨蒂什
View full article
MCXA266:深度掉电唤醒后,WUU 唤醒标志为 0(SRS=0x4010,SSRS=0x4011) 你好, 我正在研究 FRDM-MCXA266 板上从深度掉电模式唤醒 WUU 的行为。 环境: - MCU:MCXA266 - 电路板:FRDM-MCXA266 - SDK 示例项目:frdmmcxa266_power_mode_switch_ll_mcxa - SDK 版本:26.6.000 - 开发环境:MCUXpressoIDE_25.6.136 我在 main() 函数的开头附近添加了以下代码,以便在调用 BOARD_InitHardware() 之前读取 RESET 和唤醒状态。 /******************************************************************************* * Variables ******************************************************************************/ char *const g_modeNameArray[] = APP_POWER_MODE_NAME; char *const g_modeDescArray[] = APP_POWER_MODE_DESC; uint32_t resetCount; uint32_t resetStatus; uint32_t resetStickyStatus; uint32_t wakeupResource; uint32_t wuuWakeupPinsFlag; /******************************************************************************* * Code ******************************************************************************/ int main(void) { uint32_t freq; app_power_mode_t targetPowerMode; bool needSetWakeup = false; // --- START ADDED CODE --- resetStatus = CMC_GetSystemResetStatus(CMC); resetStickyStatus = CMC_GetStickySystemResetStatus(CMC); CMC_ClearStickySystemResetStatus(CMC, resetStickyStatus); wakeupResource = CMC_GetWakeupSource(CMC); wuuWakeupPinsFlag = WUU_GetExternalWakeUpPinsFlag(WUU0); WUU_ClearExternalWakeUpPinsFlag(WUU0, wuuWakeupPinsFlag); // --- END ADDED CODE --- BOARD_InitHardware(); // --- START ADDED CODE --- DbgConsole_Printf("CMC_GetSystemResetStatus(CMC) = 0x%x\r\n", resetStatus); DbgConsole_Printf("CMC_GetStickySystemResetStatus(CMC) = 0x%x\r\n", resetStickyStatus); DbgConsole_Printf("CMC_GetWakeupSource(CMC) = 0x%x\r\n", wakeupResource); DbgConsole_Printf("WUU_GetExternalWakeUpPinsFlag(WUU0) = 0x%x\r\n", wuuWakeupPinsFlag); // --- END ADDED CODE --- APP_SetVBATConfiguration(); APP_SetSPCConfiguration(); APP_InitWaketimer(); 相关的完整输出结果如下: ``` 正常启动。 ######################### ## Power Mode Switch Demo ## ######################### 核心时钟频率 = 240000000Hz 电源模式:激活 选择所需的操作 按 A 键进入:运行模式 按 B 键进入:睡眠模式 按 C 键进入:深度睡眠模式 按 D 键进入:关机模式 按 E 键进入:深度关机模式 等待电源模式选择…… Deep 掉电: The whole VDD_CORE voltage domain is 掉电. 请选择唤醒源: 按 A 选择定时器作为唤醒源; 按 B 选择唤醒按钮作为唤醒源; 等待唤醒源选择... 已选择唤醒按钮作为唤醒源。 请按SW2键唤醒。 隔离功率域:VDD_USB。 CMC_GetSystemResetStatus(CMC) = 0x4010 CMC_GetStickySystemResetStatus(CMC) = 0x4011 CMC_GetWakeupSource(CMC) = 0x0 WUU_GetExternalWakeUpPinsFlag(WUU0) = 0x0 正常启动。 ``` 首次启动时,打印了以下值: CMC_GetSystemResetStatus(CMC) = 0x110 CMC_GetStickySystemResetStatus(CMC) = 0x110 CMC_GetWakeupSource(CMC) = 0x0 WUU_GetExternalWakeUpPinsFlag(WUU0) = 0x0 然后我选择了深度关机模式,选择了唤醒按钮作为唤醒源,并按下了 SW2。 MCU 已成功唤醒,应用程序也已重新启动,但打印出了以下值: CMC_GetSystemResetStatus(CMC) = 0x4010 CMC_GetStickySystemResetStatus(CMC) = 0x4011 CMC_GetWakeupSource(CMC) = 0x0 WUU_GetExternalWakeUpPinsFlag(WUU0) = 0x0 我对 CMC RESET 状态的理解是: - 0x00004010:软件 RESET + 热 RESET - 0x00004011:软件 RESET + 热 RESET + 深度掉电唤醒 RESET 如果这种解释是正确的,则粘滞状态似乎表明首先发生了深度掉电唤醒重置,然后发生了软件热重置。 我检查了应用程序启动代码 system_MCXA266.c,以及示例源代码,但我找不到 NVIC_SystemReset()、SYSRESETREQ 或 SCB->AIRCR 写入。 我还使用保留的 NOLOAD 变量向 SystemInitHook() 添加了一个计数器。SystemInitHook() 在唤醒后只执行了一次,因此我找不到 SystemInit() 之后进行软件重置的证据。 我的问题是: 从深度掉电状态唤醒后,SRS = 0x4010 和 SSRS = 0x4011 是否正常? MCXA266 启动 ROM 或扩展启动加载程序在应用程序启动前是否会执行软件热复位? 如何确定是哪个 WUU 引脚导致了深度掉电唤醒? 我目前对 CMC RESET 状态的理解如下,但如果我对位定义的理解有误,请指正: 英语不是我的母语,所以如果我的解释有任何不清楚的地方,请告诉我。 谢谢! MCXA Re: MCXA266: WUU wake-up flags are 0 after Deep Power-Down wake-up (SRS=0x4010, SSRS=0x4011) 你好@ka-2020 谢谢你的提问。我将使用相同的设置在我的环境中重现该测试,并调查其行为。一旦我拿到结果,我会将我的发现和所有问题的答案告诉您。 感谢您的耐心和支持。 BR 爱丽丝 Re: MCXA266: WUU wake-up flags are 0 after Deep Power-Down wake-up (SRS=0x4010, SSRS=0x4011) 你好@Alice_Yang 感谢您调查此事。 我使用另一个 WUU 外部唤醒引脚进行了额外的测试,并想与大家分享结果。 除了原有的唤醒按钮配置外,我还添加了以下配置: WUU_SetExternalWakeUpPinsConfig(APP_WUU, 0, &wakeupButtonConfig); 然后我使用分配给 WUU 引脚 0 的引脚将设备从深度掉电状态唤醒。设备成功唤醒,但我观察到了与之前相同的结果: CMC_GetSystemResetStatus(CMC) = 0x4010 CMC_GetStickySystemResetStatus(CMC) = 0x4011 CMC_GetWakeupSource(CMC) = 0x0 WUU_GetExternalWakeUpPinsFlag(WUU0) = 0x0 因此,这种行为似乎并非原始 SW2 WUU 引脚所特有的。 调查方面有任何最新进展吗? 如果您需要我提供任何其他日志、源代码、寄存器值或测试结果,请告诉我。 谢谢! Re: MCXA266: WUU wake-up flags are 0 after Deep Power-Down wake-up (SRS=0x4010, SSRS=0x4011) 你好@ka-2020 感谢您的回复和耐心等待。 我已根据您的要求进行了测试,并与我们的内部团队进行了讨论。由于对 ROM 行为的澄清需要 ROM 团队的确认,因此需要一些额外的时间进行调查。对于回复延迟,我深表歉意,并感谢您的理解。 1. 从深度掉电状态唤醒后,SRS = 0x4010 和 SSRS = 0x4011 是否正常? 是的。 SSRS :存储自上次主冷RESET以来所有导致系统RESET的源,以及您尚未清除的源。SSRS 在核心软件 RESET 后不会更新。 SRS:每次主热RESET时更新,以指示最近一次RESET的类型/来源。 2. MCXA266 启动 ROM 或扩展引导加载程序在应用程序启动前是否发出软件热复位?->>否。 3. 确定导致深度掉电唤醒的 WUU 引脚的推荐方法是什么?—— 对于识别唤醒源引脚, WUU_GetExternalWakeUpPinsFlag() 适用于掉电模式,在该模式下 WUU 中断服务例程可以正常执行。但是,在深度 Power-Down 唤醒后无法使用此功能,因为设备会通过 RESET 序列重新启动,并且 WUU 标志已被清除。 顺便问一下,您只使用了一个唤醒引脚,还是启用了多个唤醒引脚? 谢谢! BR 爱丽丝 Re: MCXA266: WUU wake-up flags are 0 after Deep Power-Down wake-up (SRS=0x4010, SSRS=0x4011) 你好@ka-2020 感谢您的回复。 我已经将此问题和您的需求高优先级地提交给了我们内部的软件工程团队。我们完全理解这项请求的重要性,并正在积极跟进。 请给我们一些时间进行进一步调查。我会随时向您汇报最新进展,并尽快回复您。 感谢您的耐心和理解。 BR 爱丽丝 Re: MCXA266: WUU wake-up flags are 0 after Deep Power-Down wake-up (SRS=0x4010, SSRS=0x4011) 你好@Alice_Yang , 感谢您对此事的调查和澄清。 根据您的解释,WUU 标志似乎在应用程序启动之前,在深度掉电 RESET 序列期间被清除。 在我的测试中,启用了两个 WUU 外部唤醒引脚:原始的 SW2 唤醒引脚和 WUU 外部唤醒引脚 0。 请确认一下,这是否意味着没有软件方法可以识别深度掉电后是哪个 WUU 引脚导致了唤醒? 谢谢!
View full article
未解決: プログラマーは TEA2016 および TEA2017 を書き込むことができません。 お客様はTEA2016およびTEA2017のプログラミング用に、2つのバッチのI2Cプログラマを受け取りました。以前のプログラマは問題なく動作しましたが、新しく納品されたプログラマはプログラミング中にほとんどの場合問題が発生し、プログラミングが不可能でした。お客様からの説明は以下のとおりです。ドキュメントを参照してください。 Re: 尚未解決: 燒錄器不能燒錄 TEA2016和 TEA2017 こんにちは風火 良い一日! 新しいプログラマーに関する苦情の記録は一切ありません。 プログラミングが成功したサイクル(旧プログラマー使用時)と失敗したサイクル(新プログラマー使用時)で取得したI²C波形を提供してください。 また、これら2つの製品の部品番号や識別番号も教えていただけるととても助かります。私の記憶が正しければ、あなたはRDK01DB1563を使用していますよね? 良い一日をお過ごしください。幸運を祈ります。 Re: 尚未解決: 燒錄器不能燒錄 TEA2016和 TEA2017   下記は、同じ製品をテストした旧型および新型ボックスの波形です。新型ボックスがテストできない理由を分析するお手伝いをお願いします。 新しいボックステストのFAIL波形は以下のとおりです。 ありがとう! Re: 尚未解決: 燒錄器不能燒錄 TEA2016和 TEA2017 この投稿に波形を添付しましたので、分析していただけないでしょうか?よろしくお願いいたします!
View full article
必要なサポート:Wayland-EGLプラグインおよびIVI-Shellのビデオ再生パフォーマンスの問題 こんにちは、NXP チームの皆様、 Yocto Linuxのセットアップで確認されたWayland/Westonシェル関連の問題について、皆様のサポートをお願いしています。 現在、 kiosk-shellとivi-shellを使用した動画再生の検証を行っています。kiosk-shellを使用すると、wayland-egl プラグインが検出されてアクセス可能になり、フレーム落ちやシステムハングアップもなく、ビデオ再生がスムーズに動作します。しかし、 ivi-shellを使うとwayland-eglプラグインに正しくアクセス・取得できず、動画再生時にフレームロスや断続的なハングが発生します。 問題の概要は以下のとおりです。 項目観察 プラットフォーム i.MX8QXP C0 MEK OS Yocto Linux [ Scarthgap L6.6.5] ウェストンシェル1 キオスクシェル ウェストンシェル2 イヴィシェル グラフィックスインターフェース ウェイランド / ウェイランド-EGL ビデオ再生 GStreamerベースの再生 観察 テストケース結果 キオスクシェル + ウェイランドEGL プラグインは利用可能でアクセス可能です キオスク端末+ビデオ再生 動画はフレーム落ちやフリーズなくスムーズに再生されます。 ivi-shell + wayland-egl Wayland-eglプラグインが正しく検出・アクセスされません ivi-shell + ビデオ再生 フレーム落ちや断続的なフリーズが観測された サポートが必要です 以下のポイントについてご助言いただけますか? wayland-eglはi.MX8QXP Yocto Linux 6.6.5バージョンの ivi-shell で完全にサポートされているのでしょうか wayland-eglをivi-shellで有効にするために、Weston、IVI-shell、またはコンポジタの設定で何か特別な変更が必要ですか? i.MX8QXP上でivi-shellを使用する場合、推奨されるweston.iniの設定はありますか? ivi-shellの動画再生やGPUによるレンダリングに既知の制限はありますか? ivi-shell + wayland-egl + video playbackの参考文献、パッチ、または例のアプリケーションはありますか? フレームの損失やハングは、コンポジターの設定、バッファの処理、GPU/VPUの統合、またはGStreamerのスリンク選択に関連しているのでしょうか? 要求 この問題を解決するためのガイダンス、推奨構成、および利用可能な参考資料やパッチをご提供ください。 Re: Support Required: Wayland-EGL Plugin and Video Playback Performance Issue with IVI-Shell こんにちは、 以下のドキュメントを参照してください。 https://wayland.pages.freedesktop.org/weston/toc/ivi-shell.html https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/AGL-architecture-and-How-to-port-in-i-MX8qm/ta-p/1383200 よろしくお願いいたします。 アルド。
View full article
iMX 937プロセッサの最小から最大スリープ電流mAはどれくらいですか?   私のプロジェクトではI.MX937プロセッサを使っていますが、i.MX 937プロセッサの典型的なスリープ電流(mA)はどれくらいですか?   Re: What is the min to max sleep current mA for the iMX 937 processor これらのリソースを使い続けるためには、 150μAのスリープ電流は i.MX 937 / i.MX 93プロセッサ自体では現実的ではありません 。 なぜ: モード 電流/電力への影響 150μAに適合しますか? 機能的な適合性 BBSM / RTCモード データシートには、 1.8Vで0.14mW 電力測定アプリのメモには、約 合計97.978 µW わずか  NVCC_BBSM_1P8  アクティブ。 パワーの面では、はい いいえ — BBSM/RTCロジックのみに電源が供給され、GPIOウェイクアップはオフになり、タイマー/PWM/ADCは使用できません。 中断 データシートには、 標準値:15.1mW 25℃で。 いいえ — 150 µA相当をはるかに超える いいえ/制限付き — サスペンドはクロックをオフにし、Cortex-A55の電源を落とし、内部の論理/アナログブロックを停止させることができます。 WFIにおけるLinux Suspend + M33 アプリのノートにはこの用途で合計 122.4 mW 記載されています。 なし 建築的には近いが、それでも現在の目標をはるかに上回っている。 Cortex-M33を用いた低消費電力実行/AONMIX AONMIXは他のドメインが電源オフ中でも動作可能で、タイマー/PWMおよびタイマーリソースを含みます。 150 µAの要件を満たしているとは文書化されていません これはペリフェラルがアクティブでなければならない場合の i.MX 93モードクラスの関連ですが、150 μAクラスのモードではありません。   150 µA の予算は、 1.8Vで0.27mW または 3.3Vで0.495mW 。それはi.MX 93の範囲内です BBSM/RTC専用 アクティブなタイマー出力、ADC、PWM、RTC、およびGPIOを備えた状態ではない状態。 推奨アーキテクチャ:i.MX 937を BBSM/RTCまたは完全電源ゲートスリープ に置き、常時稼働機能(タイマー出力、ADC監視、PWM、GPIO監督)を非常に低消費電力のコンパニオンMCUまたはアナログ/RTC回路に移すこと。条件が満たされると、伴随デバイスが i.MX 937を起動させることができます。 i.MX 937は、非常に限られたRTC/BBSMスタイルの状態でのみ~150μAを供給できます。その予算内でタイマー/PWM/ADC/GPIOの機能を有効に保つことはできません。 Re: What is the min to max sleep current mA for the iMX 937 processor 当社のアプリケーションでは、低消費電力/スリープモードで機能を維持するために以下のリソースが必要です: 1 タイマー出力ピン 1つのADC入力 1 PWM RTC 2~3個のGPIO スリープ時の必要電流は150μAです。 Re: What is the min to max sleep current mA for the iMX 937 processor i.MX 937 / i.MX 93プロセッサ自体については、データシートにはmA単位の「スリープ電流」は一切記載されていません。SUSPENDモードの総電力=25°Cで15.1 mWを指定し、この数値はユースケース依存であることが記されています。SUSPENDは最も低消費電力モードで、クロックはオフ、不要な電源はオフ、パワーゲート可能なSoC部分はゲート、Cortex-A55は完全にパワーゲート、DRAMは自己更新/保持状態です。 予算編成のために同等の電流が必要な場合は、以下を使用してください。 したがって、15.1 mWはおおよそ次の通りに対応します: 想定供給基準 等価電流 5.0V入力 3.0 mA 3.3V入力 4.6 mA これは単なるSoCレール電流ではなく、等価入力電流です。実際のプロセッサ電流は複数の電源レールに分散されます。 もし基板やSOMのディープスリープ電流のことを指しているなら、測定値はより高いもので構成依存することがあります。i.MX93 SOM DSMの測定結果の一つでは、 5Vで4.04mAという値が報告されており、その他の最適化/構成依存の報告では、5Vで1.5mAから9.3mA程度となっている。 プロセッサ仕様には15.1 mWの典型的なSUSPEND電力を使用します。実際の入力レールに対してのみmAに変換してください。例えば、5Vで約3.0mAです。
View full article
What is the min to max sleep current mA for the iMX 937 processor   In my project I am using I.MX937 processor, what is the typical sleep current (mA) for the i.MX 937 processor?    Re: What is the min to max sleep current mA for the iMX 937 processor With those resources required to stay functional, 150 µA sleep current is not realistic for the i.MX 937 / i.MX 93 processor itself . Why: Mode Current/power implication Fits 150 µA? Functional fit BBSM / RTC mode Datasheet lists 0.14 mW at 1.8 V , and the power-measurement app note shows about 97.978 µW total , with only  NVCC_BBSM_1P8  active. Power-wise, yes No — only BBSM/RTC logic remains powered; GPIO wakeup is OFF, and timer/PWM/ADC are not available. Suspend Datasheet lists 15.1 mW typical at 25 °C. No — far above 150 µA equivalent No / limited — suspend turns off clocks, powers down the Cortex-A55, and powers down internal logic/analog blocks that can be shut off. Linux Suspend + M33 in WFI App note lists 122.4 mW total for this use case. No Closer architecturally, but still far above your current target. Low-power run / AONMIX using Cortex-M33 AONMIX can run while other domains are powered down, and includes timer/PWM and timer resources. Not documented as meeting 150 µA This is the relevant i.MX 93 mode class if peripherals must remain active, but it is not a 150 µA-class mode.   A 150 µA budget corresponds to only 0.27 mW at 1.8 V or 0.495 mW at 3.3 V . That is in the range of the i.MX 93 BBSM/RTC-only state, not a state with active timer output, ADC, PWM, RTC, and GPIOs. Recommended architecture: keep the i.MX 937 in BBSM/RTC or fully power-gated sleep , and move the always-on functions — timer output, ADC monitoring, PWM, and GPIO supervision — to a very-low-power companion MCU or analog/RTC circuit. The companion device can wake the i.MX 937 when the condition is met. The i.MX 937 can meet ~150 µA only in a very limited RTC/BBSM-style state; it cannot keep timer/PWM/ADC/GPIO functionality active within that current budget. Re: What is the min to max sleep current mA for the iMX 937 processor In our application, the following resources are required to remain functional during the low-power/sleep mode: 1 Timer output pin 1 ADC input 1 PWM RTC 2–3 GPIOs Our requirement of sleep current is 150 µA. Re: What is the min to max sleep current mA for the iMX 937 processor For the i.MX 937 / i.MX 93 processor itself, the datasheet does not give a single “sleep current” in mA. It specifies SUSPEND mode total power = 15.1 mW at 25 °C , and notes that the number is use-case dependent . SUSPEND is the lowest-power mode where clocks are off, unnecessary supplies are off, power-gateable SoC portions are gated, Cortex-A55 is fully power-gated, and DRAM is in self-refresh/retention. If you need an equivalent current for budgeting, use: So 15.1 mW corresponds approximately to: Assumed supply basis Equivalent current 5.0 V input 3.0 mA 3.3 V input 4.6 mA That is an equivalent input current , not a single SoC rail current; the actual processor current is distributed across multiple power rails. If you mean board/SOM deep-sleep current , measured values can be higher and configuration-dependent. One i.MX93 SOM DSM measurement reported 4.04 mA at 5 V , with other optimized/configuration-dependent reports around 1.5 mA to 9.3 mA at 5 V . Use 15.1 mW typical SUSPEND power for the processor spec; convert to mA only against your actual input rail, e.g. about 3.0 mA at 5 V .
View full article
lowlight opensource ai-isp test on imx95   There are many open-source low-light AI-ISP models. The table below is a comparison table provided by Copilot.  Algorithm GitHub Type i.MX95 NPU Suitability MSR (Retinex) jsrsinchana/.../MSR-algorithm Non-AI (ISP) Medium Zero-DCE++ arnabroy734/low_light_enhancement Lightweight CNN + Curve Very High RetinexNet weichen582/RetinexNet CNN (Retinex) Medium EnlightenGAN VITA-Group/EnlightenGAN GAN (CNN) Very High (lite) FLOL cidautai/FLOL Lightweight CNN High SNR-aware JIA-Lab-research/SNR-Aware Transformer + CNN Low KinD zhangyhuaee/KinD Retinex + CNN Medium RetinexNet-lite Derived Light CNN Medium EnlightenGAN-lite Derived Small CNN Very High Fast LLIE CNN Various Small CNN High Tested above open-source models with UVC to perform performance evaluation on the exip-os08a20 module with linear mode. Found that SCI(GitHub - vis-opt-group/SCI: [CVPR 2022] This is the official code for the paper "Toward Fast, Flexib...) computation is relatively small, low-light performance is good in subjective evaluations, and it can basically run on the IMX95. The testing method involves copying the tflite file and test script to the /root/ directory of the IMX95 and running the following command: `python3 test_sci_cvpr_illu_imx95_int8.py --model sci_tpami_illu_imx95_int8.tflite`. The comparison interface shown below is displayed. i.MX Processors Sensor
View full article
关于将自定义 LPDDR5 时序集成到 i.MX95 OEI 和 DDR PHY 固件使用中的说明 您好,NXP团队, 我正在开发一款基于 i.MX9596 处理器和 LPDDR5 内存,并使用 i.MX OEI 引导加载程序的定制电路板。 我使用 MCUXpresso 配置工具 26.3 版为我的定制板生成了 DDR 配置。生成的文件如下: lpddr5_timing.c lpddr5_config.ds 外围设备.c peripherals.h pin_mux.c pin_mux.h 在 OEI 源代码目录 板/mx95lp5/ddr 下,我找到了以下文件: MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_timing.c MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_ECC_enabled_timing.c XIMX95LPD5EVK19_6400mbps_train_timing_a1.c 我想确认一下定制LPDDR5板的正确集成流程。 生成的 lpddr5_timing.c是否可以用此文件代替 MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_timing.c,并更新 OEI_DDR_CONFIG 以引用新的时序文件? XIMX95LPD5EVK19_6400mbps_train_timing_a1.ca 是 NXP 提供的芯片专用训练文件,定制板需要保持不变吗? OEI 使用以下 DDR PHY 固件二进制文件: lpddr5_imem_v202409.bin lpddr5_dmem_v202409.bin lpddr5_imem_qb_v202409.bin lpddr5_dmem_qb_v202409.bin 只要固件版本与生成的 DDR 时序配置匹配,这些相同的固件二进制文件是否可以在定制的 LPDDR5 板上重复使用? 是否只有在启用 LPDDR5 ECC 时才需要启用 ECC 的时序文件?如果定制板上未使用 ECC,则普通时序文件是否足够? 从 EVK DDR 配置迁移到定制 LPDDR5 板时,是否需要重新生成或修改任何其他文件?请告知。 谢谢! Re: Clarification on Integrating Custom LPDDR5 Timing into i.MX95 OEI and DDR PHY Firmware Usage 你好, 1. 是的,您需要将 MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_timing.c 替换为您的自定义配置。 2. 这是该特定硅片版本的一种不同配置,如果这是你的情况,可以将其用作参考。如果您不使用此配置,则可以保持不变。 3. 是的,这些二进制文件可以重复用于类似的配置,如果您不使用 ECC,则普通的计时文件就足够了。 顺祝商祺!
View full article
s32k 148個のLED点滅サンプルコード こんにちは。S32K148 LED点滅のサンプルコードを使用しているのですが、デバッグ中に問題が発生しています。エラー画面のスクリーンショットを共有します。ご確認いただき、考えられる原因とコードに必要な変更点をお知らせください。 Re: s32k 148 Led Blinking example code こんにちは S32DS v3.4でS32K1 SDK RTM 4.0.3のftm_periodic_interrupt_s32k148プロジェクトをデバッグした際にはこの問題に遭遇しませんでした。 この問題の再現方法、例えばどのような変更を加えたかなどを教えてください。もしよければ、修正したプログラムをアップロードしてください。S32K148EVBで原因を素早く確認できます。 よろしくお願いいたします ロビン
View full article
s32k 148 Led Blinking example code Hi, I am using the S32K148 LED blinking example code, but I am facing an issue while debugging it. I will share a screenshot of the error. Please check it and let me know the possible reason and what changes are required in the code. Re: s32k 148 Led Blinking example code Hi  I didn't encounter this problem when debugging the ftm_periodic_interrupt_s32k148 project of S32K1 SDK RTM 4.0.3 in S32DS v3.4. Please tell me how to reproduce this problem, such as what modifications you made. If convenient, please upload the modified program so I can quickly troubleshoot the cause on S32K148EVB. Best Regards, Robin
View full article
Register app for Android and iOS doesn't work I registered my app for Android, But when trying to do the same for iOS it says "Package Name already exists", Which makes no sense, Android and iOS can have the same package name, it's 2 different platforms. App registration Re: Register app for Android and iOS doesn't work Hello @Skel Hope you are doing well. Although they are different platforms, according to UG10044 and UG10045 Chapter 2, the package string must be unique on the NXP Server for getting a TapLinx license string. I apologize for the inconvenience this might cause you. Regards, Eduardo. Re: Register app for Android and iOS doesn't work @EduardoZamora Hi, How can i transfer my iOS app to Android?
View full article