Multi Source Translation Content

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Source Translation Content

讨论

排序依据:
I2CスイッチングアプリケーションでP3S0200を使用する場合、OEをGNDに接続すると、Sを介してスイッチングを行うことはできません。 P3S0200をI2Cスイッチングアプリケーションで使用する場合、OE端子がGNDに接続されているとスイッチングはできません。スイッチングは、電源を一度オフにしてから再度オンにすることでのみ可能です。 Re: P3S0200做I2C切换应用时,OE接GND,S不能实现切换 以下は概略図です。 微信图片_20260409141630_225_32.png   Re: P3S0200做I2C切换应用时,OE接GND,S不能实现切换 回路図を共有していただけますか? 回复: P3S0200做I2C切换应用时,OE接GND,S不能实现切换 回路図をお送りしました。状況をご確認いただけますでしょうか?よろしくお願いいたします。 回复: P3S0200做I2C切换应用时,OE接GND,S不能实现切换 申し訳ありませんが、フォーラムの更新情報に問題があるようです。あなたの返信の通知が表示されません。 OE/S/A/Anを含む波形をキャプチャして、具体的な問題点を確認していただけますか? 例えば、切り替えるとき
查看全文
CAAM 演出 你好 我有一个项目示例(源于 SDK 25.06.00 CAAM 示例),附在后面,我想测量仅计算 CRC 的 CAAM 性能。事实上,当我运行这个示例时,我立刻感觉它太慢了。为此,我使用了DWT->CYCCNT 寄存器。 我还将其与软件实施进行了比较。 我在 RT1170-EVKB 上运行它,得到的结果是这样的: Screenshot_2026-03-21_18-25-56.png   如果说第一项计算对于 CAAM 这样的加速器来说已经显得太慢(甚至比软件实现还要慢),那么第二项计算就太疯狂了。 有什么问题?也许是 SDK 中的一个错误? 顺祝商祺! 最大值 Re: CAAM performaces 你好@Kan_Li 感谢您的回复。 不幸的是,你的回答恰恰证实了我的担忧:在回复之前,所附项目显然根本没有打开过。 我这样说的原因很简单,也很客观: 该项目已经使用了 CAAM_CRC()。这不是我忽视的理论可能性,也不是我忘记尝试的替代途径。在随附的示例中,它@@ 已经存在了,而这正是我的测量中表现最差的路径。 Screenshot_2026-03-24_09-20-48.png 因此,我想再次澄清,我并没有发布关于如何使用驱动程序的通用问题。我花时间准备并附上了一个源自SDK示例的完整项目,特别是为了让恩智浦的支持人员可以直接构建、运行和验证行为。 我比较了相同 CRC 的计算结果: 软件中 与 CAAM 结果与我报告的问题如出一辙:对于硬件加速器来说,测得的性能出乎意料地差,在其中一个测试案例中,性能比软件实现要差得多。 这就是问题所在。 而不是 "也许可以试试 CAAM_CRC()"。 这已经完成了。 当客户附加一个可随时运行的项目时,通常不会浪费论坛存储空间、网络带宽或任何人的时间。这是因为客户希望支持人员能亲手重现问题,尤其是在项目已经为此最小化的情况下。 也许是我太相信附带的复制项目会在回答之前得到真正的审查。如果是这样,那就是我的责任了。 但如果这就是对附带完整复制器的技术帖子的关注程度,那么坦率地说,许多用户抱怨他们得到的支持质量不高也就不足为奇了。 因此,让我以一种现在不可能被误解的方式来重述这个问题: 所附项目已经使用了 CAAM_CRC()。 我使用 DWT->CYCCNT 测量了周期计数。 我比较了同一目标上的软件 CRC 和 CAAM CRC。 CAAM 的性能比预期的要差,有一次甚至比软件差了一大截。 鉴于这些事实,恩智浦能否采取以下措施之一: 使用所附项目重现结果、 解释管理费用的来源、 说明这是否是 SDK/驱动程序的问题、 或明确说明这些性能指标是预期的。 如果能提供具体的技术分析,我们将非常感激,而不是那些与所附例子本身已经相矛盾的建议。 致以最诚挚的问候, Max Re: CAAM performaces 你好@mastupristi、 SDK 示例使用了单独的 CRC 初始、更新和结束函数。驱动程序确实有一个一次性使用的 CAAM_CRC()函数,可以用来替代它,速度应该会更快。请尝试使用 CAAM_CRC(),并检查是否有任何不同。 祝您愉快, Kan ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"标记正确" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请打开一个新主题并参考已关闭的主题。 ------------------------------------------------------------------------------- Re: CAAM performaces 你好@mastupristi、 对不起,是我不好!我正在查看您与我们分享的另一个 CRCendianess 项目。你们的项目在我的项目视图中靠得太近了,而且它们的 main() 几乎是一样的,......。很抱歉我忽略了这一点!   我刚刚使用不同的 CRC 输入数据长度对您的项目进行了测试,当要 CRC 的数据足够长时,例如您在测试中使用的数据长度的两倍,基于 CRC 初始、更新和结束的硬件计算比软件实现要好,但 CAAM_CRC() 在测试中总是最差的情况。 2026-03-24_19-04-07.png 感谢您的耐心等待! 祝您愉快, Kan ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"标记正确" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请打开一个新主题并参考已关闭的主题。 ------------------------------------------------------------------------------- Re: CAAM performaces 你好@mastupristi、 看来我的主板出了点问题,我刚刚使用另一个 RT1170EVKB 主板得出了以下结果。 2026-03-25_18-57-37.png 你还有其他板可以再试一次吗? 祝您愉快, Kan ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"标记正确" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请打开一个新主题并参考已关闭的主题。 ------------------------------------------------------------------------------- Re: CAAM performaces 你好@Kan_Li 令我担忧的是,在3个板和总共4次测试中,我们看到的行为截然不同,数字也截然不同。 让我们牢记一点:CAAM 是 MCU 的内部外设,它与 MCU 内部的 RAM 相互影响。实际上,板上的哪些外部元器件会以如此显著且不一致的方式影响 CAAM? 在这一阶段,似乎有理由考虑关键问题实际上是否可能在 MCU 方面。 这是我的 EVK 上的照片 rt1176.png 另外,能否请您说明一下,您是在什么确切条件下从 3 次测试中得出这些数字的?特别是 使用了哪个板, 安装了哪个 MCU、 以及在设置或条件方面是否存在其他相关差异。 最重要的是,你如何解释我和你的数字之间的差异? 目前我没有其他板可供进一步测试。 此致问候 最大值   Re: CAAM performaces 你好@mastupristi, 我这边的设备是 MIMXRT1176DVMAA/0P94B/CTAS2152A,和你的设备一样,在我的测试中,为了避免任何程序在调试你的代码之前在闪存启动,我将启动模式设置为串行下载模式并在SRAM中运行你的代码。你也这样做了吗?有可能从你这边跨板分享你的结果吗? 顺祝商祺! 坎 Re: CAAM performaces 你好@Kan_Li 我尝试了 "将应用程序链接到 RAM"(项目附后) Screenshot_2026-04-14_09-28-09.png 通过这种设置,我得到了以下结果: mastupristi_0-1776151857026.png 如您所见,情况有了明显改善,但真正令人惊讶的是,使用 CAAM 进行首次 CRC 计算所需的时间与 SW 版本相同。 使用 CAAM(CAAM_CRC())进行最新的 CRC 计算需要耗费 3.37 亿个周期(以前需要 14.22 亿个周期,因此只减少了 4 倍)。 我设法借到了另一个 EVKB,上面有这个微控制器 mastupristi_2-1776152915756.png 结果如下 mastupristi_1-1776152680926.png 因此,软件实现在这两个板上的行为完全相同。这并不奇怪,事实上,这正是我所期待的。 第一个 CAAM 所需的时间稍长,而第二个 CAAM 所需的时间要短得多(2.52 亿个周期)。 以下是摘要: SW CRC32 iSCSI SW CRC16 CCITT 硬件 (CAAM) CRC32 iSCSI(分别调用 init、update 和 finalize) 硬件 (CAAM) CRC16 CCITT(调用 CAAM_CRC() 这给我提出了很多问题 这种表现上的不一致性,尤其是第 4 号,令人十分担忧。是什么原因造成的? 与软件实现相比,这种加速器似乎根本没有加快速度。真的是这样吗,还是我遗漏了什么? 此致问候 最大值 Re: CAAM performaces 你好@mastupristi、 我仍在对 4 号检测结果进行内部核查,有更多信息时会通知你们。 对于其他测试,您是否按 SW/HW 计算了更多数据? 在核心上运行的 SW 确实能从缓存中获得一些好处,但当你放入更多数据时,你就会发现其中的差别。 顺祝商祺! 坎 Re: CAAM performaces 你好@mastupristi、 内部之后。经过讨论,我们发现问题是由 DCACHE 失效引起的: DCACHE invalidate 函数会降低函数的性能,因为项目使用了写入缓存 ("CACHE_MODE_WRITE_THROUGH=1") 配置,这也启用了宏 ("CAAM_OUT_INVALIDATE") 。这是在 SDK 示例中实现的,以避免数据一致性问题,主要是在中间件中。由于出现 ERR050396(如下),TCM 无法用于写入。 以下是该功能的测量结果: Kan_Li_0-1779782204663.png Kan_Li_1-1779782204669.png Kan_Li_2-1779782204657.png 在本例中,"输出" 位于非缓存区域,因此无需在该特定函数中进行无效处理。 /*!@brief CRC 的输出缓冲区。*/ uint8_t AT_NONCACHEABLE_SECTION(crc_output[4U]); 因此,当 DCACHE 失效被取消时: Kan_Li_3-1779782204733.png 最高优化 -O3 已启用: Kan_Li_4-1779782205151.png 考虑到数据访问的限制以及 CAAM 配置结构的处理,在这种情况下,从 ITCM 执行的优化 SW 实现(数据在 DTCM 中,频率为 @800 MHz)可能比 CAAM 更快。我认为,这取决于有效载荷的大小以及 SW 计算是否经常中断的整体应用概念。 顺祝商祺! 坎
查看全文
i.MX8QX6 – UUUフラッシュがlibusbエラーで停止する(LPDDR4行アドレスの不一致の可能性) こんにちは、 現在、以下の構成で作業を行っています。 SoC: NXP i.MX8QX6(MIMX8QX6AVLFZAC) LPDDR4: Micron MT53E768M32D2ZW-046 (AIT:C) Yoctoリリース: walnascar-6.12.34-2.1.0 Universal Update Utility を使用して imx-boot-imx8qxp-mek-sd.bin-flash_spl イメージをフラッシュしようとしています。 フラッシュ処理中にツールが停止し、最終的にLIBUSB_ERROR_NO_DEVICEを報告して、フラッシュ処理が完了しなくなります。 トラブルシューティングを実施しました 問題を特定するために、以下のことを試みました。 以前のリリースに含まれる古いimx-bootバイナリを使用してテストしました。 LF_v6.6.52-2.2.2_images_IMX8QXPC0MEK LF_v5.15.32-2.0.0_images_IMX8QXPC0MEK UUUツールの最新バージョンを使用しました フラッシュ処理を複数回繰り返した しかし、その行動は変わらない。 疑われる原因 メモリデバイスの仕様を精査した結果、社内調査により、 SoCのDDRコントローラ構成と実際のLPDDR4デバイスとの間でDDRアドレス行構成の不一致が発生している可能性があることが示唆されました。 Micronのデータシートによると、メモリデバイスは行アドレスR[16:0](17行)を使用します。 しかし、SoCのドキュメントによると、DDRコントローラは最大16行のアドレス線(R0~R15)をサポートしているようです。 この違いから、 DDRコントローラ構成とメモリデバイスのアドレス指定方式に不一致がある可能性があると推測されます。 質問 LPDDR4構成における行アドレスの不一致が原因で、起動初期段階でUUUフラッシュ処理がLIBUSB_ERROR_NO_DEVICEエラーで停止する可能性はありますか? これが原因である可能性がある場合、 i.MX8QX6 上のこの LPDDR4 デバイスの DDR パラメータを正しく設定するための推奨される方法は何ですか? 構成はNXPが提供するDDRツール/RPAツールを使用して生成すべきでしょうか、それともこの特定のメモリデバイス用のリファレンス構成は既に用意されているのでしょうか? 何かご助言やご提案があれば、大変ありがたく思います。 よろしくお願いします。 Re: i.MX8QX6 – UUU flashing stalls with libusb error (possible LPDDR4 row address mismatch) こんにちは、 @Yogesh_   私は自分のimx8qxpボードでテストしました。問題は発生していません。私は以下のコマンドを使用してflash.binファイルをフラッシュします。 uuu -b emmc .\imx-boot-imx8qxpc0mek-sd.bin-flash   Snipaste_2026-03-17_10-23-38.png ご質問にお答えします: Q1 & Q2:これはこの問題を引き起こしません Q3:DRAMの適切なパラメータを設定する必要があります。次に、新しいflash.binファイルを再コンパイルします。しかし、おっしゃる通りです。お使いのDRAMの行数は17ですが、imx8qxpがサポートする最大行数は16です。ですから、16行の別のDRAMに交換してください。つまり、最大4GB(32Gb)のLPDDR4密度をサポートするには、構成は16行2ランクでなければならない。 BR Re: i.MX8QX6 – UUU flashing stalls with libusb error (possible LPDDR4 row address mismatch) UUUツールがハングアップ/停止する問題を解決するための代替案をご提案いただけますでしょうか?以前のバージョンと最新バージョンのUUUツール両方を試してみましたが、依然として同じエラーが発生します。 Re: i.MX8QX6 – UUU flashing stalls with libusb error (possible LPDDR4 row address mismatch) ご返信ありがとうございます。 Yoctoで生成されたimx-boot-imx8qxp-mek-sd.bin-flash_splとflash.binイメージの両方のログを添付しました。flash.binはRPAツールを使用して設定され、SCFWポーティングキットでビルドされ、正常に起動しています。 Re: i.MX8QX6 – UUU flashing stalls with libusb error (possible LPDDR4 row address mismatch) こんにちは、 @Yogesh_ 以下のコマンドを実行した結果はどうなりますか? uuu -lsusb BR Re: i.MX8QX6 – UUU flashing stalls with libusb error (possible LPDDR4 row address mismatch) こんにちは、 @Yogesh_ 以下のコマンドは使用しないでください sudo uuu -v -b emmc_all imx-boot-imx8qxp-mek-sd.bin-flash_spl 以下のコードを使用してください。 uuu -b emmc imx-boot-imx8qxp-mek-sd.bin-flash_spl 1. Windows OS上でuuuツールを実行してみてください。 2. 下記のコマンドの結果を共有してください。 uuu -lsusb BR
查看全文
i.MX93 - 1PPS入力とPTP 目標: GPS レシーバからの Pulse-Per-Second (PPS) 信号と GPRMC ログを使用して、ENET_QoS イーサネット コントローラ内で PTP 時間の同期を検証する ハードウェア: i.MX 93 ビルドルート: 2025.11.1 Linux: 6.12.16 Linuxptp : 4.4 デバイスツリーオーバーレイの変更: eqos のステータスを「無効」から「正常」に変更します usdhc2 pinctrl-* エントリから pinctrl_usdhc2_gpio および pinctrl_usdhc2_gpio_sleep エントリを削除します。 pinctrl_eqos と pinctrl_eqos_sleep に「MX93_PAD_SD2_CD_B__ENET_QOS_1588_EVENT0_IN 0x31E」エントリを追加します。 usdhc2 cd-gpiosエントリを削除し、broken-cdに置き換えます pinctrl_usdhc2_gpio ノードと pinctrl_usdhc2_gpio_sleep ノードを削除します。  ターゲット上のソフトウェアの場所: eMMCからの起動 LinuxカーネルとptpアプリをubootingしてSDカードから実行する  Linux PTPソフトウェアを実行中: ptp4l -E4H -i eth1 ts2phc -c /dev/ptp1 -s nmea --ts2phc.nmea_remote_host10.128.240.54 --ts2phc.nmea_remote_port3001 --ts2phc.ピンインデックス0 -l 7 -m PPS入力: 現在、GPS レシーバからの PPS 信号を受け入れるように FRDM i.MX 93 ボードに変更を加える前に、あらゆるイベントのタイムスタンプを検証しようとしています。これらのイベントを生成するために、SD カード ソケットの機械式スイッチの脚の間に絶縁体を挿入しています。SD2_nCD に接続された IO ピンを GPIO 入力として手動で設定し、このアクションによってピンの入力電圧が変化することを確認しました。ハードウェアによるイベント情報のタイムスタンプは、特定の周期性に依存すべきではないと私は想定しています。 テスト結果: ts2phcはGPRMCログを受信していますが、ログにはポーリングで常にゼロイベント情報が返されることが示されています。 devmem プログラムを使用したスクリプト経由でレジスタを調べると、次のようになります。 SW_MUX_CTL_PAD_SD2_CD_B 0x00000001 SW_PAD_CTL_PAD_SD2_CD_B 0x0000031E MAC_SYSTEM_TIME_SECONDS 0x69AB35B0 MAC_SYSTEM_TIME_NANOSECONDS 0x10642013 MAC_TIMESTAMP_STATUS 0x00000000 MAC_補助制御 0x00000010 MAC_AUXILIARY_TIMESTAMP_NANOSECONDS 0x00000000 MAC_AUXILIARY_TIMESTAMP_SECONDS 0x00000000 システム時間レジスタが適切に時間をカウントしていることがわかります 補助タイムスタンプ レジスタにはゼロ以外の値が表示されることはありません。リファレンス マニュアルでは、FIFO が空のときには常にゼロが読み取られるのか、それとも最新のタイムスタンプが返されるのかは明確ではありません。 SW_MUX_CTL_PAD_SD2_CD_B レジスタの SION ビットを 0 と 1 の両方に設定してこれを試しましたが、結果に違いはありませんでした。 pin_index マッピングが予想どおりでなかった場合に備えて、MAC_AUXILIARY_CONTROL レジスタの 4 つの ATSEN ビットをすべて設定してみましたが、結果に違いはありませんでした。 i.MX 93 アプリケーションプロセッサリファレンスマニュアル、Rev. 6、2025-07-01 を読んだときに生じた追加の質問: 第 43 章 TSN 対応イーサネット コントローラ (ENET_QoS)、セクション 43.5、表 417 には、2 つの異なるイベント入力 1588_EVENT_AUX_IN と 1588_EVENT_IN がリストされています。これら 2 つの信号はどの外部ピンまたは内部デバイス ポートに接続されますか?1588_EVENT_IN ポートは ENET_QoS 内で何に接続しますか?1588_EVENT_AUX_INはptp_aux_trig_i[0]に接続され、ATSEN0ビットによって制御されていると推測します。(これはカーネルと ts2phc が期待していることでもあるようです。)それは正しいですか? 第43章、セクション43.5、表417には、1つのイベント出力1588_EVENT_OUTがリストされています。この信号はどの外部ピンまたは内部デバイス ポートに接続されますか?1588_EVENT_OUT ポートは ENET_QoS 内で何に接続しますか?PPS 出力の 1 つに関連付けられていますか? 第 43 章では、タイムスタンプをトリガーするために ptp_aux_trig_i 入力のどのエッジ (立ち上がり/立ち下がり/両方) が使用されるかが指定されていないようです。 Re: i.MX93 - 1PPS input and PTP こんにちは、 NXP Semiconductors製品にご興味をお持ちいただきありがとうございます。 AUX_IN 信号は、現在の時刻 (この時刻は、どのアプリケーションでもタイムスタンプ値として使用されます) をタイムスタンプ FIFO にラッチすることをトリガーするために使用されます (以前のトリガー イベントから複数のタイムスタンプ値がある場合があります)。 EVENT_IN はメディア クロック生成および回復ブロックへの入力であり、次のトリガーに使用されます。 アプリケーションから読み取られたターゲットプレゼンテーション時間のキャプチャは、リカバリモードが有効になっている場合は MAC_PPSn_Target_Time_Seconds に結果を生成します。 生成モードが有効になっている場合、サンプリングされたトリガーで現在のプレゼンテーション時間をキャプチャします。 1588_EVENT_OUT は、プロセッサによって PPS 出力を駆動するために使用されます。 よろしくお願いします。 Re: i.MX93 - 1PPS input and PTP AUX_IN という用語を使用する場合、それは表 417 の 1588_EVENT_AUX_IN という用語と同じですか? もしそうなら、どの特定の ATSEN* ビットにマップされますか? AUX_IN (1588_EVENT_AUX_IN) は、SW_MUX_CTL_PAD_SD2_CD_B の ENET_QOS_1588_EVENT0_IN モードに接続しますか? Re: i.MX93 - 1PPS input and PTP こんにちは@Kevin_M はい、1588_EVENTx_AUX_IN です。次のフィールドを確認してください。これが AUX の使用法です。 PTGE プレゼンテーション時間生成の有効化 このビットが設定されると、プレゼンテーション時間生成が有効になります。 0 - プレゼンテーション時間生成が無効 1 - プレゼンテーション時間生成が有効 ... MAC_PPS0_ターゲット時間秒 PPS ターゲット時間秒レジスタ このフィールドには、時間を秒単位で格納します。 PPSターゲットタイム秒レジスタ このフィールドには時間が秒単位で保存されます。タイムスタンプ値が両方のターゲット タイムスタンプ レジスタと一致するかそれを超えると、MAC は PPS 信号出力を開始または停止し、MAC_PPS_CONTROL レジスタの対応する PPS 出力に対して選択されたターゲット タイム モードに基づいて割り込み (有効な場合) を生成します。 ... 43.7.9.1 メディアクロック生成のプログラミングガイドライン 1. PPSインスタンスをメディアクロック生成モードに設定するには、適切なプレゼンテーションタイムコントロール(サポートされている生成モード「1001-1011」)をMAC_PPS_CONTROLレジスタのPPSCMD(0番目のインスタンスの場合)/PPSCMD#i(1、2、3番目のインスタンスの場合)にプログラムします。 2. 選択されたPPSインスタンスに基づいて、アプリケーションは対応するmcg_pst_trig_i[#i]に適切なトリガー信号を駆動する必要があります。 ... 43.7.9.2 メディアクロックリカバリのプログラミングガイドライン 1. MAC_TIMESTAMP_CONTROL レジスタの PTGE フィールドを設定して、現在のプレゼンテーション時間 (CPT) カウンタを有効にします。システム時間の初期化値をプログラムすることに加えて、同等のプレゼンテーション時間の初期値で MAC_PRESN_TIME_UPDT レジスタを更新します。その後、MAC_TIMESTAMP_CONTROL レジスタの TSINIT フィールドが設定されます。 2. システム時間に使用される増分値は、現在のプレゼンテーション時間にも使用されます。これは、増分値がサブ秒およびサブナノ秒単位であるためです。 1.各ATSENはそれぞれのEVENTにマッピングされます 2. 正解です。ここでAUX_INを確認できます。https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h#L54 よろしくお願いいたします。 Re: i.MX93 - 1PPS input and PTP @JosephAtNXP私は PPS 出力を設定しようとしているわけではなく、IEEE 1722 と関係のあることもしようとしているわけではありません。ENET_QOS_1588_EVENT0_IN の状態が変化した瞬間にタイムスタンプを付けようとしています。 Re: i.MX93 - 1PPS input and PTP @JosephAtNXP さん、ENET_QoSで1588 PPSの入力がうまく機能しない理由について、まだ調査中でしょうか? Re: i.MX93 - 1PPS input and PTP @Kevin_Mこの問題の解決に何か進展はありましたか?私も同じ問題に直面しています。ENETインスタンスではPTPをPPS入力と同期させることはできますが、リファレンスマニュアルやドライバでEVENT0_INピンをENET_QOSで使用する方法が見つかりません。 Re: i.MX93 - 1PPS input and PTP ケビンさん、ありがとうございます。確かにそれが唯一の方法のようですが、stmmacドライバではまだ対応していないようなので、追加する必要がありますね。 Re: i.MX93 - 1PPS input and PTP NXPは、ENET_QoSのAUX TIMESTAMP機能がi.MX93チップの内部または外部のいずれにも接続されていないことを確認しました。 私は、1588_EVENT0_IN モードで SD2_CMD を介して PPS をルーティングし、MAC_PPS_CONTROL をプレゼンテーション時間制御オプション 0001 を使用するように設定して、PPS 信号の立ち上がりエッジでプレゼンテーション時間をキャプチャし、MAC_PPS0_TARGET_TIME_SECONDS でキャプチャされた時間を読み取ることに成功しました。まだ解決すべき細かい点はたくさんありますが、これは有望な解決策のように思えます。
查看全文
带有 C++ S32DS 项目的 SDK <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好, 如何使用 S32 SDK 创建 C++ S32DS 项目? (我正在尝试使用 S32K144 EVB)。 谢谢! 尼科拉 S32K1系列的S32SDK Re: SDK with C++ S32DS project 对不起,对于新项目,我仍在使用曾经创建过的项目副本,所以我不记得具体步骤了,但我检查了原始 C (SDK) 链接器文件和 C++(非 SDK)链接器文件的差异,并将 C++ 链接器文件中的部分添加到 C 项目(现已转换为 C++ 项目)的旧文件中。我已经有了一些经验,所以这对我来说并不难。 或许也可以使用 C++ L.F.,只需从 SDK 项目中添加正确的内存部分即可。 也许彼得提供的链接会对你有所帮助。我认为您只需调整 S32K358 链接器文件中的内存大小/位置即可。 Re: SDK with C++ S32DS project 请参阅本帖: https://community.nxp.com/t5/S32K/S32K358-C-project-based-on-S32DS3-5/m-p/2058809#M46635 Re: SDK with C++ S32DS project 看来到了 2026 年,这个问题依然存在,我们依然需要这种解决方法。 下一步 - 创建不含 SDK 的 C++ 项目,并将其链接器文件复制到含 SDK 的项目中。 您能具体介绍一下您是如何一步步完成的吗?例如,您是否删除了带有 SDK 的项目(基于 C 的恩智浦 S32DS 项目)中的旧链接器文件,然后用 C++ 项目中的链接器文件替换了它们? Re: SDK with C++ S32DS project 请参阅本帖: 关于基于 S32DS3.5 的 S32K358 C++ 项目 - NXP Community Re: SDK with C++ S32DS project 大家好 你们能详细介绍一下诺瓦利斯给出的提示吗?我尝试用 SDK 创建 C 项目并将其转换为 C++,但没有成功。 谢谢! Re: SDK with C++ S32DS project <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好, ,我可能找到了方法,这样就不必在构造函数中使用 new() 了 只需在 main.c 中添加 __libc_init_array(); 调用即可。 void __libc_init_array(void); void main(void) { __libc_init_array(); main_app(); // 如上所述 } 现在 cObject 对象(构造参数); 似乎运行正常。 Re: SDK with C++ S32DS project <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,特拉维斯、 请参阅 Martin 的说明来构建与您的 C 代码兼容的 C++ 应用程序项目。它对我很有效,但有两个小缺点: (1) 您必须将生成的代码保存在另一个 C 应用程序项目中,然后复制粘贴到您的 C++ 项目中。 (2) 为 C++ 项目设置包含路径在开始时可能会很麻烦。也许有更简单的方法。 干杯, 梓潼 Re: SDK with C++ S32DS project <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,马丁、 感谢您的答复!我用 S32 SDK 在 C 语言中创建一个 C++ 项目的路径也差不多。 我关注这篇文章来封装 C++ 对象以便它们可以在 C 代码中使用:教程:如何将 C++ 库/类集成到 C 程序中-Teddy Engineering GmbH 我还读到,如果使用 freeRTOS,建议使用 ``pvPortMalloc()`` 和 ``pvPortFree()`` 来覆盖 ``new`` 和 ``delete```:无法正确创建新对象 - FreeRTOS 干杯, 梓潼 Re: SDK with C++ S32DS project <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我对此也非常好奇。在某些应用程序中,使用面向对象的基本原理更容易编写和维护更简洁、无错误的代码,而使用 C++ 则要容易得多。如果能更直接地提供这种支持,而不需要所有的步骤,生活就会轻松很多。 我更愿意使用恩智浦工具,但我觉得这限制了我。 Re: SDK with C++ S32DS project <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我的做法是,使用 SDK 创建普通 C 项目,然后将文件/新建/转换为 C/C++ 项目 然后你必须进入项目属性、C/C++ 版本/设置/标准 S32DS C 编译器/包含,然后复制必要的行并将其粘贴到 C++ 编译器/包含中 下一步 - 创建不含 SDK 的 C++ 项目,并将其链接器文件复制到含 SDK 的项目中。 然后,我创建了 main_app.cpp,将函数 main_app() 定义为 extern"c" ,并从 main.c 中的 main() 函数调用 main_app(),然后我就可以从 main_app()调用 C++ 类了。 现在我可以编译它,应用程序似乎也可以工作,我还可以使用处理器专家等...... 我发现的唯一问题是,像这样使用构造函数: cObject object(constructor params); 并不能像预期的那样 我必须使用 cObject *object = new cObject(constructor params); Re: SDK with C++ S32DS project <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,吉日、 请允许我提出一个后续问题:如果我真的需要在 S32K 项目中使用一些 C++ 代码,您有什么建议?到目前为止,我想到了以下几种可行的方法: 1.使用 S32K DS 以外的其他编译器。 2。将 C++ 代码构建到与 C 兼容的静态库(包含封装器等)中,然后将其添加到 S32K DS 中的 C 项目中。 非常感谢、 梓潼 Re: SDK with C++ S32DS project <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,尼古拉 遗憾的是,S32DS 不支持在 S32K SDK 中使用 C++。 Jiri 
查看全文
在 FRDM-MCXW71 EVK 上运行 BLE 示例时出现断言错误 你好,团队、 我目前正在使用 FRDM-MCXW71 EVK,用 Visual Studio Code 编写一个 BLE 应用程序。 由 mcxw71evk_cmsis_button_toggle_led 的示例成功版本、闪烁和运行。 但是,当我编译并刷新 mcxw71evk_adv_ext_peripheral_freertos 示例时,编译和调试过程成功完成,但是当我运行应用程序时,会出现断言错误。 能否请您帮我了解一下是什么原因导致了这个问题?如果 BLE 示例需要任何其他配置,请告诉我。 感谢您的支持。 致以最崇高的敬意, Ramdev #MCXW71 #BLE 模拟(ADC|CMP|DAC|OPAMPS) 开发板 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 你好,克莉丝汀、 感谢您的反馈, 我使用的是 MCUXpresso SDK 版本 25.12.0。该项目成功构建,调试会话启动时没有任何问题。但是,一旦调试完成,我点击运行选项,应用程序就会立即出现断言错误。 我附上了终端日志供你参考。 能否请您查看一下日志,并就该问题的可能原因提供建议? 感谢您的支持。 致以最崇高的敬意, Ramdev Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 嗨,@Ramdev 感谢您为我们创建案例。 请告诉我您的 SDK 版本和重现该问题的详细步骤。 如果可能,也请帮助提供相关截图和日志。 我倾向于在本地检查是否能重现这个问题。 顺祝商祺! Christine。 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 您好,恩智浦团队, 我想跟进我之前的询问。请您在方便时提供最新信息。 如果需要我提供任何补充信息,请告诉我。 谨致 Ramdev Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 您好,恩智浦团队, 。请您在方便时提供最新信息。 如果需要我提供任何补充信息,请告诉我。 谨致 Ramdev Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 你好,@Ramdev 请尝试以下方法: 1. 修改 frdm_mcxw71\ mcuxsdk\ 中间件\ 无线\ 蓝牙\ boards\ frdmcxw71\ 蓝牙\ adv_ext_preinclude.h #define gAppLowpowerEnabled_d 1 //从 0 到 1   2.使用 blhost 加载位于以下目录中的 NBU FW: mcuxsdk\ 中间件\ 无线\ ble_controller\ bin\ mcxw71_nbu_ble_hosted.sb3   如果您不知道如何使用 blhost 闪存 NBU FW bin,请参考以下链接: https://community.nxp.com/t5/MCX-W71-Training-Secure-MCUs-for/FRDM-MXCW71-Hands-On-2-Recognize-NBU-Incompatible-Versions/ta-p/1970129   我已经在本地进行了验证,现在可以正常工作了:   扩展广告应用程序 - 外围设备 按 WAKESW 查看菜单 扩展广告应用程序 - 外围设备 按 WAKESW 查看菜单 扩展广告应用程序 - 外围设备 按 WAKESW 查看菜单 扩展广告应用程序 - 外围设备 按 WAKESW 查看菜单 扩展广告应用程序 - 外围设备 2 ss WAKESW 查看菜单 扩展可扫描广告 从手柄 0 开始   请告诉我您的结果,如果对您有效,请帮助将我的答案标记为该问题的解决方案。这样我们就可以结案了。 谢谢您!   顺祝商祺! Christine。 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 嗨,@Ramdev 对不起,我被另一项更优先的任务挡住了。 我会尽量在今天检查这个问题,并及时分享我的更新。 顺祝商祺! Christine。 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 嗨,Christine, 感谢您提供的最新信息。期待您的回复。 谨致 Ramdev Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 你好,克里斯蒂安,我这边的 CMSIS GPIO 示例也能正常运行,问题是当我运行"mcxw71evk_adv_ext_peripheral_freertos" 这样的示例时,会出现断言错误,你能验证一下吗? Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 你好 Christine, 在 launch.jason 中我更新了 .elf文件,除此之外我没有做任何更改。 我也做了同样的事,但效果很好。 谨致 Ramdev Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 你好,@Ramdev 感谢您的耐心等待。 我在本地进行了尝试,但没有遇到您的错误。 我可以成功版本、调试和运行它。 请参阅下面的测试结果输出: ---- 打开串行端口 COM4 ---- CMSIS GPIO 示例! 使用按钮切换 LED! CMSIS GPIO 示例! 使用按钮切换 LED! CMSIS GPIO 示例! 使用按钮切换 LED! CMSIS GPIO 示例! 使用按钮切换 LED! CMSIS GPIO 示例! 使用按钮切换 LED! 按下按钮! 按下按钮! 按下按钮! 按下按钮! 按下按钮! 按下按钮! 按下按钮! 按下按钮! 你修改了什么地方吗? 我正在使用 SDK25.12.00,并使用这个工具链来构建: .mcuxpressotools/arm-gnu-toolchain-14.2.rel1-mingw-w64-x86_64-arm-none-eabi/bin/arm-none-bin/arm-none-eabi-none-none-eabi-none-     请检查您的工具链。   如果你修改了任何地方,请告诉我。   下面的附件是我的控制台日志,似乎与你的类似。   但在你的控制台日志中,我看到 : [21923] 信息:Launcher.core.短截线:[短截线 (2336)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中的导线 ACK 故障   能否请您用其他例子试一试?像 hello_world 一样?       顺祝商祺! Christine。 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 你好,@Ramdev 你修改过什么吗?还是只使用我们的默认示例? 当然,我也可以在我这边试试这个例子:adv_ext_peripher_freertos 。 稍后,我将与大家分享我的成果。 顺祝商祺! Christine。 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK Hi Christine , 感谢您提供的最新信息。 没问题,我理解。 谨致 Ramdev Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 嗨,@Ramdev 感谢您的回复。 我尝试了这个 BLE 示例:frdmmcxw71_adv_ext_peripheral_freertos,也遇到了和您一样的问题。 以下是错误信息: [11834] 调试:Launcher.core.短截线:短截线 (13333)-> GDB (2340):b '+' [35169] info: Launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中出现电线 ACK 故障 [35214] info: Launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中出现电线 ACK 故障 [35259] info: Launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中出现电线 ACK 故障 [35286] info: Launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中出现电线 ACK 故障 [35333] info: Launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中出现电线 ACK 故障 [35368] INFO:launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中出现电线 ACK 故障 [35401] info: launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中出现电线 ACK 故障 [35435] info: Launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中出现电线 ACK 故障 [35520] info: Launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中的导线 ACK 故障 让我检查一下,尽快反馈给您。 顺祝商祺! Christine。 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 嗨克里斯汀, 很抱歉回复晚了。我遇到了另一个调试会话无法启动的问题。 在 VS Code 版 McuXpresso 中,出现以下错误: 无法启动:远程连接已关闭 (从目标选择扩展远程 172.0.0. 1:2356) 我还尝试过使用 LinkFlash (v25.12.83) 对主板进行编程,但它显示以下错误:无法连接到核心 Et: 31: 无法连接到芯 片的调试端 口 Pc: (100) 目标操作失败 在硬件方面,USB_ACT 绿色 LED 亮起,ISP_EN_MLINK 红色 LED 闪烁,USB LED 也亮起。 之前板运行良好,但现在我无法在 FRDM-MCXW71 板上调试或刷新任何示例。 由于这个问题,我无法检查您之前提到的断言错误解决方案。您能建议如何解决这个问题吗? 致敬、 拉姆德夫 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 嗨,Christine, 感谢您提供的最新信息。我已为此问题创建了一个支持链接 链接:https://community.nxp.com/t5/Wireless-MCU/FRDM-MCXW71-debug-issue/m-p/2327185#M20304 周一有空时,能否请您看一看? 谨致 Ramdev Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 你好,@Ramdev 对于新问题,能否请您帮助创建一个新的主题? 为避免混淆,我们通常建议客户用一个案例跟踪一个问题。 下周一我会拿给你检查,现在我正在处理另一个问题。 感谢您的企业。 顺祝商祺! Christine。 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 你好,@Ramdev 它对你有用吗? 如果在您那边可行,能否请您帮忙将我的答案标记为此例的解决方案? 这样我们就能及时结案。 如果您有任何其他问题,请随时向我们提交新案例。 顺祝商祺! Christine。 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 嗨,@Ramdev 感谢您创建新主题。 我看到我们的同事已经在新的主题上支持你了。 新问题解决后,请继续测试该问题,并告诉我是否还需要我们的帮助。 顺祝商祺! Christine。
查看全文
How to do DPP test with two 88W8997 and one IW612 What's DPP? DPP:Device Provisioning Protocol It is also called: Wi-Fi Easy Connect. The DUT is a device that needs to join the network. It actively initiates DPP authentication (Initiator + Enrollee), which is configured by CTT1, and finally joins the Wi-Fi network provided by CTT2 (Responder + AP) as a STA. DPP Role introduction: CTT1 (Configurator) Reads DUT's bootstrap key Coordinates DPP Authentication/Configuration Sends Wi‑Fi credentials to the DUT DUT (Initiator + Enrollee + STA) Is the device being provisioned Initiates DPP Authentication toward CTT2 Receives Wi‑Fi credentials from CTT1 Connects as a STA to the AP on CTT2 CTT2 (Responder + AP + Enrollee) Responds to DUT’s DPP Authentication messages Operates as an AP using hostapd The DUT will join this AP after provisioning Below is the process flow: 1.Add a Configurator and generate QR code on CTT1 (configurator). 2.Authenticate the DUT on DUT(STA) 3.Generate the QR Code and get URI on CTT2 4.Enter the QR Code on CTT1 and authenticate 5.Update AP configuration on CTT2 6.The connection between the DUT (STA) and CTT2 (AP) is successful. DPP flow.png   Reference: https://docs.nxp.com/bundle/RM00297/page/connectivity-features/topics/wi-fi_easy_connect_dpp.html Wi-Fi Easy Connect Specification   The red fonts in the pdf are commands. The green fonts in the pdf are comments. CTT1:Configurator Typically, it's a mobile phone or PC used to scan QR codes and issue Wi-Fi credentials. IMX93-EVK+IW612 module imx93evk login: root root@imx93evk:~# uname -a Linux imx93evk 6.12.34-lts-next-gbe78e49cb433 #1 SMP PREEMPT Wed Sep  3 05:59:19 UTC 2025 aarch64 GNU/Linux root@imx93evk:~# cat /lib/firmware/nxp/wifi_mod_para.conf SDIW612 = { cfg80211_wext=0xf max_vir_bss=1 cal_data_cfg=none ps_mode=2 auto_ds=2 host_mlme=1 drv_mode=0x17 fw_name=nxp/sduart_nw61x_v1.bin.se } root@imx93evk:~# vi wpa_supplicant.conf root@imx93evk:~# cat wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 update_config=1 dpp_config_processing=2 modprobe moal mod_para=nxp/wifi_mod_para.conf root@imx93evk:~# wpa_supplicant -i mlan0 -D nl80211 -c wpa_supplicant.conf -B & [1] 678 root@imx93evk:~# Successfully initialized wpa_supplicant rfkill: Cannot open RFKILL control device [1]+  Done                    wpa_supplicant -i mlan0 -D nl80211 -c wpa_supplicant.conf -B root@imx93evk:~# root@imx93evk:~# root@imx93evk:~# wpa_cli wpa_cli v2.11-M005 Copyright (c) 2004-2024, Jouni Malinen and contributors This software may be distributed under the terms of the BSD license. See README for more details. Selected interface 'mlan0' Interactive mode > DPP_CONFIGURATOR_ADD 1 > SET dpp_configurator_params " conf=sta-dpp configurator=1" OK > DPP_BOOTSTRAP_GEN type=qrcode chan=81/1 mac=fc:84:a7:51:87:fc //MAC address of CTT1 itself. 1 > DPP_BOOTSTRAP_GET_URI 1  //Attention here, after this command, will generate a QR code, which will be use on DUT with command:DPP_QR_CODE DPP:C:81/1;M:fc84a75187fc;V:2;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgAD/bYibd4JdGvnK1etdgX/z4P+aJE2ztv89Q8xwjmbZNc=;; > DPP_LISTEN 2412 role=configurator OK //Hold on here, and now go to DUT side to authenticate the DUT with above QR Code. After authenticate on DUT, will auto output below logs. <3>DPP-RX src=20:4e:f6:bb:08:d9 freq=2412 type=0 <3>DPP-TX dst=20:4e:f6:bb:08:d9 freq=2412 type=1 <3>DPP-TX-STATUS dst=20:4e:f6:bb:08:d9 freq=2412 result=SUCCESS <3>DPP-RX src=20:4e:f6:bb:08:d9 freq=2412 type=2 <3>DPP-AUTH-SUCCESS init=0 pkhash=74a40ec058ac8c7f7acb6589253e76f5d1a9582359353bcd5e6983ee97c3a382 own=1 peer=-1 <3>DPP-CONF-REQ-RX src=20:4e:f6:bb:08:d9 <3>DPP-BAND-SUPPORT 81,82,83,84,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130 <3>DPP-RX src=20:4e:f6:bb:08:d9 freq=2412 type=11 <3>DPP-CONF-SENT conf_status=0 //Now continue, after you generate the QR Code and get URI on CTT2. Enter the QR Code on CTT1 and authenticate: > DPP_QR_CODE DPP:C:81/1;M:02e93a0db8cd;V:2;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgACQOp5kWO1ex4L2U5rRXdS9yPYWA9NdRXTsuT+v5L/jvc=;; 2 //On successfully adding QR Code, a bootstrapping info id is returned as shown 2 in above command and should input in below command DPP_AUTH_INIT > DPP_AUTH_INIT peer=2 conf=ap-dpp configurator=1 OK //Now go to CTT2 to update AP configurations. <3>DPP-TX dst=02:e9:3a:0d:b8:cd freq=2412 type=0 <3>DPP-TX-STATUS dst=02:e9:3a:0d:b8:cd freq=2412 result=SUCCESS <3>DPP-RX src=02:e9:3a:0d:b8:cd freq=2412 type=1 <3>DPP-AUTH-DIRECTION mutual=0 <3>DPP-TX dst=02:e9:3a:0d:b8:cd freq=2412 type=2 <3>DPP-TX-STATUS dst=02:e9:3a:0d:b8:cd freq=2412 result=SUCCESS <3>DPP-AUTH-SUCCESS init=1 pkhash=22233c6d83a272944eeb9788870b0b564b46ba8d48fd80787f5cc22bcec95c87 own=-1 peer=2 <3>DPP-CONF-REQ-RX src=02:e9:3a:0d:b8:cd <3>DPP-RX src=02:e9:3a:0d:b8:cd freq=2412 type=11 <3>DPP-CONF-SENT conf_status=0 > list_networks network id / ssid / bssid / flags > quit root@imx93evk:~# cat /proc/mwlan/adapter0/mlan0/info driver_name = "wlan" driver_version = SDIW612---18.99.3.p26.7-MM6X18540.p7-(FP92) interface_name="mlan0" firmware_major_version=18.99.3 uuid = 1653948cf99e5b2bbe5ad9b851d6151a bss_mode ="Managed" media_state="Disconnected" mac_address="fc:84:a7:51:87:fc" multicast_count="2" essid="" bssid="00:00:00:00:00:00" channel="0" region_code = "00" multicast_address[0]="33:33:00:00:00:01" multicast_address[1]="01:00:5e:00:00:01" num_tx_bytes = 0 num_rx_bytes = 0 num_tx_pkts = 0 num_rx_pkts = 0 num_tx_pkts_dropped = 0 num_rx_pkts_dropped = 0 num_tx_pkts_err = 0 num_rx_pkts_err = 0 carrier off tx queue 0:  stopped tx queue 1:  stopped tx queue 2:  stopped tx queue 3:  stopped === tp_acnt.on:0 drop_point:0 === ====Tx accounting==== [0] Tx packets     : 0 [0] Tx packets last: 0 [0] Tx packets rate: 0 [0] Tx bytes       : 0 [0] Tx bytes last  : 0 [0] Tx bytes rate  : 0Mbps [1] Tx packets     : 0 [1] Tx packets last: 0 [1] Tx packets rate: 0 [1] Tx bytes       : 0 [1] Tx bytes last  : 0 [1] Tx bytes rate  : 0Mbps [2] Tx packets     : 0 [2] Tx packets last: 0 [2] Tx packets rate: 0 [2] Tx bytes       : 0 [2] Tx bytes last  : 0 [2] Tx bytes rate  : 0Mbps [3] Tx packets     : 0 [3] Tx packets last: 0 [3] Tx packets rate: 0 [3] Tx bytes       : 0 [3] Tx bytes last  : 0 [3] Tx bytes rate  : 0Mbps [4] Tx packets     : 0 [4] Tx packets last: 0 [4] Tx packets rate: 0 [4] Tx bytes       : 0 [4] Tx bytes last  : 0 [4] Tx bytes rate  : 0Mbps Tx amsdu cnt            : 0 Tx amsdu cnt last       : 0 Tx amsdu cnt rate       : 0 Tx amsdu pkt cnt        : 0 Tx amsdu pkt cnt last : 0 Tx amsdu pkt cnt rate : 0 Tx intr cnt             : 1 Tx intr last        : 0 Tx intr rate        : 0 Tx pending          : 0 Tx xmit skb realloc : 0 Tx stop queue cnt : 0 ====Rx accounting==== [0] Rx packets     : 0 [0] Rx packets last: 0 [0] Rx packets rate: 0 [0] Rx bytes       : 0 [0] Rx bytes last  : 0 [0] Rx bytes rate  : 0Mbps [1] Rx packets     : 0 [1] Rx packets last: 0 [1] Rx packets rate: 0 [1] Rx bytes       : 0 [1] Rx bytes last  : 0 [1] Rx bytes rate  : 0Mbps [2] Rx packets     : 0 [2] Rx packets last: 0 [2] Rx packets rate: 0 [2] Rx bytes       : 0 [2] Rx bytes last  : 0 [2] Rx bytes rate  : 0Mbps [3] Rx packets     : 0 [3] Rx packets last: 0 [3] Rx packets rate: 0 [3] Rx bytes       : 0 [3] Rx bytes last  : 0 [3] Rx bytes rate  : 0Mbps [4] Rx packets     : 0 [4] Rx packets last: 0 [4] Rx packets rate: 0 [4] Rx bytes       : 0 [4] Rx bytes last  : 0 [4] Rx bytes rate  : 0Mbps Rx amsdu cnt             : 0 Rx amsdu cnt last        : 0 Rx amsdu cnt rate        : 0 Rx amsdu pkt cnt         : 0 Rx amsdu pkt cnt last : 0 Rx amsdu pkt cnt rate : 0 Rx intr cnt      : 7 Rx intr last        : 0 Rx intr rate        : 0 Rx pending          : 0 Rx pause            : 0 Rx rdptr full cnt   : 0 root@imx93evk:~# DUT:Initiator + Enrollee + STA The device you want it to join the network. IMX8MQ-EVK+88W8997 module root@imx8mqevk:~# uname -a Linux imx8mqevk 6.12.49-lts-next-gdf24f9428e38 #1 SMP PREEMPT Fri Nov 21 03:24:46 UTC 2025 aarch64 GNU/Linux root@imx8mqevk:~# cat /lib/firmware/nxp/wifi_mod_para.conf PCIE8997 = {         cfg80211_wext=0xf         max_vir_bss=1         cal_data_cfg=none         ps_mode=1         auto_ds=1         host_mlme=1         fw_name=nxp/pcieuart8997_combo_v4.bin } root@imx8mqevk:~# cat wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 update_config=1 dpp_config_processing=2 root@imx8mqevk:~# modprobe moal mod_para=nxp/wifi_mod_para.conf root@imx8mqevk:~# wpa_supplicant -i mlan0 -D nl80211 -c wpa_supplicant.conf -B & [1] 799 root@imx8mqevk:~# Successfully initialized wpa_supplicant rfkill: Cannot open RFKILL control device [1]+  Done                    wpa_supplicant -i mlan0 -D nl80211 -c wpa_supplicant.conf -B root@imx8mqevk:~# wpa_cli wpa_cli v2.11-M005 Copyright (c) 2004-2024, Jouni Malinen and contributors This software may be distributed under the terms of the BSD license. See README for more details. Selected interface 'mlan0' Interactive mode > DPP_QR_CODE DPP:C:81/1;M:fc84a75187fc;V:2;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgAD/bYibd4JdGvnK1etdgX/z4P+aJE2ztv89Q8xwjmbZNc=;; 1 > DPP_AUTH_INIT peer=1 role=enrollee OK <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=0 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc freq=2412 result=SUCCESS <3>DPP-RX src=fc:84:a7:51:87:fc freq=2412 type=1 <3>DPP-AUTH-DIRECTION mutual=0 <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=2 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc freq=2412 result=SUCCESS <3>DPP-AUTH-SUCCESS init=1 pkhash=6785abbd108e5ef6fe780819634ef620fc6eb71715b92b07f393e58af7afa0b6 own=-1 peer=1 <3>GAS-QUERY-START addr=fc:84:a7:51:87:fc dialog_token=199 freq=2412 <3>GAS-QUERY-DONE addr=fc:84:a7:51:87:fc dialog_token=199 freq=2412 status_code=0 result=SUCCESS <3>DPP-CONF-RECEIVED <3>DPP-CONFOBJ-AKM dpp <3>DPP-CONFOBJ-SSID test <3>DPP-CONNECTOR eyJ0eXAiOiJkcHBDb24iLCJraWQiOiJWV0hoQmp0enJVZ0xTSjhpTTJDRmRtNkxPQ0FFWHVCSWJEU3hzMEhaSDhnIiwiYWxnIjoiRVMyNTYifQ.eyJncm91cHMiOlt7Imdyb3VwSWQiOiIqIiwibmV0Um9sZSI6InN0YSJ9XSwibmV0QWNjZXNzS2V5Ijp7Imt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4IjoibjBQbXlSMVhUUE14WUNiM2tqYjF1Yjh3Q055bUUtREFTcE4tZ2I0ZDhDcyIsInkiOiJfbmlkd1V6NkFkM1AySy1RYVJuXzZTem9KYlJWRGt3d0VYeTdZU2JoMDU4In19.kfVVpSaFNaTfoLVE5Yu16bLMfpSlVXGlul07FNwQ7gLPlYOTGS5lbOLwCTkP246kSC1Wn-8MWSUXpxgpSpsX2A <3>DPP-C-SIGN-KEY 3039301306072a8648ce3d020106082a8648ce3d0301070322000226d58dd75a168da8b901b47e01694868af2158d57db2984784349e12768e668b <3>DPP-PP-KEY 3039301306072a8648ce3d020106082a8648ce3d03010703220002a0008bd0723f2723408ef53550f5cbc55785ea625ec5265d81e16c0cd45a5e3a <3>DPP-NET-ACCESS-KEY 30770201010420cedd6e85e66768b1a8e14e2e048fd54b7f09277195c3db3f6b1887e8b449e872a00a06082a8648ce3d030107a144034200049f43e6c91d574cf3316026f79236f5b9bf3008dca613e0c04a937e81be1df02bfe789dc14cfa01ddcfd8af906919ffe92ce825b4550e4c30117cbb6126e1d39f <3>CTRL-EVENT-NETWORK-ADDED 0 <3>DPP-NETWORK-ID 0 <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=11 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc freq=2412 result=SUCCESS <3>CTRL-EVENT-SCAN-STARTED <3>CTRL-EVENT-SCAN-RESULTS <3>WPS-AP-AVAILABLE <3>CTRL-EVENT-NETWORK-NOT-FOUND <3>CTRL-EVENT-SCAN-STARTED <3>CTRL-EVENT-SCAN-RESULTS <3>WPS-AP-AVAILABLE <3>CTRL-EVENT-NETWORK-NOT-FOUND <3>CTRL-EVENT-SCAN-STARTED <3>CTRL-EVENT-SCAN-RESULTS <3>WPS-AP-AVAILABLE <3>CTRL-EVENT-NETWORK-NOT-FOUND > DPP_STOP_LISTEN OK //All commands on DUT side finished until here. Now go to CTT2 side to continue, generate the QR Code and get URI on CTT2. <3>CTRL-EVENT-SCAN-RESULTS <3>DPP-TX dst=02:e9:3a:0d:b8:cd freq=2412 type=5 <3>DPP-TX-STATUS dst=02:e9:3a:0d:b8:cd freq=2412 result=SUCCESS <3>DPP-RX src=02:e9:3a:0d:b8:cd freq=2412 type=6 <3>PMKSA-CACHE-ADDED 02:e9:3a:0d:b8:cd 0 <3>DPP-INTRO peer=02:e9:3a:0d:b8:cd status=0 version=2 <3>SME: Trying to authenticate with 02:e9:3a:0d:b8:cd (SSID='test' freq=2412 MHz) <3>Trying to associate with 02:e9:3a:0d:b8:cd (SSID='test' freq=2412 MHz) <3>Associated with 02:e9:3a:0d:b8:cd <3>CTRL-EVENT-SUBNET-STATUS-UPDATE status=0 <3>EAPOL-RX 02:e9:3a:0d:b8:cd 99 <3>EAPOL-RX 02:e9:3a:0d:b8:cd 195 <3>WPA: Key negotiation completed with 02:e9:3a:0d:b8:cd [PTK=CCMP GTK=CCMP] <3>CTRL-EVENT-CONNECTED - Connection to 02:e9:3a:0d:b8:cd completed [id=0 id_str=] > list_networks network id / ssid / bssid / flags 0       test    any     [CURRENT] > quit root@imx8mqevk:~# cat /proc/mwlan/adapter0/mlan0/info driver_name = "wlan" driver_version = PCIE8997--16.92.21.p153.7-MM6X16540.p33-GPL-(FP92) interface_name="mlan0" firmware_major_version=16.92.21 bss_mode ="Managed" media_state="Connected" mac_address="20:4e:f6:bb:08:d9" multicast_count="4" essid="test" bssid="02:e9:3a:0d:b8:cd" channel="1" region_code = "00" multicast_address[0]="33:33:00:00:00:01" multicast_address[1]="01:00:5e:00:00:01" multicast_address[2]="33:33:ff:bb:08:d9" multicast_address[3]="33:33:00:00:00:fb" num_tx_bytes = 2458 num_rx_bytes = 350 num_tx_pkts = 19 num_rx_pkts = 3 num_tx_pkts_dropped = 0 num_rx_pkts_dropped = 0 num_tx_pkts_err = 0 num_rx_pkts_err = 0 carrier on tx queue 0:  started tx queue 1:  started tx queue 2:  started tx queue 3:  started === tp_acnt.on:0 drop_point:0 === ====Tx accounting==== [0] Tx packets     : 0 [0] Tx packets last: 0 [0] Tx packets rate: 0 [0] Tx bytes       : 0 [0] Tx bytes last  : 0 [0] Tx bytes rate  : 0Mbps [1] Tx packets     : 0 [1] Tx packets last: 0 [1] Tx packets rate: 0 [1] Tx bytes       : 0 [1] Tx bytes last  : 0 [1] Tx bytes rate  : 0Mbps [2] Tx packets     : 0 [2] Tx packets last: 0 [2] Tx packets rate: 0 [2] Tx bytes       : 0 [2] Tx bytes last  : 0 [2] Tx bytes rate  : 0Mbps [3] Tx packets     : 0 [3] Tx packets last: 0 [3] Tx packets rate: 0 [3] Tx bytes       : 0 [3] Tx bytes last  : 0 [3] Tx bytes rate  : 0Mbps [4] Tx packets     : 0 [4] Tx packets last: 0 [4] Tx packets rate: 0 [4] Tx bytes       : 0 [4] Tx bytes last  : 0 [4] Tx bytes rate  : 0Mbps Tx amsdu cnt            : 0 Tx amsdu cnt last       : 0 Tx amsdu cnt rate       : 0 Tx amsdu pkt cnt        : 0 Tx amsdu pkt cnt last : 0 Tx amsdu pkt cnt rate : 0 Tx intr cnt             : 18 Tx intr last        : 0 Tx intr rate        : 0 Tx pending          : 0 Tx xmit skb realloc : 19 Tx stop queue cnt : 0 ====Rx accounting==== [0] Rx packets     : 0 [0] Rx packets last: 0 [0] Rx packets rate: 0 [0] Rx bytes       : 0 [0] Rx bytes last  : 0 [0] Rx bytes rate  : 0Mbps [1] Rx packets     : 0 [1] Rx packets last: 0 [1] Rx packets rate: 0 [1] Rx bytes       : 0 [1] Rx bytes last  : 0 [1] Rx bytes rate  : 0Mbps [2] Rx packets     : 0 [2] Rx packets last: 0 [2] Rx packets rate: 0 [2] Rx bytes       : 0 [2] Rx bytes last  : 0 [2] Rx bytes rate  : 0Mbps [3] Rx packets     : 0 [3] Rx packets last: 0 [3] Rx packets rate: 0 [3] Rx bytes       : 0 [3] Rx bytes last  : 0 [3] Rx bytes rate  : 0Mbps [4] Rx packets     : 0 [4] Rx packets last: 0 [4] Rx packets rate: 0 [4] Rx bytes       : 0 [4] Rx bytes last  : 0 [4] Rx bytes rate  : 0Mbps Rx amsdu cnt             : 0 Rx amsdu cnt last        : 0 Rx amsdu cnt rate        : 0 Rx amsdu pkt cnt         : 0 Rx amsdu pkt cnt last : 0 Rx amsdu pkt cnt rate : 0 Rx intr cnt      : 67 Rx intr last        : 0 Rx intr rate        : 0 Rx pending          : 0 Rx pause            : 0 Rx rdptr full cnt   : 0 root@imx8mqevk:~# CTT2 (AP):Responder + AP + Enrollee IMX8MPlus EVK + 88W8997 module root@imx8mpevk:~# uname -a Linux imx8mpevk 6.12.49-lts-next-gdf24f9428e38 #1 SMP PREEMPT Fri Nov 21 03:24:46 UTC 2025 aarch64 GNU/Linux root@imx8mpevk:~# cat /lib/firmware/nxp/wifi_mod_para.conf PCIE8997 = {         cfg80211_wext=0xf         max_vir_bss=1         cal_data_cfg=none         ps_mode=1         auto_ds=1         host_mlme=1         fw_name=nxp/pcieuart8997_combo_v4.bin } root@imx8mpevk:~# hostapd hostapd.conf -B & [1] 1731 root@imx8mpevk:~# HT (IEEE 802.11n) with WPA/WPA2 requires CCMP/GCMP to be enabled, disabling HT capabilities rfkill: Cannot open RFKILL control device uap0: interface state UNINITIALIZED->ENABLED uap0: AP-ENABLED [1]+  Done                    hostapd hostapd.conf -B root@imx8mpevk:~# hostapd_cli hostapd_cli v2.11-M005 Copyright (c) 2004-2024, Jouni Malinen and contributors This software may be distributed under the terms of the BSD license. See README for more details. Selected interface 'uap0' Interactive mode > DPP_BOOTSTRAP_GEN type=qrcode chan=81/1 mac=02:e9:3a:0d:b8:cd //MAC address of CTT2 itself and returned 1 is bootstrap info id which require to get QR code in below command. 1> DPP_BOOTSTRAP_GET_URI 1 //Attention here, after this command, will generate a QR code, which will be use on CTT1 with command:DPP_QR_CODE. Then directly go to CTT1 to enter the QR Code. DPP:C:81/1;M:02e93a0db8cd;V:2;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgACQOp5kWO1ex4L2U5rRXdS9yPYWA9NdRXTsuT+v5L/jvc=;;> //Hold on here, and now go to CTT1 to authenticate this AP with above QR Code. After authenticate on CTT1 with QR Code, will auto output below logs. Pay attention on the keys and connectors info, will use them later when you update the AP. > <3>DPP-RX src=fc:84:a7:51:87:fc freq=2412 type=0 <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=1 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc result=SUCCESS <3>DPP-RX src=fc:84:a7:51:87:fc freq=2412 type=2 <3>DPP-AUTH-SUCCESS init=0 pkhash=8b3e0f88b70610446a84f53ea9d792f5631b2b87e30cd219a8059c6f7893c501 own=1 peer=-1 <3>GAS-QUERY-START addr=fc:84:a7:51:87:fc dialog_token=0 freq=2412 <3>GAS-QUERY-DONE addr=fc:84:a7:51:87:fc dialog_token=0 freq=2412 status_code=0 result=SUCCESS <3>DPP-CONF-RECEIVED <3>DPP-CONFOBJ-AKM dpp <3>DPP-CONFOBJ-SSID test <3>DPP-CONNECTOR eyJ0eXAiOiJkcHBDb24iLCJraWQiOiJWV0hoQmp0enJVZ0xTSjhpTTJDRmRtNkxPQ0FFWHVCSWJEU3hzMEhaSDhnIiwiYWxnIjoiRVMyNTYifQ.eyJncm91cHMiOlt7Imdyb3VwSWQiOiIqIiwibmV0Um9sZSI6ImFwIn1dLCJuZXRBY2Nlc3NLZXkiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsIngiOiJEbVRmSVFTRFNPVXVkVFBkN0pobEQtQ2xOa0U3U2lEWmctLWpYeGdNRXRJIiwieSI6Iml2NlVCc1J0YXhGSEpzcEtPbWFQSktqUmNDTFV5REh6WHFFeWtLbkhsOGcifX0.vEzfQywitO8AMvmcXenL_qidmkNl7t_jen2YW9OV8M5OID9jmTu-GqVUUkMEQE7R7Ja5vGnOMQ2-x-h7qyRKIQ <3>DPP-C-SIGN-KEY 3039301306072a8648ce3d020106082a8648ce3d0301070322000226d58dd75a168da8b901b47e01694868af2158d57db2984784349e12768e668b <3>DPP-NET-ACCESS-KEY 307702010104200be4b069c34a39d844fca856dd1e583a729e74f394370a4da8bc7d68d0dfadc2a00a06082a8648ce3d030107a144034200040e64df21048348e52e7533ddec98650fe0a536413b4a20d983efa35f180c12d28afe9406c46d6b114726ca4a3a668f24a8d17022d4c831f35ea13290a9c797c8 <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=11 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc result=SUCCESS //Now update AP configurations on CTT2: //First disable AP: > disable <3>AP-DISABLED OK //Update AP parameters: > set ssid test OK > set wpa 2 OK > set wpa_key_mgmt DPP OK > set ieee80211w 2 OK > set rsn_pairwise CCMP OK > set dpp_connector eyJ0eXAiOiJkcHBDb24iLCJraWQiOiJWV0hoQmp0enJVZ0xTSjhpTTJDRmRtNkxPQ0FFWHVCSWJEU3hzMEhaSDhnIiwiYWxnIjoiRVMyNTYifQ.eyJncm91cHMiOlt7Imdyb3VwSWQiOiIqIiwibmV0Um9sZSI6ImFwIn1dLCJuZXRBY2Nlc3NLZXkiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsIngiOiJEbVRmSVFTRFNPVXVkVFBkN0pobEQtQ2xOa0U3U2lEWmctLWpYeGdNRXRJIiwieSI6Iml2NlVCc1J0YXhGSEpzcEtPbWFQSktqUmNDTFV5REh6WHFFeWtLbkhsOGcifX0.vEzfQywitO8AMvmcXenL_qidmkNl7t_jen2YW9OV8M5OID9jmTu-GqVUUkMEQE7R7Ja5vGnOMQ2-x-h7qyRKIQ OK > set dpp_csign 3039301306072a8648ce3d020106082a8648ce3d0301070322000226d58dd75a168da8b901b47e01694868af2158d57db2984784349e12768e668b OK > set dpp_netaccesskey 307702010104200be4b069c34a39d844fca856dd1e583a729e74f394370a4da8bc7d68d0dfadc2a00a06082a8648ce3d030107a144034200040e64df21048348e52e7533ddec98650fe0a536413b4a20d983efa35f180c12d28afe9406c46d6b114726ca4a3a668f24a8d17022d4c831f35ea13290a9c797c8 OK //Re-enable the AP after updates: > enable <3>AP-ENABLED OK //just wait here, it will output below logs after some seconds. > <3>DPP-RX src=20:4e:f6:bb:08:d9 freq=2412 type=5 <3>DPP-TX dst=20:4e:f6:bb:08:d9 freq=2412 type=6 status=0 <3>DPP-TX-STATUS dst=20:4e:f6:bb:08:d9 result=SUCCESS <3>AP-STA-CONNECTED 20:4e:f6:bb:08:d9 dpp_pkhash=74a40ec058ac8c7f7acb6589253e76f5d1a9582359353bcd5e6983ee97c3a382 <3>EAPOL-4WAY-HS-COMPLETED 20:4e:f6:bb:08:d9 > quit > root@imx8mpevk:~# cat /proc/mwlan/adapter0/uap0/info driver_name = "uap" driver_version = PCIE8997--w8997o-V4, RF878X, FP92, 16.92.21.p153.7-MM6X16540.p33-GPL-(FP92) interface_name="uap0" firmware_major_version=16.92.21 media_state="Connected" mac_address="02:e9:3a:0d:b8:cd" num_tx_bytes = 462 num_rx_bytes = 2248 num_tx_pkts = 4 num_rx_pkts = 20 num_tx_pkts_dropped = 0 num_rx_pkts_dropped = 0 num_tx_pkts_err = 60 num_rx_pkts_err = 0 carrier on tx queue 0:  started tx queue 1:  started tx queue 2:  started tx queue 3:  started tkip_mic_failures = 0 ccmp_decrypt_errors = 0 wep_undecryptable_count = 0 wep_icv_error_count = 0 decrypt_failure_count = 0 mcast_tx_count = 20 failed_count = 3 retry_count = 0 multiple_retry_count = 0 frame_duplicate_count = 0 rts_success_count = 0 rts_failure_count = 0 ack_failure_count = 30 rx_fragment_count = 55 mcast_rx_frame_count = 18 fcs_error_count = 401368 tx_frame_count = 22 rsna_tkip_cm_invoked = 0 rsna_4way_hshk_failures = 0 === tp_acnt.on:0 drop_point:0 === ====Tx accounting==== [0] Tx packets     : 0 [0] Tx packets last: 0 [0] Tx packets rate: 0 [0] Tx bytes       : 0 [0] Tx bytes last  : 0 [0] Tx bytes rate  : 0Mbps [1] Tx packets     : 0 [1] Tx packets last: 0 [1] Tx packets rate: 0 [1] Tx bytes       : 0 [1] Tx bytes last  : 0 [1] Tx bytes rate  : 0Mbps [2] Tx packets     : 0 [2] Tx packets last: 0 [2] Tx packets rate: 0 [2] Tx bytes       : 0 [2] Tx bytes last  : 0 [2] Tx bytes rate  : 0Mbps [3] Tx packets     : 0 [3] Tx packets last: 0 [3] Tx packets rate: 0 [3] Tx bytes       : 0 [3] Tx bytes last  : 0 [3] Tx bytes rate  : 0Mbps [4] Tx packets     : 0 [4] Tx packets last: 0 [4] Tx packets rate: 0 [4] Tx bytes       : 0 [4] Tx bytes last  : 0 [4] Tx bytes rate  : 0Mbps Tx amsdu cnt            : 0 Tx amsdu cnt last       : 0 Tx amsdu cnt rate       : 0 Tx amsdu pkt cnt        : 0 Tx amsdu pkt cnt last : 0 Tx amsdu pkt cnt rate : 0 Tx intr cnt             : 22 Tx intr last        : 0 Tx intr rate        : 0 Tx pending          : 0 Tx xmit skb realloc : 64 Tx stop queue cnt : 0 ====Rx accounting==== [0] Rx packets     : 0 [0] Rx packets last: 0 [0] Rx packets rate: 0 [0] Rx bytes       : 0 [0] Rx bytes last  : 0 [0] Rx bytes rate  : 0Mbps [1] Rx packets     : 0 [1] Rx packets last: 0 [1] Rx packets rate: 0 [1] Rx bytes       : 0 [1] Rx bytes last  : 0 [1] Rx bytes rate  : 0Mbps [2] Rx packets     : 0 [2] Rx packets last: 0 [2] Rx packets rate: 0 [2] Rx bytes       : 0 [2] Rx bytes last  : 0 [2] Rx bytes rate  : 0Mbps [3] Rx packets     : 0 [3] Rx packets last: 0 [3] Rx packets rate: 0 [3] Rx bytes       : 0 [3] Rx bytes last  : 0 [3] Rx bytes rate  : 0Mbps [4] Rx packets     : 0 [4] Rx packets last: 0 [4] Rx packets rate: 0 [4] Rx bytes       : 0 [4] Rx bytes last  : 0 [4] Rx bytes rate  : 0Mbps Rx amsdu cnt             : 0 Rx amsdu cnt last        : 0 Rx amsdu cnt rate        : 0 Rx amsdu pkt cnt         : 0 Rx amsdu pkt cnt last : 0 Rx amsdu pkt cnt rate : 0 Rx intr cnt      : 28229 Rx intr last        : 0 Rx intr rate        : 0 Rx pending          : 0 Rx pause            : 0 Rx rdptr full cnt   : 0 root@imx8mpevk:~#
查看全文
[Introduction to NXP Microcontrollers] [Motor Control] [Basics Part 3] How Permanent Magnet Synchronous Motors Work and How to Control Them (Japanese blog) table of contents   [Introduction to NXP Microcontrollers] [Motor Control] [Basics Part 3] Mechanism and Control Method of Permanent Magnet Synchronous Motors The unsung hero! What are Clark Transform and Park Transform? It all began with the complex waves of three-phase AC Step 1: Clarke Transformation - Simplifying 3D into 2D Step 2: Park Transformation - "The Magic of the Merry-Go-Round" - Freeze the Moving World Why go through such a tedious conversion process? What are the huge benefits? Summary: The power of mathematics to manipulate complex waves at will [Introduction to NXP Microcontrollers] [Motor Control] [Basics Part 3] Mechanism and Control Method of Permanent Magnet Synchronous Motors The unsung hero! What are Clark Transform and Park Transform? Hello! When an electric vehicle (EV) takes off smoothly and a high-performance air conditioner operates surprisingly quietly, microcomputers perform complex calculations at ultra-high speeds and skillfully control the motor. This time, let's unravel the mysteries of the "Clark Transformation" and the "Park Transformation" (transformations named after two great experts who work in " vector control ," the heart of control technology), with the GIF animation below! (function() { var wrapper = document.getElementById('lia-vid-6377224605112w540h540r855'); var videoEl = wrapper ? wrapper.querySelector('video-js') : null; if (videoEl) { if (window.videojs) { window.videojs(videoEl).ready(function() { this.on('loadedmetadata', function() { this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) { bar.setAttribute('role', 'presentation'); bar.setAttribute('aria-hidden', 'true'); }); }); }); } }})(); (View My Videos) It all began with the complex waves of three-phase AC First, the top row. This is the world of three-phase AC , the basic energy required to run a motor. Graph on the right (Three-Phase Sine Waves) : Three waves, A, B, and C, are constantly changing in magnitude and direction as they flow. These three waves are interconnected, but as they are, it is extremely difficult to intuitively determine how much force should be applied to the motor at any given time. It's like trying to conduct three musicians who are each playing different pieces of music at the same time. Left graph (Rotating Vector) : However, when the forces of these three waves are combined, something interesting happens. A single force ( rotating vector ) is created that rotates smoothly and constantly, while maintaining a constant magnitude. Physically, this is the " rotating magnetic field " created by the stator coil. It is this rotating magnetic field that attracts the rotor magnet and is the source of the force that turns the motor. Problem: How can we easily and accurately control these "three constantly changing waves" using a microcontroller? Step 1: Clarke Transformation - Simplifying 3D into 2D The first magic is the " Clark transformation ," which transforms a complex 3D world into a more understandable 2D world. The calculation formula is as follows: Clarke.jpg In normal motor control, the following simplified formula is used, assuming amplitude invariant transformation (K=2/3) and balanced three-phase (i_a+i_b+i_c=0).   texclip20251021155548.png​ The graph on the right (Two-Phase Sine Waves α-β) : Look! The three waves have been consolidated into two waves, α (alpha) and β (beta). The wave shape (alternating current) is still there, but one variable has been removed, making it much easier to see. Graph on the left (Clarke Transformation α-β) : This shows the world as seen from two axes (α, β) that intersect at right angles to the rotation vectors seen from three axes (A, B, C). It's like turning a solid object seen from an angle into a flat view from directly above. The rotation vector itself continues to rotate in the same way without any change. [Key points of Clarke conversion] Without losing any information, we simplified the problem by converting from the somewhat difficult to handle three-phase coordinate system to Cartesian coordinates (α-β stationary coordinate system), which are familiar from mathematics. Step 2: Park Transformation - "The Magic of the Merry-Go-Round" - Freeze the Moving World The values of α and β are still changing like waves, and it is difficult to keep track of them. This is where the essence of vector control, the " Park transformation ," comes in! The calculation formula is as follows: texclip20251021155429.png​​ This is a major shift in thinking : "Let's stop looking at the rotating vector from the stationary ground (α-β coordinates) and jump on a merry-go-round that rotates at the same speed as the rotating vector!" This new rotating coordinate system is called the " dq rotating coordinate system ." Right graph (Two-Phase Value dq) : What an amazing result! The two waves that had been changing so drastically have now turned into **almost constant values (direct current)** called d and q! Left graph (Park Transformation dq) : You can see that the dq coordinates rotate in perfect synchronization with the rotation vector. If you stand right next to a horse on a merry-go-round, the horse appears stationary to you, right? It's the exact same principle. From the perspective of the rotating object, it appears stationary. [Points to note about park conversion] By observing from a coordinate system (dq coordinates) that rotates at the same speed as the rotating vector, AC values can be treated as DC values. Why go through such a tedious conversion process? What are the huge benefits? This two-step transformation brings us a tremendous benefit: overwhelming simplification of control . Controlling constantly changing AC values is difficult, but what about DC values? If it's higher than the target value, lower it; if it's lower, raise it. With this simple operation (PID control) that even an elementary school student can understand, you can achieve perfect control of a motor. The DC values of d and q each have an important physical meaning. q-axis value (Quadrature-axis): This directly controls the motor's torque (rotational force). When you step on the accelerator of an EV, the car accelerates sharply because the microcomputer is raising the target value of this q-axis. It is truly a "power dial." d-axis value (Direct-axis): Controls the motor's magnetic flux (magnet strength). In the case of a permanent magnet motor, the strength of the rotor magnet is constant, so basically it is most efficient to control the d-axis current to zero. It is truly an "efficiency dial." In other words, the Clarke and Park transformations are magical in that they separate the "power" and "efficiency" elements of a motor, which are normally mixed together, into two independent DC dials (d and q) . Summary: The power of mathematics to manipulate complex waves at will The complex wave of three-phase AC creates a rotating force (rotation vector) inside the motor. Clarke transformation simplifies the problem by redrawing the three-dimensional world into two dimensions (α-β). The park transformation involves riding on a rotating merry-go-round (dq coordinates) and converting AC values into DC values. The DC torque (q) and magnetic flux (d) values can be easily and accurately controlled using a PID controller! This series of elegant mathematical processes is the basis of "vector control," which supports modern high-performance motors. It is this magic that allows us to enjoy the full benefits of powerful, quiet, and energy-efficient motors. Thank you for reading to the end! If you would like to read the next basic chapter, click here ↓ [Basics Part 4] Practice! Let's see how vector control works using a block diagram! Click here for an explanation of the specific setup method and how to run the sample code. [Introduction to NXP Microcontrollers] [Motor Control] [Practical Part 1] Mechanism and Control Method of Permanent Magnet Synchronous Motors (Japanese blog) Here is a website that compiles articles about NXP motor control: NXP Motor Control - Summary Page - (Japanese blog) =========================​ We are currently unable to respond to comments in the " Comment " section of this post . We apologize for the inconvenience, but when making inquiries, please refer to " How to contact NXP with technical questions ( Japanese blog ) " . (If you are already an NXP distributor or have a relationship with NXP , you may contact the person in charge directly. ) This article will provide an easy-to-understand explanation of motor control using the NXP FRDM board "FRDM-MCXA156." It is divided into a basic section and a practical section, so we hope you will refer to the section that interests you. ・Basics ①~⑦, Practical ①~③ This time, as part 3 of the Basics, we will explain the mechanism and control method of permanent magnet synchronous motors using NXP microcontrollers. MCUXpresso MCUXpresso IDE MCUXpresso SDK MCX Motor Control Technology Focus Japanese Blog
查看全文
调整 EFLEXPWM 的占空比问题 现在我需要实现 6 通道互补 EFLEXPWM 波形生成。我选择了 SUB0、SUB1 和 SUB2 的 PWM_A 和 PWM_B。现在我想调整占空比。如何利用这些寄存器实现这一目标?我不太清楚手册中提到的与 VAL 值有关的操作。 刚开始使用 EFLEXPWM 时,我完全懵了,不知道如何操作。请帮帮我,我将不胜感激。 Re: Adjust the duty cycle issue of EFLEXPWM 您好, 数字设备 RM 的 238 和 243 显示了子模块内 PWMA/PWMB 和 PWMX 信号生成方面的 valN 寄存器含义。对于每个输出,子模块将一对定时值 (smnValm) 与子模块计数器进行比较以控制输出 脉冲,一个定时值用于控制开启边缘,一个用于控制关断边缘。 PetrS_1-1770735832538.png 因此 PWMA 边沿由 VAL2/VAL3 控制 PWMB 边沿由 VAL4/VAL5 控制 PWMX 边沿由 VAL0/VAL1 控制 BR, Petr
查看全文
How to enable LVDS panel at uboot on iMX8M PLUS Hi, NXP Support Specialist. We're currently working on enabling an LVDS display in L6.12.20 yocto for an IMX8MP custom board. The LVDS display works well in kernel but uboot doesn't display logo, so we follow this website (https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/Add-i-MX8MP-LVDS-driver-in-uboot/ta-p/1434826) to add patch to uboot 2025.04 and still cannot display. Is there any advices or patch for L6.12.20 yocto bsp? The attachments below are current uboot log we get and dm tree. Graphics & Display Linux Re: How to enable LVDS panel at uboot on iMX8M PLUS Thank you for reply and suggestion, we can see the uboot logo now! Re: How to enable LVDS panel at uboot on iMX8M PLUS Hi @Mikw  Please make sure that you have defined the display timing in simple_panel.c if you are referring the 0001-L6.1.55-Add-i.MX8MP-LVDS-panel-demo.patch. The uboot log you provided shows that the ldb driver can't decode display timing. Best Regards, Zhiming
查看全文
测量中心板(帆船)的压力 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好 我现在正在做一个学校项目,涉及在帆船上安装传感器。这里指的是小艇。 其中一项任务是测量中板(船中间的可伸缩龙骨)两侧的压力,看哪边压力更大。因此,我只想看看一方和另一方的区别。 我认为压差传感器可能不错,所以我查看了一些压差传感器,如 MP3V5010 和 MPXV7025。 但据我从数据表中了解到的情况。 1.它们只为干燥空气而设计,所以这将是一个问题。用于测量压力的管子/管道会接触到水(在水中),因此如果船翻了(这很常见),水很有可能会进入传感器。 2.这些传感器(MP3V5010 和 MPXV7025)只能测量 P1>P2。传感器MPXV7025 的量程为 -25 kPA 至 25 kPa,但数据表中仍然规定 P1 必须高于 P2。 如果 P1 必须高于 P2,我如何测量 -25 kPa? 因此,我的问题是"防水" 传感器可以吗?(在管道里放点东西之类的),还是说有什么传感器更适合这种应用,对水不敏感? 压力传感器 Re: Measuring of pressure in a center board (Sailboat) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 谢谢 Re: Measuring of pressure in a center board (Sailboat) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好 除干燥清洁的空气外,其他介质可能会溶解凝胶或被凝胶吸收,从而损坏模具表面或导致线缆断裂。与其他介质相比,某些类型的介质损坏芯片的时间更长,因此可以采用一次性应用。 我想请你参考应用笔记 AN3728:“IPS PRT 压力传感器的媒体兼容性”,除了提供的信息外,还值得考虑。 在这篇应用笔记第 3 页中,您可以看到我们已经测试了几种介质,主要是在具有耐介质凝胶的部件上,但是我们无法保证这些设备在这些条件下的长期可靠性。 要将我们的传感器用于除干燥空气以外的其他介质,一种可能的解决方案是尝试使用 "抗介质凝胶 "型压力传感器。 恩智浦使用两种不同类型的凝胶将芯片与环境隔离: 氟硅凝胶(FE-53 型)用于我们所有标准类型的压力传感器。 耐介质凝胶 (Sifel) 被用于我们的压力传感器,例如在高温环境下使用的传感器,主要应用于汽车领域 由于我假设您需要的压力传感器能够测量同一系统中的正压和负压,因此我建议您使用MPVZ7025DP压力传感器。 这也是一个集成压力传感器,这意味着它们已经过出厂校准、温度补偿和信号调节,因此外部硬件需要最少(仅用于解耦和滤波的电容)。 不幸的是,MPVZ7025DP 不再由恩智浦制造,但你可以在罗切斯特电子公司找到这款设备,该公司是恩智浦过时设备的授权代理商。 我希望这些传感器中的一个能帮上忙。 祝您愉快, Jose ----------------------------------------------------------------------------------------------------------------------- 注:如果本帖回答了您的问题,请点击正确答案按钮。Thank you! -----------------------------------------------------------------------------------------------------------------------
查看全文
边缘人工智能应用中恩智浦 MCU 的功率优化策略 大家好 我目前正在设计一款基于恩智浦微控制器的低功耗边缘计算设备,并想从社区获得一些建议。该系统执行间歇性传感器采样和本地推理,然后将汇总结果发送到主机系统进行进一步分析。 在开发和测试期间,我使用一台支持人工智能的笔记本电脑来分析性能、验证推理输出并监测长时间运行的功耗模式。我面临的主要挑战是优化 MCU 的功耗,同时保持可接受的推理任务响应时间。 MCUXpresso 中是否有推荐的低电源模式、时钟缩放技术或 SDK 功能可以很好地应对此类工作负载?如果您有任何关于平衡恩智浦 MCU性能和功耗的实际经验,将非常有帮助。预先感谢您的真知灼见。
查看全文
TJA1057GTK,TJA1145AT/FD FMEA 能否提供 TJA1057GTK 和 TJA1145AT/FD 芯片的最新 FMEDA 文件? 我这里只有一份 TR1309 报告,它似乎只显示了软件包失效模式和严重性级别,但是我们如何获得不同故障模式的分布(以百分比为单位)? sidi1_0-1769494724376.png Re: TJA1057GTK,TJA1145AT/FD FMEA 亲爱的 Sidi1、 TJA1057 和 TJA1145A 都不是 ASIL 设备(不是根据 ISO26262 创建的),因此没有 FMEDA 不适用于它们。只有针式 FMEA。TJA1057 的引脚 FMEA 见附件 AH1308。TJA1145A 的引脚 FMEA 见 AH1903。本文件为机密文件,可从TJA1145A 产品页面的 "安全 "部分 下载。请注意,贵公司需要与恩智浦签订有效的 NDA(保密协议),才能下载本文件和其他机密文件。 Screenshot_1.png 致以最崇高的敬意 约瑟夫
查看全文
S32G3 QSPIがFR[AIBSEF]エラーを報告しました こんにちは、エキスパート IASTから、M7アプリケーションがFR[AIBSEF]エラーを報告したという問題が報告されました。RTD4.0.2を使用していました。 S32G3 RM によると、AHB バースト サイズが BUFxCR[ADATSZ] のプリフェッチ サイズより大きい場合に AIBSEF がトリガーされます。BUF3CR[ADATSZ] が 0x80 であることを確認しました。これは、QSPI でサポートされている最大サイズ (1024 バイト) です。S32GレジスタのHBUSRTサイズを確認する方法をご存知ですか?この問題についてコメントをいただけませんか? S32G RM にはもう 1 つの混乱点も見つかりました。WRAP* トランザクションは AHB 読み取りではサポートされていませんが、これは HBUSRT が実際には G3 ではサポートされていないことを意味するのでしょうか。もしそうなら、 FR[AIBSEF]の根本的な原因は何でしょうか? 優先度: 中 RTD Re: S32G3 QSPI reported FR[AIBSEF] error こんにちは@arthur_shiさん、 QSPI で HBURST と HSIZE を設定する場所が見つかりませんでした。しかし、私の観点からすると、最大バースト = 16、最大 Hsize = 64 ビット = 8 バイトです。SO、AHB トランザクションの合計バースト サイズの最大値は 16 x 8 = 128 となり、1024 を超えることはできません。ドライバがビット FR[AIBSEF] を処理するのを確認できませんでした。ビット AIBSEF が発生した時点の QSPI のすべてのレジスタと QSPI 構成ファイルを送信していただけますか。問題を検出できるかどうか確認してみます。 よろしくお願いいたします。 ニ Re: S32G3 QSPI reported FR[AIBSEF] error 画像から、AHB バッファは以下のように構成されているようです。 RM のマスター ID テーブルに従います。 ユーザーが M7 を使用している場合、マスター ID が他のバッファーと一致しないため、すべてのトランザクションがバッファー 3 にルーティングされるようです。しかし、バッファ 3 は 1024 に設定されているSO、なぜこのビットを取得できるのかわかりません。 ただし、バッファ構成を変更して、マスター ID がバッファ 0、1、2 と一致し、バッファ サイズが 0 で、シーケンス ID が 16 バイトのデータを示しているかどうかを確認できると思います。 複数のコアを使用している場合は、各マスター ID を異なるバッファーにルーティングしてみてください。たとえば、CM7_0 をバッファ 0 に、CM7_1 をバッファ 1 に、... 新しい AHB トランザクションを実行する前に、これらのビットが設定されているかどうかを確認してください。 Re: S32G3 QSPI reported FR[AIBSEF] error これはお客様から受け取ったレジスターです Re: S32G3 QSPI reported FR[AIBSEF] error RM によると、AHB は WRAP と INCR の 2 つのタイプをサポートしているようです。しかし、S32G3 は INCR のみをサポートしています。HBurst と Hsize は QSPI では設定できません。これらは Core ドキュメントで定義され、起動時で構成されます。 お客様の場合、Core A53 のコア マスター ID 0、1、2 をバッファ 0、バッファ 1、バッファ 2 に設定し、バッファ サイズを 0 に設定しているため、バーストのサイズと比較するために使用されるデータ サイズは、シーケンス ID で設定されたデータです。彼らの場合、シーケンス内のデータ サイズは 16 バイトでした。起動時に設定されたバースト サイズがこの値より大きい場合、この問題が発生する可能性があります。 Re: S32G3 QSPI reported FR[AIBSEF] error お客様からフィードバックを受け取りましたが、A53 コアからのアクセスを防止した後、問題は解消されました。したがって、この問題は A53 コアからの投機的なアクセスによって発生した可能性があります。このアクセスがAIBSEFエラーを引き起こす理由はわかりません。確認したいもう一つの質問は次のとおりです。 S32G3 QSPI は AHB バースト機能をサポートしていますか?前回のコメントでも述べたように、 QSPI は RM の AHB ワープ機能をサポートしていませんが、AHB バースト機能を紹介するセクションもあります。混乱しますか?この機能を確認するのにご協力いただけますでしょうか?
查看全文
[罗兰][SE050]多个 CPU 和 MCU 能否共用一个 SE050? 专家们好 客户是罗兰公司,该公司正在考虑在其乐器产品中采用 SecureElement SE050E。 此外,罗兰还在考虑利用云技术通过 OTA 更新 CPU 和 MCU 的固件。 不过,他们的系统有多个 CPU 和 MCU。 如果罗兰要更新每个 CPU 或 MCU 的固件、 是否每个 CPU 和 MCU 都需要单独的 SE050? 或者每个 CPU 和 MCU 能否共用一个 SE050? 详情请参见下文。 顺祝商祺! 坎 Re: [Roland][SE050]Can multiple CPU and MCU share one SE050? 你好,Kan、 对于纯粹的 OTA SW 更新,很可能不需要 SE,因为通常只需要处理公钥。但这取决于 OTA 流程,也许他们还需要设备进行一些身份验证才能请求新软件,然后设备需要可用的私钥。通常,还有其他流程/用例需要在设备中提供一些私钥/机密密钥,然后安全元件可以提供帮助。 从软件角度来看,每个 SOC 一个 SE 是最简单的,但没有必要每个 MCU/MPU 都有一个安全元件。" 但同样,一个 SE 最好由一个 SOC 拥有",该 SOC 驱动与 SE 的所有物理通信,而其他 SOC 只能通过一个连接的 SOC 在逻辑上访问 SE。 这样可以避免多台设备希望同时访问 SE 时出现问题。我希望所有设备无论如何都通过一些通用的数据总线连接,这可以用来从所有连接的系统向SE发送请求。 主连接系统可能使用 PlatformSCP 将 SE 与主机绑定。其他设备可以请求单独的AESKey或ECKey频道,为SE提供自己的私人频道。 从用例的角度来看,应该考虑元器件是否可以在现场更换-如果其他元器件应该对新元器件进行身份验证,则新元器件可能需要自己的 SE 或至少是验证芯片来进行自我验证。 亲切的问候, Michael
查看全文
プロトタイプ段階でのPBLベースのプラットフォームでのセキュアブートの設定 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> このドキュメントでは、QorIQ PBLベースのPowerPCおよびARMアーキテクチャ・プラットフォームのセキュア・ブート設定方法と手順について説明します。セキュアブートの基本概念について説明します。セキュアブート用のPBL、CSFヘッダー、およびESBCイメージの作成方法について説明します。セキュアブート関連のイメージをターゲットにデプロイする方法と、プロトタイプ段階でOTPMKをブローしてSRKハッシュキーをミラーレジスタに書き込む方法を紹介します。セキュアブートが失敗し、UARTコンソールにメッセージが出力されない場合のトラブルシューティング方法をステップバイステップで提供します。 このドキュメントでは、LS1043を例に挙げていますが、ユーザーが異なるプロセッサを使用する場合は、プロセッサリファレンスマニュアルおよびQorIQ SDKユーザーマニュアルに従ってレジスタとイメージのデプロイメントアドレスを変更する必要があります。 1. PBLベースプラットフォームでのセキュアブートの基本概念 2. セキュアブート用のイメージの準備 2.1 セキュアブートをサポートするRCWを作成する           2.1.1 Linux SDKでセキュアブートRCWを作成する 2.1.2QCVSツールでセキュアブートRCWを作成    2.2 RSAキーと署名イメージを生成して、CSTツールでCSFヘッダーを作成する 3. セキュア ブート イメージをターゲットにデプロイし、SRKH ミラー レジスタを書き込みます 4.セキュアブートのトラブルシューティング。 Qonverge Re: プロトタイプ段階でのPBLベースプラットフォームでのセキュアブートの設定 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Codewarrior自体でコード署名ツールを使用する方法はありますか? Re: プロトタイプ段階でのPBLベースプラットフォームでのセキュアブートの設定 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちはジェリー、 私たちのシステムでカスタマーサービスリクエストを作成するか、コミュニティで新しいスレッドを作成して、手順をより詳細に説明していただけませんか? 私があなたのためにもっと調査をします。 ありがとうございます イーピン Re: プロトタイプ段階でのPBLベースプラットフォームでのセキュアブートの設定 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、LS1043ARDBでのセキュアブートのためにこのプロセスを実行しました。ブート ホールドオフは機能しており、コアをリリースする前にすべての値が適切に設定されていることを確認できます。コアが解放された後、u-boot は起動せず、スクラッチ レジスタ 2 のエラー コードが0x00000101
查看全文
重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我在之前的帖子中展示了如何从 U-boot 中更新 SDK 映像。然而,在那个例子中,我没有听从自己的建议,最初我将 FMC uCode 图像刻录到闪存中的错误位置。重新启动后,我不再有以太网连接,并且需要通过我的调试器Codewarrior重新刷新 FMC 代码。在这篇文章中,我将尝试介绍我所做的恢复工作,让您了解如何通过调试器重新刷新 P3041DS,甚至是裸板。 首先,我们需要 Codewarrior。我目前在 Windows 主机上使用版本 10.2,但看起来Codewarrior 10.3是目前最新版本。您还需要一个硬件 TAP,可以是 USB Tap、Codewarrior TAP、GigaTap 或以太网 Tap。对于 P3041,这需要一个 COP 接口 16 针接头。我的 USB 分接头已借出,因此我使用以太网分接头,这提供了通过 LAN 访问的额外便利。 为了本文的目的,我假设我已经清除了 NOR 闪存中的所有内容(包括 RCW)。这与从工厂返回的一块空白板的情况类似。在这种情况下,为了连接调试器,我们需要设置硬编码的 RCW。从 P3041DS 文档中,我看到 DIP 开关 SW1 配置 RCW_SRC 我需要一个硬编码的 RCW 选项,因此我将查看 P3041RM 以找出应将 cfg_rcw_src 设置为何。 由此,我确定我想要设置 cfg_rcw_src = 1_0010,因此我在 DS 上适当地设置 SW1。 请注意,在 DS 系统上,“ON”='1' 将SW1 重新配置为硬编码 RCW 选项后,我将以太网 TAP 探头尖端插入 COP 接头。 注意 pin1 的位置,并适当排列探头尖端。 现在是时候启动 Codewarrior 了。Codewarrior 基于eclipse 。我不会进行大型的 Eclipse 教程 - 但我会演示一些基础知识。Codewarrior 做的第一件事就是询问您工作区的位置。工作区是包含您可能拥有的任何项目的文件夹。在这种情况下,我创建了一个名为workspace_community的新文件夹。 我将为此创建一个新项目。项目包含我可能编译并下载到裸板的文件、初始化脚本以及如何连接到电路板的设置。选择文件/新建/Power Architecture 项目 我将我的项目命名为P3041DS并单击“下一步” 。 接下来,选择合适的处理器 构建设置通常用于构建代码,就我而言,这真的不重要。 我只使用 Core0,因此我按NEXT ,然后最后选择我的 TAP 连接。就我而言,我使用的是 IP 地址为 192.168.1.76 的以太网 TAP 我不打算使用跟踪,因此我可以在下一个屏幕上单击“完成” ,然后就会看到 Codewarrior 编码前景。我对编写任何代码不感兴趣,所以我要建立我的调试连接。为此,我单击工具栏上错误旁边的小向下箭头,然后选择“调试配置” 。 有三种方法可以连接到目标: 附加将把调试器附加到正在运行的目标 下载将重置目标,初始化它,并将代码下载到目标 连接复位,初始化目标并暂停 请注意,重置和初始化是可选的,可以配置。 我将使用Codewarrior Connect ,并将为我的项目选择该选项。要配置我的连接,我可以选择连接旁边的编辑。 在这里我看到我的连接类型是以太网 TAP,具有正确的 IP 地址,正如我之前在新项目向导中选择的那样。 如果我想更改我的初始化脚本,我会选择目标旁边的“编辑” 。 这将打开一个屏幕,其中显示用于连接特定目标的选项。您可以选择重置核心或不重置,也可以选择使用脚本初始化目标。默认脚本可以作为定制板的参考。它们初始化 DDR、MMU、本地总线等参数,以便调试器能够访问这些外围设备。再次强调,我不会详述细节。安装中包含 Codewarrior 文档,通常位于C:\Program Files\Freescale\CW PA v10.xx\PA\Help\PDF目录中。 在这种情况下,我使用标准 P3041DS 系统,只需返回主调试“调试配置”屏幕并单击调试。这将通过以太网 TAP 启动与目标的连接,并将 eclipse 前景更改为调试前景。 我看到我的目标已经停止在 0xFFFFFFFC 的重置向量处。在右下角我有一个调试器外壳。如果它不在您的视图中,您可以通过窗口/显示视图/调试器 Shell 启用它 在调试器 Shell 中,我可以直接向调试器输入命令。例如,为了读取并验证 DDR 是否正常工作,我将转储从地址 0x0 开始的 20 个位置 mem 0x0 20 这应该在默认项目上返回 0xdeadbeef,因为这是在初始化文件中将 flash 初始化的值。我可以对 flash 做同样的事情:      mem 0xe8000000 20 这应该返回闪存的前 20 个位置,这是我的重置配置字应该存储的地方。如果这两者都返回数据,我们就可以刻录闪存了。 Codewarrior Flash 刻录机通过 Codewarrior 10.x 中的目标任务运行。目标任务定义了闪存接口、地址和要刻录的图像。在目标任务视图中,单击绿色加号图标以添加目标任务。 这将打开一个窗口,我们可以在其中命名任务。任务类型应为闪存编程器。硬件诊断任务类型对于运行内存测试很有用,但这在 Codewarrior 文档中有所讨论。运行配置描述了我们如何连接到电路板。由于我已经通过项目连接到目标,因此我选择 Active Debug Context。 应显示与创建的任务相对应的视图。此时,我们需要添加闪存设备。闪存基地址是您可以通过单击“添加设备”窗口中组织右侧来更改组织。这将显示一个包含各个组织的下拉菜单。 基地址是通过初始化脚本配置的。默认情况下,此设置为 0xE8000000。目标 RAM 定义了目标上供算法使用的缓冲区。在视图的底部,可以添加 Flash 程序员操作,描述要执行的操作。示例包括擦除或编程文件。可以设置多个操作,例如擦除整个闪存、编程 RCW、FMC uCode 和 Uboot。 在这张图片中,我添加了一个操作来将 bin 文件中包含的 RCW 编程到位置 0xe8000000。由于二进制文件没有偏移量,我需要将地址偏移量 0xe8000000 应用于该文件。我指示它在编程之前也擦除扇区,并将操作限制在受影响的扇区内。 当我添加了所有需要的内容后,请务必保存目标任务。下面是我的目标任务更新 RCW 和 Fman UCode 的屏幕截图。 我会将它保存到框架中,这意味着它是项目的一部分。 然后,要运行闪存编程器,只需单击目标任务视图中的绿色“播放”箭头。编程器应该运行,如果成功,将在 Codewarrior 闪存编程器控制台中打印一条消息。 您现在可以断开 codewarrior(红色停止按钮图标),并尝试启动您的系统。请记住,DIP 开关仍然设置为硬配置重置配置字,因此我一定要先将它们改回来。 Qonverge 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 下划线只是让它更容易阅读 - 没有别的作用。它有时被用来打破一小口。 保留值可以是任何值。有时它们是空白的——没有任何意义。有时它们是内部测试模式等等...... 对于大多数 QorIQ 部件,我们将内容按 MSB 到 LSB 列出。例如我现在打开了 P3041RM。 LAD[0:15] - LAD0 是 MSB LCS[0:7] - LCS0 是 MSB EC1_RXD[3:0] - RXD3 为 MSB 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   保罗, 感谢您回复我。我有一个后续问题。 为什么显示的位在第 0 位和第 1 位之间显示下划线“_”?   下划线的意义是什么...只是为了更容易查看而分解一部分吗? 根据此回复,我们一直误解了硬编码 POR 配置输入以及非硬编码 POR 配置。 当你转到保留值时会发生什么? 我们的主板是几年前设计的,但我们不断发现一些奇怪的行为。 鲍勃   回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 这些位(至少在 Power Architecture 上)通常按 MSB 到 LSB(从左到右)的方式书写。因此,在 cfg_rcw_src[0:4] 的情况下,crg_rcw_src0 是 MSB。这对应于 LGPL0。 因此,当写入 cfg_rcw_src[0:4]=1_0010 时: cfg_rcw_src0 = lgpl0 = 1 cfg_rcw_src1 = lgpl1 = 0 cfg_rcw_src2 = lgpl2 = 0 cfg_rcw_src3 = lgpl3 = 1 cfg_rcw_src4 = lgpl4 = 0 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 保罗, 我是一名硬件工程师,对于如何将 cfg_rcw_scr(0:4) 与实际硬件信号关联感到困惑。这种混淆导致无法确定 cfg_rcw_scr 位的最高有效位。 对于上面显示的硬编码表表 4-32,对于等于 cfg_rcw_src(0:4) 的 1_0010,最高有效位是什么,cfg_rcw_src[0] 还是 cfg_rcw_src[4]? 对于下面显示的 LGPLx 硬件信号,当您写入 cfg_rcw_src(0:4) = 1_0010 时,哪个是 msb 是不明确的。硬件约定建议最左边的数字是 msb,它是 cfg_rcw_src(0)。   Cfg_rcw_src[0] = LGPL0   Cfg_rcw_src[1] = LGPL1   Cfg_rcw_src[2] = LGPL2   Cfg_rcw_src[3] = LGPL3   Cfg_rcw_src[4] = LGPL5   你能解释一下其中的歧义吗? 谢谢! 鲍勃 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 无论如何,我想我找到了这个问题的答案。它位于 QorIQ_SDK_Infocenter.pdf 文档内。以下是有关如何构建 u-boot 以支持 CW 的步骤。 这些步骤是否也适用于生成 u-boot elf 文件? 问:如何使用调试器(CodeWarrior 支持)构建 u-boot/内核? 答:对于 u-boot: 1. $ cd 2. $ bitbake -c cleansstate u-boot 3.修改u-boot_git.bb文件,添加以下内容: • $ cd meta-fsl-ppc/recipes-kernel/u-boot • $ add 'EXTRA_OEMAKE += "CONFIG_CW=1"' in u-boot_git.bb file 4.重建u-boot: •$ bitbake u-boot 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Marius, 我已经重新安装了最新的 CW 并设法找到了文档Targeting_PA_Processors.pdf 。 文档中提到我们必须构建具有 Code Warrior Debugger 支持的 u-boot 或者构建 u-boot elf 文件。它谈论的是文件夹iso/help/documents/pdf,我可以在其中找到有关如何执行这些操作的步骤,但我不知道这个文件夹在哪里。 如何在 yocto 构建环境中构建 u-boot elf 或构建支持 CW 的 u-boot? 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我将对 Flash 编程器例程做一个小小的说明。使用“已经准备好的”闪存编程器目标任务而不是制作一些新的任务非常简单。 只需右键单击并导入您的主板所需的 FP 目标任务。这些提供的目标任务的最好的部分在于它们已经构建了所有必要的闪存设备和内存设置。 此致, Marius 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, P3041DS 处的 u-boot 必须写入 NOR flash 的最后 512KB 中。是的,过程类似,只需使用从 0xeff80000 开始的起始地址。 对于 u-boot 调试,请查看 PA\Help\PDF\Targeting_PA_Processors.pdf 中有关 <5.4.6 从 NOR、NAND、SPI 和SDCard/MMC 闪存设备调试 U-Boot>章节。 此致, Marius 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我也对 u-boot 的刷新感兴趣。如果有的话就太好了。 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Paul, 感谢上述有用的文档。我有几个问题希望您能给我一些提示: 1) 您在文档中展示了如何将 rcw 和 fman ucode 刷入闪存。那么刷写u-boot的过程也是类似的吗? 2)如何使用 Code Warehouse 和 USB Tap 调试 u-boot(在 yocto 环境中编译)?有关于这个过程的任何文档吗?
查看全文
关于 MX 处理器知识库的问题 我对以下主题有疑问。   我想构建一个内核,然后将其集成到 bitbake 映像中,但我不知道该怎么做。   https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/How-to-compile-Linux-Kernel-Image-and-device-tree-using-Yocto/ta-p/2022759 ------------------------------------------------------------------------ 8. 编译内核 最后,使用以下命令编译内核镜像: $ make -j $(nproc) 生成的内核镜像将位于: iMX8 和 iMX9: arch/arm64/boot/ iMX6 和 iMX7: arch/arm/boot/ 回复:关于 MX 处理器知识库的问题 谢谢你的回答。 回复:关于 MX 处理器知识库的问题 我对你那边的情况有点困惑,你那边使用 Yocto 吗? 如果是,您无需使用独立构建,只需使用 Yocto 修改所有需要的代码即可。编译完成后,它会在 /tmp/deploy/images 文件夹中生成 wic.zst 文件。因此,您无需再将 uboot 和内核构建镜像以及内核模块添加到 wic.zst 文件中。这是最简单的方法。这是第一种方法。 如果你已经生成并下载了 wic.zst 文件到你的开发板,这里只编译 u-boot 和 kernel 文件,你只需要下载 u-boot 和 kernel 到你的开发板,无需再次下载 wic.zst 文件。这是第二种方法。 关于你的问题: 此外,我想知道如何将 uboot 和内核构建映像和内核模块添加到 /tmp/deploy/images 文件夹中的 wic.zst 文件中,这是 yocto 构建结果。 你不需要这样做。 如有任何问题请随时联系我。 回复:关于 MX 处理器知识库的问题 成功,Uboot和内核构建完成。我将在 yocto wic 中包含 Uboot 映像、内核映像、dtb、内核模块结果。 我想将独立构建结果集成到Yocto官方内核构建过程中。 此外,我想知道如何将 uboot 和内核构建映像和内核模块添加到 /tmp/deploy/images 文件夹中的 wic.zst 文件中,这是 yocto 构建结果。 回复:关于 MX 处理器知识库的问题 您对此感到困惑吗?你有什么问题?     20250219.png 回复:关于 MX 处理器知识库的问题 我正在使用FRDM i.MX 93 开发板。 我指的是文档https://docs.nxp.com/bundle/UG10195/page/topics/customization.html 。 在下一章中 -如何在独立环境中构建 U-Boot 和内核, 1. 生成一个包含必要工具、工具链和小型 rootfs 的 SDK,以便在主机上进行编译。 要从 Yocto 项目构建环境生成 SDK,请运行以下命令: $ bitbake core-image-minimal -c populate_sdk populate_sdk 生成一个脚本文件,用于设置没有 Yocto Project 的独立环境。 2. 要继续构建,请将 sh 文件从 tmp/deploy/sdk 中的构建目录复制到主机并执行脚本以安装 SDK。默认位置在 /opt,但可以放在主机上的任何位置。 3. 在主机上,要构建 U-Boot 和内核,请执行以下步骤 我很好奇接下来的程序。 我想将独立生成的内核、Uboot 镜像集成到 bitbake 镜像中。     回复:关于 MX 处理器知识库的问题 您使用哪款产品?以我们最新的 BSP 为例,您可以参考我们的i.MX Yocto 项目用户指南。 如有任何疑问或疑问,请随时联系我
查看全文
KW45ナレッジハブ KW45の3コア・アーキテクチャには、96 MHzのCM33アプリケーション・コア、専用のCM3無線コア、分離型のEdgeLockセキュア・エンクレーブが統合されています。専用のSRAMを備えたフラッシュ・ベースの無線コアにより、高度な設定とアップグレードが可能なソフトウェア実装の無線が得られ、メイン・コア上のリソースをお客様のアプリケーション領域に活用できます。 Bluetooth Low Energy 5.3準拠の無線は、最大24のセキュアな同時接続に対応しています。EdgeLockセキュア・エンクレーブの分離された実行環境は、一連の暗号化アクセラレータ、キー・ストア処理、セキュアなライフサイクル管理を備え、メイン・コアのセキュリティ負荷を最小限に抑えます。 さらに、KW45 MCUにはFlexCANが搭載され、車載用または産業用CAN通信ネットワークへのシームレスな統合を実現できます。FlexCANモジュールは、CANのフレキシブル・データ・レート(CAN FD)に対応でき、帯域幅の拡大とレイテンシの低減に役立ちます。 neidys_vargas_0-1729795404448.png KW45のブロック図 neidys_vargas_0-1730123110234.png KW45アーキテクチャブロック図 書類 リファレンス・マニュアル Datasheet Errata Secure Referenceマニュアル** 認証 SESIP認定 SESIP ST PSA認証 RED 認証 欧州連合適合宣言書(EVK) 欧州連合適合宣言書(LOC) 日本MIC KW45-LOC _TELEC-20250221 添付ファイルをご覧ください Bluetooth仕様 Bluetooth_5.0_Feature_Overview  Bluetooth_5.1_Feature_Overview Bluetooth_5.2_機能_概要 Bluetooth_5.3_機能_概要 Bluetooth_5.4_Feature_Overview Bluetooth_6_Feature_Overview 評価ボード KW45 KW45-EVK KW45-EVK回路図 KW45-EVK 設計ファイル KW45-EVKユーザー・マニュアル KW45-LOCユーザーマニュアル KW45-EVKスタート・ガイド アプリケーション・ノート ソフトウェア、ハードウェア、ペリフェラル: AN14122:KW45でのRTCの使用方法 このアプリケーション・ノートでは、BLEデモでRTCペリフェラルを構成および使用する方法について説明します。 AN14141:KW45 Bluetooth Low Energy用接続スタックでウォッチドッグ・タイマ・モジュールを有効にする このアプリケーション・ノートでは、接続スタック・デモにWDOGタイマを実装するプロセスについて説明します。 AN13855:KW45/K32W1でOTAPクライアント・サービスをBluetooth LEペリフェラル機器に統合する このアプリケーション・ノートでは、Over the Air Programming(OTAP)クライアント・サービスをBLEペリフェラル機器に統合するステップとプロセスを説明します。 AN13584:Kinetis KW45およびK32W1ロードプル・レポート このアプリケーション・ノートでは、ロードプル特性での測定方法と関連する結果について説明します。 AN13860:OTAPツールを使用してKW45/K32W1にファームウェアの更新イメージを作成する このアプリケーション・ノートでは、OTAPを使ってKW45ボードでイメージを作成および更新するステップについて説明します。 AN14077:KW45(1MB)からKW45(512kB)に移行するステップ このアプリケーション・ノートでは、1MBフラッシュから512kBフラッシュへの移行に必要な初期ステップについて説明します。 電力管理: AN13230:Kinetis KW45およびK32W1 Bluetooth LEの電力消費分析 このアプリケーション・ノートでは、KW45ワイヤレスMCUの電力消費、ハードウェアの設計、低電力動作向けの最適化に関する情報を紹介します。 AN13831:KW45/K32W1電力管理ハードウェア このアプリケーション・ノートでは、KW45/K32W1 MCUで電力管理専用の各種モジュールの使用方法について説明します。 RF: AN13687:K32W1による802.15.4アプリケーションの接続テスト このアプリケーション・ノートでは、K32W1 802.15.4のRF性能を実行するために接続テスト・ツールを使用する方法について説明します。 AN13728:KW45 RFシステムでのBluetooth LEおよびIEEE 802.15.4アプリケーションの評価レポート このアプリケーション・ノートでは、BLE(2FSK変調)およびIEEE 802.15.4(OQPSK変調)でKW45ボードを使用する場合の無線周波数(RF)評価テストの結果を報告します。テストの実行時に使用可能なセットアップとツールについても説明します。 AN14098:KW45-LOC RFテスト・レポート このアプリケーション・ノートでは、KW45B41Zローカライゼーション・ボードの基本的なRFテストの結果を報告します。  AN13228:KW45-EVK RFシステムでのBLEアプリケーションに関する評価レポート このアプリケーション・ノートでは、2つの周波数シフト・キー変調を用いて、BLEアプリケーションでKW45B41Z-EVKを使用する場合のRF評価テストの結果を報告します。 AN13229:BLEアプリケーションで、KW45-EVKとRFシステムの共存に関する評価レポート このアプリケーション・ノートでは、KW45B41Z-EVKをBLEアプリケーション(2FSK変調)で使用する場合のRF評価テストの結果を報告します。 AN13512:Kinetisワイヤレス・ファミリ製品のBLEとWi-Fiアプリケーションとの共存 このアプリケーション・ノートでは、K32W1/4X低エネルギー製品のWi-Fi信号に対する耐性、およびWi-Fiとの共存状態の改善方法を取りあげます。  セキュリティ: AN13859:KW45/K32W1システム内プログラミング(ISP)ユーティリティ このアプリケーション・ノートでは、ISPモードでKW45/K32W1 MCUを起動するステップと、MCUと通信するために多様なシリアル接続を確立するステップについて説明します。 AN1403:量産時に、シリアル・ワイヤ・デバッグ(SWD)を介してアプリケーションと無線ファームウェア用にKW45フラッシュをプログラミングする このアプリケーション・ノートでは、量産時にSWDを介して必要なすべての設定を書き込み、焼き込み、プログラミングするステップについて説明します。  AN13883:SPSDKを使用してISP経由でKW45無線ファームウェアを更新する このアプリケーション・ノートでは、ISPモードでKW45/K32W1 MCUを起動するステップと、セキュア・バイナリで無線ファームウェアを更新するステップを説明します。 AN14109:SECツールを使用してKW45およびK32W148セキュアにブートするこのアプリケーション・ノートでは、SEC GUIツールで署名済みイメージとセキュア・バイナリを使用して、KW45/K32W1 MCUをセキュアにブートするステップを説明します。 AN13838:SPSDKコマンド・ライン・ツールを使用してKW45およびK32W148をセキュアにブートする このアプリケーション・ノートでは、SPSDKコマンド・ライン・ツールで署名済みイメージとセキュア・バイナリを使用して、KW45/K32W1 MCUをセキュアにブートするステップを説明します。 AN13931:KW45およびK32W148でのライフサイクルを管理する このアプリケーション・ノートでは、SEC GUIとSPSDKコマンド・ライン・ツールを使用してKW45/K32W1 MCUのライフサイクルを移行するステップを説明します。  AN14174:NPXを使用して、KW45/K32W148のフラッシュ暗号化を実行する このアプリケーション・ノートでは、KW45/K32W1 MCUでオンザフライ暗号化を有効にするステップを説明します。 AN14158:KW45/K32W148で認証をデバッグするこのアプリケーション・ノートでは、フィールドでアプリケーションをセキュアにデバッグするためにデバッグ認証を実行する方法を説明します。  AN14544:MPUおよびMCU向けのEdgeLock 2GOサービス このアプリケーション・ノートでは、NXPデバイス向けのEL2GOサービスを紹介します。このサービスにより信頼できない環境でも信頼できる形でデバイスをプロビジョニングできます。  サポート KW45に関して疑問点がある場合は、ワイヤレスMCUコミュニティ(こちら)に質問を投稿しましょう! 便利なリンク リファレンスデザイン - NXP Community [MCUXSDK]KW4x、MCXW7x、MCXW2xにGitHub SDKを使用する方法 - NXPコミュニティ GitHub SDKの使用方法をステップ別に紹介しています。 [MCUXSDK]GitHub SDK - Bluetooth LEプラットフォームのドキュメント - NXPコミュニティ BLEプラットフォーム用ドキュメントを提供しています。  KW45/KW47/MCXW71/MCXW72でのSignal Frequency Analyzer(SFA)モジュールを使用したクロック測定 - NXPコミュニティ:このコミュニティでは、Signal Frequency Analyzerの使用方法に関する手順を提示しています。 KW45(自動車)またはK32W1/MCXW71(IoT/産業)で初めてPCBを適切に構築する最良の方法... コミュニティ : KW45またはK32W148、およびMCXW7を使用してPCBを構築するためのリンクと、無線性能、低電力、無線認証(CE/FCC/ICC)に関するあらゆる要素を掲載しています。 HCI_bbをKinetisファミリ製品で使用してDTMモードにアクセスする方法:この記事は次の2つの部分に分かれています。 HCI_bbバイナリを Kinetis製品へフラッシュする方法。 R&S CMW270を使用してRF測定を行う BLE HCIアプリケーションによるトランスミッタ/レシーバテストコマンドの設定:この記事では、ユーザーはどのようにすればシリアルコマンドをデバイスに送信できるかを示す手順を説明します。 Bluetooth LE HCI Black Boxクイックスタートガイド:この記事では、ユーザーが無線をシリアルコマンドで制御できるようにするためのシンプルなプロセスを説明します。 Kinetis(K32/38/KW45およびK32W1/MCXW71)パワー・プロファイル・ツール:Kinetis(KW35/KW38/KW45)およびMCX W7x(MCX W71)パワー・プロファイル・ツールに的を絞ったページです。お使いのアプリケーション(自動車またはIoT)での電力消費量を試算したり、ソリューションのバッテリ寿命を評価したりするのに役立ちます。 KW45/K32W1 32MHzおよび32kHzの発振余裕度:この記事では、回路の発振余裕度の適切な構成について説明しています。 KW45ベースのCSの1対多デモ NXP - チャネル・サウンディング   トレーニング BLE Introduction  RFスイッチの比較 吸収型と反射型 規格の比較 ETSI/FCC/ARIB要件 BLEチャネルサウンディング - 概要 BLEチャネル・サウンディング - RFハードウェア BLEチャネル・サウンディング - ANSYSモデリング・ツール BLEチャネル・サウンディング - アンテナのプロトタイプの検証測定 機器 ワイヤレス機器:この記事には、プロジェクト策定に役立つ機器へのリンクが掲載されています。 開発ツール  SDKビルダ: MCUXpresso SDKは、オープンソースのドライバ、ミドルウェア、リファレンス例のアプリケーションを提供し、ソフトウェア開発を加速させます。 SDK GitHub:GitHubで公開されているSDKのオープンソースのドライバ、ミドルウェア、リファレンス例 NXP MCUXpresso:MCUXpresso IDEは高度な編集、コンパイル、デバッグ機能を提供し、MCU固有のデバッグ機能も追加されています。すべての汎用Arm Cortex-Mとの接続をサポートします。 NXP SPSDK:信頼性が高く使いやすいPython SDK統合ライブラリです。NXP MCUポートフォリオ全体で動作するので、お客様のクイックプロトタイピングから本番環境デプロイまで対応する強力な基盤となります。 NXP SECツール:GUIベースのアプリケーションMCUXpresso Secure Provisioning Toolは、NCP MCUデバイスのブータブル実行ファイルの生成とプロビジョニングをシンプル化するものです。 NXP OTAP Tool:ユーザーがNXP開発ボードのOver-the Air)ファームウェア・アップデートを実行するのに役立つアプリケーションです。 Config Tool: 構成ツールの統合スイート「MCUXpresso Config Tools」を利用すると、開発者はカスタムSDKをすばやく構築したり、ピン、クロック、ペリフェラルを利用して初期化Cコードを生成したり、カスタム・ボード・サポート用の値を登録したりできます。 ワイヤレスMCU用のSDKの例:ワイヤレスの例では、多くの一般的なBluetooth構成を取りあげています。 **セキュア・ファイルには追加のアクセス権をリクエストする必要があります。  ハンズオン・トレーニング 製品: K32W1 プロトコル:802.15.4 プロトコル:BLE→コネクティビティ プロトコル:Bluetooth プロトコル:Matter プロトコル:Thread プロトコル:Zigbee
查看全文
i.MX 93 内存兼容性指南 本文档旨在为 i.MX 93 系列处理器所支持的 LPDDR4/4X 内存器件的选型提供扩展指导。在任何情况下,强烈建议遵循特定 SoC 的 NXP 硬件开发者指南中概述的 DRAM 布局准则。 i.MX 93 系列处理器支持不同的封装,每种封装都有其支持的最高 LPDDR4/4X 数据速率。请参考相应的数据手册。 注意:部分 LPDDR4/4X 器件可能不支持低速运行,此外,DQ ODT 可能无法激活,这会影响这些速度下的信号完整性。如果用例中计划采用低速运行,请咨询内存供应商有关内存器件的配置方面及可能的定制,以确保功能正常。 LPDDR4/4X - 最大支持的密度 SoC 最大数据总线宽度 最大密度 假设的内存组织 说明 i.MX 93 (i.MX 93xx) 16 位 16 Gb / (2 GB) 具有 17 行地址 (R0 - R16) 的单排、单通道设备 1, 2, 3   LPDDR4/4X - 已验证的内存列表 验证过程是一个持续的工作——预计该表格会定期更新。 SoC 密度 内存供应商 已验证的内存型号 说明 i.MX 93 16 Gb/ (2 GB) Micron LPDDR4/4x: MT53E1G16D1FW-046 AAT:A  (Z32N) MT53E1G16D1ZW-046 AAT:C (Z42N) 7 4, 8 8 Gb/ (1 GB) Micron LPDDR4/4x: MT53D512M16D1DS-046 AAT (Z11M) 4, 10 16 Gb/ (2 GB) Micron LPDDR4/4x: MT53E1G32D2FW-046 AUT:B (Z42M) 4, 5, 10 8 Gb/ (1 GB) Nanya LPDDR4: NT6AN512M16AV-J1I LPDDR4x: NT6AP512M16BV-J1I 4, 8 4 Gb/(512 MB) Nanya LPDDR4x: NT6AP256M16AV  4, 8 16 Gb/ (2 GB) Kingston LPDDR4: C1612PC2WDGTKR-U 7, 9 8 Gb/ (1 GB) ISSI LPDDR4: IS43LQ16512A-053BLI 4, 8   8 Gb/ (1 GB) CXMT LPDDR4/4x: CXDB4CBAM-EA-M 4, 9 16 Gb/ (2 GB) JSC LPDDR4x: JSL4BAG167ZAMF  4, 8 8 Gb/ (1 GB) JSC LPDDR4x: JSL4B8G168ZAMF-05x  4, 8 4 Gb/(512 MB) JSC LPDDR4x: JSL4A4G168ZAMF-05 4, 8 2Gb / (256 MB) Winbond  LPDDR4x: W66BQ6NBHAGJ 4, 6, 8 8Gb / (1 GB) IM (Intelligent Memory) LPDDR4x: IM8G16L4JCB-046I 4, 11 4Gb / (512 MB) Samsung LPDDR4: K4F4E164HD-THCL 4, 8 8 Gb / (1 GB) AM(Alliance Memory) LPDDR4X: AS4C512M16MD4V-053BIN 4, 8 2Gb / (256 MB) ISSI LPDDR4: IS46LQ16128A-062BSLI 4, 6, 8   注 1: 这些数值纯粹基于 DDR 控制器和 DDR PHY 的 IP 文档、为其集成到 SoC 中所选的实现参数设置、SoC 参考手册以及 JEDEC 标准 JESD209-4B/JESD209-4-1 (LPDDR4/4X)。因此,除非另有说明,否则它们没有经过验证支持,也不能保证内存供应商会提供具有特定密度和 / 或所需内部组织的 SoC。如果客户选择使用最大密度并在预期用例中采用,需自行承担风险。 注 2: 不支持任何密度的字节模式 LPDDR4/4X 器件(内部在两个芯片之间拆分的 x16 通道,每个 x8),因此,这些数值仅适用于具有 x16 内部组织的器件(在 JEDEC 规范中称为 “标准” 器件)。 注 3: 该 SoC 还支持双秩单通道器件,因此,16Gb/2GB 密度也可通过使用具有 16 行地址 (R0 - R15) 的双秩单通道器件来实现。 注 4: 该内存型号未经过完整的 JEDEC 验证,但通过了所有功能测试项目 注意事项 5: 这是一款双通道 x32 器件。由于 i.MX93 仅支持 16 位 LPDDR4/X 数据总线,因此它只能与其中一个通道接口,从而仅能利用该器件一半的密度。如表格中所示 —— 该器件具有 32Gb/4GB 密度,但只能使用 16Gb/2GB。使用双通道器件的其中一个通道没有功能问题,因为在 LPDDR4/4X 中通道是独立的。  注6: 这是一款新的 JEDEC 100 球封装,尺寸为标准 200 球封装的一半。这种 100 球封装具有与 200 球封装相同的性能和功能,并且具有比标准封装更小、更便宜的额外优势。 注释7: 该器件已被制造商停产,并已更新为新的内存型号。  注释8: 该型号处于活跃状态。于 2025 年 6 月审核。 注释 9: 该型号已过时。 注10: 该器件将在 24 年第二季度被制造商停产,且不会更新为新的内存型号。 注释 11: 在 TSA 分析期间发现了 DQ 眼图裕量问题。vTSA 和稳定性测试未发现任何问题。
查看全文