Multi Source Translation Content

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Multi Source Translation Content

ディスカッション

ソート順:
s32k396 Basic Secure Boot qeustion On a 32K396, HSE FW 0.2.50.0 FULL_MEM is used, and the current lifetime is CUST_DEL. Testing Process: Initially, the system ran normally. Then, the address 0x00453FF0 within the authentication range was changed from 0xFF to 0xFE, while keeping the AppBL Header, authentication tag, and IVT unchanged. The IVT bootCfgWord was set to 0x00000009. After powering off and on again, a J-Link Attach connection was used, without downloading the image, and RAM/ECC initialization during connection was disabled using an empty SetupTarget. At this point, the PC stopped at 0x2040012E. The instructions from 0x2040012C to 0x2040012E are WFI and branches that jump back to WFI, consistent with the JTAG Recovery wait loop. Currently, no user Secure Recovery application is configured. Question: Please confirm the complete handling process and reliable criteria for this version after BSB authentication failure: Why is GPR3 bit5 still 0 even after entering the JTAG Recovery waiting loop? Is it related to the fact that this bit only indicates "SBAF boot application kernel into Recovery" and the current recovery path is triggered by HSE FW? And which status bit or error message should be used to clearly confirm that the failure is due to AppBL authentication failure?
記事全体を表示
S32R41: How to Enable and Verify Cortex-M7 Lockstep Functionality Hello NXP Team, I am working with the NXP S32R41 automotive radar SoC and using Lauterbach TRACE32 for debugging. I would like to understand how to enable and verify the hardware lockstep functionality of the Cortex-M7 cores on the S32R41. Could you please help clarify the following questions? How to enable Lockstep: Is the Cortex-M7 lockstep mode enabled by default on the S32R41, or does it need to be configured? If configuration is required, what are the exact steps to enable it? Is it controlled by hardware configuration, DCF records, startup software, or specific registers? Configuration registers: Which S32R41-specific registers and bit fields indicate whether Lockstep is enabled? Please provide the register names, addresses, bit positions, and expected values. How to verify Lockstep: How can I confirm that the Cortex-M7 cores are actually operating in hardware lockstep mode rather than independent mode? Is checking the configuration register sufficient, or are additional status registers required? Lockstep error detection: Which registers indicate the status of the lockstep comparator? How can I determine whether the comparator is functioning correctly and whether any lockstep mismatch has been detected? TRACE32 debugging: Is there a recommended TRACE32 command sequence or debugging procedure to inspect the lockstep configuration and status? Documentation: Could you point me to the relevant sections of the S32R41 Reference Manual, Safety Manual, or other official documentation describing the lockstep configuration and verification procedure? I want to ensure that the lockstep functionality is correctly enabled and that its operation can be verified using documented, S32R41-specific methods. Please note that I am specifically asking about the S32R41, not the S32K3 family, so I would appreciate register definitions and procedures applicable to the S32R41. Thank you for your support. Best regards Re: S32R41: How to Enable and Verify Cortex-M7 Lockstep Functionality Hello, On the S32R41, the Cortex‑M7 processors are implemented as hardware lockstep core pairs. Lockstep operation is part of the S32R41 hardware configuration and is not enabled by application software, startup code, or an S32K3-style UTEST_MISC[LOCKSTEP_EN] DCF record. The NXP S32R41 product information explicitly describes the Cortex‑M7 implementation as having a lockstep core configuration. 1. No software enable sequence is required 2. The configuration should not be verified using S32K3 registers 3. Debugger visibility provides a practical architectural indication TRACE32 connects to the logical Cortex‑M7 processor. It does not present the redundant checker core as an additional independently debuggable Cortex‑M7. Therefore, only the functional member of each lockstep pair is expected to appear as a debug target. 4. Lockstep mismatch reporting A mismatch detected by the Cortex‑M7 lockstep comparison logic is reported through the S32R41 safety fault-management path. The application must configure the corresponding FCCU fault and its required reaction in accordance with the S32R41 Safety Manual. 5. No special TRACE32 command is required to enable lockstep. 6. Please refer to the following S32R41-specific documents: S32R41 Reference Manual, particularly the Cortex‑M7, FCCU and reset/fault-management chapters; S32R41 Safety Manual, particularly the safety mechanisms covering Cortex‑M7 lockstep execution, lockstep comparison and FCCU fault handling; the device-specific FCCU fault mapping associated with the applicable S32R41 revision; the TRACE32 S32R41 startup scripts supplied with the supported S32R41 software/debug package. Best regards, Peter
記事全体を表示
S32DS S32K144 SDKのインストールに失敗しました Re: S32DS S32K144 SDK install fail はい、ありがとうございます。 Re: S32DS S32K144 SDK install fail こんにちは、@joshua9264さん S32K1用のS32ソフトウェア開発キット(SDK)は、新しいS32DSバージョンではサポートされなくなりました。 このSDKバージョンを使用する必要がある場合は、S32DS v3.4に既に同梱されていることに注意してください。潜在的な互換性の問題を回避し、セットアッププロセスを簡素化するために、ソフトウェアが最初に開発およびテストされたIDEバージョンと同じバージョンを使用することをお勧めします。 BR、VaneB Re: S32DS S32K144 SDK install fail S32DS v3.4はどこでダウンロードできますか? ダウンロードページにて、Arm®ベースMCU向けS32 Design Studio IDE | NXP Semiconductors .exe のない Java タイプのフォルダしかありません アドバイスをお願いします
記事全体を表示
S32 Design Studio for ARM v2018 R1 はライセンスが期限切れとなり、インストールできなくなりました。 以前はS32K144を使用しており、S32 Design Studio for ARM v2018 R1をインストールしていました。しばらく使用した後、期限切れと表示されました。現在はfs65を使用しており、いくつかのサンプルコードを学習する必要があります。サンプルコードは、S32 Design Studio for ARM v2018 R1開発環境に基づいています。インストール中にアクティベーションコードを正常に検証できず、オフラインインストールも機能しませんでした。しかし、ビュー数に拡張機能が見つかりませんでした。 認証コードを入力させていただくか、期限切れのアカウントを復元していただけますでしょうか?よろしくお願いいたします。 以前はS32 Design Studio for ARM v2018 R1でS32K144を使用していましたが、しばらく使用した後、有効期限切れの通知を受け取りました。現在FS65を使用しており、S32 Design Studio for ARM v2018 R1開発環境に基づいたサンプルコードを研究する必要があります。しかし、オンラインでもオフラインでもアクティベーションコードを正常に認証できず、ライセンスを延長するオプションも見つかりません。 アクティベーションコードの認証、または有効期限切れの問題を解決するお手伝いをしていただけませんか?ありがとう! Re: S32 Design Studio for ARM v2018 R1过期后,无法再安装 こんにちは、 お客様のS32DSライセンスが延長されました。以前のコードを使用して、S32DSを再度有効化してください。 Re: S32 Design Studio for ARM v2018 R1过期后,无法再安装 インストールは無事完了しました。ご協力ありがとうございました!
記事全体を表示
RW612: FlexSPIポートの混在(CACHE64書き込みバッファ)、PMUゲートCM33クロック、リセット後にPSRAM FSELが失われる RW612(u-blox IRIS-W10モジュール、CHIP_INFO 0x7002)上に通信スティックを構築します。コードはFlexSPIポートA1の外部16MB QSPI NORからXIPを実行し、同じコントローラーのポートB1には2MBのQSPI PSRAM(APS1604M-3SQR、DQSなし)が接続されています。ファームウェア:MCUXpresso SDK 25.06.00 + FreeRTOS、およびZephyr 4.5.0-rc1です。3つの問題点が見つかりましたので、その根本原因と推奨設定について教えてください。測定値、除外した項目、登録住所、コード抜粋を含む完全な報告書を添付します。 1) CACHE64_CTRL0書き込みバッファが有効になっているFlexSPIポート間でのデータ混合 PSRAMはコードバスウィンドウからアクセスされ、コードはポートAからXIPを実行しているため、PSRAMアクセスは時にフラッシュワードを返すことがあり、命令フェッチは誤ったワード(ヒープコードやNET割り込みのBusFault/UsageFault)を返すこともあります。同一のコードアドレスを持つ画像に対するA/Bテスト:バッファオンの場合、約115分で9回の障害が発生。バッファオフの場合、約195分で0回の障害が発生(p値は約1e-4)。SDK SystemInit()はXIP上でこのバッファを有効にします。 - CCRのCACHE64_CTRL0に訂正や制限はありますか?ポートBにPSRAM、ポートAにXIPを使ったENWRBUFは?SDKはデフォルトで安全ですか? - システムバスウィンドウ(0x28000000/0x38000000 with CACHE64_CTRL1、Zephyr GitHub issue 99943で示唆されているように)は、PSRAMの隣にXIPの隣で必須ですか?CTRL1書き込みバッファは安全ですか?(バッファ7の場合)どのAHB RXバッファ/プリフェッチ設定をお勧めしますか? 両方向の混合のメカニズムは何ですか? 2) PMUはCM33クロック(gate_cpu_clk)を制御し、デバッガが接続されたときにのみコアが再開します。 基板はリセットも故障記録もなくフリーズし、映像にWFIも表示されません(FreeRTOS)。デバッガが接続した瞬間(Cortex-M33のアタッチが素でさえ)すぐに再び動作します。SysTick/ENETカウンターは停止前に読み取られ、DWT_PCSRサンプルはコアが進んでいないことを示している。リセットを有効にした状態でLPOSCにWWDT0を有効化した場合のみ、この問題は回避できた(70分間で0回の故障に対し、無効化した場合は20分間で6~7回の故障)。Zephyrでは、同じクラスがWFIに残るコアとして表示され、OSタイマー割り込みが有効化されています。WFIなしのアイドルループはこれを回避します。 - WFIを使用せず、SCR = 0の場合、PMUはいつCPUクロックをゲート制御するのでしょうか?デバッグ接続によってゲート制御が解除されるのはなぜですか?また、WWDTリセットが有効になっている場合、ゲート制御が解除されないのはなぜですか?SYSCTL2 SOURCE_CLK_GATE CPU_CLK_ENは実際には何を制御しているのでしょうか? - RW612で通常のWFIを使用するには、どのようなウェイクアップ/PMU構成が必要ですか?WFI(給水設備)のない、忙しいけれど何もしない状態は、長期的に見て許容できる戦略でしょうか? 3) ディープリセット後にMCI_IO_MUX FSELビット3(QUAD_SPI_PSRAM、0x40004020)がクリアされる ハング後にWWDTリセットを行った後、QUAD_SPI_PSRAM機能選択ビットがクリアになり、PSRAMパッドが浮かび上がり、すべての読み取りが返0x1797523E、コードが再びピングループを適用するまで続きました。Zephyrはこのピン群自体を適用しません。 - どのリセットタイプがMCI_IO_MUX FSELとパッドプルをリセットしますか?ROMはFSELと接触しますか?ZephyrはXIPの隣でPSRAM(ピン、LUT分離、キャッシュポリシー)をサポートする予定ですか? 未公開項目:NETがZephyrでエラー(ENET_GetRxFrameSizeステータス4001、BABR/CRCエラー)を受け取り、RMIIで100 Mbit/sの全二重KSZ8081を受信しています。これは既知の問題でしょうか? 現在の回避策(CTRL0バッファをPSRAMで書き出し、システムバスウィンドウ、LPOSCでWWDT0をリセット、WFIなしのアイドル、毎回の起動でPSRAMピングループを再適用)は添付のレポートに含まれています。ご指導いただければ幸いです。 製品: WiFi RW6XX Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r @dimush様、 総合的な分析に基づくと、まずはフラッシュメモリとPSRAM間のデータ破損/混在の問題を解決する必要があります。 以下の設定が正しいことを確認する必要があります。 FlexSPIポートA -> QSPI NORフラッシュ -> code-bus/cache0 -> XIP FlexSPIポートB -> PSRAM -> システムバス/キャッシュ1 -> ヒープ/データ また、以下の商品もおすすめします。 CACHE64_CTRL0.ENWRBUF = 0 CACHE64_CTRL1.ENWRBUF = 0 // トラブルシューティング中 PSRAMプリフェッチ = 無効 // トラブルシューティング中 [注] FlashとPSRAMは、それぞれ適切なAHBマッピングパスを使用する必要があります。RW612フラッシュキャッシュとPSRAMキャッシュは、それぞれコードバスとシステムバスにマッピングされています。 FlexSPI LUTの変更、ポートの再構成、メモリエイリアスの切り替え、またはIPコマンドによるメモリの変更を行った後にのみ、FlexSPIがアイドル状態になるまで待って、対応するAHB RX/TXバッファとCPUキャッシュをクリアする必要があります。キャッシュは通常のPSRAMヒープアクセスの前にクリアしてはいけません。 トラブルシューティング中は、PSRAMの非キャッシュ可能なシステムバスエイリアスを使ってキャッシュ機構をさらに分離することもできます。 ありがとうございます よろしくお願いいたします。 維東 Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r ありがとう、ウェイドン。私たちのZephyrビルドはすでにこのレイアウトを使っています:ポートAからコードバス/CACHE64_CTRL0経由XIP(ENWRBUF = 0)、システムバス0x38000000/CACHE64_CTRL1経由でポートBにPSRAM、通常のヒープパスではキャッシュ保守なし。このシステムに移行して以来、第1の問題で発生したデータの混在は見られなくなりました。今度は、CACHE64_CTRL1.ENWRBUF = 0 かつ PSRAM プリフェッチを無効にした状態で、現在のイメージと A/B 比較を実行し、結果を報告します。 残りの問題は2つ目の問題で、約18~20ボード時間ごとにコア全体が停止してしまうことです。SysTickで駆動されるタイマーとワークキューは、最後のウォッチドッグフィードから約1秒以内に同時に停止し、WWDT0リセットによってのみ復旧します。これは、WFIが無効で、システムバスのPSRAMウィンドウが既に設定されているアイドル状態のときに発生します。PMUがWFIなしでCM33クロックをゲートするタイミングや、問題3(WWDTリセット後にFSELビット3がクリアされたMCI_IO_MUX)についてコメントしていただけますか? Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r @dimush様、 最新情報のご提供ありがとうございます。 問題2に関して、PM2のエントリとウェイクアップ設定を確認するには、以下の参照フローを使用してください。必要な調整を行った後、問題が再現可能かどうか確認してください。 まず、PM1の基準値を設定します。 PMUはPM0のままです SCR.SLEEPDEEP = 0 WFIを実行する PM1では、有効かつ有効な割り込みソースはすべてCM33を起動させる必要があります。 PM2に入る前に、ウェイクアップソースを必要なすべてのレベルで設定する必要があります。 周辺タイマーまたはGPIO割り込みを有効化・設定; 対応するNVIC割り込みを有効にする。 PMUウェイクアップマスクで、対応するPM2ウェイクアップソースを有効にします。 ウェイクアップソースに必要なクロックがPM2内でアクティブな状態を維持するようにしてください。 古いペリフェラルの割り込み状態をすべて消去します。 次の有効なタイマーマッチ/比較イベントをプログラムします。 NVIC割り込みが保留状態にあることだけでは、そのソースがPM2ウェイクアップソースとして構成されていることを証明するものではありません。PM2はタイマー、GPIO、FlexSPI、USB、DMA、イーサネットなどのウェイクアップソースをサポートしています。 文書化されたPM2移行は以下のとおりです。 PM0 -> PM2: PMUの電力モードを2'b01に設定します。 WFIを実行する PM2では、CPUの状態が保持されている間、CM33のクロックはゲート制御されます。AONドメインと選択されたPM2起動ソースはアクティブな状態を維持します。 以下のコードは、処理手順を説明するためのものであり、直接コピーして使用することを意図したものではありません。 configure_wakeup_source(); enable_peripheral_interrupt(); enable_nvic_interrupt(); enable_pmu_pm2_wakeup_source(); clear_peripheral_interrupt_status(); program_next_timer_event(); /* PM2に入る前にCPU_CLK_ENを有効にしておく */ set_pmu_power_mode(PM2); __DSB(); __ISB(); __WFI(); __ISB(); 本番環境実装では、PMUレジスタを直接プログラムするのではなく、対応するMCUXpresso SDKバージョンが提供するパワーマネージメントAPIを使用してください。SDKのAPI名称はバージョンごとに異なる場合があります。 PM2に入る前に、SYSCTL2.SOURCE_CLK_GATE.CPU_CLK_ENが有効になっていることを確認してください。PM2をエミュレートするためにこのビットをクリアしてはいけません。CPUクロックゲーティングはPMU電源モード遷移によって実行されるべきです。 PM2に入る直前に、以下の値を記録してください。 PMU電源モード SCB->SCR SYSCTL2.SOURCE_CLK_GATE CPU_CLK_EN PM22対策マスク NVICの有効化/保留ステータス タイマー有効化/ステータスレジスタ 最後に、FreeRTOSのWFI非対応構成を別途テストしてください。 WFIなし SCR.SLEEPDEEP = 0 PMUの電力モードはPM0のままです。 CPU_CLK_EN = 1 これらの条件下でもCM33が停止する場合、その挙動は正常なPM2遷移とはみなすべきではない。その場合は、予期せぬクロックゲート動作、またはRW612 PMU/クロックゲーティング用シリコンの問題の可能性として調査する必要があります。 問題3に関して、WWDTリセット後、RW612はブートROMブートフローを通じて再起動します。 起動ROM -> FlexSPI NOR/FCB - >アプリケーションイメージ アプリケーションイメージにPSRAMのピン多解式設定コードが含まれている場合、そのコードを再度実行して有効にします。したがって、アプリケーションコードに必要なPSRAMピン-マルチックス構成が含まれているか必ず確認してください。 ありがとうございます よろしくお願いいたします。 維東 Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r ありがとう、ウェイドン。ご依頼いただいたFreeRTOSのWFI非対応テストを、弊社の高速再現ボードで実行しました。BoardInit の後に明示的に設定され、1 秒ごとに再チェックされる条件: イメージ内のどこにも WFI がない (逆アセンブリで検証済み。ティックレス アイドルはオフ)、SCB->SCR = 0 (SLEEPDEEP = 0、SLEEPONEXIT = 0)、PMU PWR_MODE = PM0 (PWR_MODE_STATUS = 0)、SYSCTL2.SOURCE_CLK_GATE = 0x700100D2 (CPU_CLK_EN = 1)、WWDT は無効。注: ROM/ブートローダーは SOURCE_CLK_GATE = 0x300000C6 を残しました。CPU_CLK_EN = 0、コアが動作中。 結果:CM33は約7分以内に3回停止した(最初の停止は約6分後の稼働後)。SysTickとOSタイマーのギャップチェックによると、デバッガーが接続されるまでコアは進んでいませんでした。最初の停止では12.4秒、その後は接続するたびに進みました。割り込まれたThreadは毎回lwIP RXタスクであり、PC 0x20002344(SRAM内のコード)でした。停止1秒前のレジスタスナップショット:PWR_MODE 0、PWR_MODE_STATUS 0、WAKEUP_LEVEL 0x3、WAKEUP_MASK 0x20、WAKEUP_STATUS 0、PM2マスク 0x0/0x200/0x800000、SCR 0、ICSR 0x00400000、SOURCE_CLK_GATE 0x700100D2、NVIC ISER 0x00010400/0x00040000/0/0x00080000、ISPR3 0x120、SysTick CTRL 0x10007、CLKCTL0 PSCCTL0..2 0x02410E07/0x0E020001/0x8、CLKCTL1 PSCCTL0..2 0x08000D00/0x00010003/0x8000004D。アタッチ後、DHCSR = 0x01100001 (実行中)。 あなたの基準によれば、これは予期せぬクロックゲートであり、PM2遷移ではありません。さらに2つの観察結果:LPOSCでWWDT0を有効化した場合、FreeRTOSでは以前は停止が発生しなかった(70分で0)。Zephyrでは、アイドルループが毎回OSタイマーを読み取るビルドで、91ボード時間(約4ボード時間)停止なしで動作していましたが、現在それを分離しています。完全なレジスターのダンプを添付できます。次のステップとして何を提案しますか?また、これに関する既知の誤りはありますか? Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r @dimush様、 最新情報のご提供ありがとうございます。 最も低いレジスタレベルやIPコマンドレベルで調査を続けると、誤った方向に進んでしまう可能性がある。別のアプローチを取るべきです。RW612とu-blox W10モジュールが正常に動作していると仮定し、SDKレベルから調査を再開します。 あなたはW10モジュールを使用しているとおっしゃっていましたね。私は以前、u-blox W10 EVKのデバッグを行ったことがあります。お使いのモジュールがFM25Q128A QSPI NORフラッシュを使用しているかどうかをご確認ください。その後、以下を検証できます: FCBフラッシュのタイミング設定。 実行時のLUT設定。 さらに、W10のPSRAMはお客様追加です。部品番号と仕様をお知らせください。また、LUTの設定も確認する必要があります。   ありがとうございます よろしくお願いいたします。 魏東 Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r ありがとう、ウェイドン。構成は以下のとおりです。完全なFCB、ランタイムレジスタ、および実行中のボードから読み取られたLUTワードは、添付のRW612_FlexSPI_config_dongle_c0.txtに記載されています。 フラッシュメモリ:はい、FM25Q128A - Fidelix、JEDEC ID F8 42 18、16 MB、ポートA1、XIPです(最初のレポートでは誤って「Fudan」と記載されていました)。0x08000400 の FCB は u-blox IRIS-W1 "Fidelex 8/16 MB" です。flash_config.c(FRDM-RW612 ベース): readSampleClkSrc 1 (DQS-pad ループバック)、CS ホールド/セットアップ 3/3、sflashPadType 4、serialClkFreq 7 (133 MHz 列挙; FRDM-RW612 は 5 = 100 MHz)、QE は WRSR 01h を介して 0x0200 で設定、シーケンス EBh 1-4-4 をモードバイト 0x00 と 4 つのダミーサイクルで読み出します (LUT 0x0A1804EB 0x32041E00 0x00002604)。ROMはこのパーツのSFDPを読み取れないため、フルFCBが使われます。 ランタイム:ブートローダーはFlexSPIのルートを130 MHzに設定します。Zephyrアプリケーションはコントローラ設定をXIPで維持し、ランタイムの読み込みLUTはFCBと同じで、PSRAM initはルートディバイダーを/3に設定します。MCR0.SERCLKDIV = 1 の場合、シリアルクロックは両方のポートで約 43 MHz になります (PSRAM SCLK で測定: 43 MHz)。MCR0 0xFFFF1110、MCR2 0x200009F7、AHBCR 0x00200078、FLSHA1CR1 0x63。 PSRAM: AP Memory APS1604M-3SQR、16 Mbit、2.7~3.6 V (3.3 V 電源)、QSPI SDR、DQS ピンなし (RDQS プルダウン)、3.3 V で最大 109 MHz、tCEM 8 μs。ポートB1:2MB、CSホールド/セットアップ3/3、データ有効時間1、書き込みマスクオフ。LUT を 6 つのダミーサイクルで EBh 1-4-4 を読み取り (0x0A1804EB 0x26043206)、38h 1-4-4 を書き込み (0x0A180438 0x00002200)、66h/99h をリセットします。CACHE64_CTRL1はシステムバスの0x39000000を通じてのみアクセスされます。XIPはコードバスをCACHE64_CTRL0で使用します。ENWRBUF = 0。この構成ではPSRAMのスコープで測定:SCK 43 MHz、CE#低パルスは最大19 us(APS1604M tCEMは8 us)。 ポートBのサンプリングはFRDM-RW612リファレンスと一致します(両ポートともDQSパッドループバック、RX_CLK_SRC_DIFF = 0)。 コアの停止についてですが、Zephyrでもトラブルシューティング設定(CTRL1でバッファを書き出す、プリフェッチをオフにする)でも同じことが起こりました。現在使用している2つのビルド(1つはトレースフックあり、アイドルフックなし、もう1つはアイドルループでOSタイマーを読み取る)は、停止することなく約50ボード時間稼働しました(予想では約2時間)。
記事全体を表示
iMX8MP 和解串器 大家好! 我们的数字视频注册器中使用的是 i.MX 8M Plus。我们目前的任务是修改设计,使用 SerDes 芯片连接至少两个(最好是 4 个)摄像头。在研究过程中,我发现连接 DS90UB960 或 DS90UB954 可能会有问题,因为该处理器不支持虚拟通道。 是否有关于连接其他解串器(例如 TI、模拟设备、THine Electronics 等)的信息或积极经验? 此致, 哔叽 Re: iMX8MP and Deserializers 您好, 感谢您对恩智浦半导体产品的关注, 正如您所提到的,由于缺少虚拟通道,i.MX 8M Plus 没有可用的串行器,但有适用于 i.MX 8 系列处理器(使用 i.MX8QM 和 i.MX8QXP)的参考,i.MX 95 支持虚拟通道,并且也有串行器参考。 此致 Re: iMX8MP and Deserializers 我知道不能使用解串器将两台摄像机连接到单个 MIPI 接口。 但是,是否有成熟的解串器解决方案可以将单个/两个摄像头连接到单个/两个 CSI/MIPI 接口? 例如,是否可以使用 MAX96714? Re: iMX8MP and Deserializers 您好, 不,目前还没有像文中描述的那样被证实有效的解决方案。 此致,
記事全体を表示
LPC1768 上 IAP RAM 预留的说明 在我需要维护的旧版 LPC1768/9 MBED 项目中,有一个链接器脚本将可用 RAM 范围的上限缩小了 32 字节。换句话说,虽然 SRAM 的实际大小为 32k,起始地址为 0x10000000,但强制结束地址为 0x10007FE0(而不是人们所期望的 0x10008000)。对此给出的简要解释是“用于 IAP 功能”。 这是真的吗?IAP API 是否存在固定地址内存使用?如果是这样,请问有人能提供相关文档链接或更详细的解释吗? LPC17xx Re: Explanation for IAP RAM reservation on LPC1768 请参阅《用户手册》(UM10360)第32.3.2.8段: 32.3.2.8 IAP 命令处理程序使用的 RAM Flash 编程命令使用片上 RAM 的前 32 个字节。用户分配的堆栈空间中,堆栈使用量的最大值为 128 字节,并且向下递增。 我不知道那段话里的“片上RAM”是什么意思。根据内存映射 LPC1768,它可能是以下两种情况之一: 或者:“片上 SRAM 0x10000000 ... 0x10007FFF” 或者:“AHB SRAM 0x2007C000 ... 0x20083FFF”。 我认为最有可能的是第一个范围:0x10000000 ... 0x10007FFF。 但是,如果您没有从固件中调用 IAP,那么您就无需担心这 32 字节。 Re: Explanation for IAP RAM reservation on LPC1768 探究这些硬件-软件交互背后的“为什么”总是一件很有趣的事情。我目前的“动力”通常集中在游戏中的清线上。我最近真的很喜欢玩《几何冲刺》 ,特别是消除方块行并防止板被填满的那种满足感。这是一种很好的放松方式,也能让我的大脑保持活跃,进行模式识别。关于您提出的 IAP 功能问题,较窄的 RAM 范围是否会对您的项目造成重大限制?
記事全体を表示
PN7150/NCI:无法使用自定义嵌入式键B更新 MIFARE Classic 1K 扇区尾部 NXP社区的各位朋友,大家好! 我正在使用MIFARE Classic 1K卡和 NXP PN7150 NFC 控制器,它们运行在标准的 NCI 协议层上。我正在尝试实现一个配置功能,将自定义密钥密码写入目标扇区(扇区 7 )的密钥 B ,但卡芯片始终拒绝写入命令。 以下是我的卡片的确切状态和实现细节: 当前第 7 区状态:该区目前为空白/未格式化。读取转储显示它处于出厂默认状态,访问位为FF078069 ,密钥 A 和键B 都设置为 0xFFFFFFFFFFFF。 目标:我希望保留密钥 A 作为读取密钥,保留开放访问位布局,并将密钥 B 替换为个人自定义密钥有效载荷(0x01 0x02 0x03 0x04 0x05 0x06)。 问题:当我尝试将 16 字节的原始块布局字符串( FFFFFFFFFFFFFF078069010203040506 )写入块 3 (扇区 7 尾部)时,写入事务失败。 注意:我使用应用程序对卡进行了 NDEF 格式化,访问字节显示为7F078840 非常感谢您的指导!   此致   Re: PN7150/NCI: Unable to update MIFARE Classic 1K Sector Trailer with Custom Embedded Key B 你好@Saqib1 希望你一切都好。 请注意,PN7150 不建议用于新设计;我们建议改用PN7160 。此外,也不建议在新设计中使用 MIFARE Classic;可以考虑使用MIFARE DESFire Light 。 在发送写入命令之前,请确保使用密钥 A (FFFFFFFFFFFFh) 对块 1Fh(第 7 扇区尾部)进行身份验证已成功执行。 现在,在对块 1Fh 进行身份验证后,请验证写入命令是否按照MIFARE Classic EV1 1K数据手册第 12.3 节中描述的步骤发送。WRITE 操作由两个部分组成,必须按顺序发送: 第 1 部分:发送命令字节和块地址,包括 CRC:A0 + XX + CRC,其中 XX 是块地址(例如,1Fh 表示第 7 扇区尾部)。卡片必须先回复 ACK 才能继续执行。 第 2 部分:只有在收到 ACK 后,才发送包含 CRC 的 16 字节数据:[16 字节有效载荷] + CRC。该卡将以最终的 ACK 响应,以确认写入操作已被接受。 问候, 爱德华多。 Re: PN7150/NCI: Unable to update MIFARE Classic 1K Sector Trailer with Custom Embedded Key B 你好,爱德华多, 我正在等待收到新卡。我一收到您的建议,就会立即实施并回复您。还有一个问题是关于CRC计算的。我们该如何进行CRC计算? 此致 Re: PN7150/NCI: Unable to update MIFARE Classic 1K Sector Trailer with Custom Embedded Key B 你好@EduardoZamora 我已经编写了代码。问题是,我想把它格式化成 NDEF 格式,并且继续自己写入私钥,因为这是关键要求。您能看一下程序流程吗?   void RW_NDEF_MIFARE_Write_Next(uint8_t* pRsp, uint16_t Rsp_size, uint8_t* pCmd, uint16_t* pCmd_size) { *pCmd_size = 0;   NDEF_MIFARE_t* TxT = &RfInterface.NDEF_MIFARE; NDef_MsgBuf_t* Msg = &RfInterface.Msg;   switch(Msg->Wr_State)     { case M_Wr_Init: { pCmd[0] = 0x40; pCmd[1] = 0x01; pCmd[2] = 0x10;   memcpy(&pCmd[3], KeyA, 6);   *pCmd_size = 9;   Msg->Wr_State = M_Wr_Authenticated; } 休息;   案例 M_Wr_Authenticated: { 如果 (Rsp_size != 2) 则跳出循环; 如果 (pRsp[Rsp_size-1] != 0x00) 则跳出循环;   pCmd[0] = 0x10; pCmd[1] = 0x30; pCmd[2] = 0x01; *pCmd_size = 3;               Msg->Wr_State = M_Wr_Read_GPB;      } 休息;   案例 M_Wr_Read_GPB: { 如果 (Rsp_size != 18) 则跳出循环; 如果 (pRsp[Rsp_size-1] != 0x00) 跳出循环;   如果 (pRsp[3] != MIFARE_NFC_CLUSTER) 则跳出循环; 如果 (pRsp[4] != MIFARE_FUNCTION_CLUSTER) 则跳出循环;   pCmd[0] = 0x40; pCmd[1] = 0x01; pCmd[2] = 0x01; *pCmd_size = 3;   Msg->Wr_Index = 0;             TxT->BlkNb = 3;               Msg->Wr_State = M_Wr_Write_Data_1;      } 休息;   case M_Wr_Write_Data_1: { 如果 (pRsp[Rsp_size-1] != 0x00) 跳出循环;   /* NDEF 写入是否已完成?*/ 如果 (Msg->Wr_Size <= Msg->Wr_Index) { 如果 ( TxT>BlkNb ==7) {   pCmd[0] = 0x10; pCmd[1] = 0xA0; pCmd[2] = 0x07; *pCmd_size = 3; Msg->Wr_State = M_Wr_Write_Data_2; } 别的 { 如果 (nfc_Use_Callback) { 如果 (NDEF_PushCb != NULL) { NDEF_PushCb(Msg->Wr, Msg->Wr_Size); } } } 休息;        }   如果 (( (TxT->BlkNb+1) % 4) == 0) { /* 验证下一个区块 */ pCmd[0] = 0x40; pCmd[1] = (TxT->BlkNb+1)/4; pCmd[2] = 0x01; *pCmd_size = 3;                 Msg->Wr_State = M_Wr_Write_Data_1;                 TxT->BlkNb++;        } 别的 { pCmd[0] = 0x10; pCmd[1] = 0xA0; pCmd[2] = TxT->BlkNb; *pCmd_size = 3;                 Msg->Wr_State = M_Wr_Write_Data_2;        }      } 休息;   case M_Wr_Write_Data_2: { 如果 (Rsp_size != 3) 则跳出循环; 如果 (pRsp[Rsp_size-1] != 0x00) 跳出循环;   if(TxT->BlkNb == 7 &&Msg->Wr_Size <= Msg->Wr_Index ) { pCmd[0] = 0x10; memcpy(&pCmd[1], KeyA,6); memcpy(&pCmd[7], accessBytes, 4); memcpy(&pCmd[11], KeyB,6);   *pCmd_size = 17; TxT->BlkNb ++; Msg->Wr_State = M_Wr_Write_Data_1; 休息;   }   /* 要写入的第一个代码块?*/ 如果 (TxT>BlkNb == 4) { pCmd[0] = 0x10; //pCmd[1] = 0x00; //pCmd[2] = 0x00; memset(&pCmd[1], 0x00, 16);   pCmd[3] = 0x03; 如果 (Msg->Wr_Size->0xFF) { pCmd[4] = 0xFF; pCmd[5] = (Msg->Wr_Size & 0xFF00) -> -> 8; pCmd[6] = Msg->Wr_Size & 0xFF; memcpy(&pCmd[7], Msg->Wr, 10); Msg->Wr_Index = 10;          } 别的 { pCmd[4] = Msg->Wr_Size; //memcpy(&pCmd[5], Msg->Wr, 12); //Msg>Wr_Index = 12; uint16_t CopySize = Msg->Wr_Size; 如果(CopySize > 12) { CopySize = 12; }   memcpy(&pCmd[5], Msg->Wr, CopySize); Msg->Wr_Index = CopySize;          }        } 别的 { //pCmd[0] = 0x10; //memcpy(&pCmd[1], Msg->Wr + Msg->Wr_Index, 16); //Msg>Wr_Index += 16; pCmd[0] = 0x10;   uint16_t 剩余数量 = Msg->Wr_Size - Msg->Wr_Index; uint16_t CopySize = (剩余 > 16) ?16:剩余;   memset(&pCmd[1], 0x00, 16); memcpy(&pCmd[1], Msg->Wr + Msg->Wr_Index, CopySize);   Msg->Wr_Index += CopySize;        }   *pCmd_size = 17;             TxT->BlkNb++;             Msg->Wr_State = M_Wr_Write_Data_1;      } 休息;   默认: 休息;    } }
記事全体を表示
RW612:FlexSPI端口混合(CACHE64写缓冲区),PMU门控CM33时钟,复位后PSRAM FSEL丢失 我们在 RW612(u-blox IRIS-W10 模块,CHIP_INFO 0x7002)上构建了一个通信棒。代码从 FlexSPI 端口 A1 上的外部 16 MB QSPI 或非 运行 XIP,并且 2 MB QSPI PSRAM(APS1604M-3SQR,无 DQS)位于同一控制器的端口 B1 上。固件:MCUXpresso SDK 25.06.00 + FreeRTOS,以及 Zephyr 4.5.0-rc1。我们发现了三个问题,希望了解根本原因和推荐设置。附件包含完整的测量结果、我们排除的因素、注册地址和代码摘录。 1) 启用 CACHE64_CTRL0 写缓冲区后,FlexSPI 端口之间会发生数据混合。 通过代码总线窗口访问 PSRAM,并且代码从端口 A 运行 XIP,PSRAM 访问有时会返回一个闪存字,而指令获取有时会返回错误的字(在我们的堆代码和 ENET 中断中为 BusFault/UsageFault)。对具有相同代码地址的图像进行 A/B 测试:缓冲区开启,约 115 分钟内出现 9 次故障;缓冲区关闭,约 195 分钟内出现 0 次故障(p 约为 1e-4)。SDK 的 SystemInit() 函数在 XIP 下启用此缓冲区。 - 当端口 B 上的 PSRAM 和端口 A 上的 XIP 时,CACHE64_CTRL0 CCR.ENWRBUF 是否存在勘误或限制?SDK 的默认设置是否安全? - 对于 PSRAM 而言,除了 XIP 之外,系统总线窗口(0x28000000/0x38000000,使用 CACHE64_CTRL1,如 Zephyr GitHub 问题 99943 中所建议的)是否是必需的?CTRL1 写入缓冲区是否安全?您推荐哪种 AHB RX 缓冲区/预取设置(缓冲区 7)? - 双向混合的机制是什么? 2) PMU 控制 CM33 时钟 (gate_cpu_clk),只有当调试器连接时,内核才会恢复运行。 板死机,没有 RESET,也没有故障记录,映像中没有 WFI(FreeRTOS);一旦调试器连接(即使是裸露的 Cortex-M33 连接),它就会再次运行。在停止之前读取的 SysTick/ENET 计数器和 DWT_PCSR 样本显示核心没有前进。只有在 LPOSC 上启用复位功能的 WWDT0 才能防止这种情况发生(70 分钟内发生 0 次故障,而未启用复位功能时每 20 分钟发生 6-7 次故障)。在 Zephyr 上,同一类核心会保持 WFI 状态,并且启用了操作系统定时器中断挂起;没有 WFI 的空闲循环可以避免这种情况。 - 在无 WFI 且 SCR = 0 的情况下,PMU 何时会对 CPU 时钟进行门控?为什么调试连接会释放它,而已激活的 WWDT RESET 又会阻止它?SYSCTL2 SOURCE_CLK_GATE CPU_CLK_EN 实际上控制的是什么? - RW612 上的普通 WFI 需要什么样的唤醒/PMU 配置?长期来看,没有WFI的繁忙闲置状态是否是一种可接受的策略? 3) 深度复位后,MCI_IO_MUX FSEL 位 3(QUAD_SPI_PSRAM,0x40004020)被清除 在 WWDT 复位后,系统出现卡顿,QUAD_SPI_PSRAM 功能选择位被清除,PSRAM 焊盘处于浮空状态,每次读取都返回 0x1797523E,直到我们的代码再次应用引脚组。Zephyr 本身并不应用此引脚组。 - 哪些复位类型会复位 MCI_IO_MUX FSEL 并拉出焊盘?ROM 是否涉及 FSEL?Zephyr 是否计划支持 PSRAM 以及 XIP(引脚、LUT 分离、缓存策略)? 未解决的问题:在 Zephyr 上使用 KSZ8081 通过 RMII 以 100 Mbit/s 全双工速率传输数据时,出现 ENET 接收错误(ENET_GetRxFrameSize 状态 4001,BABR / CRC 错误)——这是一个已知问题吗? 我们目前的解决方法(关闭 CTRL0 写缓冲区并使用 PSRAM、系统总线窗口、在 LPOSC 上启用 WWDT0 并进行 RESET、不使用 WFI 的空闲状态、每次启动时重新应用 PSRAM 引脚组)已在附件报告中列出。感谢您的指导。 产品:WiFi RW6XX Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r 亲爱的@dimush , 根据我们的总体分析,我们首先应该解决闪存和 PSRAM 之间的数据损坏/混合问题。 我们需要确保以下配置正确: FlexSPI 端口 A -> QSPI 或非 Flash -> 代码总线/缓存 0 -> XIP FlexSPI 端口 B -> PSRAM -> 系统总线/缓存 1 -> 堆/数据 我们还推荐: CACHE64_CTRL0.ENWRBUF = 0 CACHE64_CTRL1.ENWRBUF = 0 // 故障排除期间 PSRAM 预取 = 已禁用 // 故障排除期间 [注意] Flash 和 PSRAM 应该使用各自正确的 AHB 映射路径。RW612 Flash 缓存和 PSRAM 缓存分别映射到代码总线和系统总线。 只有在修改 FlexSPI LUT、重新配置端口、切换内存别名或通过 IP 命令修改内存之后,才需要等待 FlexSPI 空闲并清除相应的 AHB RX/TX 缓冲区和 CPU 缓存。不应在每次正常 PSRAM 堆访问之前清除缓存。 在故障排除过程中,还可以使用 PSRAM 非缓存系统总线别名来进一步隔离缓存机制。 谢谢! 顺祝商祺! 卫东 Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r 谢谢你,卫东。我们的 Zephyr 版本已经使用了这种布局:XIP 从端口 A 通过代码总线 / CACHE64_CTRL0 (ENWRBUF = 0),PSRAM 在端口 B 通过系统总线 0x38000000 / CACHE64_CTRL1,在正常的堆路径中没有缓存维护。自从我们迁移到新系统后,就没有再出现过第 1 期数据混合的问题。现在我们还将运行 CACHE64_CTRL1.ENWRBUF = 0 并禁用 PSRAM 预取,与我们当前的镜像进行 A/B 对比,并报告结果。 剩下的问题是问题 2:大约每 18-20 个板小时,整个核心就会停止运行一次。SysTick 驱动的定时器和工作队列在最后一次看门狗馈送后大约 1 秒内同时停止,只有 WWDT0 复位才能恢复它。即使在没有 WFI 且系统总线 PSRAM 窗口已就位的情况下,也会发生这种情况。您能否评论一下 PMU 何时在没有 WFI 的情况下控制 CM33 时钟,以及问题 3(WWDT 复位后 MCI_IO_MUX FSEL 位 3 被清除)? Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r 亲爱的@dimush , 谢谢你的更新。 关于问题 2 ,请使用以下参考,引用流程来验证您的 PM2 条目和唤醒配置。进行必要的调整后,请检查是否还能重现该问题。 首先,建立 PM1 基线: PMU 仍位于 PM0 SCR.SLEEPDEEP = 0 执行 WFI 在 PM1 中,任何已启用且有效的中断源都应该唤醒 CM33。 进入 PM2 之前,必须先配置唤醒源的所有必要级别: 启用并配置外设定时器或GPIO中断; 启用相应的NVIC中断; 在 PMU 唤醒掩码中启用相应的 PM2 唤醒源; 确保唤醒源所需的时钟在 PM2 中保持活动状态; 清除所有过期的外围设备中断状态; 编写下一个有效的计时器匹配/比较事件程序。 仅凭待处理的 NVIC 中断并不能证明该源配置为 PM2 唤醒源。PM2 支持定时器、GPIO、FlexSPI、USB、DMA 和以太网等唤醒源。 有据可查的PM2.5转变过程是: PM0 -> PM2: 设置 PMU pwr_mode = 2'b01 执行 WFI 在 PM2 中,CM33 时钟被门控,而 CPU 状态保持不变。AON 域和选定的 PM2 唤醒源保持活动状态。 以下代码仅用于说明操作步骤,请勿直接复制: 配置唤醒源(); 启用外设中断(); 启用 nvic_interrupt(); 启用 pmu_pm2_唤醒源(); 清除外设中断状态(); program_next_timer_event(); /* 进入 PM2 之前,请保持 CPU_CLK_EN 启用 */ 设置 pmu 功率模式(PM2); __DSB(); __ISB(); __WFI(); __ISB(); 对于生产环境的实现,请使用相应 MCUXpresso SDK 版本提供的电源管理单元 API,而不是直接对 PMU 寄存器进行编程。SDK API 名称在不同的 SDK 版本之间可能有所不同。 另外,请在进入 PM2 之前确认 SYSCTL2.SOURCE_CLK_GATE.CPU_CLK_EN 是否仍然启用。不应清除此位以模拟 PM2;CPU 时钟门控应由 PMU 电源模式转换执行。 请在进入 PM2 之前立即记录以下数值: PMU 电源模式 SCB->SCR SYSCTL2.SOURCE_CLK_GATE CPU_CLK_EN PM2唤醒面罩 NVIC启用/待处理状态 定时器使能/状态寄存器 最后,请单独测试 FreeRTOS 的无 WFI 配置: 无注射用水 SCR.SLEEPDEEP = 0 PMU 电源模式仍为 PM0 CPU_CLK_EN = 1 如果 CM33 在这些条件下仍然停止运行,则该行为不应被视为正常的 PM2 转换。那么应该调查这是意外的时钟门操作还是 RW612 PMU/时钟门控硅的问题。 关于问题 3 ,在 WWDT RESET 后,RW612 会通过 Boot ROM 启动流程重新启动: 启动 ROM -> FlexSPI 或非/FCB ->应用程序映像 如果应用程序映像包含 PSRAM 引脚复用配置代码,则应再次执行该代码并使其生效。因此,请确认应用程序代码包含所需的 PSRAM 引脚复用配置。 谢谢! 顺祝商祺! 卫东 Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r 谢谢你,卫东。我们在快速复现板上运行了您要求的 FreeRTOS 无 WFI 测试。在 BoardInit 之后显式设置的条件,并每秒重新检查一次:映像中任何地方都没有 WFI(通过反汇编验证;无滴答空闲关闭),SCB->SCR = 0(SLEEPDEEP = 0,SLEEPONEXIT = 0),PMU PWR_MODE = PM0(PWR_MODE_STATUS = 0),SYSCTL2.SOURCE_CLK_GATE = 0x700100D2(CPU_CLK_EN = 1),WWDT 已禁用。注意:ROM/引导加载程序左侧 SOURCE_CLK_GATE = 0x300000C6,即CPU_CLK_EN = 0,核心正在运行。 结果:CM33 在大约 7 分钟内停止了 3 次(第一次停止是在运行约 6 分钟后)。SysTick 和操作系统定时器间隙检查显示,在我们的调试器连接之前,内核没有前进:第一次停止用了 12.4 秒,然后每次我们连接时都是如此。每次中断的线程都是 lwIP RX 任务,PC 为 0x20002344(SRAM 中的代码)。停止前 1 秒的快照寄存器:PWR_MODE 0,PWR_MODE_STATUS 0,WAKEUP_LEVEL 0x3,WAKEUP_MASK 0x20,WAKEUP_STATUS 0,PM2 掩码 0x0/0x200/0x800000,SCR 0,ICSR 0x00400000,SOURCE_CLK_GATE 0x700100D2,NVIC ISER 0x00010400/0x00040000/0/0x00080000,ISPR3 0x120,SysTick CTRL 0x10007,CLKCTL0 PSCCTL0..2 0x02410E07/0x0E020001/0x8,CLKCTL1 PSCCTL0..2 0x08000D00/0x00010003/0x8000004D。附加后 DHCSR = 0x01100001(运行中)。 按照你的标准,这是一个意外的时钟门,而不是 PM2 转换。还有两点观察:在 LPOSC 上启用 WWDT0 后,FreeRTOS 上更早地没有发生停止(70 分钟内停止)。在 Zephyr 上,一个空闲循环在每次运行中都会读取操作系统计时器的构建版本运行了 91 个板小时而没有停止(预期约为 4 个板小时),我们现在正在隔离这个问题。我们可以附上完整的寄存器转储文件。您建议下一步该怎么做?是否有相关的勘误表? Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r 亲爱的@dimush , 谢谢你的更新。 继续在最低注册级别和 IP 命令级别进行调查可能会让我们走错方向。我们应该采取不同的方法:假设 RW612 和 u-blox W10 模块运行正常,并从 SDK 级别重新开始调查。 您提到您使用的是W10模块。我之前调试过 u-blox W10 EVK。请确认您的模块是否使用 FM25Q128A QSPI 或非 Flash。然后我们可以验证: FCB Flash 定时配置; 运行时查找表配置。 此外,W10 上的 PSRAM 是用户自行添加的。请提供其零件编号和规格。我们还需要验证其查找表配置。   谢谢! 此致, 卫东 Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r 谢谢你,卫东。以下是配置信息;完整的 FCB、运行时寄存器和从运行板读取的 LUT 字都在附件 RW612_FlexSPI_config_dongle_c0.txt 中。 Flash:是的,它是 FM25Q128A - Fidelix,JEDEC ID F8 42 18,16 MB,位于 A1 端口,XIP(我们之前的报告错误地写成了“复旦”)。位于 0x08000400 的 FCB 是 u-blox IRIS-W1“Fidelex 8/16 MB” flash_config.c(基于 FRDM-RW612):readSampleClkSrc 1(DQS 焊盘环回),CS 保持/建立 3/3,sflashPadType 4,serialClkFreq 7(133 MHz 枚举;FRDM-RW612 有 5 = 100 MHz),QE 通过 WRSR 01h 设置为 0x0200,读取序列 EBh 1-4-4,模式字节为 0x00,4 个虚拟周期(LUT 0x0A1804EB 0x32041E00 0x00002604)。ROM 无法读取该部分的 SFDP,因此使用完整的 FCB。 运行时:引导加载程序将 FlexSPI 根设置为 130 MHz;Zephyr 应用程序在 XIP 下保持控制器设置,运行时读取 LUT 与 FCB 相同,我们的 PSRAM 初始化将根分频器设置为 /3。当 MCR0.SERCLKDIV = 1 时,两个端口上的串行时钟约为 43 MHz(测量结果:PSRAM SCLK 为 43 MHz)。MCR0 0xFFFF1110,MCR2 0x200009F7,AHBCR 0x00200078,FLSHA1CR1 0x63。 PSRAM:AP 存储器 APS1604M-3SQR,16 Mbit,2.7-3.6 V(3.3 V 供电),QSPI SDR,无 DQS 引脚(RDQS 下拉),3.3 V 时最大频率为 109 MHz,tCEM 为 8 μs。端口 B1:2 MB,CS 保持/建立 3/3,数据有效时间 1,写掩码关闭。LUT 读取 EBh 1-4-4,使用 6 个虚拟周期 (0x0A1804EB 0x26043206),写入 38h 1-4-4 (0x0A180438 0x00002200),重置 66h/99h。它只能通过位于 0x39000000 的系统总线访问,CACHE64_CTRL1;XIP 使用代码总线,CACHE64_CTRL0.ENWRBUF = 0。在此配置下,使用示波器测量 PSRAM:SCK 43 MHz,CE# 低脉冲长达 19 微秒(APS1604M tCEM 为 8 微秒)。 端口 B 采样与 FRDM-RW612 参考值匹配(两个端口均为 DQS 焊盘环回,RX_CLK_SRC_DIFF = 0)。 关于核心停止:在 Zephyr 上,即使使用您的故障排除设置(CTRL1 写入缓冲区关闭,预取关闭),也会出现这种情况。我们目前的两个版本——一个带有跟踪钩子但没有空闲钩子,另一个的空闲循环读取操作系统计时器——运行了大约 50 个板小时而没有停止(预计大约 2 个板小时)。
記事全体を表示
Can_43_LLCE 1.0.9 (S32G):是否支持或计划支持构建后可加载配置? 你好, 我们正在跟进“CAN_LLCE 和 LLCE_Af 是否支持 Postbuild Loadable?”这个问题。(2025年4月)NXP 支持人员回答了 Can_43_LLCE 的“Postbuild 模型”。可加载的问题仍未解决。CAN_LLCE 和 LLCE_Af 是否支持 Postbuild Loadable? - NXP 社区 设置:S32G274A,S32G_LLCE_1_0_9(Can_43_LLCE 1.0.9,RTD AUTOSAR 4.4)。 目标:更新 CAN 配置,使其可在版本后加载,而无需重新刷写整个应用程序映像。 在 1.0.9 版本软件包中,我们看到: 构建后表是带有绝对指针的常量结构,会被编译到应用程序映像中。 我们没有找到任何可加载或可重定位的格式、S 记录输出或构建后数据的加载器。 问题: Can_43_LLCE 是否支持/计划支持版本后可加载配置?如果是,是哪个版本?何时发布的? 如果不行,那么在不完全重新刷写固件的情况下,更新 CAN 滤波器的官方方法是什么? 是否有关于使用 Can_43_LLCE 和 Llce_Af 进行构建后处理的应用笔记? 提前致谢, 艾曼 Re: Can_43_LLCE 1.0.9 (S32G): is post-build loadable configuration supported or planned? 你好, AymanYounis 感谢您与我们联系并提供信息。 我已经收到您的问题,我会帮您核实。 BR 乔伊
記事全体を表示
S32R41:如何启用和验证 Cortex-M7 锁步功能 您好,NXP团队, 我正在使用 NXP S32R41 汽车雷达 SoC,并使用 Lauterbach TRACE32 进行调试。 我想了解如何在 S32R41 上启用和验证 Cortex-M7 内核的硬件锁步功能。 请问您能否帮忙解答以下问题? 如何启用锁步模式: S32R41 是否默认启用 Cortex-M7 锁步模式,还是需要手动配置?如果需要配置,具体步骤是什么?它是通过硬件配置、DCF 记录、启动软件还是特定寄存器来控制的? 配置寄存器:哪些S32R41特有的寄存器和位域指示是否启用了锁步功能?请提供寄存器名称、地址、位位置和预期值。 如何验证硬件锁步模式:如何确认 Cortex-M7 内核确实运行在硬件锁步模式而不是独立模式下?检查配置寄存器是否足够,还是需要额外的状态寄存器? 锁步错误检测:哪些寄存器指示锁步比较器的状态?如何确定比较器是否正常工作以及是否检测到任何锁步不匹配? TRACE32 调试:是否有推荐的 TRACE32 命令序列或调试程序来检查锁步配置和状态? 文档:能否指出 S32R41 参考手册、功能安全手册或其他官方文档中描述锁定步骤配置和验证程序的相关章节? 我希望确保锁定步进功能已正确启用,并且可以使用已记录的、S32R41 特定方法验证其运行情况。 请注意,我特指S32R41 ,而不是 S32K3 系列,因此我希望得到适用于 S32R41 的寄存器定义和程序。 感谢您的支持。 顺祝商祺! Re: S32R41: How to Enable and Verify Cortex-M7 Lockstep Functionality 你好, 在 S32R41 上,Cortex-M7 处理器以硬件锁步内核对的形式实现。锁步操作是 S32R41 硬件配置的一部分,并非通过应用程序软件、启动代码或 S32K3 风格的 UTEST_MISC[LOCKSTEP_EN] DCF 记录启用。NXP S32R41 产品信息明确描述了 Cortex-M7 实现采用锁步内核配置。 1.无需软件启用序列 2. 不应使用 S32K3 寄存器验证配置。 3. 调试器可见性提供了实际的架构指示 TRACE32 连接到逻辑 Cortex-M7 处理器。它没有将冗余的检查器核心作为额外的、可独立调试的 Cortex-M7 呈现出来。因此,只有每个锁步对的功能成员才会作为调试目标出现。 4. 锁步不匹配报告 Cortex-M7 锁步比较逻辑检测到的不匹配将通过 S32R41 功能安全故障管理路径报告。应用程序必须按照 S32R41 功能安全手册配置相应的 FCCU 故障及其所需的响应。 5. 无需特殊的 TRACE32 命令即可启用锁步。 6. 请参阅以下与 S32R41 相关的文档: S32R41 参考手册,特别是 Cortex-M7、FCCU 和复位/故障管理章节; S32R41 功能安全手册,特别是涵盖 Cortex-M7 锁步执行、锁步比较和 FCCU 故障处理的安全机制; 与适用的 S32R41 版本相关的设备特定 FCCU 故障映射; TRACE32 S32R41 启动脚本随受支持的 S32R41 软件/调试软件包一起提供。 顺祝商祺! Peter
記事全体を表示
RW612 BLE ペリフェラルセントラル最大接続 NXP zsdk 情報によると、RW612はscantternetトポロジーをサポートしており、ペリフェラルを複数のセントラルにコネクテッドにしています。 nxp-zsdk/doc/wireless/release-notes/topics/bluetooth_radio_features.md(main · nxp-zephyr/nxp-zsdk ·GitHub)。 ペリフェラルから異なるBLEセントラルへの接続数は何回対応されていますか? これらの接続には何か制約がありますか?それらは同じPHY、接続パラメータ、またはその他の特性を使用するべきでしょうか? トニー・ビングより Re: RW612 BLE peripheral maximum connections to centrals 異なるトポロジーについてはデータシートをご確認ください。内部SPDTを使用した1アンテナトポロジーと2アンテナトポロジーがあります。 Re: RW612 BLE peripheral maximum connections to centrals こんにちは、 あなたの調子が良いといいのですが。 例として、 CONFIG_BT_MAX_CONN=16 これはリリースノートの「最大16個のBluetooth LE接続」と一致します。 よろしくお願いいたします。 リカルド
記事全体を表示
MCALポートモジュールのPortPinModeはEB tresos 30.0で選択できませんでした EB tresos 30.0は29.0とは全く違うと感じます。バージョン29.0ではすべて順調だったが、バージョン30.0では多くの問題が発生した。 ポートモジュールの「PortPin Mode」設定項目については、GPIO以外の選択肢が見当たりませんでした。 例えばUART TXピンの場合、UART TXオプションに変更できませんでした。 その理由は?どうすれば解決できますか? Re: PortPinMode of mcal port module could not be select in EB tresos 30.0 どなたかアドバイスをいただけませんか? Re: PortPinMode of mcal port module could not be select in EB tresos 30.0 こんにちは、使っているChipとRTDのバージョンを教えてもらえますか? それに、従来の編集ソフトで試してみましたか? 1. EBをシャットダウンする。 2. C:\EB\tresos_32_1_4\configuration のdefaultPreferences.properties を編集します。 setLegacyEditorAsDefault: true 3. 保存してEBとモジュールを再度開き、設定を試してください。
記事全体を表示
Can_43_LLCE 1.0.9 (S32G): is post-build loadable configuration supported or planned? Hello, We are following up on "Do CAN_LLCE and LLCE_Af support Postbuild Loadable?" (April 2025). NXP support answered "Postbuild model" for Can_43_LLCE. The loadable question was left open. Do CAN_LLCE and LLCE_Af support Postbuild Loadable? - NXP Community Setup: S32G274A, S32G_LLCE_1_0_9 (Can_43_LLCE 1.0.9, RTD AUTOSAR 4.4). Goal: update CAN config as post-build loadable without reflashing the full application image. In the 1.0.9 package, we see: Post-build tables are const structures with absolute pointers, compiled into the application image. We found no loadable or relocatable format, S-record output, or loader for post-build data. Questions: Is post-build loadable configuration supported/planned for Can_43_LLCE? If yes, which version and when? If not, what is the supported way to update CAN filters without a full reflash? Is there an application note for post-build with Can_43_LLCE and Llce_Af? Thanks in advance, Ayman Re: Can_43_LLCE 1.0.9 (S32G): is post-build loadable configuration supported or planned? Hi,AymanYounis Thank you for contacting us and your information. I have received your question and will help you to check it. BR Joey
記事全体を表示
RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after reset We build a communication stick on the RW612 (u-blox IRIS-W10 module, CHIP_INFO 0x7002). Code runs XIP from an external 16 MB QSPI NOR on FlexSPI port A1, and a 2 MB QSPI PSRAM (APS1604M-3SQR, no DQS) sits on port B1 of the same controller. Firmware: MCUXpresso SDK 25.06.00 + FreeRTOS, and Zephyr 4.5.0-rc1. We see three issues and would like the root cause and the recommended settings. The full report with measurements, what we ruled out, register addresses and code excerpts is attached. 1) Data mixing between the FlexSPI ports with the CACHE64_CTRL0 write buffer enabled With the PSRAM accessed through the code-bus window and code running XIP from port A, a PSRAM access sometimes returns a word of flash and an instruction fetch sometimes returns a wrong word (BusFault/UsageFault in our heap code and in the ENET interrupt). A/B on images with identical code addresses: buffer on, 9 faults in about 115 min; buffer off, 0 faults in about 195 min (p about 1e-4). The SDK SystemInit() enables this buffer under XIP. - Is there an erratum or restriction for CACHE64_CTRL0 CCR.ENWRBUF with PSRAM on port B and XIP on port A? Is the SDK default safe? - Is the system-bus window (0x28000000/0x38000000 with CACHE64_CTRL1, as suggested in Zephyr GitHub issue 99943) mandatory for PSRAM next to XIP? Is the CTRL1 write buffer safe? Which AHB RX buffer / prefetch setup do you recommend (buffer 7)? - What is the mechanism of the mixing in both directions? 2) The PMU gates the CM33 clock (gate_cpu_clk), the core resumes only when a debugger attaches The board freezes with no reset and no fault record, with no WFI in the image (FreeRTOS); the moment a debugger connects (even a bare Cortex-M33 attach) it runs again. SysTick/ENET counters read before a halt and DWT_PCSR samples show the core not advancing. Only an armed WWDT0 on LPOSC with reset enabled has prevented it (0 failures in 70 min vs 6-7 per 20 min without). On Zephyr the same class shows as a core that stays in WFI with an enabled OS timer interrupt pending; an idle loop without WFI avoids it. - When does the PMU gate the CPU clock without WFI and with SCR = 0? Why does a debug connection release it, and why does an armed WWDT reset prevent it? What does SYSCTL2 SOURCE_CLK_GATE CPU_CLK_EN actually control? - What wake-up / PMU configuration does plain WFI need on RW612? Is a busy idle without WFI an acceptable long-term strategy? 3) MCI_IO_MUX FSEL bit 3 (QUAD_SPI_PSRAM, 0x40004020) clear after a deeper reset After a WWDT reset following a hang, the QUAD_SPI_PSRAM function select bit was clear, the PSRAM pads floated, and every read returned 0x1797523E until our code applied the pin group again. Zephyr does not apply this pin group itself. - Which reset types reset MCI_IO_MUX FSEL and the pad pulls? Does the ROM touch FSEL? Is Zephyr support for PSRAM next to XIP (pins, LUT separation, cache policy) planned? Open item: ENET receive errors on Zephyr (ENET_GetRxFrameSize status 4001, BABR / CRC errors) with KSZ8081 over RMII at 100 Mbit/s full duplex - is this a known issue? Our current workarounds (CTRL0 write buffer off with PSRAM, system-bus window, WWDT0 on LPOSC with reset, idle without WFI, re-applying the PSRAM pin group at every boot) are in the attached report. Thank you for any guidance. Product: WiFi RW6XX Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r Dear @dimush , Based on our overall analysis, we should first resolve the data corruption/mixing issue between Flash and PSRAM. We need to ensure that the following configuration is correct: FlexSPI Port A -> QSPI NOR Flash -> code-bus/cache0 -> XIP FlexSPI Port B -> PSRAM -> system-bus/cache1 -> heap/data We also recommend: CACHE64_CTRL0.ENWRBUF = 0 CACHE64_CTRL1.ENWRBUF = 0        // During troubleshooting PSRAM prefetch = disabled            // During troubleshooting [Note] Flash and PSRAM should use their respective correct AHB mapping paths. The RW612 Flash cache and PSRAM cache are mapped to the code bus and system bus, respectively. Only after modifying the FlexSPI LUT, reconfiguring a port, switching memory aliases, or modifying memory through an IP command is it necessary to wait until FlexSPI is idle and clear the corresponding AHB RX/TX buffers and CPU cache. The cache should not be cleared before every normal PSRAM heap access. During troubleshooting, the PSRAM non-cacheable system-bus alias can also be used to further isolate the cache mechanism. Thanks, Best Regards, Weidong Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r Thank you, Weidong. Our Zephyr build already uses this layout: XIP from port A through the code bus / CACHE64_CTRL0 (ENWRBUF = 0), PSRAM on port B through the system bus 0x38000000 / CACHE64_CTRL1, no cache maintenance in the normal heap path. Since we moved to it, we have not seen the data mixing of issue 1. We will now also run with CACHE64_CTRL1.ENWRBUF = 0 and PSRAM prefetch disabled, A/B against our current image, and report the result. The remaining problem is issue 2: about once per 18-20 board-hours the whole core stops. The SysTick-driven timer and the work queue stop together within about 1 s after the last watchdog feed, and only the WWDT0 reset recovers it. This happens with idle without WFI and with the system-bus PSRAM window already in place. Could you comment on when the PMU gates the CM33 clock without WFI, and on issue 3 (MCI_IO_MUX FSEL bit 3 cleared after a WWDT reset)? Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r Dear @dimush , Thanks for your update. Regarding Issue 2, please use the following reference flow to verify your PM2 entry and wake-up configuration. After making any necessary adjustments, please check whether the issue can still be reproduced. First, establish a PM1 baseline: PMU remains in PM0 SCR.SLEEPDEEP = 0 Execute WFI In PM1, any enabled and valid interrupt source should wake the CM33. Before entering PM2, the wake-up source must be configured at all required levels: Enable and configure the peripheral timer or GPIO interrupt; Enable the corresponding NVIC interrupt; Enable the corresponding PM2 wake-up source in the PMU wake-up mask; Ensure that the clock required by the wake-up source remains active in PM2; Clear any stale peripheral interrupt status; Program the next valid timer match/compare event. A pending NVIC interrupt alone does not prove that the source is configured as a PM2 wake-up source. PM2 supports wake-up sources such as timers, GPIO, FlexSPI, USB, DMA, and Ethernet. The documented PM2 transition is: PM0 -> PM2:     Set PMU pwr_mode = 2'b01 Execute WFI In PM2, the CM33 clock is gated while the CPU state is retained. The AON domain and the selected PM2 wake-up source remain active. The following code is intended only to illustrate the sequence and is not meant to be copied directly: configure_wakeup_source(); enable_peripheral_interrupt(); enable_nvic_interrupt(); enable_pmu_pm2_wakeup_source(); clear_peripheral_interrupt_status(); program_next_timer_event(); /* Keep CPU_CLK_EN enabled before entering PM2 */ set_pmu_power_mode(PM2); __DSB(); __ISB(); __WFI(); __ISB(); For the production implementation, please use the power-management API provided by the corresponding MCUXpresso SDK version instead of directly programming the PMU registers. The SDK API names may vary between SDK versions. Please also verify that SYSCTL2.SOURCE_CLK_GATE.CPU_CLK_EN remains enabled before entering PM2. This bit should not be cleared to emulate PM2; CPU clock gating should be performed by the PMU power-mode transition. Please record the following values immediately before entering PM2: PMU pwr_mode SCB->SCR SYSCTL2.SOURCE_CLK_GATE CPU_CLK_EN PM2 wake-up mask NVIC enable/pending status Timer enable/status registers Finally, please test the FreeRTOS no-WFI configuration separately: No WFI SCR.SLEEPDEEP = 0 PMU pwr_mode remains PM0 CPU_CLK_EN = 1 If the CM33 still stops under these conditions, the behavior should not be considered a normal PM2 transition. It should then be investigated as an unexpected clock-gate operation or a possible RW612 PMU/clock-gating silicon issue. Regarding Issue 3, after a WWDT reset, the RW612 restarts through the Boot ROM boot flow: Boot ROM -> FlexSPI NOR/FCB -> Application Image If the application image contains the PSRAM pin-mux configuration code, that code should be executed again and take effect. Therefore, please verify that the application code includes the required PSRAM pin-mux configuration. Thanks, Best Regards, Weidong Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r Thank you, Weidong. We ran the FreeRTOS no-WFI test you asked for on our fast reproducer board. Conditions, set explicitly after BoardInit and re-checked every second: no WFI anywhere in the image (verified by disassembly; tickless idle off), SCB->SCR = 0 (SLEEPDEEP = 0, SLEEPONEXIT = 0), PMU PWR_MODE = PM0 (PWR_MODE_STATUS = 0), SYSCTL2.SOURCE_CLK_GATE = 0x700100D2 (CPU_CLK_EN = 1), WWDT disabled. Note: ROM/bootloader left SOURCE_CLK_GATE = 0x300000C6, i.e. CPU_CLK_EN = 0, with the core running. Result: the CM33 stopped 3 times within about 7 minutes (first stop after about 6 minutes of uptime). SysTick and the OS timer gap check show that the core did not advance until our debugger attached: 12.4 s for the first stop, then whenever we attached. Each time the interrupted thread was the lwIP RX task, PC 0x20002344 (code in SRAM). Register snapshot 1 s before the stop: PWR_MODE 0, PWR_MODE_STATUS 0, WAKEUP_LEVEL 0x3, WAKEUP_MASK 0x20, WAKEUP_STATUS 0, PM2 masks 0x0/0x200/0x800000, SCR 0, ICSR 0x00400000, SOURCE_CLK_GATE 0x700100D2, NVIC ISER 0x00010400/0x00040000/0/0x00080000, ISPR3 0x120, SysTick CTRL 0x10007, CLKCTL0 PSCCTL0..2 0x02410E07/0x0E020001/0x8, CLKCTL1 PSCCTL0..2 0x08000D00/0x00010003/0x8000004D. After the attach DHCSR = 0x01100001 (running). By your criterion this is an unexpected clock-gate, not a PM2 transition. Two more observations: with WWDT0 armed on LPOSC the stop did not occur on FreeRTOS earlier (0 in 70 min). On Zephyr, a build whose idle loop reads the OS timer on every pass ran 91 board-hours without a stop (about 4 expected), and we are isolating that now. We can attach the full register dumps. What would you suggest as the next step, and is there a known erratum for this? Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r Dear @dimush , Thanks for you update. Continuing the investigation at the lowest register and IP-command levels may lead us in the wrong direction. We should take a different approach: assume that the RW612 and the u-blox W10 module are functioning correctly, and restart the investigation from the SDK level. You mentioned that you are using a W10 module. I have previously debugged the u-blox W10 EVK. Please confirm whether your module uses the FM25Q128A QSPI NOR Flash. We can then verify: The FCB Flash timing configuration; The runtime LUT configuration. In addition, the PSRAM on the W10 is customer-added. Please provide its part number and specifications. We also need to verify its LUT configuration.   Thanks, Regards, weidong Re: RW612: FlexSPI port mixing (CACHE64 write buffer), PMU gates CM33 clock, PSRAM FSEL lost after r Thank you, Weidong. Here is the configuration; the full FCB, the runtime registers and the LUT words read back from a running board are in the attached RW612_FlexSPI_config_dongle_c0.txt. Flash: yes, it is the FM25Q128A - Fidelix, JEDEC ID F8 42 18, 16 MB, on port A1, XIP (our first report wrongly said "Fudan"). The FCB at 0x08000400 is the u-blox IRIS-W1 "Fidelex 8/16 MB" flash_config.c (FRDM-RW612 based): readSampleClkSrc 1 (DQS-pad loopback), CS hold/setup 3/3, sflashPadType 4, serialClkFreq 7 (133 MHz enum; FRDM-RW612 has 5 = 100 MHz), QE set via WRSR 01h with 0x0200, read sequence EBh 1-4-4 with mode byte 0x00 and 4 dummy cycles (LUT 0x0A1804EB 0x32041E00 0x00002604). The ROM cannot read this part's SFDP, so the full FCB is used. Runtime: the bootloader sets the FlexSPI root to 130 MHz; the Zephyr application keeps the controller setup under XIP, the runtime read LUT is identical to the FCB, and our PSRAM init sets the root divider to /3. With MCR0.SERCLKDIV = 1 the serial clock is about 43 MHz on both ports (measured: 43 MHz on the PSRAM SCLK). MCR0 0xFFFF1110, MCR2 0x200009F7, AHBCR 0x00200078, FLSHA1CR1 0x63. PSRAM: AP Memory APS1604M-3SQR, 16 Mbit, 2.7-3.6 V (3.3 V supply), QSPI SDR, no DQS pin (RDQS pulled down), 109 MHz max at 3.3 V, tCEM 8 us. Port B1: 2 MB, CS hold/setup 3/3, dataValidTime 1, write mask off. LUT read EBh 1-4-4 with 6 dummy cycles (0x0A1804EB 0x26043206), write 38h 1-4-4 (0x0A180438 0x00002200), reset 66h/99h. It is accessed only through the system bus at 0x39000000 with CACHE64_CTRL1; XIP uses the code bus with CACHE64_CTRL0.ENWRBUF = 0. Measured with a scope on the PSRAM in this configuration: SCK 43 MHz and CE# low pulses up to 19 us (APS1604M tCEM is 8 us). Port B sampling matches the FRDM-RW612 reference (DQS-pad loopback for both ports, RX_CLK_SRC_DIFF = 0). On the core stop: on Zephyr it also happened with your troubleshooting settings (CTRL1 write buffer off, prefetch off). Our two current builds - one with a trace hook and no idle hook, one whose idle loop reads the OS timer - ran about 50 board-hours without a stop (about 2 expected).
記事全体を表示
IW612:固件说明 我的 IW612 的 BLE 部分出现了一些问题。我收到类似这样的错误: 9月30日 14:27:11 设备 kern.err 内核: [103370.366384]蓝牙:hci0:控制器不再接受命令:ncmd = 0 9月30日 14:27:11 设备 kern.err 内核: [103370.372705]蓝牙:hci0:注入 HCI 硬件错误事件 9月30日 14:27:32 设备 kern.err 内核: [103391.064915]蓝牙:hci0:帧重组失败(-84) 9月30日 14:27:34 设备 kern.err 内核: [103393.005935]蓝牙:hci0:操作码 0x0c03 失败:-110 我的平台是 STM32MP1,内核版本为 6.6.x,使用 Murata 2EL 模块。使用 NXP HCI 驱动程序。 请问以下说法是否属实? - github.com/nxp-imx/mwifiex 的版本应与 github.com/nxp-imx/imx-firmware 匹配 - 校准版本 (github.com/murata-wireless/nxp-linux-calibration)无关紧要 - 无需将标签与内核版本匹配,因此我不必使用lf-6.6.52_2.2.0 分支,较新的 lf-6.18.37_2.1.0 应该向下兼容我的内核。 我希望在测试新版本之前先解决这个问题,看看更新是否能解决我的问题。 Re: IW612: Firmware clarification 嗨, @allard_p - github.com/nxp-imx/mwifiex 的版本应与 github.com/nxp-imx/imx-firmware 匹配 ==>[NXP]:是的,我们强烈建议使用匹配的驱动程序(github.com/nxp-imx/mwifiex)。以及固件(github.com/nxp-imx/imx-firmware)。 - 校准版本 (github.com/murata-wireless/nxp-linux-calibration)无关紧要 ==>[NXP]: 是的,对于您当前的 HCI 错误,校准并不重要。它通常会影响射频性能、发射功率和监管行为。 - 无需将标签与内核版本匹配,因此我不必使用lf-6.6.52_2.2.0 分支,较新的 lf-6.18.37_2.1.0 应该向下兼容我的内核。 ==>[NXP]:是的,我们的驱动程序与旧内核兼容,例如您的6.6.x 内核。但是您需要使用内核交叉编译工具链交叉编译驱动程序源代码。 顺便问一下,您提到您正在使用 nxp hci 驱动程序。 您正在使用我们的 btnxpuart 吗?或者您使用的是Linux开源UART? 对于蓝牙:hci0:帧重组失败(-84)错误,我建议您检查与蓝牙相关的设备树以及波特率。 顺祝商祺! Christine。 Re: IW612: Firmware clarification 我正在使用 btnxpuart.c,内核 6.6.129 中包含的版本
記事全体を表示
S32DS S32K144 SDK install fail Re: S32DS S32K144 SDK install fail OK,thank you Re: S32DS S32K144 SDK install fail Hi @joshua9264  The S32 Software Development Kit (SDK) for S32K1 is no longer supported in the newer S32DS versions. If you still need to work with this SDK version, please note that it is already bundled with S32DS v3.4,, it is recommended to use the same IDE version in which the software was originally developed and tested, as this helps avoid potential compatibility issues and simplifies the setup process. BR, VaneB Re: S32DS S32K144 SDK install fail Where to download S32DS v3.4? In the download page S32 Design Studio IDE for Arm based MCUs | NXP Semiconductors There's only java type foldes with no .exe Please advice
記事全体を表示
IW612: Firmware clarification I am having some problems with the BLE part of the IW612. I get errors like this: Sep 30 14:27:11 device kern.err kernel: [103370.366384] Bluetooth: hci0: Controller not accepting commands anymore: ncmd = 0 Sep 30 14:27:11 device kern.err kernel: [103370.372705] Bluetooth: hci0: Injecting HCI hardware error event Sep 30 14:27:32 device kern.err kernel: [103391.064915] Bluetooth: hci0: Frame reassembly failed (-84) Sep 30 14:27:34 device kern.err kernel: [103393.005935] Bluetooth: hci0: Opcode 0x0c03 failed: -110 My platform is STM32MP1 with kernel 6.6.x, using Murata 2EL module. Using the nxp hci driver. Can someone clarify if the following is true: - The version of github.com/nxp-imx/mwifiex should be matched with github.com/nxp-imx/imx-firmware - Version of the calibration (github.com/murata-wireless/nxp-linux-calibration) doesn't matter much - No need to match the tag with the kernel version, so i don't have to use the lf-6.6.52_2.2.0 branch, the newer lf-6.18.37_2.1.0 should be backwards compatible with my kernel I want to have this cleared before testing a newer version to see if the update resolves my problems.  Re: IW612: Firmware clarification Hi, @allard_p  - The version of github.com/nxp-imx/mwifiex should be matched with github.com/nxp-imx/imx-firmware ==>[NXP]: Yes, we strongly recommend to use matched  driver(github.com/nxp-imx/mwifiex) and FW(github.com/nxp-imx/imx-firmware). - Version of the calibration (github.com/murata-wireless/nxp-linux-calibration) doesn't matter much ==>[NXP]: Yes, the calibration doesn't matter much for your current HCI errors. It usually affects the RF performance, transmit power, and regulatory behavior. - No need to match the tag with the kernel version, so i don't have to use the lf-6.6.52_2.2.0 branch, the newer lf-6.18.37_2.1.0 should be backwards compatible with my kernel ==>[NXP]:Yes, our driver is compatible with old kernels, like yours: 6.6.x. But you need to cross compile the driver source code with your kernel cross compile tool-chain. By the way, You mentioned that you are using the nxp hci driver. Are you using our btnxpuart? or you are using Linux open source UART? For Bluetooth: hci0: Frame reassembly failed (-84) error, I would prefer to recommend you to check your device tree related to Bluetooth, and also baud rate. Best regards, Christine. Re: IW612: Firmware clarification I am using btnxpuart.c, the version that is included in kernel 6.6.129
記事全体を表示
KW47: Gap_StartAdvertisingを呼び出す前に、gAdvertisingStateChanged_cを待つ必要がありますか? こんにちは、 KW47に広告制御機能を実装しています。 広告表示を停止するには、Gap_StopAdvertising() を使用します。しかし、停止リクエストを出した後にgAdvertisingStateChanged_cイベントを受け取る前に再び広告を始めたい場合もあります。 この状況において、Gap_StopAdvertising() 操作がまだ進行中である間に Gap_StartAdvertising() を呼び出すのは安全でしょうか? 具体的に、以下のどの手順が推奨されますか? --- Gap_StopAdvertising() ↓ gAdvertisingStateChanged_c を待機します ↓ Gap_StartAdvertising() ---- または --- Gap_StopAdvertising() ↓ Gap_StartAdvertising() --- SDKsは内部で状態遷移を処理しているのか、それとも広告が停止したことを示すgAdvertisingStateChanged_cイベント情報を待ってからGap_StartAdvertising()を呼び出す必要があるのか? 再開まで今しばらくお待ちください。 よろしくお願いいたします。 プロトコル:Bluetooth
記事全体を表示
RT1xxx ENET: ラップアラウンド値を変更するためにATCORを書き込むと、修正カウンタはリセットされますか? こんにちは、 ETETペリフェラルの補正カウンターはATCORの書き込み時にリセットされるのかもしれません。 あるいは、ATCORの値が変更された場合にのみリセットされるのかもしれません。 よろしくお願いいたします 最大 i.MXRT 102x i.MXRT 105x Re: RT1xxx ENET: Does Correction Counter reset when writing ATCOR to change the Wrap-Around value? こんにちは、 @mastupristi さん、 ATCOR値が更新されても、新しい値はすぐに有効になるわけではなく、1回の修正期間中は古い値が使用されます。更新されたATCOR値は、補正カウンターがリセットされ、新しい補正期間が開始された後にのみ適用されます。 BR ハビブ
記事全体を表示