Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
i.MX 95 NPU Hi NXP Team, We are evaluating the i.MX 95 for an edge-AI application and would like to clarify the actual NPU performance and benchmarking information. According to the latest i.MX 95 Industrial Data Sheet  the Neural Processing Unit (NPU) is specified as: 8 eTOPS at 1 GHz, NPU can operate at 800 MHz for reduced power consumption,1 MB embedded SRAM within the NPU. However, the i.MX 95 Reference Manual  appear to indicate an NPU performance of up to 2 TOPS. Could NXP please clarify the following: 1) What is the reason for the difference between the 8 eTOPS specified in the latest data sheet and the 2 TOPS mentioned in the Reference Manual  documentation? (is it per core performance since it has 4 neutron ) https://www.nxp.com/docs/en/data-sheet/IMX95XEC.pdf https://www.nxp.com/docs/en/reference-manual/IMX95RM.pdf 2)Does the 8 eTOPS figure represent the theoretical peak performance of the NPU at 1 GHz? 3)What exactly does "eTOPS" represent in this specification? 4) Is the 8 eTOPS capability available on all i.MX 95 variants, or does it depend on the specific SoC ordering/part number? 5) Is there any difference in NPU configuration between the i.MX 95 variants that could explain the 8 TOPS vs 2 TOPS numbers? 6) Could NXP provide real-world NPU benchmark results rather than only the theoretical TOPS/eTOPS number? 7) Could you also provide a benchmark comparison between the i.MX 95 NPU and the i.MX 8M Plus NPU using the same model, input resolution and precision? For an application where the input is coming from a camera, could NXP provide an end-to-end example showing: Camera → ISP → preprocessing → NPU inference → post-processing and the achievable FPS/latency for a representative object-detection model? 😎 How much of the advertised peak NPU performance can typically be achieved for practical INT8 CNN workloads? 9) Are there any publicly available tools or benchmark suites that NXP recommends for customers to measure NPU performance on the i.MX 95 EVK? Thanks
View full article
S32K312 ISELED NXPのエキスパートの方、こんにちは。S32K312NHT0MPAITはどの世代のISELEDに対応していますか?第1世代のみに対応しているのでしょうか? Re: S32K312 ISELED Chenxu1 さん、こんにちは。 返信が遅くなり申し訳ありません。この問題は当社のソフトウェアチームに調査のために割り当てられており、今日ようやく彼らのフィードバックを受け取りました。 現在、当社のドライバーはISELED 1.0およびILaSをサポートしています。しかし、ISELED 2.0とほぼ互換性があり、 ILaS_Read_Register コマンドを除きほとんどの機能をサポートする必要があります。コマンドはまだ検証が必要です。また、ISELED 2.0との完全な互換性を実現するために、追加のアップデートが必要かどうかを判断するための包括的な評価はまだ実施していません。 よろしくお願いいたします ロビン
View full article
FRDM i.MX93、Bayerパターン(RAW10)を備えたMIPI-CSI-2カメラを使用 こんにちは、 私は、Citrobits CBM100ブリッジ経由でCitrobitsのCBM100ブリッジ経由で生のBayer MIPI CSI-2カメラ(ams OSRAM NanEyeM、固定出力:320x320 RAW10、2レーン、約400 Mbps/レーン、非連続クロック、電源が入るとブリッジボードがイメージセンサーからMIPI CSI-2のデコードを開始し、外部クロックは不要)を、NXP FRDM-i.MX93ボード上で起動します。BSP(linux-imx、meta-imx-frdmレイヤー)。 配管レベルでV4L2のメディアパイプライン全体を動作させています。センサードライバーはプローブし、非同期サブデバイスとしてバインドし、mx8-img-mdはセンサー-> mxc-mipi-csi2.0 -> mxc_isi.0に成功裏にリンクしています-> /dev/video0。STREAMON上でMIPI CSI-2ホスト(dwc-mipi-csi2-host)は正常に有効化されますが、有効なフレームは一切キャプチャされません。 この原因を追跡したところ、このボードのデフォルトデバイスツリー(ドライバ/ステージ/メディア/IMX/、imx93.dtsi)に割り当てられたISIドライバーが原因ですisi@4ae40000 ノードは「fsl,imx93-isi」、「fsl,imx8-isi」を使用します。そのフォーマットテーブルは imx8-isi-fmt.c にあります。RGB565/RGB888/BGR888と少数のYUV mbusコードのみが含まれており、どのビット深度にもSBGGR/SRGGB/SGRBG/SGBRGエントリはありません。imx8-isi-cap.c の mxc_isi_get_src_fmt() 関数Bayer入力用の分岐がないため、エラーではなくRGB/YUVテーブルのインデックス0に静かに落ち込みます(ドライバのカーネルログでは「input fmt RGB4」と表示されていますが、実際にはRAW10のBayerソースです)。 同じカーネルツリーのdrivers/media/プラットフォーム/nxp/imx8-isi/(core/pipe/video/crossbar/gasketファイルに分割)で、より完成した最近構造化されたISIドライバを見つけました。そのimx8-isi-video.cですおよびimx8-isi-pipe.c8/10/12/14/16ビットでBayerのフルサポートがあり、センサと完全に一致SBGGR10_1X10。また、imx8-isi-core.c では「nxp,imx93-isi」互換文字列も宣言されています。しかし、imx93.dtsiは現在、その互換文字列を持つノードをどこにもインスタンス化していないため、このドライバはこのBSPリリースでi.MX93 FRDM(または私たちが確認した限りではi.MX93 EVK)デバイスツリーに配線されていないようです。 私の質問: 1. ドライバ/プレスリリース、製品ニュース/プラットフォーム/nxp/imx8-isi/はi.MX93上のステージングISIドライバの最終的な代替として意図されているのか、またCSI2ホストとセンサを配線するための参照デバイスツリーバインディング(ポート/エンドポイントグラフ構造)があれば、検討または適応できるか? 2. 現在バウンドされているステージングISIドライバーを使って、i.MX93上で生のBayer/RAW10キャプチャを動作させるサポート方法はありますか?例えば、バイパスモード、異なるビデオノード、未試のフォーマットなどが見落とされているかもしれません。 3. このBSPリリースでBayer/RAW10のステージングISIドライバのサポートはロードマップに載っていますか?それともi.MX93のRAWセンサ使用CASEでは新しいドライバツリーへの切り替えが推奨される道なのでしょうか? i.MX93がBayerパターンカメラ(RAW10)でMIPI-CSI-2を使用しているという投稿をいくつか見つけましたが、解決策は見つかりませんでした。もし私が良い解決策を見落としていたら、ぜひ教えてください。 こちらがブリッジボードと i.MX 93のP6コネクタのインターフェースです。   お返事をよろしくお願いいたします。 kth Re: FRDM i.MX93 using MIPI-CSI-2 camera with a Bayer Pattern(RAW10) 私はこの脅威を見つけましたhttps://community.nxp.com/t5/i-MX-Processors/IMX219-RPi-Cam-v2-probes-but-does-not-stream-on-FRDM-IMX93-with/td-p/2384080 。もしよろしければお伺いしたいのですが、 1. Bayer/RAW10はすでに6.12.34-2.1.0+にISIサポート(およびlink_setup/s_power許容範囲の修正)が含まれているのか?公式にサポートされているBSPラインですか?もしそうなら、パッチを6.6.36にバックポートするよりも、BSPのアップグレードが推奨される道なのでしょうか? 2. もし今のところ6.6.36に留まる必要がある場合、ISIバイエルフォーマットのサポートに公式または祝福されたパッチセットはありますか(コミュニティスレッドから再構築するのではなく)? 3. 別途、同じ6.6.36カーネルツリーのdrivers/media/platform/nxp/imx8-isi/に既に存在するより新しく、より完全なISIドライバーを見つけました。これは完全なBayer対応と、「nxp,imx93-isi」互換文字列で、現在IMX93.dtsiには接続されていません。それはドライバ6.12.34-2.1.0+ですか?実際に使用されているのか、それとも無関係なのか? 4. LF6.18.37_2.1.0(imx-linux-wrynose)リストに気づきましたFRDM-i.MX93 は完全にサポートされています。https://github.com/nxp-imx/imx-manifest/tree/imx-linux-wrynose 。このリリースにはi.MX93 ISIドライバーにBayer/RAW10フォーマットのサポートが含まれていますか?それともi.MX93のリファレンスアーキテクチャは、生のセンサが直接ISIではなく外部ISP(AP1302など)を経由することを想定しているのでしょうか?後者の場合、i.MX93でベイヤー配列の生データを直接キャプチャするためのサポートされている方法はありますか? ご回答をお待ちしています。
View full article
LS1046Aカスタムボード:eMMC、SDカード、QSPIからのコールドブートが失敗。CodeWarrior RCW適用によりU-Bootが有効化される。 こんにちは、 LS1046ARDBデザインに基づくカスタムLS1046Aボードを導入します。自律コールドブートは失敗していますが、CodeWarriorやQCVSの介入によりプロセッサはBL2、BL31、U-Bootコンソールに到達できます。eMMC、SDカード、QSPI NORでコールドブートの失敗を観察しているので、共通のリセット/クロック/PBL経路の分離方法についてのアドバイスをいただけるとありがたいです。 プラットフォームとLS1046ARDBとの違い 項目 カスタムボード構成 プロセッサ LS1046AE Rev. 1.0; U-BootはSVRを報告します 0x87070010 電源/リセット制御 CPLDなし。STM32 BMC、PCA9539 I/Oエキスパンダ、レベルトランスレータ、およびディスクリートリセット回路が、シーケンス処理とSD/eMMCの選択を実装します。 DDR 4 GiB、シングルランク、64ビット非ECC DDR4、初期化済み 1600 MT/秒。これは、RDB比較で使用した8GiB ECC構成とは異なります。アシストブート後、DDRの初期化は成功しました。ただし、完全なメモリマージン認定はまだ保留中です。 クロック 100MHzのプライマリ基準。動作支援構成では、シングルエンドSYSCLK選択を使用します。DDRは差動参照パスを使用する。U-BootはCPUが1800 MHz、プラットフォームが600 MHz、FManが700 MHzと報告しています。 EMMC マクロニックス MX52LM08A11XVIは、RDBデバイスとは異なります。U-Bootは製造元、名称 0xc2 M08A11、MMC 5.1、約7.3 GiBのユーザー容量 識別します。 SD/eMMCインターフェース BMC制御による選択とEVDD:eMMCの場合は1.8V、SDの場合は3.3V。 QSPI NOR S25FS512S、デバイスあたり64MiB。この基板ではNOR検出に成功しました。 他のプリフェラル カスタムイーサネット/PHYルーティングおよびSerDes構成;PCIeデバイスは使用されません。 ソフトウェア A1固有のボード/デバイスツリーの変更、TF-A v2.12.0に基づく lf-6.12.49-2.2.0、U-Boot 2025.04。U-Bootのウォッチドッグは起動時には無効になっています。 リセットネットワークもこの調査中に再構築され、競合するプロセッサ-PORドライバブランチが分離され、BMCからTRSTへの直接ドライブが切断され、ハードウェアPOR/TRST結合パスが取り付けられました。BMCによるHRETセンサーは接続されたままです。 最新のネイティブコールドブーツ観察結果 BMCシーケンスにおいて、意図せず早期にSoCリセットが発生していたことを発見し、修正しました。続いて、CodeWarriorやQCVSの操作を一切行わずに完全に電源をオフにした状態から取得したスコープキャプチャは以下のとおりです。 - BMCがプロセッサリセットを解除するとPORESET_Bが上昇します。 - eMMCのCLKおよびCMDアクティビティは、そのエッジの後に開始されます。 - 通常のBL2/U-Bootコンソール出力は表示されません。以前の試みでは、無効なUART文字しか得られなかった。 - HRESET_Bとラベル付けされたトレースはHIGH(約1.8 V)のままです。キャプチャされたeMMC活動の前後にLOWの主張は観測されません。BMC HRESET入力も繰り返しHIGHを読み取る。 CodeWarrior/QCVSの動作 コールドブートストール中、CodeWarrior InspectはJTAGチェーンに「CortexA72#0」が見つからないことを報告し、RCWの確認やRCWオーバーライドの有効化を推奨します。 しかし、RCW適用を有効にしてデバッグをクリックするか、QCVS経由でRCWを適用すると、ブートが進行します。UARTがU-Bootに到達しているにもかかわらず、Debugが「コアがデバッグモードではありません」と報告することがあります。他の試行では、ターゲットが停止し、「continue」によってブートが完了する。 初期化スクリプトを以下のように簡略化しました。 from cw.dbg import ta def run_init_file(): target = ta.create() target.rcw.set_source(0x40) target.rcw.set_data({13:0x00004504}) target.rcw.apply() 物理ストラップはSD/eMMCソース「0x40」に設定されました。入力されたワード13は、eMMCに既に保存されている値と同一です。この簡略化されたスクリプトにより、アシストブートも可能になった。同じ単語を使用して「set_source(0x9E)」を個別にテストしたところ、こちらも成功しました。 この簡略化されたスクリプトには、DDR初期化、BRR、PC、SCTLR、または再開操作は明示的に含まれていません。「rcw.apply()」とデバッガ起動フレームワークは内部リセットや実行制御操作を依然として実行できることを認識しています。これは受動的なアタッチではありません。 支援を受けて、16語すべてのRCWSR語が意図されたメディアRCWと一致しました。BL2はOCRAM内に存在し、計測されたブートチェーンはDDR初期化、eMMC/FIPロード、BL31およびU-Bootを完了した。介入後の「RSTRQPBLSR」の読み取り数はゼロでしたが、これらは元の低温障害状態を捉えたものとは考えていません。 既に実施されたテスト テスト観察 eMMCからのネイティブブート 自律的なコンソール起動は行われず、デバッガ支援によるリカバリによってU-Bootに到達する。 SDカードからのネイティブブート BMCがSDを検出/選択したにもかかわらず、同様のコールドブート失敗が発生した。アシストブートは可能だった。 QSPI NORからのネイティブブート 最新のテストでは、コールドブートの不具合も確認された。三つのメディアが同じ内部段階で止まることはまだ確立されていません。 スタンドアロンのハードコードされたソースストラップ 0x9E そして 0x9F その後のテストでは、期待されていたスタンドアロンリセットの進行状況は得られなかった。ハードコードされたRCWだけでは完全なU-Bootイメージにはならないことは理解しています。 安全なRCWを有効にした標準RDB初期化 回復は可能でしたが、DDRやCPUの状態、ペリフェラルも変更するため、これは単発のテストではありませんでした。 上記の最小限の適用専用スクリプト ソースリクエストを使用すれば、ワード13が保存値と等しい場合でも復旧可能です。 0x9E そして 0x40。 QCVS RCWテスト/リードバック テストは合格し、介入後の読み出し結果は意図した構成と一致した。ネイティブフェッチは未検証です。 3つのPCIe PBIアクセスを削除しました ネイティブコールドブートに改善は見られなかった。 SerDes2を無効にした後、両方のSerDesブロックを無効にします。 改善は見られない。アシストされたU-Bootログにより、変更されたRCWワードが確認された。 DDR診断 SPDの読み取りと4GiBの初期化は、支援を受けた後、1600MT/sで成功しました。ただし、完全なマージンテストではありません。 BL2/BL31/U-Bootのマイルストーンログ機能を追加しました。 補助付きブートはすべての段階を完了します。ネイティブ障害は最初のBL2マイルストーンを示さず、これらのログはハードウェアPBL自体を追跡できません。 eMMC RCWとイメージ配置 SerDesを両方有効にしたeMMCのベースラインは以下のとおりです。 0c100012 0e000000 00000000 00000000 13335a06 40400012 60040000 c1000000 00000000 00000000 00000000 0001c83e 00004504 24001002 00000096 00000001 SerDesを両方とも無効にした実験では、以下の単語のみが変更されました。 RCW05 = 00000000 RCW06 = 00f00012 eMMCユーザーエリアでは、512バイトセクタを使った: コンポーネント開始LBAバイトオフセット RCW + PBI + BL2コンテナ (bl2_emmc.pbl) 0x8 0x1000 BL31とU-Bootを含むFIP 0x800 0x100000 FManマイクロコード 0x4800 0x900000 書き込まれたPBL/BL2領域とFIP領域を読み戻したところ、それらのSHA-256値は、これらのテストのために転送されたファイルと一致した。PBIストリームはデコードされ、CRCチェックが行われた。OCRAMのブート場所を設定し、継承されたNXPインターコネクト/USB準備およびPBL同期操作を実行し、BL2をOCRAMにコピーします。PCIeレジスタアクセスを削除してもストールは解決しませんでした。DDRの初期化は、後ほどBL2によって実行されます。 また、eMMCの`EXT_CSD[162] = 0x00`および`EXT_CSD[179] = 0x00`を読み取りましたが、これらの設定に不可逆的な変更は加えていません。 指導を要請 1. HRESETのタイミング:LS1046Aは、PORESET_B、有効なリファレンスクロック、および初期eMMCトランザクションに対して、正確にどの時点でHRESET_BをLOWにすべきでしょうか?プロセッサ側のプローブでLOWアサートが確認できない場合、リセット、クロック、パワードメイン、ストラップ、テストモードのどれを最初に確認すべきでしょうか? 2. 介入前のキャプチャ:A72コアが発見される前に、停止したPBL/DCFG/eSDHCの状態をリセットやRCWオーバーライドなしで読み取るための、サポートされているCodeWarrior/CCSシステムアクセスポート手順はありますか?必要なアクセスコンテキスト、コマンド、そして最も有用なステータス/エラーレジスタを提供してください。 3. RCWの適用セマンティクス:`rcw.apply()`は具体的に何を行うのかソース `0x40` または `0x9E` を使用し、指定されたワードが 1 つだけの場合、どうしますか?どのリセット/デバッグ制御が実行され、未指定のRCWワードはどのように取得されるのか?入力された単語によって結果として得られるRCWが変更されない場合に、回復を可能にするアクションを特定したいと考えています。 4. RCW/PBI のレビュー: 上記の eMMC RCW と配置に何か問題はありますか?このカスタム構成に関して、追加の必須PBI操作や関連するシリコンエラータはありますか? 5. 次の決定的な測定: eMMC、SD、QSPI 全体にわたる症状を考慮すると、リセット/クロック/ストラップの問題をブートメディアの初期化、RCW の取得、または後続の PBI の実行から最も適切に分離できる測定または非侵襲的なレジスタキャプチャは何ですか? Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo @Hiran_E_H 波形にHRESET_Bがアサートされていないが、これは想定外である。 AN12081のセクション5.1(SDカードを使用した起動プロセス)を参照してください。この文書ではSPL/U-Bootの起動フローについて説明していますが、現在のBL2/BL31の起動フローも非常によく似たハードウェア起動シーケンスに従っています。波形を図3と比較してください。 現在の観察結果に基づくと、リセット関連部品のハードウェアに問題がある可能性が高い。また、リセット設計をCPLDを使わないFRWY-LS1046Aと比較するのも有益かもしれません。 さらに、ASLEEP信号は起動プロセスにおいて重要な信号ですので、必ず確認してください。 ありがとうございます。 Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo テスト中のシーケンスキャプチャ   Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo ASLEEPは常に高く、コネクテッドLEDは常に点灯しています。 ハードウェアの再作業なしで2枚目のボードを使い、同じRCWでSDカードから起動しようとしましたが、電圧選択が変わったところ、HRESET_Bが低くなっているのが観察され、PORESET_Bを低から高に解放しました。 HRESET_B の急上昇は、PMIC PG と SoC が HRESET_B をローに駆動し始めた後の 1.8V プルアップによるものと予想されます。 現在、eMMC/SDのCMD、DATA、CLKを調べて、何らかのトランザクションが発生しているかどうかを確認しています。SoCがHRESET_Bをリリースするために満たすべき条件を教えていただけますか? 好奇心から、同じSDカードをls1046a_rdbボードに挿入して電源を入れてみたところ、ubootコンソールまで到達しました。 Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo @Hiran_E_H 参照マニュアル LS1046A 4.4.1 電源オンリセットシーケンス ステップ5とステップ15の間に問題がある可能性があります。 HRESET_Bの出発点が明確に特定できないため、ステップ1から4までも確認する必要があります。 よろしくお願いします。 Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo こんにちは、 LS1046A リファレンス・マニュアルのセクション4.4.1を教えていただきありがとうございます。ステップ1~4とステップ5~15を確認し、測定値をAN12081のセクション5.1/図3~4と比較しています。 以下は、9月29日に実施したテストの最新情報と、QCVSで生成されたSD候補に関する9月30日のフォローアップです。確認のため、PORESET_B、HRESET_B、SD CMD、およびRESET_REQ_Bのオシロスコープ波形を添付いたします。   HRESET観測結果の更新 2台目のA1カスタム基板では、初期の基板のリセットなしにテストされ、PORESET_Bがリリースされる前にHRESET_Bが低くなるのが観察できます。これは、HRESET_Bが継続的にHIGHであった以前のキャプチャとは異なります。私たちは、その以前の波形をこの基板の代表的な波形として扱っていません。 現在の差動クロックSDテストの場合: スタンドアロンのコールドスタートアップ中、HRESET_BはPORESET_Bが上昇する前にLOWになり、その後もLOWのままです。BL2のコンソール出力は表示されません。 CodeWarriorのDebug/RCW適用後、HRESET_BがHIGHになります。 デバッガーは最初にPC=0で停止します。「続行」をクリックすると、BL2 → BL31 → U-Boot が実行されます。 添付のキャプチャデータ(SD CMDおよびRESET_REQ_Bアクティビティを含む)を、想定されるシーケンスと照らし合わせて解釈するお手伝いをお願いします。 下の写真ではSDカードを挿入しておらず、リセットリクエストが低くなっているのが確認できました。 (注:一部の画像では、誤ってsdコマンドではなくemmcコマンドと記載されています。) SDカード挿入でキャプチャ - スイッチはemmc/sdカードモードにストラップされています。 Captured with with poreset_b, hreset_b, reset_request, vcc1v8 with SD card insertedCaptured with with poreset_b, hreset_b, reset_request, vcc1v8 with SD card insertedSDカードを挿入した状態で、poreset_b、hreset_b、reset_request、vcc1v8を使用してキャプチャしました。 Captured with with poreset_b, hreset_b, reset_request, sd_cmdCaptured with with poreset_b, hreset_b, reset_request, sd_cmdporeset_b、hreset_b、reset_request、sd_cmdを使用してキャプチャしました Captured with with poreset_b, hreset_b, sd_cmd, trst_b(jtag reset)Captured with with poreset_b, hreset_b, sd_cmd, trst_b(jtag reset)poreset_b、hreset_b、sd_cmd、trst_b(JTAGリセット)を使用してキャプチャしました Captured after entering debug mode after cold start stallCaptured after entering debug mode after cold start stallコールドスタートで停止した後、デバッグモードに入った後にキャプチャされた 新しいSD RCWテスト 外部SD/MMCブートを選択した状態(cfg_rcw_src=0x40)で、両方のSerDesブロックを無効にした新しいSDイメージを生成しました。100 MHz 差動プライマリ基準を選択し、ハードコードされたアクティブクロック比を採用しました。 0x9F 例えば、A1ピンマルチプレクサとSDブート/PBI構成を維持したまま。 これは ハードコードされたブートではない:完全なRCWとPBIはSDから取得する必要がある。メディア取得やPLLロックを回避するわけではありません。 設定値 一次資料 DIFF_SYSCLK/B、公称100MHz。 cfg_eng_use0=0 A1スイッチの位置 SW5 pole2 ON(差動クロック選択);SW8 poles1–8 0010 0000 (1=ON)(ブートソーススイッチストラップ) SYS_PLL_RAT 4→プラットフォーム 400 MHz CGA_PLL1_RAT 13 → CPU 1300 MHz CGA_PLL2_RAT 10 → PLL2 1000 MHz、FMan 500 MHz MEM_PLL_RAT 16 → DDR 1600 MT/s DDR_REFCLK_SEL / DDR_FDBK_MULT 1/2; 差動DDRリファレンス SRDS_PRTCL_S1 / SRDS_PRTCL_S2 0 / 0 SRDS_PLL_PD_S1 / SRDS_PLL_PD_S2 3/3; 各SerDesブロックで両方のPLLがダウン PBI_SRC / ブートホー 6 / 0 EVDD_VSEL 2. SD 3.3V構成 DIMM 4 GiB、単一ランク、64ビット非ECC DDR4;トレーニングシードはマージン適格ではありません   このテスト済みイメージで使用されている完全なRCWは、デバッガーによる介入後にも確認されており、以下のとおりです。 RCW01–04: 0810000d 0a000000 00000000 00000000 RCW05–08: 00000000 00f00012 60040000 c1000000 RCW09–12: 00000000 00000000 00000000 0001c83e RCW13–16: 00004504 24001102 00000096 00000001 結果: 地元の防寒ブーツ販売店はそのまま残っていた。デバッガ支援の後、U-BootはCPUが1300 MHz、プラットフォームが400 MHz、DDR 1600 MT/s、FManが500 MHzと報告し、意図された比率と一致しました。SDの初期化とFIPのロードに成功しました。  デバッガーの正確な介入と結果として生じる状態 初期化コールバックは、以下のRCW API操作のみを呼び出します。 from cw.dbg import ta def run_init_file(): target = ta.create() target.rcw.set_source(0x40) target.rcw.set_data({13: 0x00004504}) target.rcw.apply() ワード13は、SDカードに既に保存されている値と同一です。このスクリプトには、明示的なDDR初期化、BRR/PC書き込み、またはContinueコマンドは含まれていません。 apply() デバッガ起動が内部的にリセット/デバッグ状態を変えることは認識しています。 デバッグ後、続行前に、以下を読みます。 PC = 00000000 PORSR1 @ 01ee0000 = 205b7fff RSTRQPBLSR @ 01ee00b4 = 00000000 RSTRQMR1 @ 01ee00c0 = 00004000 RSTRQSR1 @ 01ee00c8 = 00000000 BRR @ 01ee00e4 = 00000000 SCFG_SCRATCHRW0/1 = 00000000 / 10000000 DDR SDRAM_CFG = 07000000 (MEM_EN clear) 16個のRCWSR単語すべてが、テスト対象のSD画像と一致した。OCRAMの最初の64バイト 0x10000000 BL2のエントリーコードと一致しました。したがって、PC=0 で UART 出力がないことは、ハードウェア PBL が進行していないことを意味するものではありません。BL2/BL31/U-Bootを実行するには、Continueのみで十分でした。この実行では、BRRへの手動書き込みは使用していません。 これらは 介入後の測定値であり、元の停滞状態は維持されていない。我々は、それらのゼロエラー値を用いて、最初のコールド試行にPBL/クロック/リセットエラーがなかったと結論付けるつもりはない。 画像配置と正確なPBI設定 当社のSDパッケージとeMMCパッケージの両方で512バイトセクタを使用しています: RCW/PBI/BL2 .pbl: LBA 0x8、バイトオフセット 0x1000。 fip_uboot.bin BL31とU-Bootを含む:LBA 0x800、バイトオフセット 0x100000。 eMMCの場合、これらはユーザーエリアのオフセットであり、boot0/boot1ではありません。SDカードの全ディスクイメージは、これらのオフセット位置でバイト単位でチェックされています。また、以前のeMMCへの書き込みも、読み出し時のSHA-256検証に合格しています。 テスト対象のSD PBLにおける正確なセットアップストリームは以下のとおりです。各行は シリアル化された PBI コマンド ワードとそのデータ ワードがストリーム順で続きます。これらはデバッガのメモリ書き込みコマンドではありません。 09570600 00000000 09570604 10000000 09570178 0000e010 09180000 00000008 09570418 0000009e 0957041c 0000009e 09570420 0000009e 09570158 00001000 09610000 00000000 096100c0 000fffff 09570604 10000000 09570158 00001000 096100c0 000fffff これには、スクラッチブートポインタ、継承された相互接続/USB設定、フラッシュおよび同期操作が含まれます。繰り返し行われる操作は保持されます。PCIeセットアップ書き込みはありません。その後、ストリームにはOCRAMへの844回のACS64転送が含まれます。これは、53,953バイトのBL2と63バイトのゼロパディングで構成されます。テストされたPBLは、 08610040 6d8bdebf (END/CRC)であり、合計サイズは57,576バイトです。 また、本日、QCVSを使用して独自にPBLを生成しました。解析とCRC検証の結果、そのPBI操作とBL2ペイロードはテスト対象のイメージと同一であることが判明した。私たちは意図的にRCW12を変更しました 0001c83e に 0001a8fe (睡眠=0、 RTC=1、 IRQ_BASE=63); そのワードとCRCだけが異なります。そのSHA-256ハッシュ値は以下のとおりです。 2d3389fce4ead088957caf6251022b5526be8565e812a8aab8fce21bd8923277 9月30日更新: 新たに生成されたQCVSのSD候補をテストしたところ、再びネイティブコールドブートの停止が発生しました。したがって、PBLを実際のQCVSエクスポートに置き換えても、症状は解消されませんでした。PBIおよびBL2のペイロードは前の画像と同一のままであるため、共有設定の問題を否定したり、原因がハードウェアにあることを否定するものではありません。 上記の詳細なHRESET/レジスタ読み取り値と確認済みのアシスト成功シーケンスは、以前のRCW12=0001c83eを参照しています。 走る。最新のRCW12=0001a8feのデバッガリカバリ結果と詳細な波形 このアップデートには、まだ実行機能が追加されていません。 指導を要請 PORリリース前にHRESET_Bアサートされ、その後はLOWのままの場合、RCWフェッチ/検証の失敗とPLLロック、またはステップ11〜14でのプラットフォームクロック切り替えを区別する最良の測定値は何でしょうか?ステップ1~4では、電源、時計、ストラップの初期状態についても引き続き確認していきます。 ステップ15はSoCのHREETドライブを解放し、ステップ17はPBIを実行するため、外部HREETドライバーや短いリリース・再アサーションを除外した場合、初期段階を優先するのは合理的でしょうか?上記のRCWおよびPBIも、未構成や誤った設定がないか確認してください。 CCS/SAPは、RHETが低のままの状態で、RCW適用や再度リセットせずにネイティブリセット/PBLステータスや文書化されたPLL-ロック状態にアクセスできるのでしょうか?アクセスの正確なコンテキスト、コマンド、レジスタ/ビットの定義を教えてください。Ordinary Inspectはこれまで、この状態のCortexA72#0を検出できませんでした。 具体的に何が set_source(0x40) さらに、対応する単語13のオーバーライドと 適用する() リセット、TRST、デバッグコントロールを実行するにはどうすればいいですか?最終的なRCWの内容を変更せずに起動を可能にする動作を特定したいと考えています。 生成されたPBL、完全なUART/デバッガーログ、追加のスコープキャプチャも提供可能です。自動冷却起動ではブリングアップがブロックされているので、次の識別テストについてのアドバイスをいただけると大変ありがたいです。 また、自己テストとして、SD カードや空の eMMC がない状態で 0x9e または 0x9f をストラップすると、POREST_B が 0 から 1 に解放されたときに HRESET_B が低から高に変化することが確認できると教えられました。RDBボードでこれをキャプチャしようと試み、これを観察することができました。では、カスタムボード上で同じことをしても同じ挙動が観察されるということですか? よろしくお願いします。 Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo こんにちは、 @Hiran_E_H さん。 1.現在の情報からはRCWの負荷問題とPLLロックの問題を明確に区別するのは難しいです。しかし、CCSがデバイスに正常にアクセスでき、PLL関連の波形が正常に見える場合、PLLの問題の可能性は低くなる可能性があります。 スタンドアロンのコールドブートとCCS支援ブートのSDコマンド波形を比較することをお勧めします。特に、波形の長さと順序を比較して、RCWロード中に異常がないか判断してください。 また、SDカードのクロックが起動プロセス中の予想される周波数遷移を反映しているかを確認するために、リファレンス・マニュアル表4-8の「RCW状態タイミング」を参照することもできます。これらの遷移は、RCWの読み込みが成功し、適切なPLLロックが行われていることに依存します。 2.はい、あなたのやり方に賛成です。入手可能な情報に基づくと、まずはステップ1から15、特に初期の電源、クロック、リセット、ブートソース関連の段階に焦点を当てるのが妥当でしょう。 3. 以下のCCSコマンドを試して、デバイスがこの状態のままではLS1046Aにアクセスできるか確認できます。例えば、RCWSRレジスタの読み取りを試みることができます: (bin) 1%すべて削除 (bin) 2 % config cc cwtap (バイナリ)3%表示cc (bin) 4 % ccs::config_chain {ls1043a dap sap2} (bin) 5% 表示 ::ccs::get_config_chain (bin) 6 % ccs::display_mem 32 0x01ee0000 4 0 100 もっと行を表示 4. リファレンス・マニュアルの表4-8「RCW状態タイミング」を参照し、SDカードのクロックがRCWプロセッシング中の予想される周波数変化を反映しているかどうかを確認できます。 起動シーケンス中に、関連する波形を確認することをお勧めします。 実際には、初期デバッグ段階では通常、ハードコードモードを使用します。さらに、ボードをハードコーディングされたRCWで設定し、観測波形が図4-1「電源オンリセットシーケンス」に記載されている順序に従っているかを検証することもできます。波形が期待される挙動に合致していれば、リセット関連のハードウェア設計は一般的に正しく動作している可能性が高いです。 私は1週間以上OoOのままでいるので、この期間中は私の方からの更新はありません。 もしこの問題が緊急の場合は、別のチームメンバーがサポートできるように新しいスレッドを作成してください。 よろしくお願いします。
View full article
RT1051: ENET IEEE1588タイマークロックソース こんにちは、 RT1050 の リファレンス マニュアル には 以下の 情報 があります: mastupristi_0-1789736651417.png IEEE1588タイマーのクロックソースが何なのか知りたいです。例えば、AUDIO_PLLから派生したルートクロックを選べますか? IEEE1588タイマーのクロックソースを制御するレジスタはどれですか? よろしくお願いいたします 最大 i.MXRT 105x Re: RT1051: ENET IEEE1588 Timer Clock source 私の知る限り、このタイマーは「ENET_25M_REF_CLK」とラベル付けされたクロック(MCUXpressoの設定ツールより)でクロックされており、常に25MHzです。「ネットワーク速度に関係なく」というのは、イーサネットが10Mbpsで動作しているときに速度が遅くならないという意味だと思います。 追伸もし1588タイマーの比較・キャプチャ機能を使う予定なら、これはRT1050で正しく使うのが最も難しいペリフェラルの一つであり、注意すべき多くの落とし穴があることを覚えておいてください。例えば、イベントインnとイベントアウトのnピンを同時に使うことはできません(ここでnは0..3です)。例えば、Event Out 1とEvent In 1を同時に使うことはできませんが、Event In 1とEvent Out 0を同時に使うことは可能です。また、4チャネルのうちDMAサポートは2つだけです。
View full article
T1042 DDR4初期化失敗 私は64ビットインターフェースでDDR4に接続したT1042デザインを持っています。インターフェースの最上位バイトのニブル間で不適切なビットスワップの問題が既に見つかりましたが、これはSW設定では補正できないことがわかっています。PWBの改訂版で修正を実施する予定です。しかし、他のビットは正しく、スワッピングもリファレンスマニュアルで許可されている範囲に入っているため、代わりに32ビットモードで動作させて、SWや他の設計を引き続き表示できるようにしたいと考えています。QCVS DDRの検証ツールを使って試しましたが、メモリの初期化ができません。デバイスのパラメータを入力し、DQのマッピング値を自分のデザイン通りに設定しましたが、ERR_DETECTレジスタでビットACE= 1が出続けています。プロセッサはSPIインターフェース経由でRCWを取得し、DDR周波数は800MHzに設定されています。CodeWarrior/QCVSを使用して、正しいRCW値が受信されたことを確認する方法はありますか?32ビットモードの動作で考慮すべき他の設定は何でしょうか?なぜ動作しないのか説明がつきます。どんなサポートでも大変ありがたいです。ありがとう。 QorIQ T1デバイス Re: T1042 DDR4 Initialization Failure CodeWarrior/QCVSを使用して、正しいRCW値が受信されたことを確認する方法はありますか? [A] はい、可能です。CCSを接続して、DCFG_CCSR_RCWSR1-DCFG_CCSR_RCWSR16を読み取って、SPIフラッシュのRCWと比較できます。 32ビットモードの動作で考慮すべき他の設定は何でしょうか?なぜ動作しないのか説明がつきます。 [A]これはディスクリートDDR4ですか?一般的なルールについては、 QCVS_DDR_User_Guideを参照してください。 ハードウェア設計については、 AN5097、DDR4 SDRAMメモリインターフェースのハードウェアおよびレイアウト**デザイン**の考慮事項 よろしくお願いします。 Re: T1042 DDR4 Initialization Failure こんにちは、ジューンさん。 ご返信ありがとうございます。CCSを使用してRCWステータスレジスタを読み取り、RCWが想定どおりにプログラムされていることを確認できました。 私はディスクリートDDR4を使っており、ユーザーガイドやレイアウトの考慮事項も確認済みです。 32ビットインターフェース使用に関するエラッタA-007864を満たすため、1300MT/sで動作するための650MHzクロックがあることを確認しました。同僚が、チップセレクトがトグルしているかどうか確認するように提案した。QCVSツールがプロセッサに設定を送信し始めると、CS0信号は十分に低く保たれることがわかりました。プログラミングが完了し、検証ルーチンを実行しようとすると、CS0信号が完全にアサートされなくなる。JTAGの境界スキャンツールを独自に使い、信号が期待通りに接続されていること、そしてT1042のI/Oが正味を十分に低くしてDDR4メモリデバイスのVILを満たすことができるかを確認しました。信号の整合性に関するルーティングの面でも、ネットワークが良好であり、どこにも短絡していないことも確認しました。どうやらメモリコントローラの設定に何か問題があり、チップセレクト信号が正しく機能しないようです。他に何かアイデアはありますか?ありがとう。 Re: T1042 DDR4 Initialization Failure 説明中のCS0がD1_MCS0_Bを指しているのか確認していただけますか? ご使用のCCSでコマンドを実行し、CCSのログ全体を更新してください。 (bin) % ccs::reset_to_debug よろしくお願いします。 Re: T1042 DDR4 Initialization Failure その通りです。私が言及しているのはD1_MCS0_Bのことです。 コマンドを実行すると (bin) % ccs::reset_to_debug 「ライブラリが見つかりません」というメッセージが表示されます。 Re: T1042 DDR4 Initialization Failure メモリコントローラは650MHzまたは1300MT/sの動作に設定されています。結果は同じだった。64ビットインターフェースのバイト8で意図しないビットスワップ(ニブル間の誤スワップ)が発生しているため、DDR4で32ビットモードを使おうとしています。設計は64ビット+ECCを想定していましたが、一時的な回避策として32ビット+ECCを運用しようとしています。つまり、現在5台の16ビットチップが接続されていますが、そのうち3台だけで動作させることを目指しています。 様々な設定の組み合わせを試してみましたが、QCVSツールの動作に変化は見られません。少し奇妙なのは、QCVSと同様の値をスタートアップスクリプトに設定したGreenHillsエミュレーターを使ってみたところ、DDR_SDRAM_CFG_2[D_INIT]がクリアされるまでの待機ループを通過できたことです。これは初期化が完了していることを示唆しています。そして、初期書き込み/読み出し検証で全て0x00となり失敗します。これは、最適ではない書き込みレベル設定値を使用しているため当然の結果です。QCVSツールだけ動作が異なる理由が分かりません。 Re: T1042 DDR4 Initialization Failure RCWステータスレジスタを読み出した後、コマンドを入力してください。 コマンド「ccs::reset_to_debug」の結果ではなく、完全なccsログを共有してください。 「ライブラリが見つかりません」というメッセージが表示されます。 完全なログは、ccs を使用した最初のコマンドから始まります。 よろしくお願いします。 Re: T1042 DDR4 Initialization Failure ACEエラーは、メモリコントローラがトレーニングシーケンス中にエラーを検出した場合に設定される自動キャリブレーションエラーです。では、クロック速度を800MHzから下げた場合、トレーニング結果はどうでしょうか? 一方、DDR4では64ビットまたは32ビットのバス幅のどちらが採用されるのでしょうか?T1042にはDDR4が何個接続される予定ですか? Re: T1042 DDR4 Initialization Failure 添付ファイルは.txtファイルです。RCW出力による。最後に指定したコマンド「ccs::reset_to_debug」を実行しましたが、「ライブラリが見つかりません」というメッセージは表示されませんでしたが、その他の情報も表示されませんでした。 DDR構成レジスタについても同様のキャプチャを行い、添付しました。問題は見つかりません。実際、GreenHillsプローブで使用したこれらの値は正常に動作し、D_INITもクリアされるようですが、同じ値をQCVSツールで使用した場合はD_INITがクリアされません。GHプローブとCWTAPの違いがよく分かりません。何かアイデアがあれば教えてください。 Re: T1042 DDR4 Initialization Failure 現在、調達部門と協力してNDAを成立させ、完全な訂正書を作成できるようにしています。しかし、コンポーネントT1042NXE7MQBを使っていて、GoogleやNXPフォーラム検索ではエラッタA009942適用されるようです。 参照された「Optimization.zip」を教えていただけますか?どこにも添付されていないようです。 Re: T1042 DDR4 Initialization Failure 「ccs::reset_to_debug」は正しく動作します。 errata_A009942 が必要かどうか確認してください。必要な場合は、添付のホットフィックス Optimization.zip を解凍して、CodeWarrior PA インストールフォルダ内の既存の Optimization フォルダを上書きしてください。C:\Freescale\CW_PA_v10.5.1\eclipse\Optimization\resources\QorIQ\DDR\templates\init\errata_A009942.py が存在します。 以下の一般的なガイドラインをご確認ください。 新しいQCVSプロジェクトを作成する - 「自動設定」と「離散DRAM」を選択する - DRAM速度定格 = 最大速度 (例: 最大3200 MT/s、データシートを参照) - 「出力データレート」で「xxx MT/s」を選択してください(現在の動作速度、例: 1300MT /s。このデータレートはRCWイメージで設定されているDRAM速度と一致している必要があります)。   - 「ランク/チップ選択」で「x」を選択                   (シングルCSまたはデュアルCS)   - 「tCL」は「xx」を選択します(DRAMデータシートの速度ビン表に従って)。   - 「デバイスごとのDRAM構成」で「xx」を選択してください(DRAMデータシートを参照)。   - 適切な CLK-to-QDS スキューを埋める               (EDA ツールを使用して CLK 信号と DQS 信号の長さを測定します。CLK の長さ - DQS の長さ) CLKの長さからDQSの長さを引いた値。例: CLK-DRAM0間の長さ = 100 mm CLK-DRAM1間の長さ = 101 mm DQS[0]の長さ = 75 mm DQS[1]の長さ = 110 mm CLK-to-DQS[0]のスキュー = 100 mm - 75 mm = 25 mm CLK-to-DQS[1]のスキュー = 101 mm - 110 mm = -9 mm - CLK配線の長さは、DQS配線の長さと10インチ以内で等しいか、それ以上でなければなりません。 - MCKの配線長がDQSの配線長より短い場合、その差は2.0インチ以内でなければなりません。 DQマッピング - コントローラピン: 実際のボードでDQビットスワッピングが使われている場合、ユーザーはQCVSで実際のPCBレイアウトに合わせて設定する必要があります。 タイミングCFG_1と3: - tCL/tRCD/rRP/tRAS この値は、現在の動作速度に合わせるためにDRAMデータシートを参照します。      - tWR (書き込み回復時間、プリチャージの最小間隔となる最後のデータ)。この値はDRAMデータシートを参照してください。          - tRRD(アクティブ化間隔)この値はDRAMデータシートを参照します。     タイミングCFG_2:   - tFAW(4つのアクティブウィンドウ)、この値はDRAMデータシートを参照します。 ユーザーは、これらのボード固有の構成やDRAM固有の構成が実際のハードウェアと一致していることを確認する必要があります。 その他のほとんどのオプションについては、QCVSのデフォルト値を使用してください。 よろしくお願いします。 Re: T1042 DDR4 Initialization Failure 添付ファイルが見当たらなくて申し訳ありません。 Re: T1042 DDR4 Initialization Failure こんにちは、ジューンさん。 ファイルの提供と継続的なサポートに感謝します。QCVS DDRvツールの設定に関するガイドラインに従い、本日、エラータ#A009942の回避策を試してみましたが、効果は見られませんでした。スクリプト自体を調べてみたところ、667MHzと800MHzという特定の周波数に対してのみ回避策が適用されているようです。現在、訂誤#007864により、幅32ビット以下の800MHzで動作するとDDRインターフェースに問題がある可能性があるとされ、現在650MHzで動作しています。650MHzの場合、設定する必要のあるデバッグレジスタ値はありますか? この設計は単一の100MHzクロックソースを使用しているため、DDR周波数の選択肢はDDR4用に650MHz、700MHz、750MHz、800MHzしかないように思えます。32ビットモードの場合、650MHz以外の周波数を使用すべきでしょうか? 私は依然としてDQマップの値に疑念を抱いています。数ヶ月前の別の投稿で、 T1042 DDR4 DQ MAPレジスタ設定の値を確認するのを手伝っていただきました。 これは、当サイトで動作しているT1042 DDR4の他の例とこの設計との違いが顕著です。彼らは64ビットを使用し、最上位バイトでわずかなビットスワップを行っただけだった。64ビットインターフェースのMSBで既知の悪いビットスワップがあり、そのため32ビットモードを回避策として試みています。動作設計よりも多くのスワップがあり、1バイトレーン内での完全なニブルスワップも含まれますが、インターフェースの32ビットLSBはT1042コントローラーで許可されているルールに従っているようです。DQマップの入れ替えに関する様々な組み合わせが機能することが知られていますか?検証に使っている値をもう一度見ていただけますか?便宜上、レジスタ値と回路図のキャプチャを添付しています。DDR4デバイスのもう一方の端は直接1:1のマッピングなので、スワッピングはT1042側にのみ表示されています。 改めて、サポートありがとうございます。 Re: T1042 DDR4 Initialization Failure @dbevans42 スクリプトには650 MHzのA-009942を適用し、667と同じラインをもう1行追加すれば良いでしょう。 DQマッピングを確認するため、DDRデバイスの部品回路図をご提供いただけますでしょうか。 DQマッピングがMAPを横切る場合、デバッグモードが1つありますが、これはボードを修正するまでの暫定的な解決策です。 データレートを1200MT/sに設定する DDR_SDRAM_CFG_2[DDR_SLOW] = 1 に設定します オフセット0x8F04[27]のDDRレジスタを1に設定するか、オフセット0x8F04に0x10の値を書き込みます。 DDR_DQ_MAPnレジスタをすべてクリアします よろしくお願いします。 Re: T1042 DDR4 Initialization Failure DDR4です。これはDIMMではなく離散設計なので、1G x 16ビットのデバイスが5台(64ビット+8ビットECC)です。 Re: T1042 DDR4 Initialization Failure DDR4に64ビットバス幅の製品があるかどうかはわかりません。LPDDR4のことですか? Re: T1042 DDR4 Initialization Failure 9月24日(木)に投稿した前回のメッセージでは、DQ[0:31]とECCに関する回路図のスクリーンショットを添付しました。誤ったビットスワップをハイライトした64ビットインターフェース全体のスナップショットを再度含めます。 追加の回避策を教えていただきありがとうございます。 質問: 1) A009942スクリプトに650MHzを追加する場合、どのような値を書き込むべきですか?667MHzと同じであるべきでしょうか? 2) あなたが挙げた新しい1200MT/sの回避策は、誤ったスワップが発生しても64ビットモードが動作するようにするためのものですか、それとも引き続き32ビットモードを試す必要がありますか? 3) DDRvツールを使用して回避策を実行する方法はありますか?そうでなければ、GreenHillsプローブの起動スクリプト内で試してみて、結果を報告します。 Re: T1042 DDR4 Initialization Failure こんにちは、ジューンさん。 GreenHillsのプローブ起動スクリプト内でご紹介いただいた回避策を実装でき、DDR4インターフェースが動作しているようです。DDR4にコードを読み込んで実行を開始でき、GHプローブメモリビューを使ってDDR4で初期化されたデータ値を確認できます。確認のため、スクリプトを添付しました。 質問: 1) デバッグモードについてもう少し詳しく教えてもらえますか? 2) デバッグモードの回避策は1200MT/sでしか動作しないのか、それとももっと速く動かせるのか? 3) DQマップレジスタの機能にバグはありますか?DQマップレジスタが宣伝どおりに動作すること、そして新しいスピンでDQ57とDQ63の入れ替わりの誤りを修正した場合でも、デバッグモードなしでも正常に動作することを確認する必要があります。 4) 32ビットモードにバグや問題はありますか?デバッグ回避策なしの32ビットモードが機能しないのは理にかなっていません。なぜなら、それらのビットのマッピング規則に従っているからです。 5) 回避策としてデバッグモードを実行し、QCVS DDRvツールを使用して正しい書き込みレベル値を取得する方法はありますか? Re: T1042 DDR4 Initialization Failure こんにちは、ジューンさん。 あなたは問題の根本原因を特定したと思います。数年前から異なるMPUシンボルを使った**デザイン**がいくつかあり、**DDR3L**は1000MT/sで動作していますが、問題は一度もありません。そのため、記号に誤りがあるとは考えもしませんでした。私たちはマッピングの見直し、記号を修正し、この問題がなぜ長期間続いているのかを特定しようとしています。今後の新しいボードスピンでこの問題を修正できるはずです。引き続きサポートいただき、心からありがとうございます。この時点で、私たちは前に進むことができるはずです。 よろしくお願いいたします。 ダグ Re: T1042 DDR4 Initialization Failure こんにちは、@dbevans42さん これはデバッグ専用の回避策であり、ビットスワップが正しく行われていないDDR4ボードを低データレートで動作させることで、ボードレベルで他の問題が存在しないことを確認するのに役立ちます。しかし、基板設計は最終的にAN5097に従って修正される必要があります。 このモードでサポートされる最大データレートは1200 MT/sです。 社内チームからの説明は以下のとおりです。 DEBUG_2[27:FRC_SE]はスローイネーブを強制的にローに設定することを意味し、DDR4はメモリへの書き込み時にインターフェースを遅くすることでCASをプレアンブルやRXビットの調整に訓練できます。通常、DDR4は書き込みではなく、多目的レジスタにMRSコマンドを発行することによってトレーニングを行います。FRC_SEビットが設定されている場合、MPRRおよびMPRWコマンドはサポートされません。さらに、FRC_SE設定されている場合、内部トレーニングやDRAM VRefトレーニングはサポートされません。   QCVS検証はこの回避策をサポートしていません。DDRのinitソフトウェアデバッグにのみ有用であり、メモリを有効にする前に必要な設定をDDR initに組み込む必要があります。   ご提供いただいた回路図のスクリーンショットを確認したところ、MPUライブラリに表示されているT1042のピン番号がデータシートのピン番号と一致していないことに気づきました。 正しいMPUライブラリを使用しているか確認していただけますか?さらに、T1042とDDR4デバイスの両方について、完全な回路図シンボル(ライブラリ定義)を提供してください。また、回路図上のT1042のピン番号がデータシートに記載されているピン番号と異なる理由を再確認することをお勧めします。   よろしくお願いします。 Re: T1042 DDR4 Initialization Failure 初期化を正常に行うために必要な最低クロック周波数は?あるいはイニティリアザイオンが全く機能しないかも。ハードウェアガイドラインに基づいて回路図とレイアウトを確認しましたか?DDR4の部品番号を教えていただければ、より詳しくレビューできます。 Re: T1042 DDR4 Initialization Failure 根本原因を特定できて嬉しいです。 可能であれば、次の基板リビジョン前に現行設計のDQマッピングを調整することも有益かもしれません。 結果が出たら共有していただけると嬉しいです。 ご質問がありましたら、お気軽にお知らせください。 私は1週間以上OoOになるので、返答が遅れるかもしれません。何か進展があればご連絡いたします。 ありがとうございます。
View full article
SWUpdate Support for i.MX 95 Hi NXP Team, We are planning to implement SWUpdate-based OTA with A/B root filesystem and rollback on the i.MX 95 platform using Yocto Linux. Could you please confirm: Is SWUpdate officially supported/recommended for i.MX 95? What is the recommended A/B partition and U-Boot rollback implementation? What are the recommended steps for secure/signed SWUpdate packages and Secure Boot integration? Please share the latest application notes, documentation, Yocto layers/recipes, reference implementation, and example configuration for i.MX 95 SWUpdate. We would also appreciate any step-by-step guide recommended by NXP for a production implementation. Thanks. Yocto Project
View full article
FRDM i.MX93 using MIPI-CSI-2 camera with a Bayer Pattern(RAW10) Hi, I am bringing up a raw Bayer MIPI CSI-2 camera (ams OSRAM NanEyeM via a Citrobits CBM100 bridge, fixed output: 320x320 RAW10, 2-lane, ~400 Mbps/lane, Non-continuous clock, once powered the bridge board starts decoding MIPI CSI-2 from image sensor, does not need any external clock) on an NXP FRDM-i.MX93 board, on the Scarthgap/6.6 BSP (linux-imx, meta-imx-frdm layer). I have got the full V4L2 media pipeline working at the plumbing level: our sensor driver probes, binds as an async subdevice, and mx8-img-md successfully links sensor -> mxc-mipi-csi2.0 -> mxc_isi.0 -> /dev/video0. The MIPI CSI-2 host (dwc-mipi-csi2-host) enables cleanly on STREAMON, but no valid frame is ever captured. I traced this to the ISI driver bound to this board's default device tree (drivers/staging/media/imx/, imx93.dtsi's isi@4ae40000 node using "fsl,imx93-isi", "fsl,imx8-isi"). Its format table in imx8-isi-fmt.c only contains RGB565/RGB888/BGR888 and a handful of YUV mbus codes -- no SBGGR/SRGGB/SGRBG/SGBRG entries at any bit depth. mxc_isi_get_src_fmt() in imx8-isi-cap.c has no branch for Bayer input, so it silently falls through to index 0 of its RGB/YUV table rather than erroring (driver's kernel log shows "input fmt RGB4" for what is actually a RAW10 Bayer source). I also found what looks like a more complete, more recently structured ISI driver in the same kernel tree at drivers/media/platform/nxp/imx8-isi/ (split into core/pipe/video/crossbar/gasket files), whose imx8-isi-video.c and imx8-isi-pipe.c do have full Bayer support at 8/10/12/14/16 bits, including SBGGR10_1X10 matching our sensor exactly. Its imx8-isi-core.c also declares a "nxp,imx93-isi" compatible string. However, imx93.dtsi doesn't currently instantiate a node with that compatible string anywhere, so this driver doesn't appear to be wired into the i.MX93 FRDM (or, as far as we've checked, i.MX93 EVK) device trees at all in this BSP release. My questions: 1. Is drivers/media/platform/nxp/imx8-isi/ intended as the eventual replacement for the staging ISI driver on i.MX93, and is there a reference device tree binding (port/endpoint graph structure) for wiring the CSI2 host and a sensor into it, that I could look at or adapt? 2. Is there a supported way to get raw Bayer/RAW10 capture working through the currently-bound staging ISI driver on i.MX93, that we may be missing -- e.g. a bypass mode, a different video node, or a format we haven't tried? 3. Is Bayer/RAW10 support for the staging ISI driver on this BSP release on any roadmap, or is switching to the newer driver tree the recommended path for raw-sensor use cases on i.MX93 today? I found a couple of post like i.MX93 using MIPI-CSI-2 with a Bayer Pattern Camera(RAW10) and does not seem to have the solution. If I missed out a good solution, please do let me know. here is the interface of the bridge board and i.MX 93's P6 connector.   Thanks and best regards kth Re: FRDM i.MX93 using MIPI-CSI-2 camera with a Bayer Pattern(RAW10) I found this threat https://community.nxp.com/t5/i-MX-Processors/IMX219-RPi-Cam-v2-probes-but-does-not-stream-on-FRDM-IMX93-with/td-p/2384080 . If I may ask, 1. Is Bayer/RAW10 ISI support (and the link_setup/s_power tolerance fix) already included in the 6.12.34-2.1.0+ officially-supported BSP line? If so, is upgrading our BSP the recommended path rather than backporting patches onto 6.6.36? 2. If I need to stay on 6.6.36 for now, is there an official/blessed patch set for the ISI Bayer format support (rather than us reconstructing it from the community thread)? 3. Separately -- I also found a newer, more complete ISI driver already present in the same 6.6.36 kernel tree at drivers/media/platform/nxp/imx8-isi/, with full Bayer support and a "nxp,imx93-isi" compatible string not currently wired into imx93.dtsi. Is that the driver 6.12.34-2.1.0+ actually uses, or is it unrelated? 4. I just noticed LF6.18.37_2.1.0(imx-linux-wrynose)lists FRDM-i.MX93 as fully supported https://github.com/nxp-imx/imx-manifest/tree/imx-linux-wrynose . Does this release include Bayer/RAW10 format support in i.MX93 ISI driver, or does that i.MX93 reference architecture still expect raw sensors to go through an external ISP(like AP1302) rather than direct-to-ISI? If the latter, is there any supported path for direct raw Bayer capture on i.MX93 at all? Thank you!
View full article
S32K388で、最大動作周波数320MHzを実現するにはどうすればよいですか? S32K388の場合、 CM7_CORE_CLKを320MHz、Core_CLKを160MHzに設定しました。 これらのクロックとは何ですか?また、コアにはどのクロック周波数が使用されていますか?(CM7_CORE_CLOCK または Core_Clock) もう一方の周波数はどこで使用されていますか? この構成でサイクル時間を測定した場合、得られる周波数はどれくらいになりますか? 最大動作周波数320MHzを実現するために必要な設定は何ですか? Re: FOR S32K388, how to achieve maximum operational frequency of 320 Mhz? こんにちは、 @Sambasiva さん。 図11を参照してください。ブロック図 – S32K3xx RM の S32K389、Rev.12、2025年11月11日。 CORE_CLKはシステムクロックです。 CM7_CORE_CLKはCM7コアのクロックです。 すべての時計は、表153に従って正確に設定する必要があります。オプション A++ - 超高性能モード (CM7_CORE_CLK @ 320 MHz) (S32K388/S32K389 用)。 よろしくお願いいたします。 ダニエル
View full article
S32K312 ISELED Hi NXP expert, I'd like to ask which generation of ISELED does the S32K312NHT0MPAIT support? Does it only support the first generation? Re: S32K312 ISELED Hi Chenxu1, I apologize for the delayed response. This issue had been assigned to our software team for investigation, and I only received their feedback today: Currently, our driver supports ISELED 1.0 and ILaS. However, it should be largely compatible with ISELED 2.0 and support most of its features, except for the ILaS_Read_Register command, which still needs to be verified. We have also not yet performed a comprehensive assessment to determine whether any additional updates are required to achieve full compatibility with ISELED 2.0. Best Regards, Robin
View full article
T1042 DDR4 Initialization Failure I have a T1042 design using 64-bit interface to DDR4.  We already found an issue with an improper bit swap between nibbles in the uppermost byte of the interface which we know cannot be compensated for in SW settings.  We are going to implement a fix in a PWB revision.  However since the rest of the bits are correct and the swapping falls into what is allowed according to the reference manual we are hoping to instead operate in 32-bit mode so that we can still proceed bringing up SW and the rest of the design.  I have tried this using QCVS DDR validation tool, however I cannot get the memory to initialize.  I have input the parameters of the device and made sure to set the DQ mapping values according to my design for DQ[0:31] however I continue to get bit ACE= 1 in the ERR_DETECT register.  The processor is getting the RCW via SPI interface and the DDR frequency is set to 800MHz.  Is there a way to use CodeWarrior/QCVS to verify it received the correct RCW value?  What are some other settings to consider for 32-bit mode operation that could explain why it is not working?  I would greatly appreciate any support.  Thank you. QorIQ T1 Devices Re: T1042 DDR4 Initialization Failure   Is there a way to use CodeWarrior/QCVS to verify it received the correct RCW value?  [A] Yes, that's possible, you could connect the CCS, and read out the DCFG_CCSR_RCWSR1-DCFG_CCSR_RCWSR16 to compare with the RCW in the SPI flash. What are some other settings to consider for 32-bit mode operation that could explain why it is not working? [A]Is it discrete DDR4? For the generally rule, please refer to  QCVS_DDR_User_Guide. For the HW design, please refer to the AN5097, Hardware and Layout Design Considerations for DDR4 SDRAM Memory Interfaces Thanks Re: T1042 DDR4 Initialization Failure Hello June, Thanks for the reply.  I was able to use CCS to read the RCW status registers and confirm the RCW is programmed as expected. I am using discrete DDR4 and have been through the user guide and layout considerations. I have confirmed that we have a 650MHz clock for operation at 1300MT/s to satisfy Errata A-007864 for using a 32-bit interface.  A colleague suggested checking that the chip select is toggling.  I found that once the QCVS tool starts sending the configuration to the processor, the CS0 signal is held sufficiently low.  After programming is complete and it attempts to run the validation routine the CS0 signal is no longer being fully asserted.  I independently using a JTAG boundary scan tool to confirm that the signal is connected as expected and that the T1042 I/O can drive the net low enough to satisfy the VIL for the DDR4 memory device.  I also confirmed the net looks good in terms of routing for signal integrity and that it is not shorted to anything.  It seems that there is something about the memory controller configuration that is not allowing the chip select signal to function correctly.  Any other ideas?  Thank you. Re: T1042 DDR4 Initialization Failure Could you please confirm whether the CS0 in your description refers to D1_MCS0_B? Please in your ccs run the command and update the full ccs log. (bin)  % ccs::reset_to_debug Thanks Re: T1042 DDR4 Initialization Failure Correct, I am referring to D1_MCS0_B. When I run command (bin)  % ccs::reset_to_debug I get a message that says "Library not found." Re: T1042 DDR4 Initialization Failure The memory controller is now set for 650MHz or 1300MT/s operation.  Same result.  We are attempting to use 32-bit mode for DDR4 because there is unintended bit swap on byte 8 of 64-bit interface (mistaken swap between nibbles).  The design was intended to be 64-bit + ECC but we are attempting to run 32-bit + ECC as a temporary  workaround.  That means that we currently have 5x 16-bit chips connected but are hoping to operate using only 3 of them. I've tried many combinations of settings but nothing seems to change behavior in QCVS tool.  What is a bit odd is that I have also tried using a GreenHills emulator with similar values to QCVS in its startup script and I get past the wait loop for DDR_SDRAM_CFG_2[D_INIT] to clear, implying initialization is completing.  Then it fails on initial write/read verification with all 0x00 which makes sense since it is using suboptimal write leveling values.  I do not understand why the QCVS tool has different behavior. Re: T1042 DDR4 Initialization Failure ACE error is automatic calibration error which is set if the memory controller detects an error during its training sequence. So if you lower the clock speed from 800MHz, how about the training result? Meanwhile for 64bit or 32bit bus width, which one is selected to use for DDR4? how many pcs DDR4 is planed to connect to T1042 Re: T1042 DDR4 Initialization Failure Attached is a .txt with the RCW output.  I ran the command you specified "ccs::reset_to_debug" at the end and it did not give the "library not found" message, but it did not display any other info. I have also done a similar capture for the DDR config registers and attached that.  I cannot find anything wrong.  In fact these values used with GreenHills probe actually seem to pass and get D_INIT to clear, however D_INIT does not clear when I use the same values with QCVS tool.  I'm not sure what the difference is between using GH probe vs CWTAP.  I'd appreciate any ideas. Re: T1042 DDR4 Initialization Failure Please input the command after you read out the RCW status registers. Please share the full ccs log to me instead of the command " ccs::reset_to_debug" result, such as "I get a message that says "Library not found."" The full log start from the first command you use the ccs. Thanks Re: T1042 DDR4 Initialization Failure I am currently working with my procurement to get NDA in place so that I can get full errata documentation.  However, I am using component T1042NXE7MQB and Google/NXP forum search seems to suggest that errata A009942 applies. Can you please provide the referenced "Optimization.zip," I do not see it attached anywhere. Re: T1042 DDR4 Initialization Failure "ccs::reset_to_debug" work correctly. Please confirm if errata_A009942 is needed, if it's needed, please unzip the attached hotfix Optimization.zip to override existing Optimization folder within the CodeWarrior PA installation folder. there will be present C:\Freescale\CW_PA_v10.5.1\eclipse\Optimization\resources\QorIQ\DDR\templates\init\errata_A009942.py Confirm the general guide as below: creating a new QCVS project   - choose "Auto configuration" and "Discrete DRAM"   - DRAM Speed Rating = Max speed                  (e.g., max 3200 MT/s, see datasheet).        - "Output data rate" choose "xxx MT/s"           (Current working speed, e.g. 1300MT/s, this data rate must match the DRAM speed configured in RCW image)   - "Rank/Chip select" choose "x"                  (single CS or dual CS)   - "tCL" choose "xx"                              (according to speed bin table in DRAM data sheet)   - "DRAM configuration per device" choose "xx"    (see DRAM data sheet)   - fill the proper CLK-to-QDS skews               (measure lengths of CLK and DQS signals via EDA tool, CLK length - DQS length) CLK length minus DQS length, example: CLK-to-DRAM0 length = 100 mm CLK-to-DRAM1 length = 101 mm DQS[0] length = 75 mm DQS[1] length = 110 mm CLK-to-DQS[0] skew = 100 mm - 75 mm = 25 mm CLK-to-DQS[1] skew = 101 mm - 110 mm = -9 mm  - CLK trace length must be equal to or longer than DQS trace length within 10 inches. - If MCK trace length is shorter than DQS trace length, it must be within 2.0 inches. DQ mapping - Controller pins: If DQ bit swapping is used on your actual board, user must configure this in QCVS to match the actual PCB layout. TIMING_CFG_1_and_3:   - tCL/tRCD/rRP/tRAS  this value refers to DRAM datasheet to match the current working speed rate.      - tWR (Write Recovery Time, Last data to precharge minimum interval), this value refers to DRAM datasheet.          - tRRD(Activate-to-activate interval) this value refers to DRAM datasheet.     TIMING_CFG_2:   - tFAW(Four Activate Window), this value refers to DRAM datasheet. user should ensure those board-specific and DRAM-specific configurations match the actual hardware. for other most of options, use the default QCVS preset value. Thanks Re: T1042 DDR4 Initialization Failure Sorry miss the attachment. Re: T1042 DDR4 Initialization Failure Hello June, Thanks for providing the files and the continued support.  I followed your guidelines for QCVS DDRv tool set up and I tried out the errata #A009942 workaround today and it did not seem to make a difference.  I looked into the script itself and it only seems to be applying the workaround for specific frequencies of 667MHz and 800MHz.  I am currently running at 650MHz due to errata #007864 which claims there might be issues with the DDR interface when running at 800MHz for width 32-bit or less.  Is there a debug register value that needs to be set for 650MHz?  This design is using a single 100MHz clock source so my only options for DDR frequency appear to be 650MHz, 700MHz, 750MHz, and 800MHz for DDR4.  Should I be using a different frequency other than 650MHz for 32-bit mode? I am still suspicious of the DQ map values.  You actually helped me verify the values a few months ago in another post:  T1042 DDR4 DQ MAP Register Settings This is a noted difference between this design and the other instance of working T1042 DDR4 on our site.  They used 64-bit and only had minor bit swapping on the most significant byte.  We have a known bad bit swap on the MSB of our 64-bit interface which is why we are attempting 32-bit mode as workaround.  We have a lot more swapping than the working design including a full nibble swap within a byte lane, however the 32-bit LSBs of the interface appear to follow the rules for what is allowed by the T1042 controller.  Are different combinations of the DQ map swapping known to be working?  Can you take another look  at the values we are using to verify?  Register value and schematic captures included for convenience.  The other end at the DDR4 device is a direct 1:1 mapping, so the swapping appears only at the T1042 side for clarity. Thanks again for the continued support. Re: T1042 DDR4 Initialization Failure It is DDR4.  This is a discrete design, not DIMM, so we have five 1G x 16-bit devices (64-bit + 8-bit ECC). Re: T1042 DDR4 Initialization Failure Not sure DDR4 has 64BIT BUS WIDTH product. Do you mean LPDDR4? Re: T1042 DDR4 Initialization Failure @dbevans42  A-009942 at 650 MHz should be applied in the script, you could add one more line  same as 667 to include this. Please kindly share the DDR device part schematics to confirm the DQ mapping. If the DQ mapping cross the MAP, we have one debug mode, it is a temporary solution till you fix your board. set the data rate to 1200MT/s set DDR_SDRAM_CFG_2[DDR_SLOW] = 1 set DDR register at offset 0x8F04[27] = 1, or write a value of 0x10 to offset 0x8F04. clear all DDR_DQ_MAPn registers Thanks Re: T1042 DDR4 Initialization Failure Hello June, I was able to implement the workaround you listed within our GreenHills probe startup script and from what we can tell the DDR4 interface is now working.  We can load code into DDR4 and start executing and I am able to see the initialized data value in DDR4 using the GH probe memory view.  Script attached for review. Questions: 1) Can you provide more detail on the debug mode? 2) Does the debug mode workaround only function at 1200MT/s or can it be run faster? 3) Is there a bug in the function of the DQ map registers?  I need to be sure that the DQ map registers actually work as advertised and that if I fix the mistaken DQ57 and DQ63 swap in a new spin that it will still work without the debug mode. 4) Is there a bug/issue with 32-bit mode?  It does not make sense that 32-bit mode without debug workaround does not work since we follow the mapping rules for those bits. 5) Is there a way to run workaround debug mode and use QCVS DDRv tool to get correct write leveling values? Re: T1042 DDR4 Initialization Failure My last post to you on Thursday 9/24 I attached the relevant schematic screenshots for DQ[0:31] and ECC.  I'm including the snapshots again of the whole 64-bit interface with the erroneous bit swap highlighted. Thank you for the additional workaround.       Questions: 1) If I add 650MHz to the A009942 script what value should be written?  Should it be the same as 667MHz? 2) Is the new 1200MT/s workaround you listed meant to make 64-bit mode work even with the erroneous swap, or do we need to continue trying 32-bit mode? 3) Is there a way to do the workaround using the DDRv tool?  Otherwise I will try it within our GreenHills probe startup script and report back with results. Re: T1042 DDR4 Initialization Failure Hello June, I think you've identified the root cause of our issue.  We have several designs dating back several years which use the incorrect MPU symbol with DDR3L running at 1000MT/s and they have never had any issues.  It never occurred to us that there could be an error in the symbol for that reason.  We are working to review our mapping, correct the symbol, and identify how/why this issue has persisted for so long.  We should be able to correct this issue in upcoming new board spin.  Thank you greatly for the continued support.  We should be able to move forward at this point. Regards, Doug Re: T1042 DDR4 Initialization Failure what the lowest clock freq to make the initialization work? Or the initiliazaion can not work at all. Have you check the schematics and layout based on hardware guideline? It would be helpful if you share the DDR4 part number to better review Re: T1042 DDR4 Initialization Failure Hi @dbevans42  This is a debug-only workaround that allows a DDR4 board with incorrect bit swapping to operate at a reduced data rate, helping to confirm that no other board-level issues exist. However, the board design must eventually be corrected according to AN5097. The maximum supported data rate in this mode is 1200 MT/s. Here the explanation from internal team: DEBUG_2[27:FRC_SE] means that slow enable is forced low, this can be used to allow DDR4 to train the CAS to preamble and RX bit deskew by slowing the interface down during writes to memory. Normally, DDR4 will train by issuing MRS commands to the multi-purpose register(s) instead of writes. If FRC_SE bit is set, then MPRR and MPRW commands are not supported. In addition, this also means that VRef training is not supported (for Internal or DRAM VRef training) if FRC_SE is set.    QCVS validation does not support this workaround; it is useful for DDR init software debug only, and the required settings must be incorporated in DDR init before memory enable.   I have reviewed the schematic screenshots you provided and noticed that the T1042 pin numbers shown in your MPU library do not match those in the datasheet. Could you please verify that the correct MPU library is being used? In addition, please provide the complete schematic symbols (library definitions) for both the T1042 and the DDR4 device. You may also want to double-check why the T1042 pin numbers in your schematic differ from those specified in the datasheet.   Thanks Re: T1042 DDR4 Initialization Failure I am glad we could identify the root cause. It may also be beneficial to adjust the DQ mapping in the current design, if possible, before the next board revision. It would be great if you could share your results when they become available. If you have any questions, please feel free to let me know. I will be OoO more than 1 week, so my response may be delayed. I will get back to you if there is any update. Thanks.
View full article
S32K312 ISELED Hi,NXP专家 我想问一下S32K312NHT0MPAIT支持第几代ISELED?是否只支持第一代? Re: S32K312 ISELED 嗨陈旭1, 很抱歉回复晚了。这个问题已分配给我们的软件团队进行调查,我今天才收到他们的反馈: 目前,我们的驱动程序支持 ISELED 1.0 和 ILaS。不过,它应该与 ISELED 2.0 基本兼容,并支持其大部分功能,但 ILaS_Read_Register 命令除外,该命令仍需验证。我们尚未进行全面评估,以确定是否需要任何额外的更新才能与 ISELED 2.0 完全兼容。 此致敬礼, Robin
View full article
S32K344MINI-EVB:FlexCAN_IP_Example_S32K344 和 Can_Example_S32K344 配置错误 大家好, 我目前正在使用S32K344MINI-EVB (FRDM 汽车评估板),并且希望在基于NXP S32K3 系列的定制项目开发之前,获得基本外围驱动器的实践经验。 开发环境 S32 设计工作室 (S32DS) 3.5.8 SW32K3_S32M27x_RTD_R21-11_4.0.0_P19_D2403 EB tresos 29 当前状态 我已成功导入并运行以下示例项目: SIUL2_DIO_IP_Example_S32K344 Dio_Example_S32K344 对于 AUTOSAR 和非 AUTOSAR 配置,项目均成功构建,并在 S32K344MINI-EVB 上产生了预期的输出。 问题 然后我导入了以下 CAN 示例项目: FlexCAN_IP_示例_S32K344 Can_Example_S32K344 在配置和构建这些项目时,我遇到了附件截图中所示的错误。 申请它 请问有人能提供一些建议吗? S32K344MINI-EVB 是否需要对电路板进行任何特定的修改? 是否还需要其他 FlexCAN、时钟、引脚或 EB Tresos 配置? 是否有关于如何在 MINI-EVB 上运行这些 CAN 示例的指南? 附图显示了配置/版本过程中遇到的错误。 感谢您的支持。 问候, 维尔 Re: S32K344MINI-EVB: FlexCAN_IP_Example_S32K344 and Can_Example_S32K344 Configuration Errors 你好@Veereshh , S32K344 EVB 和 FRDM-A-S32K344(原名 S32K344MINI)的引脚排列非常相似。 1. 无 2. 是的。FlexCAN_IP_Example_S32K344 和 Can_Example_S32K344 这两个项目都只将 FlexCAN 配置为“环回”模式,这意味着没有配置任何引脚,FlexCAN_0 监听的是自身的消息。 在项目的 MEX 中,您必须: 将 FlexCAN 的“环回”模式更改为“正常/用户模式”。 添加 Siul2_Port(或 MCAL 中的 Port),并配置 PTA6 和 PTA7(FRDM-A-S32K344 中的 CAN_H CAN_L)。 在项目中添加端口初始化代码。 FRDM-A-S32K344 还使用 TJA1043 CAN 收发器,必须将 CAN_EN 和 CAN_STB 设置为 HIGH 才能使收发器正常工作。根据FRDM用户手册中的说明,这些信号被路由至PTC21和PTC20: 这些值也必须在您的项目中设置为 HIGH。您可以参考以下示例: [RTD600 MCAL & IP] S32K3X4EVB-T172 FlexCAN 示例中断/轮询。 请注意,它们基于 RTD 6.0.0,而不是 RTD 4.0.0。 设置完成后,您可以使用连接到另一个 CAN 节点(PCAN USB 分析仪、另一个 MCU 等)的 J15.1 CANH 和 J15.2 CANL 来测试 CAN 通信。在我分享的示例中,使用了 PCAN-USB 分析仪。 此致, 朱利安
View full article
アメリカで主要な燃料配送アプリ開発会社はどこですか? アメリカで燃料配送アプリ開発会社をお探しなら、JPLoftは検討に値する会社の一つです。JPLoftは16年以上の経験と1,250件以上のプロジェクト実績を持ち、スタートアップ企業、燃料供給業者、大企業向けにカスタマイズされた燃料配送ソリューションを開発しています。 そのソリューションには、リアルタイムGPS追跡、燃料の注文とスケジューリング、ドライバー管理、安全な支払い、管理ダッシュボード、通知、分析が含まれます。JPLoftはUI/UXやアプリ開発からテスト、展開、発売後のサポートまで、エンド・ツー・エンド・サービスも提供しています。 開発パートナーを選ぶ前に、関連する業界経験、技術の専門知識、スケーラビリティ、セキュリティの実践、継続的なサポートを比較してください。
View full article
TUSB321AI - i.MX8M plus Controller Hi Team, We are planning to use TUSB321AI CC controller from TI in USB1 Since we have a requirement of USB1 with ID Pin. By default we have configured CC controller as DRP.Is this good to go for initial/uninterrupted flashing ? Re: TUSB321AI - i.MX8M plus Controller Hello @ramkrish  Hope you are doing very well. For i.MX8M Plus ROM/UUU serial downloading, the processor operates as a USB peripheral, and the ROM code does not require or check the USB ID pin. So,  DRP may work, but it is not the best choice for deterministic, uninterrupted initial flashing. Best regards, Salas.
View full article
FRDM i.MX93 使用 MIPI-CSI-2 相机,采用拜耳阵列(RAW10) 您好, 我正在将一个原始拜耳 MIPI CSI-2 摄像头(ams OSRAM NanEyeM,通过 Citrobits CBM100 桥接器,固定输出:320x320 RAW10,双通道,每通道约 400 Mbps,非连续时钟,桥接板通电后开始解码来自图像传感器的 MIPI CSI-2 数据,无需任何外部时钟)连接到 NXP FRDM-i.MX93 开发板上,该开发板位于 Scarthgap/6.6 平台上。BSP(linux-imx,meta-imx-frdm 层)。 我已经实现了完整的 V4L2 媒体管道的底层功能:我们的传感器驱动程序可以探测,并作为异步子设备进行绑定,并且 mx8-img-md 成功链接了传感器 > mxc-mipi-csi2.0 > mxc_isi.0。-> /dev/video0。MIPI CSI-2 主机 (dwc-mipi-csi2-host) 在 STREAMON 上可以正常启用,但始终无法捕获到有效帧。 我追踪到问题出在绑定到该主板默认设备树的 ISI 驱动程序上(drivers/staging/media/imx/,imx93.dtsi)。isi@4ae40000 节点使用“fsl,imx93-isi”和“fsl,imx8-isi”)。其格式表位于 imx8-isi-fmt.c 中。仅包含 RGB565/RGB888/BGR888 和少量 YUV mbus 代码——任何位深度下均无 SBGGR/SRGGB/SGRBG/SGBRG 条目。imx8-isi-cap.c 中的 mxc_isi_get_src_fmt() 函数没有 Bayer 输入的分支,因此它会默默地跳转到 RGB/YUV 表的索引 0,而不是报错(驱动程序的内核日志显示“输入格式 RGB4”,而实际上是 RAW10 Bayer 源)。 我还在同一内核树的 drivers/media/platform/nxp/imx8-isi/ 目录下找到了一个看起来更完整、结构更新的 ISI 驱动程序(分为 core/pipe/video/crossbar/gasket 文件),其 imx8-isi-video.c 文件位于该目录下。和 imx8-isi-pipe.c完全支持 8/10/12/14/16 位拜耳阵列,包括与我们的传感器完全匹配的 SBGGR10_1X10。其 imx8-isi-core.c 还声明了一个“nxp,imx93-isi”兼容字符串。然而,imx93.dtsi 目前在任何地方都没有实例化具有该兼容字符串的节点,因此,此驱动程序似乎根本没有连接到此 BSP 版本中的 i.MX93 FRDM(或者,据我们所知,i.MX93 EVK)设备树。 我的问题: 1. drivers/media/platform/nxp/imx8-isi/ 是否旨在最终替代 i.MX93 上的暂存 ISI 驱动程序?是否有参考设备树绑定(端口/端点图结构)用于将 CSI2 主机和传感器连接到其中,以便我可以查看或进行调整? 2. 是否有我们可能遗漏的、受支持的方法,使原始 Bayer/RAW10 捕获能够通过 i.MX93 上当前绑定的暂存 ISI 驱动程序工作?例如,旁路模式、不同的视频节点或我们尚未尝试过的格式? 3. 对于当前 i.MX93 上的原始传感器用例,BSP 版本中是否有任何路线图支持 Bayer/RAW10?或者切换到更新的驱动程序树是否是推荐的途径? 我找到了一些关于使用 MIPI-CSI-2 连接拜耳阵列相机(RAW10)的 i.MX93 的帖子,但似乎没有找到解决方案。如果我遗漏了什么好的解决方案,请务必告诉我。 这是桥接板和 i.MX 93 的 P6 连接器的接口。   谢谢并致以最诚挚的问候 kth Re: FRDM i.MX93 using MIPI-CSI-2 camera with a Bayer Pattern(RAW10) 我找到了这个威胁https://community.nxp.com/t5/i-MX-Processors/IMX219-RPi-Cam-v2-probes-but-does-not-stream-on-FRDM-IMX93-with/td-p/2384080 。恕我冒昧, 1. Bayer/RAW10 ISI 支持(以及 link_setup/s_power 容差修复)是否已包含在 6.12.34-2.1.0+ 版本中?官方支持的BSP线路?如果是这样,升级我们的 电路板支持包 是否比将补丁移植到 6.6.36 版本更推荐? 2. 如果我目前需要继续使用 6.6.36 版本,是否有官方/经过验证的 ISI Bayer 格式支持补丁集(而不是我们根据社区帖子重新构建)? 3. 另外——我还发现同一个 6.6.36 内核树 drivers/media/platform/nxp/imx8-isi/ 中已经存在一个更新、更完整的 ISI 驱动程序,它具有完整的 Bayer 支持和一个“nxp,imx93-isi”兼容字符串,该字符串目前尚未连接到 imx93.dtsi。是驱动程序 6.12.34-2.1.0+ 吗?实际应用,还是无关的? 4. 我刚刚注意到 LF6.18.37_2.1.0(imx-linux-wrynose)listsFRDM-i.MX93 完全受支持https://github.com/nxp-imx/imx-manifest/tree/imx-linux-wrynose 。此版本是否在 i.MX93 ISI 驱动程序中包含 Bayer/RAW10 格式支持,或者 i.MX93 参考架构是否仍然要求原始传感器通过外部 ISP(如 AP1302)而不是直接连接到 ISI?如果是后者,i.MX93 是否支持直接进行原始拜耳图像捕获? 谢谢!
View full article
S32K344MINI-EVB: FlexCAN_IP_Example_S32K344 および Can_Example_S32K344 の設定エラー コミュニティの皆様、こんにちは。 現在、 S32K344MINI-EVB (FRDM オートモーティブ 評価ボード)と協力しており、 NXP S32K3 ファミリをベースにしたカスタムプロジェクトの開発を始める前に、基本的なペリフェラル ドライバの実践形式の経験を積みたいと考えています。 開発環境 S32 Design Studio(S32DS)3.5.8 SW32K3_S32M27x_RTD_R21-11_4.0.0_P19_D2403 EBトレソス29 現在の状況 以下のサンプルプロジェクトを正常にインポートして実行しました。 SIUL2_DIO_IP_Example_S32K344 Dio_Example_S32K344 AUTOSARおよび非AUTOSAR構成の両方で、プロジェクトは成功裏に建設され、S32K344MINI-EVBで期待された出力を生み出しました。 問題 次に、以下のCAN例プロジェクトをインポートしました。 FlexCAN_IP_Example_S32K344 Can_Example_S32K344 これらのプロジェクトの設定や構築中に、添付のスクリーンショットに示されたエラーに遭遇しました。 要求 どなたかアドバイスをいただけませんか: S32K344MINI-EVBには、基板固有の変更が必要ですか? FlexCAN、クロック、ピン、またはEBトレソの追加構成が必要ですか? これらのCAN例をMINI-EVBで動かすためのガイドはありますか? 添付のスクリーンショットは、設定/ビルド中に発生したエラーを示しています。 再開まで今しばらくお待ちください。 よろしくお願いいたします。 ヴィール Re: S32K344MINI-EVB: FlexCAN_IP_Example_S32K344 and Can_Example_S32K344 Configuration Errors こんにちは、 @Veereshh さん、 S32K344 EVBとFRDM-A-S32K344(旧S32K344MINI)のピン配置はほぼ同じです。 1. なし 2. はい。FlexCAN_IP_Example_S32K344およびCan_Example_S32K344プロジェクトはどちらもFlexCANを「ループバック」モードで構成しており、ピンは設定されておらず、FlexCAN_0は自身のメッセージをリッスンしています。 プロジェクトのMEX内では、以下のことを行う必要があります。 FlexCANの「ループバック」を「通常/ユーザーモード」に変更する Siul2_Port(またはMCALのPort)を追加し、PTA6とPTA7(FRDM-A-S32K344のCAN_HとCAN_L)の両方を設定します。 プロジェクトにポート初期化処理を追加してください。 FRDM-A-S32K344もまたTJA1043 CANトランシーバを使用しており、トランシーバを正常動作にするにはCAN_ENとCAN_STBをHIGHに設定する必要があります。これらはFRDMのユーザーマニュアルに記載されている通り、PTC21およびPTC20にルーティングされます。 これらはプロジェクト内でもHIGHに設定する必要があります。以下の例を参考にしてください:[RTD600 MCAL & IP] S32K3X4EVB-T172 FlexCANの例割り込み/ポーリング。 これらはRTD 4.0.0ではなく、RTD 6.0.0に基づいていることに注意してください。 これを設定した後、J15.1 CANHとJ15.2 CANLを別のCANノード(PCAN USBアナライザーや別のMCUなど)に接続してCAN通信をテストできます。私が共有した例では、PCAN-USBアナライザーを使用しました。 よろしくお願いします、 ジュリアン
View full article
TUSB321AI - i.MX8M plus 控制器 大家好, 我们计划在 USB1 中使用 TI 公司的 TUSB321AI CC 控制器,因为我们需要带有 ID 引脚的 USB1。 默认情况下,我们将CC控制器配置为DRP模式。这样配置是否适用于初始/不间断刷写? Re: TUSB321AI - i.MX8M plus Controller 你好@ramkrish 希望你一切都好。 对于 i.MX8M Plus ROM/UUU 串行下载,处理器作为 USB 外设运行,ROM 代码不需要或检查 USB ID 引脚。 因此,DRP 可能有效,但对于确定性、不间断的初始闪充而言,它并不是最佳选择。 顺祝商祺! 萨拉斯。
View full article
FOR S32K388, how to achieve maximum operational frequency of 320 Mhz? FOR S32K388, Configured CM7_CORE_CLK = 320 MHz and Core_CLK is 160 Mhz. What are these clocks and which clock frequency is used for Core?,  (CM7_CORE_CLOCK or Core_Clock) Where is the other frequency is used?  if we measure the cycle time with this configuration what is the frequency we will get? What are the settings required for maximum operational frequency of 320 MHz? Re: FOR S32K388, how to achieve maximum operational frequency of 320 Mhz? Hello @Sambasiva, Refer to Figure 11. Block diagram – S32K389 in S32K3xx RM, Rev. 12, 2025-11-11. CORE_CLK is the system clock. While CM7_CORE_CLK is the clock of the CM7 cores. All the clocks must be configured precisely according to Table 153. Option A++ - Very High Performance mode (CM7_CORE_CLK @ 320 MHz) (For S32K388/S32K389). Regards, Daniel
View full article
S32K Examples S32K1xx S32K144 Example S32K144 CMP Round-robin S32DS2.0  Example S32K144 Verify Backdoor Access Key S32DS1.3  Example S32K144 FlexCAN0 RXFIFO DMA nonSDK S32DS13  Example S32K144 PDB ADC trigger DMA ISR S32DS  Example S32K144 Flash RW simple S32DS  Example S32K144 DMA memory copy test S32DS  Example S32K144 EEEPROM usage Example S32K144 EEEPROM usage - No SDK  Example S32K144 RTC VLPS  Example S32K144 WDOG RCM interrupt  Example S32K144 SRAM ECC Injection  Example S32K144 RAM Retention S32DS.R1 Example S32K144 I2C Master MPL3115A2 S32DSR1_v3  Example S32K144 FlexCAN RXFIFO DMA S32DS.ARM.2018.R1  Example S32K144_printf_implementation - S32DS_1.0  Example S32k144 UART printf/scanf under FreeRTOS - S32DS Example S32K144 SDK Function call on configurable period using LPIT timer.  Example S32K144 .noinit section usage Example S32K144 PDB ADC DMA S32DS.ARM.2018.R1   Example S32K144 RAM selftest simple S32DS 2018.R1  Example S32K144 Position Independent Code  Example S32K144 FlexCAN Pretended Networking STOP mode test S32DS.ARM.2.2  Example S32K144 LPIT DMA LPSPI  Example S32K144 FlexCAN TX/RX/Error ISR test S32DS2.2  Example S32K144 FlexIO Idle Detection S32DS2.2 S32K142 Example_S32K142_LMEN_Cache_v1_0_S32DS3.6_RTD300  Lauterbach_Script_For_MDM_AP_Mass_erase_S32K142  S32K146 Example S32K146 Set_whole_FlexRAM-as_RAM S32DS.ARM.2.2 S32K148 Example S32K148 PDB0-PDB1 ring S32DS3.4 RTM4.0.3  Example S32K148 PDB0-PDB1 ring DMA S32DS3.4 RTM4.0.3  Example S32K148 GPIO Interrupt   S32K116 Example S32K116 WDOG Fast Test  Example S32K116 LPUART LIN Slave TXRX ISR S32DS.ARM.2.2  Example S32K116 FlexCAN PN STOP S32DS.ARM.2.2 Example S32K116 FlexCAN VLPR test S32DS.ARM.2.2 S32K118 Example S32K118-SRAM-keep_data_over_SW_reset v0_1 S32DS.ARM.2.2 S32K3xx S32K312 Example S32K312 ADC_IP Continuous Scan DMA S32DS36 RTD600    S32K344 Example S32K344 PIT BTCU ADC DMA DS3.4 RTD100   Example S32K344 FlexCAN_Ip TX/RX/EnhanceRXFIFO test S32DS3.4 RTD200     Example Siul2_Port_Ip_Example_S32K344_ITCM_DTCM S32DS3.4 RTD300   Example S32K344 LPUART RX/TX ISR FreeRTOS S32DS36 RTD600    Example_S32K344_MCAL_MCU_ClockMonitor_v1_0_S32DS36_RTD600    Example_S32K314_DTCM1_Backdoor_RTD201_DS34_v3    Example_Reg_Prot_Flash_Controller_S32K344   Example S32K344 PIT SWtrig ADC ANAMUX S32DS 3.6.0 RTD 6.0.0   Example S32K344 EMAC lwIP FreeRTOS miniEVB S32DS 3.6.1 RTD 6.0.0   Example S32K344 EMAC lwIP FreeRTOS MRCANHUB S32DS 3.6.1 RTD600   Example_S32K344_BIST_eMCEM_SPD106_v2_0_S32DS365_RTD700  Example S32K344EVB_T172 UART_ETH_Gateway HLD S32DS368 RTD701   Example_S32K344_CMU_FM_POR_WDG_v1_0_S32DS369_RTD701    Example_S32K344_FLS_Integrity_Margin_Check_v1_0_S32DS36_RTD701    S32K358   S32K358 Multicore Start CM7_2 from CM7_0    Example S32K358 FlexCAN TXRX ISR S32DS35 RTD400/500   Example S32K358 GMAC 100M lwIP FreeRTOS S32DS 3.6.1 RTD600   Example S32K358 GMAC 1G lwIP FreeRTOS S32DS 3.6.1 RTD600   Example S32K358 GMAC lwIP FreeRTOS RDBESS S32DS 3.6.1 RTD600   Example_S32K358_XRDC_SEMA42_Multicore_v1_0_S32DS369_RTD701    S32K388 Example S32K388 GMAC0 lwIP FreeRTOS S32DS 3.6.1 RTD600   S32K389 Example S32K389 GMAC0 lwIP FreeRTOS S32DS 3.6.1 RTD 6.0.0   Example S32K389 GMAC1 SABRE lwIP FreeRTOS S32DS 3.6.1 RTD600  
View full article