Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
i.MX95 EVKまたはi.MX8QM上でAndroidとLinuxの両方をDomUとして実行する Xenハイパーバイザー上でAndroid オートモーティブとLinuxゲストOSの両方を実行できるかどうか、その適用可能性を検証しています。 リリースノートとユーザーガイドの間には、矛盾する情報がいくつかあります。Android オートモーティブのリリースノートでは、i.MX8QMとi.MX95の両方で仮想化 Android に「N」が付いていますが、ユーザーガイドではXen上でAndroidを実行する方法が明確に説明されています。 サポートされているかどうかという質問に答えたいのですが、異なるドキュメントに基づいて正確に判断することができません。古いドキュメントではi.MX8QMでもサポートされていると書かれていますが、新しいドキュメントではサポートされていないと書かれています。 ユーザーガイドには、LinuxゲストまたはAndroid Automotiveゲストを実行できると記載されていますが、それらが同時に共存できるかどうか(2つのDomU)については記載されていません。i.MX95、i.MX8QM、あるいはその両方でこれが可能かどうか教えてください。 質問1で述べたように、i.MX 8QuadMaxについては、古いドキュメントにXen上でAndroid VMを実行できると記載されていましたが、それはAndroid 9またはAndroid 10の場合でした。最近のドキュメントでは、Xen 上の Android VM では「N」と記載されており、ユーザーガイドには i.mx 95 の手順しか記載されていません。新しいバージョンの Android を実行できない理由は何でしょうか? Android i.MX 8ファミリ | i.MX 8QuadMax (8QM) | 8QuadPlus Linux Re: Running both Android + Linux as DomU's on i.MX95 EVK or i.MX8QM こんにちは、 1> 以前のバージョンの Android では、デモ/リファレンスとして i.MX8 XEN のサポートがありましたが、新しい Android リリースではサポートされなくなりました。一方、i.MX95については、最新リリースでサポートされています。 2> 上記のように、古いリリースでは i.MX8 で可能かもしれませんが、i.MX95 は公式にはサポートされていませんが、カスタム統合により技術的には可能です。 3> これは、1) i.MX8 用の公式 XEN がデモ/リファレンスとしてリリースされたことに関連しており、新しい Android リリースへの変更により、焦点は新しい i.MX95 に移されました。 よろしくお願いいたします。 アルド。 Re: Running both Android + Linux as DomU's on i.MX95 EVK or i.MX8QM こんにちは、迅速なご対応ありがとうございます! i.MX95の場合、公式にサポートされているのはDom0(Linux、ドキュメントを見る限りシンクライアントではないようです)とDomU(Android)のみです。Dom0にディスプレイを1つ、DomUにもう1つのディスプレイを接続することは可能ですか? i.MX95でFUTURE的に2つのDomUをサポートする予定はありますか? Re: Running both Android + Linux as DomU's on i.MX95 EVK or i.MX8QM こんにちは、アルドさん。 私の質問について何か進展はありますか?
查看全文
LX2160 定制板上模块的掉电 在我们基于 LX2160 的定制主板中,没有 SPDT 开关可用于通过软件控制电源轨。 不过,我们的目标是降低 USB、WiFi、BT、PoE 和蜂窝模块的功耗。 我方提出了当前的意见和做法: 1.WiFi、BT 和蜂窝模块通过 PCIe 连接。 我们观察到,这些功能可以通过 SerDes 配置禁用。 通过将 SerDes 协议配置为 S2 = 9,所有相应的通道都被配置为 SGMII,而不是 PCIe,从而有效禁用 PCIe 连接的模块。 2.USB 模块似乎没有类似的基于 SerDes 的禁用选项。 对于 USB,我们目前正在尝试使用以下方法基于 GPIO 禁用: USB1_MUX_EN USB2_MUX_EN RCW 配置已经过验证,相应引脚已确认配置为 GPIO。 然而,即使驱动这些 GPIO 进行禁用操作,也无法观察到预期的功耗降低。 3.PoE 模块(AQR113c 用于以太网) 请就可能需要修改的其他文件或配置提出意见/建议,以便完全禁用和降低功耗。 Re: Power down of modules on LX2160 custom board 闲置时是否可以对 USB、WiFi、BT、PoE 和蜂窝模块掉电?还是产品的配置不同,这些接口根本不会被使用?   请注意,即使接口未使用,仍需为其电源轨供电。LX2160A 不支持从其轨道上拔下电源。 如果断开接口设备的电源,则需要确保 LX2160A I/O 不会发生泄漏   你能做什么? 1) 内核消耗最大功率。SDK 支持在不使用 CPU 时降低其频率,以节省功耗。 Refer 电源管理单元 - [Layerscape Software Development Kit User Guide | NXP 半导体|https://docs.nxp.com/bundle/GUID-487B2E69-BB19-42CB-AC38-7EF18C0FE3AE/page/GUID-2E8E375E-7DCD-4671-B0CF-D4713D8BB9EB.html] 2) 未使用的 IP 可通过 DEVDISR 进行时钟门控。不过,一旦禁用,就无法再启用。 3) 如果 SerDes 通道未使用,可将其断电。参见第 26.10.2 节LX2160A 参考手册中未使用的车道 4) 当通过 RCW 设置选择 SerDes 协议时,它还会根据协议要求配置与该协议相关的寄存器。因此,重新配置车道并不是正确的方法。 5) 从原理图片段来看,您已将 SerDes#2 配置为 SRDS_PRTCL_S2 =3,但只使用了单通道。 你可以使用 SRDS_PRTCL_S2=11 并按照 (4) 对未使用的通道进行掉电。类似的机制也可应用于其他 SerDes。 6) 如果 PCIe 未使用 Gen3,则 PLLF 可以断电。同样,未使用的 PLL 也可以断电 谢谢! Re: Power down of modules on LX2160 custom board 如何测量耗电量? 请注意,对于 SerDes 通道,您需要检查为 SerDes I/O 供电的 0.9V 和 1.8V 电源通道。 对于 DFS,请检查 VDD(0.8V)电源的功耗。 既然这是你的定制电路板,你有电源轨的功率测量电路吗? 如果你在自定义主板的输入上进行衡量,我不确定你会看到多大的差异。这还取决于测量的最小计数。 为进行检查,可在较低配置下运行核心/平台。查看设计检查表,其中有 VDD 轨功耗图表。 Re: Power down of modules on LX2160 custom board 你好, 感谢您的及时回复。我附上了我对您分享的有关功率优化建议的观察和测试结果。请查看它们,并与我们联系是否建议进行其他检查或配置。 要点 说明 CPU 热插拔/频率缩放观测 我们使用以下方法测试了 CPU 热插拔、CPU 频率缩放和不同的 CPU 模式: lscpu | grep line 观察结果: On-line CPU(s): 9 Off-line CPU(s): 0-8,10-15 不过,在这些情况下都没有观察到明显的功耗降低。 通过 DEVDISR 进行未使用的 IP 时钟门控 我们知道未使用的 IP 可以通过 devDisr 进行时钟门控。但是,由于禁用这些区块如果不重置就不可逆转,我们认为这种方法风险很高,因此不建议在我们当前的测试中使用这种方法。 未使用的 SerDes 通道掉电 寄存器写入成功。 不过,迄今为止还没有观察到明显的功耗降低。 SerDes 协议配置优化 PLL 掉电未使用的 Gen3 PCIe 应用配置: SRDS_REFCLKF_DIS_S2 = 1 SRDS_PRTCL_S2 = 11 SRDS_INTRA_REF_CLK_S2 = 0 SRDS_PLL_PD_PLL3 = 1 Re: Power down of modules on LX2160 custom board 你好, 我们正在使用这些连接到 BMC 的电流传感器来测量功耗,其中 VCC_12V 感应定制板的输入,而 VCC_0V8 正在感应恩智浦 (LX2160A) 芯片组的输入。 同样 在闪存时(这些以 VCC_12V 即总功耗测量)-使用 CodeWarrior(可能会下降约 10W)和 -使用 (echo mem > /sys/power /state & echo freeze > /state sys/power/state)(可能会下降约 6W)(但在此之下,由于不存在用户交互,因此不建议将其用于我们的测试), Re: Power down of modules on LX2160 custom board 与内部团队讨论,我们我们已经回答了 您的与配置相关的问题。 在 12V 输入电压下,10 瓦的功耗在我们看来是相当合理的。 我们对于 LX2160A 而言,这是很合理的。 请 请分享您的目标,您的 示意图和配置、日志和应用。我们将检查还能实现哪些功能。
查看全文
当 PN7160 设置为 LPCD 模式时,不能使用 2×2 厘米天线从 LPCD 模式激活它。 使用 “NFC 天线工具”,我们为 PN7160 设计了一个 2 cm × 2 cm 的板载天线,Q 系数为 20,目标阻抗为 11 Ω。由于这是一个小型天线,我们根据 "PN7160 常见问题 [AN13892]"启用了 PN7160 的 DPC。 在这种情况下,如果我们不启用 PN7160 的 LPCD 模式,两台 PN7160 设备可以通过 P2P 进行正常通信。但是,如果我们启用 PN7160 的 LPCD 模式,PN7160 将无法从 LPCD 模式唤醒。不过,使用相同的驱动器,我们可以用 2 厘米 × 4 厘米的天线从 LPCD 模式激活它。 来自 2 厘米 × 2 厘米天线的 LPCD TRACE 信息如下: D (6358097) PN7160_I2C:NCI<< 0x6f 0x13 0x04 0x80 0x83 0x80 0x03 D (6358597) PN7160_I2C:NCI<< 0x6f 0x13 0x04 0x80 0x83 0x80 0x03 D (6359107) PN7160_I2C:NCI<< 0x6f 0x13 0x04 0x80 0x83 0x80 0x03 D (6359617) PN7160_I2C:NCI<< 0x6f 0x13 0x04 0x80 0x83 0x80 0x03 有关天线设计参数,请参阅附件。 并将 CORE_SET_CONFIG_CMD 设置为 : uint8_t NxpNci_CORE_CONF_EXTN[]={0x20, 0x02, 0x6B, 0x05, /* CORE_SET_CONFIG_CMD */ 0xA0, 0x40, 0x01, 0x81、 /* TAG_DETECTOR_CFG */ 0xA0, 0x41, 0x01, 0x10, /* TAG_DETECTOR_THRESHOLD_CFG */ 0xA0, 0x42, 0x01, 0x0F、 /* TAG_DETECTOR_PERIOD_CFG */ 0xA0, 0x43, 0x01, 0x00, /* TAG_DETECTOR_FALLBACK_CNT_CFG */ 0xA0, 0x0B, 0x57, 0xE5, 0x05, 0x90, 0x6E, 0x0F, 0x4E, /* DPC_CONFIG*/ 0x00, 0x40, 0x95, 0xB7, 0xAA, 0x40, 0x9F, 0xA7, 0x99、 0x53, 0x9F, 0x97, 0x99, 0x5D, 0x9F, 0x97, 0x99, 0x5F, 0x9F, 0x97, 0x00, 0x68, 0x9F, 0x07, 0x00, 0x6A, 0x1F, 0x07, 0x00, 0x74, 0x1F, 0x07, 0x00, 0x78, 0x1F, 0x07, 0x00, 0x7F, 0x1F, 0x07, 0x00, 0x81, 0x1F, 0x07, 0x00、 0x8B, 0x1F, 0x04, 0x00, 0x8C, 0x1F, 0x04, 0x00, 0x96, 0x1F, 0x04, 0x00, 0x98, 0x1F, 0x04, 0x00, 0xA1, 0x1F、 0x02、0x00、0xA9、0x1F、0x00、0x00、0xAF、0x1F、0x00、 0x00、0xB8、0x1F、0x00、0x00、0xC2、0x1F、0x00、0x00 }; 这个问题是由天线匹配还是寄存器设置引起的? Re: When the PN7160 is set to LPCD mode, it cannot be activated from LPCD mode using a 2×2 cm antenn 您好,感谢您对我们的产品感兴趣。 您的设置有一些局限性,我想谈谈。 尽管可以使用 2x2 厘米的天线,但建议尝试使用尺寸稍大的天线。 我还想澄清一点,NFC 论坛不推荐使用 P2P,我们强烈建议使用 HCE 和读/写模式。 启动器的天线尺寸很可能太小,不会导致目标失调。 您是否尝试过用普通的 PICC(如卡片)唤醒 LPCD 读取器?这样做的结果是什么? 请分享史密斯手推车和原型图,以便进一步审查。 Re: When the PN7160 is set to LPCD mode, it cannot be activated from LPCD mode using a 2×2 cm antenn 您能测量天线的阻抗吗? 似乎相对较低。 Re: When the PN7160 is set to LPCD mode, it cannot be activated from LPCD mode using a 2×2 cm antenn 非常感谢您的答复,但我现在没有 VNA。如果还是不能解决问题,我就去买一个。您还有其他建议吗? Re: When the PN7160 is set to LPCD mode, it cannot be activated from LPCD mode using a 2×2 cm antenn 非常感谢您的回复。 目前,我们使用 P2P 是为了兼容性而做出的妥协。我们重新优化了天线形状和 PCB 布局,但问题依然存在。附件中的第一张图片是天线原理图,其中包含使用 "NFC 天线工具 "生成的参数;第二张图片是 PN7160 及其外围电路的原理图;第三和第四张图片显示了 PCB 布局的顶视图和底视图;第五张图片显示了我们输入 NFC 天线工具的参数。 根据 AN13219(PN7160 天线设计和匹配指南)第 23 页,我们将非对称和对称调谐方案的 Q 值、目标阻抗、fEMC 截止频率和 L0 分别设置为 20、13 Ω、22 MHz 和 20、11 Ω、14.6 MHz。但是,在这两种情况下,LPCD TRACE 的通知信息仍然是: D (564760) PN7160_I2C:NCI<< 0x6f 0x13 0x04 0x80 0x83 0x80 0x03。 无论我们用手指还是金属物体靠近天线,测量结果都不会改变。 Re: When the PN7160 is set to LPCD mode, it cannot be activated from LPCD mode using a 2×2 cm antenn 我们还参考了 "PN7160 天线设计与匹配指南",并使用该程序读取了 AGC 值: 无效 Get_AGC(SemaphoreHandle_t Semaphore_PN7160_IRQ) { uint8_t 获取[] ={0x2F, 0x3D, 0x04, 0x02, 0xC8, 0x60, 0x03}; uint8_t 答案[255]; uint16_t 答案大小; 虽然(1)     { printf("\n");   NxpNci_HostTransceive(Semaphore_PN7160_IRQ, 获取, sizeof(获取), 答案, 大小(答案), &答案大小); 如果((答案[0] != 0x4F) ||(答案[1] != 0x3D) ||(答案[3] != 0x00)) { printf("错误,无法获取参数值\n");      } 不然 { printf("\n"); printf("测量的 AGC 值 (LSB)= %.2Xh", 答案[4]); printf("\n"); printf("测量的 AGC 值 (MSB)= %.2Xh", 答案[5]); printf("\n");      }    } }   不过,我们得到的结果很奇怪,它并没有列在 UM11495 号文件的 TEST_ANTENNA_RSP 返回值列表中。我们读取的值是 0x06: (7600) PN7160_I2C:NCI>> 0x2f 0x3d 0x04 0x02 0xc8 0x60 0x03 D (7600) PN7160_I2C:NCI<< 0x4f 0x3d 0x01 0x06 但 UM11495 只提到四种可能的结果: 0x00: STATUS_OK 0x01: 拒绝执行测试(PN7160 处于错误状态) 0x04: STATUS_TEST_EXEC_FAILED 0x09: STATUS_INVALID_PARAM 其他:RFU
查看全文
Cortex-M33 上的 i.mx93 LPSPI + eDMA 问题 我使用的是 Tria i.MX9332(B1 硅)SMARC 模块,并尝试在 Cortex-M33 上使用带有 eDMA 的 LPSPI6,但无法正常工作。 开发环境 VS 代码 1.109.0 用于 VS 代码扩展的 MCUXpresso 26.1.56 SDK 25.09.00 硬件 在定制载板上试用 SM2S-IMX93 通过 SPI(LPSPI6)连接带有ILI9341控制器的 LCD 现状 使用不带 DMA 的 LPSPI6 时,显示正常。 我试图切换到LPSPI6 + eDMA以提高吞吐量,但无法收到完成通知。 问题 基于 DMA 的传输似乎开始了,但我从未在传输结束时收到 LPSPI DMA 完成回调。 详细信息和相关代码/配置见附件。 有人能指出我可能遗漏了什么,或者为什么没有触发信号吗? Re: i.mx93 LPSPI + eDMA problem on Cortex-M33 感谢您提供的示例代码。回顾范例让我明白了这一点。 Re: i.mx93 LPSPI + eDMA problem on Cortex-M33 你好@albi84 请参考附件中的补丁文件配置 LPDPI 与 EDMA B.R Re: i.mx93 LPSPI + eDMA problem on Cortex-M33 你好 能否请您分享带有 eDMA 的 LPSPI 的骨架? 谢谢。 Re: i.mx93 LPSPI + eDMA problem on Cortex-M33 这不是一个骨架,而是我使用的实际代码。这有帮助吗?
查看全文
在 i.MX9 板上为扩展接头启用 3.3 V 和 5 V 稳压器 该补丁系列支持 i.MX93-QSB、i.MX93-FRDM 和 i.MX91-FRDM 板上的树莓派扩展连接器使用的外部 3.3 V 和 5 V 电源轨。 这些调节器已在设备树中定义,但默认情况下处于禁用状态。通过激活它们,兼容 RPI 的扩展接头可以正确地为外部模块、HAT 和附加板供电。 董事会变更: i.MX93-QSB 启用 RPI 连接器使用的 3.3 V 和 5 V 外部供电线路。 i.MX93-FRDM 启用 RPI 连接器使用的 3.3 V 和 5 V 外部供电线路。 i.MX91-FRDM 启用 RPI 连接器使用的 3.3 V 和 5 V 外部供电线路。 目的是 为兼容 Raspberry Pi 的扩展端口提供适当的电源。 为连接外部 HAT 或模块的用户提高硬件兼容性。 对齐所有 i.MX9 参考板,为 RPI 连接器使用一致的电源树配置。
查看全文
在线纠错码:它的作用以及如何实现 在线纠错码 (Inline ECC) 是一种能够实时检测并纠正内存或存储设备中发生的位错误的机制。在i.MX 8M Plus等 DDR 控制器上启用在线纠错码功能会降低 DDR 访问性能,但由于 ECC 区域仅占用大约八分之一的 DDR 容量,因此无需额外添加专用内存来存储 ECC 码(从而降低了物料清单成本)。 本文解释了内联 ECC 的功能,并介绍了如何实现它。   1. i.MX 8M Plus 在线 ECC 功能   i.MX 8M Plus DDR 控制器支持在线 ECC,可保护系统免受软错误(例如由 α 射线、中子等引起的 DRAM 位翻转)的影响。它为每 64 位数据存储 8 位 ECC(纠错码),从而能够纠正单比特错误并检测双比特错误。 由于没有专门用于存储 ECC 的内存,因此大约 1/8 的 DDR 容量被用作 ECC 区域。 由于 32 位数据总线在数据和 ECC 之间共享,启用内联 ECC 功能会降低 DDR 访问性能。   1.1.单比特纠错 (SEC) SEC 是 DDR 控制器的一项功能,用于检测单比特错误并将其纠正为正确的值。 图1 SEC示意图   1.2.双比特错误检测 (DED) DED 是 DDR 控制器的一项功能,用于检测双比特错误。 图2 DED概念图 笔记: 实际上,SEC 和 DED 是在 64 字节对齐的数据区(加上 8 字节的 ECC)中检测的,而不是在 8 字节中检测的。   2.内联 ECC 内存映射(概要)   根据 DDR 容量的不同,设置内联 ECC 内存映射的方法也会有所不同。   2.1.DDR密度是2的幂(二进制对齐密度) 例如,对于 1、2、4、8、16GB 的情况, DDR的低地址7/8用作数据区,高地址1/8用作ECC区。ECC区通常不可访问。 数据区域最多分为八个区域:区域 0 至 6 和其他区域。每个区域都可以启用或禁用 ECC 功能。 区域 0 至 6 的容量相同,分别设置为 DDR 容量的 1/8、1/16、1/32 或 1/64。其余区域均为其他区域。 以下是当区域 0 到 6 的容量设置为 1/8 时的内存映射。在这种情况下,没有其他区域。 图 3内存映射示例 (1/8) 下面显示的是当区域 0 到 6 的容量设置为 1/16 时的内存映射。 图 4内存映射示例 (1/16) 2.2.非 2 的幂次方的 DDR 密度(非二进制对齐密度) 例如,对于 3、6 或 12 GB 的情况(i.MX 8M Plus LPDDR4 EVK 为 6 GB,因此这适用于这种情况)。 将整个 DDR 分成三份,每份的容量是 2 的幂。 3GB内存,1GB x 3 6GB内存,2GB x 3 12GB版本,4GB x 3 对于分为三部分的低地址区域,进行如下设置:2.1. 当 DDR 容量为 2 的幂时。 三段式地址划分中,上两个地址区域的设置与下地址区域的设置相同。 下面显示的是设置为 1/8 时的内存映射。 图 5 DDR 容量不是 2 的幂(1/8)时的内存映射示例 3.使用 DDR 寄存器编程辅助工具进行设置   使用DDR 寄存器编程辅助工具(DDR RPA) 配置内联 ECC。 笔记: 请准备一个 DDR RPA,该 RPA 可以运行禁用内联 ECC 的 DDR 压力测试(并且还可以验证其是否可以运行 u-boot)。 由于存在漏洞,i.MX8MP LPDDR4/DDR4 RPA v6 或更早版本无法正常工作内联 ECC。请使用 v7 或更高版本。除非有特殊情况,否则请使用最新版本的 DDR RPA。(截至 2024 年 9 月,最新版本为 v9。) Linux BSP 的 U-Boot 中包含的 i.MX 8M Plus EVK 的lpddr4_timing.c 文件。以及ddr4_timing.c虽然乍一看似乎可以正常工作,因为它包含了定义 CONFIG_IMX8M_DRAM_INLINE_ECC ,但内联 ECC 设置存在问题,无法正常工作。即使您使用的是 EVK 进行测试,也请使用 DDR RPA 和 DDR Tool 生成 lpddr4_timing.c/ddr4_timing.c 文件。 3.1.启用在线 ECC 在 DDR RPA 寄存器配置表中,将内联 ECC 项设置为启用。   3.2.内存映射   3.2.1.DDR密度是2的幂(二进制对齐密度) 如果 DDR 容量是 2 的幂,请使用 ECC_Config_BinaryAligned 表。 指定区域 0 至 6 的容量。(1/8、1/16、1/32 或 1/64) 启用或禁用 0 至 6 区及其他区域的 ECC(受保护或未受保护)。 这是区域 0 到 6 的容量设置为 1/8 时的示例。 图 6 DDR RPA 设置 (1/8) 这是一个将 0 到 6 区的容量设置为 1/16 的示例。 图 7 DDR RPA 设置 (1/16) 3.2.2.非 2 的幂次方的 DDR 密度(非二进制对齐密度) 如果 DDR 容量不是 2 的幂,请使用 ECC_Config_nonBinaryAligned 表(i.MX 8M Plus LPDDR4 EVK 就是这种情况,容量为 6GB)。 指定区域 0 至 6 的容量。(1/8、1/16、1/32 或 1/64) ECC 启用或禁用内存区域 0 中的区域 0 到 6 以及其他区域(受保护或未受保护)的 ECC。 ECC 内存区域 1/2 将自动设置为与 ECC 内存区域 0 相同的设置。 这是区域 0 到 6 的容量设置为 1/8 时的示例。 图 8 DDR RPA 设置 (1/8) 这是一个将 0 到 6 区的容量设置为 1/32 的示例。 图 9 DDR RPA 设置 (1/32) 4.使用 DDR 工具进行测试并生成 lpddr4_timing.c/ddr4_timing.c 文件   您可以使用 DDR 工具来检查 DDR RPA 中所做的设置的运行情况。 如果 DDR 压力测试通过,则生成 lpddr4_timing.c/ddr4_timing.c 以合并到 U-Boot 中。   5. U-Boot 中的内联 ECC 实现   5.1.替换 lpddr4_timing.c/ddr4_timing.c lpddr4_timing.c 或者将 ddr4_timing.c 替换为 DDR RPA 和 DDR Tool 生成的文件。 uboot-imx/board/freescale/imx8mp_evk/lpddr4_timing.c uboot-imx/board/freescale/imx8mp_evk/ddr4_timing.c   5.2.添加配置 将 CONFIG_IMX8M_DRAM_INLINE_ECC=y 添加到您的 U-Boot 配置文件中。 将清单 1添加到 uboot-imx/configs/imx8mp_evk_defconfig CONFIG_IMX8M_DRAM_INLINE_ECC=y 笔记: U-Boot 配置文件 imx8mp_evk_inline_ecc_defconfig 是在 Linux BSP 5.4 中添加的,但由于维护不当,已被弃用。使用 EVK 进行测试时,更安全的做法是将配置添加到 imx8mp_evk_defconfig 中并使用它。 5.3.更改Linux保留区域¶ 软件禁止访问 ECC 区域。因此,设备树会动态修改,以便 Linux 内核(以及其他系统软件)将 ECC 区域视为保留区域。默认值硬编码为与 EVK 的 DDR 容量相匹配(LPDDR4 为 6GB,DDR4 为 4GB),因此如果 DDR 容量与 EVK 的容量不同,则必须修改代码。 使用uboot-imx/board/freescale/imx8mp_evk/imx8mp_evk.c中的函数 ft_board_setup 来更改 ECC 区域,使其与实际 DDR 容量相匹配。例如,对于 DDR4,ECC 区域的起始地址和大小是硬编码的,假定 DDR 容量为 4GB。 列表 2: DDR4 容量硬编码为 4GB phys_addr_t ecc_start = 0x120000000; size_t ecc_size = 0x20000000; 如果实际 DDR 容量为 2GB,则从物理地址 0x40000000 到 0xc0000000 的 1/8 (256MB) 高地址保留为 ECC 区域。 示例 3 :将 DDR 内存容量更改为 2GB phys_addr_t ecc_start = 0xb0000000; size_t ecc_size = 0x10000000; imx8mp_evk.c 如果您不使用它,则需要添加与 ft_board_setup 函数等效的处理。   5.4.搬迁支持 如果 DDR 容量为 2GB 或更小,且未安装 OPTEE,U-Boot 会尝试重定位到 DDR 的最高地址,但由于该地址与 ECC 区域重叠,因此会在重定位过程中卡住。为避免这种情况,请添加 imx8mp_evk.h 文件。将 ECC 区域容量从 DDR 容量定义 PHYS_SDRAM_SIZE 中减少 (1/8)。 清单 4 uboot-imx/include/configs/imx8mp_evk.h -#define PHYS_SDRAM_SIZE 0x80000000 +#define PHYS_SDRAM_SIZE 0x70000000   5.5.排除对 ECC 区域的访问处理 如果 U-Boot 中还有其他代码访问了 ECC 区域,则需要排除对 ECC 区域的访问。例如,如果内存测试访问了整个 DDR 区域,则需要修改该测试,使其不再访问 ECC 区域。 参考: https ://github.com/nxp-imx/uboot-imx/blob/lf-6.1.55-2.2.0/configs/imx8mp_evk_defconfig#L10-L11   6. Linux 系统运行检查   6.1.查看启动日志 确保在 Linux 启动时已安装 EDAC 驱动程序。(EDAC = 错误检测和纠正)i.MX 8M Plus 的 EDAC 驱动程序位于linux-imx/drivers/edac/synopsys_edac.c 。 清单 5检查启动日志 root@imx8mp-lpddr4-evk:~# dmesg | grep EDAC [ 0.116733] EDAC MC: Ver: 3.0.0 [ 1.874689] EDAC MC0: Giving out device to module 1 controller synps_ddr_controller: DEV synps_edac (INTERRUPT)   6.2.检查内存映射 使用命令 cat /proc/iomem 确认 ECC 区域已按照5.3 节“更改 Linux 保留区域”中的配置设置为保留。以下是 i.MX 8M Plus LPDDR4 EVK(DDR 容量 6GB)的示例。 列表 6检查内存映射 root@imx8mp-lpddr4-evk:~# cat /proc/iomem | grep reserved ... b0000000-bfffffff : reserved ... 130000000-13fffffff : reserved ... 1b0000000-1bfffffff : reserved   6.3.检查何时发生 ECC 错误 根据应用说明AN13566 - i.MX 8 系列上的 ECC ,i.MX 8M Plus 中的 DDR 控制器没有故意生成 ECC 错误的功能。 3.2.9通过软件注入ECC错误 ECC 错误注入是系统级软件验证的一个有用的可选功能。与边带 ECC 不同,它没有专门的硬件支持。但是,可以通过软件注入错误,方法是通过“ECC_REGION_PARITY_LOCK”寄存器解锁 ECC 区域并覆盖 ECC 奇偶校验位。当从受保护的内存区域读取相应的地址时,根据引入的错误类型,会产生可纠正的或不可纠正的 ECC 错误。 注意:DDR 控制器不支持 ECC 数据中毒。参考手册将进行更新,移除此功能。 因此,我们解锁ECC区域,并从内核层面修改ECC区域以模拟ECC错误并进行测试。基本思路如下: 将 8 字节值 0xffffffff_ffffffff 写入 DataAddr。DDRC 向 DDR 写入数据的同时,还会写入 1 字节的 ECC 纠错码。 解锁 ECC 区域,允许核心访问 ECC 区域。 获取与 DataAddr 对应的 ECC 字节的地址,并读取 ECC 的一个字节。 将反转后的值 0xffffffff_fffffffe 写入 DataAddr。同时更新 ECC 1 字节。 ECC 1 字节,ECC 读取于 3。将字节值写回。 锁定 ECC 区域,禁止从核心访问 ECC 区域。 读取 DataAddr 的值。此时,由于 ECC 不一致,单比特纠错被激活,并读取纠错后的 8 字节值 0xffffffff_ffffffff。同时,内核也会收到一个可纠正错误中断通知。 笔记: 由于这涉及到访问 DDR,因此必须在非缓存区域执行测试。 图 10单比特纠错 (SEC) 测试方法¶   双比特错误检测 (DED) 调试也可以用同样的方法进行。   7.参考资料 应用说明: AN13566 - i.MX 8 系列的 ECC 应用说明:AN13616 - 验证 i.MX 8 直列式 ECC 引擎功能(请联系您的 NXP 代表以获取此文档) i.MX 8M 系列 DDR 工具发布 - NXP 社区 i.MX 8M Plus DDR寄存器编程辅助工具 (RPA) - NXP社区 8.注意 本文档是使用恩智浦产品的参考指南。 有关正式规格,请参阅产品手册和应用说明。 实际操作可能因各种条件(例如所使用的软件版本)的不同而与所述内容有所不同。 并非所有功能都已验证,因此请务必验证和测试产品,以确保其符合您的预期用途。 =========================​ 我们目前无法 回复 此帖子“ 评论”部分的评论。 对于由此造成的不便,我们深表歉意。如有任何疑问, 请 参考“ 如何就 技术问题 联系 NXP ( 日语 博客 ) ” 。 (如果您已经是 恩智浦的 分销商或 与 恩智浦 有业务往来 ,您可以直接联系负责人。 ) 在线纠错码 (Inline ECC) 是一种能够实时检测并纠正内存或存储设备中发生的位错误的机制。在i.MX 8M Plus等 DDR 控制器上启用在线纠错码功能会降低 DDR 访问性能,但由于 ECC 区域仅占用大约八分之一的 DDR 容量,因此无需额外添加专用内存来存储 ECC 码(从而降低了物料清单成本)。 本文解释了内联 ECC 的功能,并介绍了如何实现它。 i.MX 处理器 日本博客
查看全文
PN7160とnRF52840 こんにちは、 カスタムPCB上のnRF52840モジュール(Raytac MDBT50Q-1MV2)にI2C経由でコネクテッドされた外付けNFCリーダ/コントローラ(NXP PN7160A1HN/C100E)を使用しています。(プログラミングは、nRF52840 DKをデバッグプローブとして使用し、SWD経由で行います。) 現在のソフトウェア環境は、VS Code(Windows 11)のnRF Connect SDK(NCS)v3.2.0とZephyr RTOS v4.2.99です。目標は、PN7160(NCI-over-I2C)を使用して、RF検出を開始し、13.56MHzパッシブカードのUIDを読み取ることです。 私はPN7160を「典型的なZephyrの方法」で統合しようと試みました。 ソース/メイン.c ボード/nrf52840dk_nrf52840.オーバーレイ prj.conf I2C ピンと PN7160 GPIO (VEN/IRQ) を設定できますが、初期化が失敗します (プローブ中または最初のコマンド中の I2C -EIO/NACK)。その結果、RF 検出全体が機能せず、統合アプローチが正しいかどうかわかりません。 質問: NCS/Zephyrでは、`main.c`を変更するだけでPN7160をプログラムすることは可能ですか?+ `nrf52840dk_nrf52840.overlay` + `prj.conf`、それともPN7160には適切なカスタムドライバが必要であると予想されますか? ドライバが必要な場合、NCS でドライバを追加するための推奨アプローチは何ですか (デバイスツリー バインディング YAML + Kconfig + CMake + ドライバ ソース)。また、外部 Zephyr モジュール (zephyr/module.yml + EXTRA_ZEPHYR_MODULES) としてパッケージ化する必要がありますか?これを行う方法のサンプル コードはありますか (パブリック github リポジトリのようなものですが、見つけることができませんでした)? プローブ/最初の書き込み時に -EIO を引き起こす可能性のある、別の方法で処理する必要がある既知の NCS v3.2.0 / Zephyr 4.2.99 I2C/TWIM 動作はありますか? 他に役立つコメントがありましたら、ぜひ教えてください。 ご協力ありがとうございます!
查看全文
MCXN947 I3C IBI 有效载荷问题 您好, 我遇到了一些关于 I3C 接收 IBI 有效载荷的问题。希望你们能提供帮助。欣赏。 当我使用 NXP974 作为 I3C 主站时,我们能收到多少个包含 MDB 的有效载荷数据?在我的测试中,似乎最大值为8字节。(一个 MDB 和七个有效载荷数据)。但是从规范来看,它表明支持 9 字节的支持包括 MDB。您能帮忙确认一下吗? 规格:控制器在 9 字节(包括必填数据字节)后自动停止 IBI 数据。 我遇到的另一个问题是,当我将有效载荷设置为8字节时,我确实收到了来自fifo的8字节,但是即使我们没有从i3c目标发送新的IBI,它也会再次进入IBI并导致系统卡住。当有效载荷大小于 8 字节时,它运行良好。 我检查了 SDATACTRL 的 RX FIFO 计数,是 8。我认为这是正确的。而 irq 的状态似乎是正确的,与正常情况下的状态(0x2e00)相同。所以我想这也是正确的。 然后,我尝试捕获洛杉矶的波形。我发现正确和不正确的情况有些不同。 在正常情况下(有效载荷< 7),最后一个 T 位的整个时钟周期为低电平,然后产生一个停止信号。 在错误的情况下,SDA将在T位时钟的上升沿处于高位。然后,重新发送时钟(开漏)。 你知道恩智浦发生了什么事吗?为什么有效载荷大小不同时会有不同的行为? MCX N Re: MCXN947 I3C IBI payload issue 嗨,杰姬! 我们过去也遇到过这个问题,并向恩智浦报告过。我们得到确认,这是恩智浦 I3C IP 模块中的一个错误。IBI 有效负载长度不能大于 8 字节,此外,I3C 目标应使用 T-Bit 来表示最后一个字节中的数据结束(T-Bit LOW)。I3C IP 块作为控制器时,如果 T 位为高电平,则不能发出 STOP 条件。 Re: MCXN947 I3C IBI payload issue 你好@JackieZhu 是的,你说得对。I3C 目标支持在强制数据字节之后最多七字节的扩展 IBI 数据。 因此,包括 MDB,最大值为 8 字节。(一个 MDB 和七个有效载荷数据)。 BR 哈利
查看全文
RW612 IO_MUX_SetPinMux(IO_MUX_FC3_USART_DATA); の IO 多重化機能を変更するにはどうすればよいでしょうか? この機能は、I/O を多重化するために使用しますか? /*! * @brief IO_MUX ピンの MUX モードを設定します。 * @note パラメータにはピン機能 ID マクロを入力できます。 * * これは、GPIO2/GPIO3 を Flexcomm0 UART RX/TX として設定する例です。 * @コード * IO_MUX_SetPinMux(IO_MUX_FC0_USART_DATA); * @endcode * * これは、GPIO6/GPIO10 を Flexcomm1 I2C SDA/SCL として設定する例です。 * @コード * IO_MUX_SetPinMux(IO_MUX_FC1_I2C_6_10); * @endcode * * @Param pinLowMask GPIO0-31 ピン マスク。 * @Param pinHighMask GPIO32-63 ピン マスク。 * @Param gpioFcSetMask IO_MUX_GPIO_FC_MASK() で定義される、設定する GPIO および Flexcomm レジスタマスク * @Param gpioFcClrMask クリアするGPIOおよびFlexcommレジスタマスク。IO_MUX_GPIO_FC_MASK()で定義されます。 * @Param fselSetMask 設定するFSELレジスタマスク * @Param fselClrMask クリアするFSELレジスタマスク * @Param ctimerSetMask IO_MUX_CTIMER_MASK() で定義される、設定する C_TIMER_IN/C_TIMER_OUT レジスタマスク * @Param ctimerClrMask クリアする C_TIMER_IN/C_TIMER_OUT レジスタマスク。IO_MUX_CTIMER_MASK() で定義されます。 * @Param sctimerSetMask 設定するSC_TIMERレジスタマスク * @Param sctimerClrMask クリアするSC_TIMERレジスタマスク / 静的インラインvoid IO_MUX_SetPinMux(uint32_t pinLowMask, uint32_t ピンハイマスク、 uint32_t gpioFcSetMask、 uint32_t gpioFcClrマスク、 uint32_t fselSetMask、 uint32_t fselClrMask、 uint32_t ctimerSetMask、 uint32_t ctimerClrMask、 uint32_t sctimerSetMask、 uint32_t sctimerClrマスク) このマクロは設定ツールで生成されたのでしょうか?数値やマスクされたマクロが満載で、全く読めません。 #IO_MUX_FC3_USART_DATA を定義する \ 0x05000000U, 0x00000000U, /* ピンマスク */ \ IO_MUX_GPIO_FC_MASK(0, 3, 0x200), IO_MUX_GPIO_FC_MASK(1, 3, 0x1EE), /* GPIO&FCマスク */ \ 0x00000000U, 0xC0000000U, /* FSELマスク */ \ IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x40, 0x40), /* CTimerマスク */ \ IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x10, 0x10) /* SCTimerマスク */ 別の IO に変更するにはどうすればいいでしょうか? Re: RW612 IO_MUX_SetPinMux(IO_MUX_FC3_USART_DATA); IO复用如何修改? お返事ありがとうございます。 1. シリアル ポート (UART) 通信用に別の I/O ポート セットを選択します。 2. SDKを読んでいて、その中のコードを参照しています。MCUXpressoスタイルのコードに初めて触れたので、よくわからない部分があります。MCUXpresso を 使ってFlexCommをUARTとして実装する方法についてのドキュメントやウェブページ はありますか ? 3. 現在、ボードをダウンロードできません。 私はM33を選択しました。 ダウンロードできません J-linkは有料製品であり、既存の製品ではあまりサポートされていないため、あまり気に入っていません。代わりにCMSIS-DAPを使いたいと思っています。 しかし、ファームウェアを更新する方法を見つけることができませんでした。 プログラムのダウンロード機能を緊急に有効にする必要があり、ご協力をお願いいたします。 Re: RW612 IO_MUX_SetPinMux(IO_MUX_FC3_USART_DATA); IO复用如何修改? こんにちは、 SDK の例に基づいてアプリケーションを構築することをお勧めします。 Config Tools を使用してペリフェラルを変更または構成する必要はありません。必要に応じてソースコードを変更できます。 RW612用のモジュールを使用していますか? 具体的に何を達成したいのか説明していただけますか? よろしくお願いいたします。 ダニエル。 Re: RW612 IO_MUX_SetPinMux(IO_MUX_FC3_USART_DATA); IO复用如何修改? ダウンロードに成功しました。 Re: RW612 IO_MUX_SetPinMux(IO_MUX_FC3_USART_DATA); IO复用如何修改? こんにちは、 FRDM-RW612を使用していることをご確認ください。 UM12160をご覧ください。搭載デバッガーのファームウェアを更新するには、JP2 をショートする必要があります。セクション 3.5 に記載されている手順に従ってください。 よろしくお願いいたします。 ダニエル。
查看全文
SAF - ASIL Certification Hi Support, Customer is using S32K31 with SW32K3_SAF_1.0.5_D2503.  They are asking for our SAF ASIL certificates, or any document to show it is ASIL "ready/compliance". Regards, Marcus Safety_SW Re: SAF - ASIL Certification Hi Support, Any updates? Re: SAF - ASIL Certification Hi Marcus, for every premium SAF package there is possible to download Safety SW Assessment Summary report. For SAF 1.0.5 I can see that on Flexera available as well: S32K3_SAF_1.0.5_Safety_SW_Assessment_Summary.pdf Kind Regards, Radoslav Re: SAF - ASIL Certification Hi @marcuslim , It is now technically and legally restricted to share files with customers, only legal way is via sales force I think. Anyway, I wanted screenshot from nxp.com from SAF product page, same as I have shared, to see that is really missing. How does customer get the release? Safety Assessment should be there, everybody else can see that. I'm attaching here internally the report and let you find the way how to legally share the file with the customer. But please try to explain the customer proper way how to get it nxp.com=>Software accounts=>Automotive SW - S32K3 Premium Software=>Automotive SW - S32K3 - Safety Software Framework Kind Regards, Radoslav Re: SAF - ASIL Certification Thanks Radoslav! The customer has found the document.  We can close this thread. Regards, Marcus
查看全文
如何使用恩智浦 os08a20 摄像头在 iMX95 Verdin EVK 中将数据流推送到显示屏 我最近从https://www.nxp.com/design/design-center/development-boards-and-designs/4K-MIPI-CMOS-CAMERA-MODULE 购买了 X-IMX-OS08A20 摄像头模块。 我已将其连接到 iMX95 Verdin EVK 套件,摄像头能被正确检测并成功探测。 我使用的是以下 dtb-imx95-19x19-verdin-os08a20-isp-lt8912.dtb 我正在运行以下 v4l2 命令,并能使用 stream-mmap 命令获取 v4l2 数据流。以下是我使用的命令 media-ctl -d /dev/media0 -l"'os08a20 2-0036':0 -> 'csidev-4ad30000.csi':0[1]" media-ctl -d /dev/media0 -l"'csidev-4ad30000.csi':1 -> '4ac10000.syscon:formatter@20':0[1]" media-ctl -d /dev/media0 -l"'4ac10000.syscon:formatter@20':1-> 'crossbar':2[1]" media-ctl -d /dev/media0 -l"'crossbar':5 -> 'mxc_isi.0':0[1]" media-ctl -d /dev/media0 -l"'mxc_isi.0':1-> 'mxc_isi.0.捕获': 0 [1] " echo "媒体设置" media-ctl -d /dev/media0 -R "'os08a20 2-0036' [1/0->0/0[1]]" media-ctl -d /dev/media0 -R "'csidev-4ad30000.csi' [0/0->1/0[1]]" media-ctl -d /dev/media0 -R "'4ac10000.syscon:formatter@20' [0/0->1/0[1]]" media-ctl -d /dev/media0 -R"'crossbar' [2/0->5/0[1]]" echo"routing done" media-ctl -d /dev/media0 -V"'os08a20 2-0036':0/0 [fmt:SBGGR10/3840x2160 field:none]" media-ctl -d /dev/media0 -V"'csidev-4ad30000.csi':0/0 [fmt:SBGGR10/3840x2160 field:none]" media-ctl -d /dev/media0 -V"'4ac10000.syscon:formatter@20':0/0[fmt:SBGGR10/3840x2160 field:none]" media-ctl -d /dev/media0 -V"'crossbar':2/0 [fmt:SBGGR10/3840x2160 field:none]" media-ctl -d /dev/media0 -V"'mxc_isi.0':0/0[fmt:SBGGR10/3840x2160 field:none]" echo"linking Completed" 我运行以下命令,用 v4l2 获取帧数,结果达到了预期的 30 fps。 < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < 30.04 fps < < < < < < < < < < < < 48< < < < < < < < < < < < < < < < 30.04 fps <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<30.04 fps 我正试图将它推送到显示器上,却遇到了这个问题。 root @imx95 -19x19-verdin:~# gst-launch-1.0libcamerasrc !video/x-raw,format=BGRx,width=3840,height=2160 !视频转换 !fpsdisplaysink video-sink=autovideosink text-overlay=true 设置管道为 PAUSED ... [0:01:33.994814097][774] INFO Camera camera_manager.cpp:326libcamera v0.5.0+330-7fce0333-dirty (2025-06-04T12:23:54UTC) Pipeline is live and does not need PREROLL ... [0:01:34.098980249][780] WARN ISI imx8-isi.cpp:353无法找到支持的 YUV/RGB 格式 管道已 PREROLLED ... 将管道设置为正在播放 ... ERROR: from element /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: Internal data stream error. 附加调试信息: /usr/src/debug/libcamera/0.5.0.imx/src/gstreamer/gstlibcamerasrc.cpp(682):gst_libcamera_src_task_enter ():/GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: streaming stopped, reason not-negotiated (-4) ERROR: pipeline doesn't want to preroll. 执行在 0:00:00.000314034 后结束 将管道设置为 NULL ... [0:01:34.099615025][780] WARN ISI imx8-isi.cpp:353无法找到支持的 YUV/RGB 格式 ERROR: from element /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: Internal data stream error. 附加调试信息: /usr/src/debug/libcamera/0.5.0.imx/src/gstreamer/gstlibcamerasrc.cpp(682):gst_libcamera_src_task_enter ():/GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: streaming stopped, reason not-negotiated (-4) Freeing pipeline ... cam -c 1 --info [0:01:09.047021603][772] INFO Camera camera_manager.cpp:326libcamera v0.5.0+330-7fce0333-dirty (2025-06-04T12:23:54UTC) [0:01:09.152506530][772] WARN ISI imx8-isi.cpp:353无法找到支持的 YUV/RGB 格式 使用摄像机 /base/soc/bus@42000000/i2c@42530000/os08a20_mipi@36 作为 cam0 0: 3840x2160-SBGGR10 * Pixelformat:SBGGR10 (3840x2160)-(3840x2160)/(+1,+1) - 3840x2160 * Pixelformat:SBGGR12 (3840x2160)-(3840x2160)/(+1,+1) - 3840x2160 到目前为止,我还没有导出有关 libcamera 的 MATCH_LIST,以上就是这些日志。 之后,我导出 export LIBCAMERA_PIPELINES_MATCH_LIST='nxp/neo,imx8-isi' root@imx95-19x19-verdin:~# cam -c 1 --info [0:01:46.524765885][782] INFO Camera camera_manager.cpp:326libcamera v0.5.0+330-7fce0333-dirty (2025-06-04T12:23:54UTC) [0:01:46.642824790][783] INFO NxpNeoIPA neo_ipa.cpp:128nxpneo: IPANxpNeo NXPNEO_IPA_v0.5.0+330-7fce0333-dirty (2025-06-04T12:23:54UTC) 使用摄像机 /base/soc/bus@42000000/i2c@42530000/os08a20_mipi@36 作为 cam0 0: 3840x2160-BGR888 * Pixelformat:R8 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:R10 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:R12 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:R16 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:NV21 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:NV61 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:NV12 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:XBGR8888 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:BGR888 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:RGB888 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:XRGB8888 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:NV16 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:YUYV (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:XVUY8888 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:UYVY (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 之后,当我运行以下 gstreamer 命令时,数据流没有开始。该进程在被杀死之前不会有任何反应。 root @imx95 -19x19-verdin:~# GST_DEBUG=3 gst-launch-1.0libcamerasrc !视频转换 !autovideosink 将管道设置为 PAUSED ... [0:04:17.443233635][794] INFO Camera camera_manager.cpp:326libcamera v0.5.0+330-7fce0333-dirty (2025-06-04T12:23:54UTC) [0:04:17.562332552][798] INFO NxpNeoIPA neo_ipa.cpp:128nxpneo: IPANxpNeo NXPNEO_IPA_v0.5.0+330-7fce0333-dirty (2025-06-04T12:23:54UTC) Pipeline is live and does not need PREROLL .. 0:00:00.203418021 794 0xffffa4000b70 FIXME default gstutils.c:4169:gst_element_decorate_stream_id_internal: 创建随机 stream-id,请考虑采用确定性方式创建 stream-id 管道已 PREROLLED ... 设置管道为播放状态 ... 0:00:00.203987701 794 0xffffa4000b70 WARN default gstlibcamera-utils.cpp:345:gst_libcamera_stream_formats_to_caps:不支持 DRM 格式 R10 0:00:00.204038448 794 0xffffa4000b70 WARN default gstlibcamera-utils.cpp:345:gst_libcamera_stream_formats_to_caps:不支持 DRM 格式 R12 新时钟:GstSystemClock 0:00:00.204228106 794 0xffffa4000b70 WARN default gstlibcamera-utils.cpp:345:gst_libcamera_stream_formats_too_caps:不支持 DRM 格式 XVUY [0:04:17.578186764][799] INFO Camera camera.cpp:1205配置数据流: (0) 3840x2160-NV21 0:00:00.0/ 99:99:99. 如何克服这一问题。请您在这方面给我指点迷津。 Re: How to push stream to display in iMX95 Verdin EVK with the NXP os08a20 camera https://community.nxp.com/t5/i-MX-Processors/How-to-display-video-capture-by-OS08A20-camera-via-HDMI-LT8912/m-p/2170756/page/2 上述链接包含与流媒体有关的相同查询。由于我找不到解决方案,能否请您检查并确认提供了什么解决方案。谢谢。 Re: How to push stream to display in iMX95 Verdin EVK with the NXP os08a20 camera 我没有这个板可以重现这个问题,我用 imx95-19x19-evk-os08a20-isp-it6263-lvds0.dtb 测试了 HDMI,没有任何问题,请联系供应商来支持这个问题,或者尝试使用其他 dtb 文件再次进行测试 Re: How to push stream to display in iMX95 Verdin EVK with the NXP os08a20 camera 有没有什么解决办法,因为我看到很多人都在为同样的问题苦恼。我们已经买了全套设备和相机。如果您能提供以下帮助,将对我们大有裨益 Re: How to push stream to display in iMX95 Verdin EVK with the NXP os08a20 camera 目前我们不支持 Verdin EVK,因为 imx95 仍处于预生产阶段,我无法在板上重现这个,参考你的日志,问题与显示方面有关,你需要联系第三方公司检查他们是否对此进行了验证 Re: How to push stream to display in iMX95 Verdin EVK with the NXP os08a20 camera 您可以联系 https://www.toradex.com/support Re: How to push stream to display in iMX95 Verdin EVK with the NXP os08a20 camera 这个问题与恩智浦imx95 evk板不支持的lt8912有关,所以我无法重现这个问题并对其进行调试,而Verdin板支持的当前政策是客户需要联系Verdin进行检查,因为imx95仍处于试生产阶段,我们还没有支持第三方公司板,如果我能在我的板上重现这个问题,我可以尝试给你建议或解决方案,但是由于此问题只能在他们的板上使用他们的软件重现,因此请在当前阶段直接与他们联系 Re: How to push stream to display in iMX95 Verdin EVK with the NXP os08a20 camera 我已经从恩智浦克隆了内核源代码,并正在使用它(关于 SW)。在我的情况下,摄像头也能正常探测,并获得 v4l2 数据流。您能否帮我联系一下 Verdin 的联系人,以澄清这个问题。谢谢
查看全文
针对同步动态随机存取存储器(SDRAM)版本构建的 RT1170 调试 您好, 我正在使用 MCUXpresso 及其 SDK 为 RT1170 开发一个应用程序。 所提供的示例项目似乎都是使用 “DTC” RAM 版本的。与许多其他用户一样,我的应用程序太大了,无法容纳在那里,所以我正在尝试使用“同步动态随机存取存储器(SDRAM)”。 在尝试了论坛上其他一些帖子(尤其是https://community.nxp.com/t5/i-MX-RT/MCUXpresso-and-RT1050-download-and-debug-in-SDRAM/m-p/896979)中提出的解决方案后现在,我可以执行我的程序,如果应用程序已闪存,我还可以调试程序。 但是,如果我使用 “将应用程序链接到RAM” 进行版本和执行,那么一旦遇到断点,应用程序通常会卡在那里。 我的假设是这是因为我没有正确初始化同步动态随机存取存储器(SDRAM)。上述文章使用 “rt1050_SDRAM_init.scp 作为调试器初始化 同步动态随机存取存储器(SDRAM) 控制器的连接脚本”。如果我使用这个文件,失败也就不足为奇了。 我不知道如何调整这个脚本才能在 RT1170 上运行。有没有人这样做过,或者能提供如何生成的建议? 感谢您提供的任何帮助。 Re: RT1170 debugging when application is built for SDRAM 你好@ Jingpan 按照提供的步骤,使用 RT1170_BriefOverview_v210.pdf 中提到的修改刷新 hello world,我可以在调试模式下使用同步动态随机存取存储器(SDRAM)。 但是在这种变化之后,同步动态随机存取存储器(SDRAM)也用于存储代码。 在我的应用程序中,我希望代码存储在闪存中,而 BOARD_SDRAM 仅用于堆和堆栈部分。 我将把我的应用程序闪存到闪存中,该应用程序的堆和栈部分将使用 BOARD_SDRAM。 请指导我进行所需的更改。 Re: RT1170 debugging when application is built for SDRAM 谢谢@ Jingpan、 我只需要添加 .scp文件,结果成功了。 我已经掌握了第 5、第 6 和第 8 步,但我会试试其他步骤。 如果有帮助我还在 board.c 中做了以下更改,我认为这等同于<https://community.nxp.com/t5/i-MX-RT/MCUXpresso-and-RT1050-download-and-debug-in-SDRAM/m-p/896979>中描述的 RT1170_SDRAM_NOT_CACHED: #ifdef USE_SDRAM #ifndef RT1170_SDRAM_NOT_CACHED /* 区域 9 设置:内存为普通类型,不可共享,外部/内部回写 */ MPU->RBAR = ARM_MPU_RBAR(9, 0x80000000U); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_64MB); #else MPU->RBAR = ARM_MPU_RBAR(9, 0x80000000U); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 0, 0, 0, ARM_MPU_REGION_SIZE_64MB); #endif /* RT1170_SDRAM_NOT_CACHED */ #endif Re: RT1170 debugging when application is built for SDRAM 你好@robert_s、 此脚本适用于 RT1050/60,但不适用于 RT1170/60。您可以使用附带的脚本。除脚本文件外,您还需要执行其他步骤。 在 C/C++ 版本 > MCU 属性设置中的内存详细信息中,将 BOARD_SDRAM 移至 SRAM_DTC_M7 上方。 连接脚本使用 RT1170_connect_M7_wake_M4_SDRAM_init.scp。 在附加选项中添加 --cachelib libm7_cache.so。 如果使用 USB/以太网/SDHC,请将 DMA 缓冲区放入非缓存区。 在 MCU C 编译器> 预处理器中添加 USE_SDRAM。 在属性中选择链接到 ram->设置->受管链接器脚本 如果项目与 USB 关联,则在 MCU C 编译器> 预处理器中添加 DATA_SECTION_IS_CACHEABLE=1。 如果项目与不带 freertos 的 USB 主机相关联,则将堆放入 DTCM 或不可缓存区域 (bm) 此致, 景
查看全文
S32 DS 3.3 许可证过期 你好,我的 S32 Design Studio 3.3 已过期: S32 Design Studio v.3.3 版 订购编号 S32DS-3-3_146477567 订购单编号 许可证总数: 101 激活代码 AF1B-F377-2238-53BB 您能帮我解决这个问题吗?非常感谢! 亚历山大-穆勒 Re: S32 DS 3.3 License expired 你好、 您的 S32DS 许可证已延期。请使用旧代码重新激活 S32DS。
查看全文
S32K3 SAF - sCheck_ExecuteStartupTests 运行到 HardFault Execption 您好,技术支持、 客户分享了 一个问题,即在启动时调用 sCheck_ExecuteStartupTests(),之后在执行 ECC 测试时会跳转到硬故障异常。 您能帮忙检查一下这一点吗? MCU: S32K314 SAFETY_SW Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 你好@marcuslim, 对于每个 sCheck 测试,都必须遵循 sCheck UM 章节中描述的所有条件: L1 CACHE ECC 测试 在这种情况下,很可能是内存部分的位置和适当的 MPU 设置有误,这对正确执行该测试非常重要。 更多详情,请参阅 sCheck UM 章节: 内存分配(将内存分配到具有正确的可缓存或不可缓存 MPU 属性的部分至关重要) ,您还可以在 SAF 演示示例中探索链接器文件和 MPU 设置。 亲切的问候, Radoslav Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨,拉多斯拉夫、 Cusotmer 将恩智浦示例中的 sCheck_ExecuteRuntimeTests() 替换为 sCheck_ExecuteStartupTests(),结果遇到了类似的错误。 能否请您明确说明我可以在哪里检查? Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨 @marcuslim 不,你不能通过在专用的用于运行时测试的循环中替换 sCheck 启动测试来使用。 启动测试只应在应用程序启动过程开始时执行一次。 此外,SAF 演示示例不支持 K314,因此,如果您重复使用了某些链接器文件,它很可能不会遵循 K314 设备的内存映射,需要进行更新。 SAF 不容易内置,需要认真学习 sCheck 手册并了解软件功能安全概念。 亲切的问候, Radoslav Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨,拉多斯拉夫、 客户反馈: 不过,我们目前遇到了与 ECC 检查有关的问题。您可能已经注意到,恩智浦示例中也出现了类似的 ECC 检查问题。 内置SAF软件包非常具有挑战性,因此,我们将感谢恩智浦专家在这方面的支持。 您能否就我们需要遵循和验证的与链接器相关的具体要点或要求提出建议,以便正确内置 ECC 检查? 提前感谢您的帮助。 Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 你好,Marcus, ,所有信息都应该从 sCheck UM 中清楚地了解到,至少我通常不会遇到这类问题,所以 SAF 团队认为 sCheck UM 在这方面是清楚的。 您能否询问客户 sCheck UM 到底有哪些不清楚的地方,以便我们改进? 谢谢, Radoslav Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨,拉多斯拉夫、 客户将 *(.ramcode_no_cacheable) 从 int_sram_no_cacheable 移至 int_sram,结果运行正常。 如有任何意见,请随时提出。 根据 表 55.sCheck 模块中的 MemMap 部分, 以下部分必须放在特定的闪存区域中: s32_saf_const_flash_0 → 代码闪存 0 s32_saf_const_flash_1 → 代码闪存 1 s32_saf_const_flash_2 → 代码闪存 2 s32_saf_const_flash_3 → 代码闪存 3 不过,在我的系统中,我使用的是 A/B 交换因此,在任何时候都只有 闪存 0 和 闪存 1 被应用程序激活/使用。 放置 s32_saf_const_flash_2 和 s32_saf_const_flash_3 和 32_saf_const_flash_3 可能会干扰未使用的闪存区域(例如,为其他闪存组或 OTA 更新预留的闪存区域)。 我的问题是 是否有办法配置 sCheck,使其只在 Flash 0 和 Flash 1 上执行测试? 或者 是否有安全的方法来测试所有四个闪存块(闪存 0-3),而不影响 A/B 交换使用的非活动库的内容? 的内容? Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨,拉多斯拉夫、 除了上一篇文章中提出的问题外,客户还分享说,在执行sCheck_ExecuteStartupTests和sCheck_ExecuteRuntimeTests 之后,系统始终报告同一组与 ECC 相关的错误: scheck_err_dcache_ecc_cm7_0 scheck_err_icache_ecc_cm7_0 SCHECK_ERR_ITCM_M7_0_ECC SCHECK_ERR_DTCM_M7_0_ECC 在每次测试执行过程中,这些错误都会反复出现。 能否请您协助我们调查并确定这种行为的根本原因? 敬上, 马库斯 Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨 @marcuslim, 将 *(.ramcode_no_cacheable)从 int_sram_no_cacheable 移至 int_sram 起作用可能有点巧合。 我怀疑如果客户将 HFNMIENA 设置为 0,则在触发信号时可能会造成麻烦。 请检查一下 MPU_CTRL.HFNMIENA 的值是多少。 如果该值为零,则已针对即将发布的 1.0.6 版本进行了以下修复: [ASFT-19327] [sCheck] 不支持 Arm M7 HFNMIA - 恩智浦 JIRA sCheck 闪存测试不能仅缩减为 Flash_0 和 Flash_1,但已对即将发布的 1.0.6 版本进行了更改,无需将特定的闪存部分放入链接器文件中,而是使用配置的闪存地址,其中地址的内容不会被修改,这也可以解决 A/B 交换客户的问题。 https://jira.sw.nxp.com/browse/ASFT-19738 此致, 拉多斯拉夫 Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 你好@marcuslim ,我认为有一个共同的根源。 内存部分需要根据可缓存/不可缓存 MPU 属性正确放置,上一篇文章中提到的 HFNMIENA 位也会造成问题。 亲切的问候, Radoslav Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨,拉多斯拉夫、 客户尝试重新定位 *(.ramcode_no_cacheable)。 到 int_sram_noo_cacheable 而不是 内存 并将 HFNMIENA = 0。 此外,还对 MPU 进行了适当配置,以允许从不可缓存 RAM 区域执行代码。 经过进一步调查,发现在 sCheck_Tcm_RunEccTest 中的函数 sCheck_Tcm_MemTestEccCorrError 和 sCheck_Tcm_MemTestUncorrError 函数将被执行。 这两个函数都调用 sCheck_ErrRead(pParams,&result)。 但是,当 sCheck_Tcm_MemTestEccCorrError 成功完成、 scheck_tcm_memtestuncorrerRror 在 调用 scheck_errRead(PParams,& 结果)(附图中的第 1 点)时会 触发 HardFaul t, 系统随后卡在 BusFault 处理程序 (所附图像中的第 2 点) 中。 能否请您帮助调查一下这一点? Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨 @marcuslim, 对不起我错了,你的 SAF 版本中的正确设置应为 HFNMIENA = 1,以避免在异常中更改 MPU 设置,这可能会进一步导致缓存之后刷新一些变化。这就解释了为什么 TCM correctable 可以通过,而 Uncorrectable 不能通过,因为它使用异常来测试正确的反应。 亲切的问候, Radoslav Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨,拉多斯拉夫、 客户反馈: >>>>>>>> 配置HFNMIENA = 1 后,我发现sCheck_ExecuteStartupTests()可以正常运行。此时,我不再观察到任何与 ECC 相关的错误。我将进行额外的压力测试,以进一步验证这种行为。 但是,当调用 sCheck_ExecuteRuntimeTests() 并随后调用 sCheck_Tcm_MemTestUncorrError() 时,系统会在设置 INVSTATE(无效状态)标志的情况下触发信号 UsageFault 异常。 请问sCheck_ExecuteStartupTests()和sCheck_ExecuteRuntimeTests()之间是否存在任何设计上的差异或特定的使用条件,会导致这种行为? 此致, 马库斯 Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 您好@marcuslim, 如果启用了 FPU,这可能表明存在参数问题,我们需要进一步调查。 您能否尝试禁用 FPU 并重新进行测试? 现在结果如何? 启用 FPU 后,能否在 Watch 窗口的异常跟踪中使用这些变量: sCheck_ErrRead_ExceptionContext.bAbortFlag sCheck_DetectedFaults[0] 并再次粘贴截图? FCCU NCF_2 通道的配置反应是什么? , Radoslav。 Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨,拉多斯拉夫、 请在此提供所需的信息: 要点 1:禁用 FPU - 同样的错误。 要点 2:启用 FPU 第 3 点:FCCU NCF_2 反应 此致, 马库斯 Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 你好,马库斯、 最新截图显示,它产生的是内存管理故障,而不是使用故障(如原帖所示)。因此,我认为我们需要澄清我们面临的例外情况是什么。 请检查/共享 MPU 配置。 你能检查一下异常是否由"LDRD R0,R1,[R1]\n" 指令(来自 sCheck_Lib_ARMv7M.c 或其他指令)引起的吗? 亲切的问候, Radoslav Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨,拉多斯拉夫、 附上客户的 MPU 配置和链接器文件。他希望我们对其进行审查。 此致, 马库斯 Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨 @marcuslim, 我看到他们重复使用了 RTD 示例 systemInit () 中的 MPU 配置。 请注意,这只是 RTD 的短截线,未经验证,即使对于某些 RTD 驱动程序来说也可能不够,更不用说 SAF 了。 同样,对于链接器文件,我可以看到来自RTD链接器文件的来源,以及额外的SAF和SCST内存部分。 关于 MPU 配置,我强烈建议使用 RTD Platform 插件配置 MPU。 在 SAF 演示示例中,我们还提供了 K344 的 MPU 配置示例(不是 K314,但只需修改 TCM 的正确内存大小)。 但它也只是 SAF Demo 设置的示例代码(短截线),未经过验证的交付内容。 按照人工智能的要求,他们的 MPU 配置应该代表这种设置: 地区 RBAR 地址 大小 类型/缓存政策 可共享 门禁系统 说明 0 0x00000000 覆盖整个地址空间(RASR = 0x1004003F ) 强烈订购,无缓存 是 无访问 背景区域阻挡一切 1 __INT_ITCM_START 来自链接器 正常,无缓存 无 RW/RW 用于 CM7 的 ITCM 2 __ROM_CODE_START 来自链接器 正常,WB/WA(内侧& 外侧) 无 RO/RO 主程序闪光 3 __ROM_DATA_START 来自链接器 正常,WB/WA 是 RO/RO 数据闪存 4 0x1B000000 8 KB ( 0x160B0019 ) 正常,WB/WA 是 RO/RO UTEST 地区 5 __INT_DTCM_START 来自链接器 正常,无缓存 无 RW/RW CM7 的 DTCM 6 __INT_SRAM_START 来自链接器的大小 ( __RAM_CACHEABLE_SIZE ) 正常,WB/WA 无 RW/RW 可高速缓存 SRAM(禁用子区域 6 和 7) 7 __RAM_NO_CACHEABLE_START 来自链接器 正常,无缓存 是 RW/RW 非缓存 RAM 区域 8 __RAM_SHAREABLE_START 来自链接器 正常,无缓存 是 RW/RW 可共享内存 9 0x40000000 6MB 强烈订购,无缓存 是 RW/RW AIPS0-2 外围空间(禁用第 6/7 分区) 10 0x40600000 S32K314 已禁用 — — — AIPS3;仅在 S32K39x 上有效 11 0x67000000 128 MB 强烈建议 是 RW/RW QSPI RX 12 0x68000000 128 MB 正常,WB/WA 无 RW/RW QSPI AHB 映射区域 13 0xE0000000 默认 ARM PPB 大小 强烈建议 是 RW/RW 私人外围总线(SCB、NVIC 等) 14 __ROM_CODE_START + 0x400000 S32K314 为 0 — — — 附加程序闪光灯(仅对其他衍生产品有效) 15 0x44000000 S32K314 为 0 — — — ACE 区域仅在 S32K388 上活跃 这是 K344 的 SAF 演示示例中的 MPU 配置: 简单比较这两个 MPU 配置 + 链接器文件可以看出: -这些内存部分的位置不正确:* (.s32_saf_const_flash_1) * (.s32_saf_const_flash_2) * (.s32_saf_const_flash_3) * (.s32_saf_const_flash_4) * (.s32_saf_const_const_flash_4) * (.s32_saf_const_const_flash_4) * (.s32_saf_const_const_flash_4) * (.s32_flash_5)-看不到不可缓存的 SRAM 的可执行属性,但这不是 sCheck 所要求的,这可能是 SAF 示例 MPU 设置中的冗余属性——考虑到客户正在运行操作系统,我预计操作系统及其需要一些特定的 MPU 设置和内存部分 应用程序(只是猜测,并不是说这可能是某些问题的根本原因) 无论如何,客户应遵循 SAF 用户手册和 RTD 手册第 " 章内存分配 " 进行正确的 MPU 和链接器文件设置,重复使用恩智浦示例中的短截线不是一个好做法。 特别是当操作系统在 sCheck 测试期间运行时,还需要按照 sCheck 章节" Exclusive Areas(在 BSW Scheduler" 中定义的专属区)进行测试。eMcem 和 RTD 驱动程序中也有类似的排他性区域。 亲切的问候, Radoslav
查看全文
PN7642 RF Design-in Tips and Tricks Prerequities:  PN7642 design-in recommendations   1// Impedance tuning  PN76 family antenna design guide The target impedance is chosen based on the target application. If full power is required (e.g., POS terminals). The target impedance of 15-17 Ω is recommended. For lower power applications using ULPCD, the higher impedance is typically preferred, 30-50 Ω (symmetrical tuning).   2// Dynamic power control  PN7642 - Basic RF power limitation using DPC   3// H-Field check  There are given limits, especially for the maximum H-field radiated by the reader. Exceeding these limits might lead to destroying the NFC Card/NFC Tag.   The H-Field can be measured with the help of test equipment, as  ISO 10373-6 Test PICC EMVCo 3.0 Test PICC  For indication only, the customers can use "smart" Field Strength Probes as shown below :    Note: The most critical position occurs when the card is placed directly on the NFC antenna . In this case, if the H-field exceeds the maximum allowed level, the output power must be reduced using DPC settings. 4// HF Attenuator value  Turn on the RF Field with the DPC set and enabled from the previous step  Read the CLIF_RXCTRL_STATUS register and check the HF_ATT_VAL as shown below.  The value for the "unloaded" condition with full power shall be approximately 35-45dec.  If the value is out of this range, the customer is required to adjust the Rx resistors to reach this value.  5// Receiver settings  Check the "Power" range and Communication Range with the default settings provided by NXP.  Power Range -> The distance at which the NFC Tag can still generate its answer, but the NFC Reader does not see it  Communication Range -> The distance at which the NFC Tag can still communitate with the NFC Reader  Ideally, Power Range ≈ Communication Range Also, the NFC Reader should not generate any false communications as e.g., "HAL COLLISION ERROR".  The optimisation of the receiver can be done in the following way:  Enter DPC Calibration  Go to the "ARC" menu and "disable" the ARC algorithm This will force the IC to use the RX settings from the following Register/EEPROM SIGPRO_RM_TECH_REG DGRM_RSSI_REG   5.1// SIGPRO_RM_TECH_REG (RM_MF_GAIN parameter) This parameter basically defines the gain of the input amplifier.  Select SIGPRO_RM_TECH_REG  Switch "operation" to EEPROM and choose the required technology  Increase the RM_MF_GAIN to 0x02 (it depends on the setup).     5.2// DGRM_RSSI_REG (DGRM_SIGNAL_DETECT_TH_OVR_VAL parameter) This parameter defines a threshold from which the internal logic starts to decode the incoming signal.  If the threshold is too low or very close to the noise floor, the system can detect the noise as an NFC Communication.  It is therefore,  Threshold + margin > noise floor The best routine is to perform "Signal Detection Threshold" analysis. This can be done with the help of the NFC Cockpit (described in PN7642 design-in recommendations) As a result, the user can obtain the mean value of the "Noise," and suggested "DGRM_SIGNAL_DETECT_TH_OVR_VAL" threshold based on the inserted "Margin."  Maring (m) + Noise mean value (μ) = Threshold  6+16=23 Then this value shall be written in "DGRM_RSSI_REG" EEPROM as shown below.    6// ULPCD Settings  We recommend the following ULPCD Settings as a starting point.  ULPCD VDDPA should be chosen in such a way that the HF Attenuator value is not 0x00! The typical value for HF Attenuator in ULPCD is around 0x05-0x0B.   6.1// RSSI Threshold evaluation  For a proper RSSI Threshold selection, it is recommended to perform the ULPCD Calibration, e.g., 20 times, and check the "jitter" of the RSSI signal for your device.  If you see that the RSSI value is jittering, e.g., 1 unit as shown above. The absolute minimum threshold for this case is 2. However, it is always recommended to include adequate margin (To prevent false wake-ups).   Generally, the margin of 2 units is sufficient. So in this case, the optimum threshold will be 4. 
查看全文
在 SNVS 内的 HPRTC 上定期& 警报中断 您好,NXP团队: 我正试图配置每 1 秒一次的周期性中断和 30 秒后的警报中断。我的 ISR 看起来是这样的 void SNVS_HP_NON_TZ_IRQHandler(void) { volatile uint32_t flagStatus = SNVS_HP_RTC_GetStatusFlags(SNVS); volatile uint32_t result = flagStatus & kSNVS_RTC_PeriodicInterruptFlag; snvs_hp_rtc_datetime_t rtcDate; if (result) { __asm(" NOP"); SNVS_HP_RTC_GetDatetime(SNVS, &rtcDate); dbg_info("Periodic Interrupt @ %04hd-%02hd-%02hd %02hd:%02hd:%02hd\r\n", rtcDate.year, rtcDate.month, rtcDate.day, rtcDate.hour, rtcDate.minute, rtcDate.second); if (rtcDate.second == 30U) { __asm(" NOP"); __asm(" NOP"); __asm(" NOP"); } SNVS_HP_RTC_ClearStatusFlags(SNVS, kSNVS_RTC_PeriodicInterruptFlag); } if (SNVS_HP_RTC_GetStatusFlags(SNVS) & kSNVS_RTC_AlarmInterruptFlag) { __asm(" NOP"); dbg_info("Alarm:\r\n"); /* Clear alarm flag */ SNVS_HP_RTC_ClearStatusFlags(SNVS, kSNVS_RTC_AlarmInterruptFlag); } SDK_ISR_EXIT_BARRIER; } 我的初始化过程是这样的 SNVS_HP_RTC_GetDefaultConfig(&snvsRtcConfig); snvsRtcConfig.periodicInterruptFreq = 15; SNVS_HP_RTC_Init(SNVS, &snvsRtcConfig); dbg_info("SNVS HP example:\r\n"); /* Set a start date time and start RT */ rtcDate.year = 2014U; rtcDate.month = 12U; rtcDate.day = 25U; rtcDate.hour = 19U; rtcDate.minute = 0; rtcDate.second = 0; /* Set RTC time to default time and date and start the RTC */ SNVS_HP_RTC_SetDatetime(SNVS, &rtcDate); SNVS_HP_RTC_StartTimer(SNVS); dbg_info("\r\n"); SNVS_HP_RTC_GetDatetime(SNVS, &rtcDate); rtcDate.second = 30u; SNVS_HP_RTC_SetAlarm(SNVS, &rtcDate); /* Get alarm time */ SNVS_HP_RTC_GetAlarm(SNVS, &rtcDate); /* Print alarm time */ dbg_info("Alarm will occur at: %04hd-%02hd-%02hd %02hd:%02hd:%02hd\r\n", rtcDate.year, rtcDate.month, rtcDate.day, rtcDate.hour, rtcDate.minute, rtcDate.second); /* Enable SNVS alarm interrupt */ SNVS_HP_RTC_EnableInterrupts(SNVS, kSNVS_RTC_AlarmInterrupt); SNVS_HP_RTC_EnableInterrupts(SNVS, kSNVS_RTC_PeriodicInterrupt); NVIC_EnableIRQ(SNVS_HP_NON_TZ_IRQn); 在我的 ISR 中,我观察到当警报中断和定期中断同时发生时(HPSR 中的两个位都被设置),定期定时器标志将在 ISR 中首先被清除,因为它具有隐含优先级(如果检查定期 ISR,则优先)。在 if 块中,当定期计时器状态标志被清除时,由于某种原因,我看到我的警报状态标志也被清除,而定期计时器的定时器标志将再次转换为 1。只有下一次才会清除。正因为如此,我的闹钟中断服务完全失灵了。 是否在实施过程中出了什么问题? 谢谢! Re: Periodic & alarm interrupts on HPRTC within SNVS 您好! 了解。目前,我将只使用周期定时器来充当警报中断的角色。 感谢您的及时支持! Re: Periodic & alarm interrupts on HPRTC within SNVS 你好@AmanKumbhani, ,我复制了你的问题。我将在内部进行检查,以确认这是否是一个错误,或者这两个功能是否相互排斥。这可能需要一些时间。 不过,就您的应用而言,我认为以下 if 条件可以起到警报中断的作用: if (rtcDate.second == 30U) { __asm(" NOP"); __ asm(" NOP"); __asm(" NOP"); } BR Habib Re: Periodic & alarm interrupts on HPRTC within SNVS 嗨,哈比卜 感谢您的回复。老实说,我没有固定的用途。我正在对此进行测试,以便通过包装器为应用程序层提供功能,因此遇到了这个问题。 您能在自己的电脑上重现这个问题吗? 谢谢您! Re: Periodic & alarm interrupts on HPRTC within SNVS 你好,@阿曼-库姆巴尼、 对延迟回复表示歉意。为了更好地为您提供支持,能否请您说明申请的目的? 在我看来,您似乎可以完全依赖于周期性中断,因为您已经在每秒钟输入一次中断。你可以像在以下几行代码中一样简单地轮询秒值:i f (rtcDate.Second == 30U) { __asm(" NOP"); __ asm (" NOP "); __asm (" NOP "); } 最终,两种方法都会触发信号相同的中断,因此仅使用定期中断可能会简化您的实现。 BR Habib. Re: Periodic & alarm interrupts on HPRTC within SNVS 您好@AmanKumbhani, ,我将运行测试来复制这一问题,并详细查看这一行为。感谢您的耐心等待。 BR Habib. Re: Periodic & alarm interrupts on HPRTC within SNVS 嘿、 谢谢你的澄清!我会研究一下,并按照您的建议进行一次测试。 最好的 安缦 Re: Periodic & alarm interrupts on HPRTC within SNVS 你好,@阿曼-库姆巴尼、 造成这一问题的根本原因有两个。第一个问题与您配置 RTC 警报的方式有关: SNVS_HP_RTC_EnableInterrupts(SNVS, kSNVS_RTC_AlarmInterrupt); SNVS_HP_RTC_EnableInterrupts(SNVS, kSNVS_RTC_PeriodicInterrupt); 如第 24.6.1.3 章所述在 RM 中的 "SNVS_HP 控制寄存器(HPCR)"中,使能警报 "HPTA_EN "的位与 32 kHz 时钟同步。这意味着,当您设置其值时,需要等待它的更新,因为内核的运行速度通常比 32 kHz 快得多。这种等待机制的一个示例可以在启用 "RTC_EN "位的函数"SNVS_HP_RTC_StartTimer" 中看到,如下图所示: 另一方面,第二个问题与函数 "SNVS_HP_RTC_ClearStatusFlags "的工作方式有关。该函数对寄存器执行 OR 运算。下面就是一个例子: 寄存器:11 (两个标志都已设置。) 屏蔽:10(kSNVS_RTC_PeriodicInterruptFlag) OR:11 因此,当调用 "SNVS_HP_RTC_ClearStatusFlags "时,它将向 HPSR 寄存器写入 "0b11",从而清除周期和警报标志,因为这些位通过写入 1 来清除。因此,在清除状态标志之前,必须先读取这两个状态标志。因此,以下代码将导致错误: if (SNVS_HP_RTC_GetStatusFlags(SNVS) & kSNVS_RTC_AlarmInterruptFlag) { __asm(" NOP"); dbg_info("Alarm:\r\n"); /* Clear alarm flag */ SNVS_HP_RTC_ClearStatusFlags(SNVS, kSNVS_RTC_AlarmInterruptFlag); } 希望对您有所帮助。 BR Habib
查看全文
哪种内存性能高?OCRAM 还是 SDRAM 我通过 16 个引脚的 semc 端口将 sdram( W9825G6KH-5i )连接到 rt1176。 我想知道哪种内存性能较高。 板上的片上 RAM 或 SDRAM。 回复:哪种内存性能高?OCRAM 还是 SDRAM 在内存方面,ITCM 和 DTCM 将是最快的,因为它们以与核心相同的速度运行并且不使用缓存。OCRAM 速度较慢(对于 memcpys 来说慢 3-4 倍,IIRC),因为它必须经过 AXI 总线和缓存。SEMC 可能无法比 OCRAM 更快(因为它使用相同的 AXI 总线和缓存),但确切的速度取决于设置。
查看全文
S32K322 で can1 を core1 に割り当てる方法 こんにちはNXPサポーター、 現在、MCALでS32K322を使用していますが、Core0でCAN0を、Core1でCAN1を実行したいと考えています。 私が理解している限りでは、まず EB で CAN と Platform の両方の MultiCore サポートを有効にし、EcucPartition 関連のモジュールを適切に構成する必要があります。 実行時に、Core1 の main 関数で Platform_Init() と Can_43_FLEXCAN_Init() を呼び出します。 Core1 で CAN1 を実行するにはこれで十分ですか、それとも CAN1 を Core1 に適切に割り当てるために他に何かする必要がありますか? ありがとうございます! よろしくお願いいたします クーパー24025
查看全文
S32G-VNP-RDB32 (SJA1110) 交换机中的寄存器访问 你好, 我想把值写进寄存器你能不能给我一个完整的地址来 读写地址 名称访问RESET描述 8Ch DYN_BE_LKP_ ENTRY0 R/W 0h (ffffFFe h) 8ch 之前的基址是什么?比如它会有 0x3fc0008c 所以在这个动态入口表中我们会有完整的地址你能不能给我 8Ch DYN_BE_LKP_ ENTRY0 R/W 0h (fffffF eh) 90h DYN_BE_LKP_ ENTRY1 R/W 0h 94h DYN_BE_LKP_ ENTRY2 R/W 0h 98h DYN_BE_LKP_ R/W 0h 98h DYN_BE_LKP_ ENTRY3 R/W 0h 9Ch DYN_BE_LKP_ ENTRY4 R/W 0h a0h a0h DYN_BE_LKP_ ENTRY5 R/W 0h A4H DYN_BE_LKP _CTRL R/W 0h (ff800000H) 你能不能给我提供在寄存器中配置动态条目的完整地址? 以及需要在 SJA1110 Switch 中实现此功能的地方 Re: Register Access in S32G-VNP-RDB32 (SJA1110) Switch 你好@Atkinson、 我知道这乍看起来可能并不简单,但实际上这个概念非常简单。 最终的寄存器地址取决于访问方法--是通过 AHB 在内部访问 M7 内核,还是通过 SPI_AP 接口从外部访问。基本地址因接入点而异。 寄存器地址使用 UM11107 表 2 中提供的基地址计算。例如,对于交换机子系统,SPI_AP 访问的基地址为0x00000000 ,AHB 访问的基地址为0xFF000000 。 在这种情况下,通过 AHB 访问寄存器0x8C (DYN_BE_LKP_ENTRY0)时,寄存器会变成0xFF00008C 。 现在,可能会让人感到困惑的地方来了:SDK 驱动程序定义了以下内容: #define SJA1110_L2_ART_LE_ADDR(0x3fc00023) /**< l2ArtLockedEntry 寄存器的地址 *   SWITCH_DRV_Write 例程将地址左移 2 位 (<< 2),用于内部 (AHB) 访问。对于 SPI 传输(级联开关设置中使用),不应用移位。因此,0x3fc00023 << 2 的结果是0xFF00008C。   我希望通过上面的解释,现在有感知了。   顺祝商祺! 帕维尔
查看全文
在GUI GUIDER 1.7.0上经常出现collect2.exe': CreateProcess: No such file or directory 1、编译软件为V1.7.0 2、JAVA版本为:22.0.1 2024-04-16 3、增加imgbtn的新图片时,会出现如下问题 问题信息如下: "Compiling E:/UI_test/p1_prj-psh/p1_prj/lvgl-simulator/../custom/custom.c" "Linking simulator.exe" gcc: fatal error: cannot execute 'd:/nxp/gui-guider-1.7.0-ga/environment/mingw/bin/../libexec/gcc/mingw32/9.2.0/collect2.exe': CreateProcess: No such file or directory compilation terminated. mingw32-make: *** [default] Error 1 @Alex_Wang  Re: 在GUI GUIDER 1.7.0上经常出现collect2.exe': CreateProcess: No such file or directory Hi Alex,     非常感谢你的回复,此问题已解决! Best regards, Elisen Re: 在GUI GUIDER 1.7.0上经常出现collect2.exe': CreateProcess: No such file or directory Hi, @ElisenChen  编译报错问题原因:gcc命令行长度有32K的限制,您应用最后链接的时候,命令长度超过了限制。 解决办法:把.o先编译成静态库,然后使用静态库生成最后的可执行文件。下面对 \lvgl-simulator\Makefile的修改可以解决这个问题。 将Makefile中default替换以下内容: default: $(OBJS) $(GEN_OBJS)   @echo "Linking $(SIMULATOR_EXE)"   @ar -csr libgenerated.a $(GEN_OBJS)   @$(CC) -o $(BIN_DIR)$(SIMULATOR_EXE) $(OBJS) -L. -lgenerated $(LDFLAGS) 非常感谢您提到的问题,我们会在GUI Guider 1.8.0修复这个问题。 Best regards, Alex Re: 在GUI GUIDER 1.7.0上经常出现collect2.exe': CreateProcess: No such file or directory Hi Alex,      感谢,期待你与团队的回复 Re: 在GUI GUIDER 1.7.0上经常出现collect2.exe': CreateProcess: No such file or directory Hi, @ElisenChen  我对您的工程进行了检查,工程看起来没有什么问题,我已交给GUI Guider开发团队进行分析,正在积极查找问题原因。当我删掉了您指的所有控件,复制控件(不要新建)使用是没有问题的,您可以进行尝试。可参考附件中的视频,如有任何更新,我会第一时间回复您。 Best regards, Alex (view in My Videos) Re: 在GUI GUIDER 1.7.0上经常出现collect2.exe': CreateProcess: No such file or directory Hi everyone,     如下问题是否有其他解法或是建议吗?
查看全文