Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
Kinara ARA-SDK 许可 恩智浦团队(以及所有熟悉 Ara-2 / Kinara 工具的人员)你们好、 我想了解为 Ara-2 (Kinara) 计算模块编译模型的正确许可/访问路径,尤其是现在 Kinara 已被恩智浦收购,而且恩智浦的公开资料描述了 SDK 与恩智浦软件生态系统的集成。 我的设置/目标 硬件Geniatech Ara-2 计算模块 SDK:Geniatech 提供的 Kinara Ara-2 SDK r1.3 使用情况:个人、非商业(研究/学习/测试) 模型目标:Qwen/Qwen2.5-7B-Instruct (GPTQ Int4) 目前有效的方法 我可以完成模式 1 流程,将模型转换为 ONNX。 我的结局是 model.onnx(小图形文件) 同一目录下的 model.onnx.data(大型外部张量数据/权重)。 什么失败了 模式 2(生成可部署 .dvm 的编译阶段)因 SDK 版本工具中的许可证签出/验证错误而失败。 据我所知,这将阻止生成 .dvm即使 ONNX 导出成功。 我的困惑 我没有 Kinara 许可证密钥。 Geniatech 的文档指出,必须通过 Kinara 获取 SDK 许可证密钥。 Kinara客户支持门户网站似乎拒绝使用常见的个人电子邮件功能域(例如gmail.com)进行注册,所以我无法在那里提交申请。 我为什么要在这里提问(恩智浦/Kinara 集成混淆) ,恩智浦的公开资料显示,Kinara 的 SDK 和模型工具正在集成到恩智浦的生态系统(包括 eIQ)中,Ara-2 现在作为恩智浦的产品提供,并提供相关的 "Ara 软件开发包 "下载。 然而,在实践中,这一点并不明确: 开发人员应在其中获取用于编译的许可证密钥,以及 现在是否支持 "Ara SDK / eIQ 集成 "路径。 问题 编译 ONNX → .dvm 是否需要许可证密钥使用 Ara-2 SDK 工具链(r1.3 / ARA-SDK),甚至用于个人/非商业用途? 如果是,个人/业余爱好者用户获得评估/开发者访问权限(尤其是在没有公司电子邮件域的情况下)的官方流程是什么? 有了现有的恩智浦账户,Ara-2 用户应该从哪里获取: “官方” Ara SDK 二进制文件/工具链(编译器),和/或 编译所需的许可机制? 如果编译需要许可证密钥,而许可证密钥又不容易获得,那么是否有任何预编译的 .dvm模型软件包(例如,用于 Qwen 7B/Qwen2.5恩智浦/Kinara/合作伙伴提供给 Ara-2 用户运行的 7B)? 如果恩智浦/Kinara 的相关人员能说明计划的路径(恩智浦门户网站与传统 Kinara 门户网站的对比,以及现在如何处理许可问题),那将大有帮助。 Re: Kinara ARA-SDK Licensing 我也有同样的问题!我拿到了设备,驱动程序。但没有 SDK,我猜也没有许可证(如果需要的话)。该设备只是静默地坐在我的联想 ThinkCentre Ultra neo 电脑里什么也没做。联想从未将其整合到 Windows 11 作为 NPU。我想至少用它来运行一些模型或进行学习。现在,它已经成为我电脑中一块完全闲置的硅片。我想,如果有更多的人开始使用这项技术,将有助于技术的普及。 Re: Kinara ARA-SDK Licensing @kratafila在我通过 Geniatech 获得 Linux SDK 软件包之前,我的硅片基本上也是闲置的。老实说,它仍然是未使用的硅,因为我无法让模型编译和运行。 值得一提的是,Geniatech(我的 Kinara Ara-2 M.2 模块的供应商)与我分享了这些 SDK/runtime 下载。它们以 Linux 为重点,我不确定它们是否适用于你的 ThinkCentre 中的 Ara-2 硬件(或者在 Windows 11 上提供帮助,里面有 Windows 二进制文件,但我在 Linux 软件方面取得了更大的成功),但是如果你能在 Linux 下测试/确认你的设备能正常运行,它们可能仍然有用: 1) 驱动程序/运行时间 + .dvm 示例型号(Geniatech"客户就绪" 捆绑): hxxps://mega[.]nz/file/nJcF0K5a#W-Ote-fp59hXoq4T0GGsaQmwGTRphWz0JATowyWjQpg 2) " 模型编译 " 文件夹 Geniatech 最初寄给我(注意:仅此一项就不包括编译器二进制文件): hxxps://mega[.]nz/file/KoclFQrJ#ifNOX7w2Y1qgLM6rnm7xPnUprwZZqhuRvelFG5p0MJQ 3) Geniatech 随后提供的完整 Ara-2 SDK 压缩包(此压缩包应包含实际的工具链/编译器,例如dvrun): hxxps: //文件 [.] geniatech [.] com/down-eng/bsp/kinara_sdk_20251120 [.] tar [.] bz2 如果你尝试了上述任何一种方法并取得了进展(即使只是安装了SDK并看到设备被识别),请在这里发回去,这不仅是为了我们,也是因为多个社区似乎对于 " 官方 " 的工作路径、SDK/许可的实际来源以及如何编译和运行其他模型存在更广泛的困惑。
查看全文
Kinara ARA-SDK Licensing Hi NXP team (and anyone familiar with Ara-2 / Kinara tooling), I’m trying to understand the correct licensing/access path for compiling models for the Ara-2 (Kinara) compute module, especially now that Kinara has been acquired by NXP and NXP’s public materials describe SDK integration into NXP’s software ecosystem. My setup / goal Hardware: Geniatech Ara-2 compute module SDK: Geniatech-provided Kinara Ara-2 SDK r1.3 Use case: personal, non-commercial (research/study/testing) Model target: Qwen/Qwen2.5-7B-Instruct (GPTQ Int4) What works so far I can complete the Mode 1 flow to convert the model into ONNX. I end up with: model.onnx (small graph file) model.onnx.data (large external tensor data / weights) in the same directory. What fails Mode 2 (the compilation stage to generate a deployable .dvm) fails with license checkout/validation errors from the SDK’s build tools. From what I can tell, this blocks generating a .dvm even though ONNX export succeeds. Where I’m stuck I do not have a Kinara license key. Geniatech’s documentation indicates that obtaining the SDK license key must be done via Kinara. The Kinara customer support portal appears to reject registration using common personal email domains (e.g., gmail.com), so I can’t submit a request there. Why I’m asking here (NXP/Kinara integration confusion) NXP’s public material indicates Kinara’s SDK and model tools are being integrated into NXP’s ecosystem (including eIQ), and Ara-2 is now presented as an NXP product offering with related “Ara Software Development Kit” downloads. However, in practice, it’s not clear: where a developer is supposed to obtain a license key for compilation, and whether the “Ara SDK / eIQ integration” path is the supported route now. Questions Is a license key required to compile ONNX → .dvm using the Ara-2 SDK toolchain (r1.3 / ARA-SDK), even for personal/non-commercial use? If yes, what is the official process for an individual/hobbyist user to obtain evaluation/developer access (especially without a corporate email domain)? With an existing NXP account, where exactly should Ara-2 users obtain: the “official” Ara SDK binaries/toolchain (compiler), and/or the licensing mechanism needed for compilation? If compiling requires a license key that isn’t readily obtainable, are there any precompiled .dvm model packages (e.g., for Qwen 7B/Qwen2.5 7B) that NXP/Kinara/partners provide for Ara-2 users to run? If someone from NXP/Kinara can clarify the intended path (NXP portal vs legacy Kinara portal, and how licensing is handled now), that would help a lot. Re: Kinara ARA-SDK Licensing I have the same question! I got the device, driver. But no SDK and I guess no license either (if it is needed). The device is just sitting silently in my Lenovo ThinkCentre Ultra neo computer and not doing anything. Lenovo never finished its integration to Windows 11 as an NPU. I would like to use it at least to run some models on it or learning. It is now a completely unused piece of silicon in my PC. I guess it would help the adoption of the technology if more people would start using it. Re: Kinara ARA-SDK Licensing @kratafila mine was also basically unused silicon until I managed to get hold of a Linux SDK bundle via Geniatech. To be honest it is still unused silicon since I cannot get the models to compile and run. For what it’s worth, Geniatech (vendor of my Kinara Ara-2 M.2 module) shared these SDK/runtime downloads with me. They’re Linux-focused, and I’m not sure whether they’ll apply to the Ara-2 hardware inside your ThinkCentre (or help on Windows 11, there are included Windows binaries but I had more success with the Linux software), but they might still be useful if you can test under Linux / confirm your device works: 1) Drivers/runtime + sample .dvm models (Geniatech "customer ready" bundle): hxxps://mega[.]nz/file/nJcF0K5a#W-Ote-fp59hXoq4T0GGsaQmwGTRphWz0JATowyWjQpg 2) "Model compile" folder Geniatech initially sent me (note: this alone didn’t include the compiler binary): hxxps://mega[.]nz/file/KoclFQrJ#ifNOX7w2Y1qgLM6rnm7xPnUprwZZqhuRvelFG5p0MJQ 3) Full Ara-2 SDK tarball Geniatech later provided (this is the one that should include the actual toolchain/compiler, e.g. dvrun): hxxps://file[.]geniatech[.]com/down-eng/BSP/kinara_SDK_20251120[.]tar[.]bz2 If you do try any of the above and make progress (even just getting the SDK installed and seeing the device recognized), please post back here, not just for us, but because there seems to be broader confusion across multiple communities about the "official" working path and where the SDK/licensing is actually meant to come from as well as how to compile and run additional models.
查看全文
8CH-DMIC board configuration, flashing and testing on MIMXRT685-EVK Hi, I’m trying to run the dmic_multi_channel CM33 demo on EVK-MIMXRT685 with the 8-DMIC array board. Per the demo documentation, enabling the 8-DMIC board on J31 requires moving several resistors (e.g. R379, R380, R384, R389, R390, R391, R392 to 2–3). After doing this, FlexSPI Octal Flash (U19) becomes inaccessible: - LinkServer flashing fails - ROM ISP (blhost) connects, but FLEX-SPI-NOR shows Sector Size = 0 / Page Size = 0 - Flash erase/write is impossible My questions: Is this demo expected to run without Octal Flash (RAM-only workflow)? Is there an official flashing/boot procedure after the resistor changes? Are all resistor changes required, or can some remain in the default state to keep FlexSPI flash working? Right now it looks like the required DMIC hardware setup prevents normal flash programming/boot. How can I test and run the demo? Thanks for any guidance. MIMXRT685-EVK 8CH-DMIC  i.MXRT 600 Re: 8CH-DMIC board configuration, flashing and testing on MIMXRT685-EVK Hi @mlkezarev , Thank you so much for your interest in our products and for using our community. Q1:  Is this demo expected to run without Octal Flash (RAM-only workflow)? A1:   Yes. This demo is designed to run from SRAM only and does not require Octal Flash. Q2:Is there an official flashing/boot procedure after the resistor changes? A2: After the resistor changes are applied, the external Flash is physically disconnected. Therefore, flashing or booting from Flash is not supported in this hardware configuration. Q3:Are all resistor changes required, or can some remain in the default state to keep FlexSPI flash working? A3: If you want to enable 8 DMICs, all the specified resistor changes are required. I have post a pin configuration screenshot for your reference. Q4: Right now it looks like the required DMIC hardware setup prevents normal flash programming/boot. How can I test and run the demo? A4: You can run on SRAM, just like the SDK demo "evkmimxrt685_dmic_multi_channel_cm33" Best Regards MayLiu
查看全文
S32K148 回路図ドキュメント (SCH-29643 REV C) こんにちは、NXP チームの皆様、 S32K148 評価ボードを使用しており、ボードの回路図ドキュメント SCH-29643、リビジョン C を探しています。 利用可能なリソースを検索しましたが、Rev C の回路図を見つけることができません。 S32K148 EVB の SCH-29643 Rev C 回路図ドキュメントを共有していただけますか (または適切なダウンロード リンクを提供していただけますか)? サポートいただきありがとうございます。 Re: S32K148 schematic Document (SCH-29643 REV C) こんにちは、 添付したものを見つけました。 BR、ペトル
查看全文
Linux 中的 SJA1105,通过 PHY 接口连接所有 5 个端口? 您好, 我正在开发一个基于 SMARC 格式计算机模块的项目,该模块配备了 Rockchip RK3399 CPU。在同一块主板上,我们有一个 SJA1105 开关。CPU 运行 Linux (5.4),使用 NET_DSA_SJA1105 驱动程序。 我们的 CPU 需要通过以太网与其他设备通信,因此 CPU 需要连接到交换机。 在 SJA1105 数据表和 Linux 内核设备树示例中,主机 CPU 始终作为固定链路直接通过 XMiI 连接到交换机。(https://www.kernel.org/doc/Documentation/devicetree/bindings/net/dsa/sja1105.txt) 我们无法做到这一点,因为我们的 SMARC 模块只能提供来自 RK3399 以太网集成 PHY 的引脚输出,我们无法直接物理访问 CPU 上的 xMII 接口,无论我们多么希望这样做。 在 SJA1105 数据表中也有如下说明: " 请注意,只有当系统必须支持 AVB 操作或其他网桥管理协议(如 STP/RSTP)时,才需要与主机处理器建立以太网连接。如果不需要此类操作,所有端口都可用于数据流量。" 由于我们不需要 AVB 或 STP/RSTP,而且我们也无法访问 CPU xMII 接口,因此我们决定将交换机用作一个普通的 5 端口交换机,每个端口都有 PHY 接口。4 个端口,PHY 实际连接到真正的 RJ45 连接器,另一个端口将 PHY 硬接入电路板中,连接到我们从 SMARC 板上的 CPU 获得的 PHY。这将为我们提供一个看起来像这样的 Linux 设备树: (仅显示与 SJA1105 相关的部分,粘贴到此处时缩进也变拧了) &spi2 { status ="okay"; #address-cells =<1>; #size-cells =<0> ; num-cs =<2>; cs-gpios =<& gpio2 RK_PB4 GPIO_ACTIVE_LOW>,<& gpio1 RK_PA3 GPIO_ACTIVE_LOW> ; sja1105_1: sja1105@1 { status ="okay"; reg =<1>; #address-cells =<1>; #size-cells =<0>; clocks =<& ethswitch_osc>; compatible ="nxp,sja1105t"; spi-max-frequency =<25000000> ; fsl,spi-cs-sck-delay =<1000> ; fsl,spi-sck-cs-delay =<1000> ;spi-cpha;pinctrl-names = " 默认 ";pinctrl-0 = < & et hswitch_pins >;reset-gpios = < & gpio4 RK_PC5 GPIO_ACTIVE_HIGH >; 端口 { #address-cells<1> =; #size-cells =;-cells =<0> 0; port@0 { /* 隐含"sja1105,role-mac;" */ label ="eth0"; phy-handle =<& rmii_phy0>; phy-mode ="rmii"; reg =<0>; }; port@1 { /* 隐含"sja1105,role-mac;" */ label ="lan1"; phy-handle =<& rmii_phy1>; phy-mode ="rmii"; reg =<1>; }; port@2 { /* 隐含"sja1105,role-mac;" */ label ="lan2"; phy-handle =<& rmii_phy2>; phy-mode ="rmii"; reg =<2>; }; port@3 { /* 隐含"sja1105,role-mac;" */ phy-handle =<& rmii_phy3> ; label ="lan3"; phy-mode ="rmii"; reg =<3>; }; port@4 { /* Imlicit"sja1105,role-mac;" */ phy-handle =<& rmii_phy4>; label ="lan4"; phy-mode ="rmii"; reg =<4>; }; }; }; }; 这个 devicetree 是有效的,可以编译,但在探测过程中 NET_DSA_SJA1105 却失败了,因为它找不到 HOST CPU 端口(因为我们没有指定)。该错误来自 net/dsa/dsa2.c*dsa_tree_find_first_cpu(struct dsa_switch_tree *dst),因此它并不是驱动程序的 sja1105 部分所特有的,而是 Linux 分布式交换架构中更深层次的部分。 在所有 devicetree 示例中,总有一个端口配置为主机 CPU,通过 xMII 与固定链路连接,例如像这样: port@4 { /* 连接到 eth2 的内部端口 */ ethernet =<& enet2>; phy-mode ="rgmii"; reg =<4>; /* 隐含"sja1105,role-phy;" */ fixed-link { speed =<1000>; full-duplex; }; }; 如果我尝试修改我的设备树以使端口看起来更像这样: 端口 { #address-cells =<1>; #size-cells =<0>; port@0 { /* 隐含"sja1105,role-phy;" */ ethernet =<& gmac>; phy-mode ="rmii"; reg =<0>; fixed-link { speed =<100>; full-duplex; }; }; port@1 { /* 隐含"sja1105,role-mac;" */ label ="lan1"; phy-handle =<& rmii_phy1>; phy-mode ="rmii"; reg =<1>; }; port@2 { /* 隐含"sja1105,role-mac;" */ label ="lan2"; phy-handle =<& rmii_phy2>; phy-mode ="rmii"; reg =<2>; }; port@3 { /* 隐含"sja1105,role-mac;" */ phy-handle =<& rmii_phy3> ; label ="lan3"; phy-mode ="rmii"; reg =<3>; }; port@4 { /* Imlicit"sja1105,role-mac;" */ phy-handle =<& rmii_phy4>; label ="lan4"; phy-mode ="rmii"; reg =<4>; }; }; 然后,驱动程序感到满意,成功地进行了探测并设置了 SJA1105 交换机。端口 1-4 可以工作 ,但端口 0(CPU 通过 PHY 连接)当然不能工作,因为它现在被配置为 xMII 直接连接,而实际上我们在 SJA1105 和主机 CPU 之间有一个 PHY。 这是否是 DSA SJA1105 Linux 驱动程序的限制,即必须始终通过 xMII 配置固定链路?我能否以某种方式直接从设备树中配置我根本不希望有专用的 cpu 主机端口,而是只有 5 个普通端口(其中一个恰好是通过 PHY 连接到 CPU...)或者我能否将 CPU 主机端口配置为固定链路,但明确指定那里实际上也有 PHY,而不是 XMiI 接口?我已经尝试了几十种组合,但仍然没有找到任何配置方法,使其能够与我们本应非常简单的设置配合使用。我是不是漏掉了什么非常简单的东西?有什么好办法吗?还是 Linux DSA SJA1105 驱动程序无法做到这一点? 祝好 Re: SJA1105 in Linux, all 5 ports through PHY interfaces? @kalamata @Sabeur你能解决这个问题吗?我在使用 Toradex imx8mp SoM 时也遇到了类似的情况。 Re: SJA1105 in Linux, all 5 ports through PHY interfaces? @kalamata @Sabeur你找到解决这个问题的办法了吗?我也遇到了类似的问题,但使用的是 Toradex Verdin IMx8mp SoM。 Re: SJA1105 in Linux, all 5 ports through PHY interfaces? 你好、 我看到 端口 0 的 phy-mode 和 phy-handle: port@0 { /* 隐含"sja1105,role-mac;" */ ethernet =<& gmac>; label ="eth0"; phy-handle =<& rmii_phy0>; phy-mode ="rmii"; reg =<0>; }; 设备树应该是这样的。 此外,gmac 节点应包含 &gmac { phy-handle =<& rmii_gmac_phy>; phy-mode ="rmii"; }; 顺祝商祺! Sabeur Re: SJA1105 in Linux, all 5 ports through PHY interfaces? 你好,卡拉马塔 、 感谢您提供的详细信息。 所以我的假设是正确的。 您应该能够为连接的 MAC 接口指定 phy-handle 和 phy 模式。它是经过虚拟测试的,这意味着 MAC-> PHY->---<-PHY <-5.3 内核版本的 MAC。(参见 0e27921816ad99f78140e0e0c61ddf2bc515cc7e22)。 因此 ,这是在设备树中描述这种硬件连接的正确方法。 Regards, Sabeur Re: SJA1105 in Linux, all 5 ports through PHY interfaces? 你好,Sabeur, 感谢您的答复! 在您的设置中,上述数据路径可行吗? 是的,我们使用的正是这种设置:(CPU)Mac - Phy - Phy - Switch Mac (见附件) Rockchip RK3399 CPU 是否具有内部 PHY? 是的,它有一个内部 PHY,我们只能使用这个内部 PHY,因为它是从 CPU 所在的研华 ROM-5780 SMARC 模块中唯一输出的,所以即使我们想直接使用 CPU MAC 接口也不行。 我们的设置与 SJA1105 数据表建议的典型设置有何不同,请参阅附图。 我们有一款采用 SMARC 格式封装的研华 ROM-5780 片上计算机模块(即瑞芯微 RK3399 CPU)。Rockchip RK3399 集成了 PHY 接口,我们可以通过 SMARC 模块上的输出引脚访问该接口。我们无法实际访问 RK3399 以太网控制器的 MAC 引脚,因为它们不是通过 SMARC 模块输出的,所以我们只能使用 RK3399 PHY 接口。因此,在我们打算连接 CPU 的 SJA1105 的第 5 个端口上,我们有一个 PHY 控制器(就像在第 1-4 个端口上一样),该 PHY 控制器与 RK3399 CPU 的 PHY 控制器永久连接。 Kalamata Re: SJA1105 in Linux, all 5 ports through PHY interfaces? 您好, 理论上是可行的,但由于预期的设置是直接链接,因此我无法立即投入使用。 可以工作的数据路径是Mac - Phy - Phy - Switch Mac。 在这种情况下,您需要修改 DSA 内核,并为 CPU Mac 和 Switch Mac 指定 Phy 句柄和 Phy 模式。 现在的问题是:上述数据路径在您的设置中可行吗?Rockchip RK3399 CPU 有内置 PHY 吗? 致以最崇高的敬意, Sabeur Re: SJA1105 in Linux, all 5 ports through PHY interfaces? 可以实现 PHY 对 PHY 的背靠背连接。您必须使用 phy-handle 属性。您还可以绕过自动协商,在 devicetree 绑定中使用"fixed-link" 属性设置固定速度。如果出现问题,并怀疑 devicetree 配置正确,请检查控制路径接口(SPI/I2C/MDIO)。
查看全文
FRDM-KL25Z 错过 U7 MMA8451Q 新版 FRDM-KL25Z 缺少 U7 MMA8451Q 芯片。这个芯片是这个板的重要元器件,但我不明白为什么它被拆除了。因此,我无法使用板,但是尽管芯片已被移除,价格还是上涨了。我需要那块旧板。请检查一下,你移除了芯片但没有更改板型号,所以当我订购时,我本来想要的是旧板,但我收到了新的。 Re: FRDM-KL25Z miss U7 MMA8451Q 几年前,恩智浦将大部分 Accel/Gyros 的现有库存全部卖给了罗彻斯特电子公司。如今,意法半导体或模拟设备是寻找微机电的更好去处。 如果您要开始新的设计,Kinetis 产品线并不适合。 https://www.rocelec.com/global-search/MMA8451Q Re: FRDM-KL25Z miss U7 MMA8451Q 你好@王建兵 感谢您与我们联系。很抱歉,我们只提供新版本(Rev.I),旧版本将不再生产。正如 FRDM-KL25Z 主页上所指出的那样:"新设计不再推荐使用 MMA8451Q 加速计。 你可以尝试联系代理商或其他第三方平台,检查他们是否还有先前版本的库存。 感谢您的理解。 BR 爱丽丝 Re: FRDM-KL25Z miss U7 MMA8451Q 好吧,我明白了。我遇到了一个问题,请查看如何解决。此版本更改只删除了 U7?如果我把这个 U7 MMA8451Q 焊接到板上。是否可以像旧版本一样使用?现在我需要一个解决方案来处理它。谢谢!
查看全文
S32N55: sequence ID in gPTP bridge device when acting as a GM Hi team, I was testing the bridge device behavior in the gPTP example. I use the GrayVIP_1_0_22_0. According to the User Manual, if the bridge does not receive any Sync messages after StartupTimeoutS, it should start operating as a GM. However, I observed that in this situation, the Sequence ID in both Sync and Sync Follow-Up frames remains at 1024 and does not increase. After checking the related code, I found that when the bridge transitions to GM mode, the Sequence ID used for generating Sync messages is taken from the prSyncMachines[prDomain->u8SlaveMachineId].u16SequenceId of the slave port. If the slave port has not received any Sync messages, this value is never updated, which causes the Sequence ID in the Sync messages sent by the master port to remain unchanged. This behavior suggests that the bridge cannot function properly as a GM under this mechanism. Could you please help explain why the bridge is designed to behave this way? BR, Bridget GPTP_STACK Re: S32N55: sequence ID in gPTP bridge device when acting as a GM Hello @Bridget,  The team has picked up a case and will provide an answer as soon as possible  Best regards, Radu Re: S32N55: sequence ID in gPTP bridge device when acting as a GM Hi @Bridget, We are working to reproduce the issue and will discuss further steps in the team. I will get back to you. Thanks, Lukas Re: S32N55: sequence ID in gPTP bridge device when acting as a GM @Bridget, As it turns out, this behavior of the gPTP Bridge is intended, and in line with the 802.1as standard. The Bridge is supposed to relay Sequence ID received on master port. If the Grand Master is lost, the Sequence ID indeed stops being updated - this is one of the ways that downstream devices are able to tell when GM is lost. For a Bridge that never had a GM in the first place, the Sequence ID is random per standard. Our interpretation of random is that nothing about the Sequence ID is guaranteed, or should be assumed. A hardcoded 1024 is considered compliant to that (could be any other number). Is the Sequence ID causing issues in your application? As you have surely observed, Endpoints are perfectly capable of synchronizing to the Bridge, regardless of Sequence ID. Apologies for taking so long. Please do let me know if anything is unclear. BR, Lukas
查看全文
如何使用恩智浦 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 的联系人,以澄清这个问题。谢谢
查看全文
NXP mpc5744p MCUボードと開発キットMotorGDボードの3Dモデル こんにちは、みんな、 mpc5744p MCU や DevKit motorGD ボードなどの NXP 製品を含む新しいテストベンチを開発しています。 私はテストベンチ用にプロフェッショナルな 3D 画像を入手しようとしており、次の 3D ファイルが必要です: 1. mpc5744p MCUボード 2. DevKit モーターGDボード NXPのウェブサイトで検索したら、.zipファイルを見つけました。レイアウト用のファイルがありましたが、Easyeda を使用して開くことができませんでした。 1. LAY-29379_B.zip 2. LAY-29333_E.zip どなたか、これらを開くか、2 つのボードの 3D モデル ファイルを取得するのを手伝っていただけませんか。 ありがとう、良い一日をお過ごしください! Re: 3d Model of NXP mpc5744p MCU Board & Devkit MotorGD Board こんにちは、 NXPのウェブサイトで検索したら、.zipファイルを見つけました。レイアウト用のファイルがありましたが、Easyeda を使用して開くことができませんでした。 1. LAY-29379_B.zip 2. LAY-29333_E.zip これらは、Candace: allegro で設計されたレイアウト ファイルです。 レイアウトデザインから 3D モデルを抽出できるとは思っていません。 私は次の方法を見つけました: EAGLE + Fusion 360 .brdファイルを開くEAGLE のファイル。 Fusion 360 Sync 機能を使用します。 Fusion 360 → EAGLE デザインをインポートに移動します。 コンポーネントを含む完全な 3D PCB モデルを生成します。 機械統合のために STEP (.step) または IGES としてエクスポートします。 レイアウトデザインから 3D モデルを抽出できるとは思っていません。 500MB 程度の STEP ファイルをコミュニティ経由で共有することはできません。 よろしくお願いいたします。 ピーター Re: 3d Model of NXP mpc5744p MCU Board & Devkit MotorGD Board こんにちは、 petervlnaさん ご返信ありがとうございます。 提案された解決策をEagle + Fusion 360を使用して試しましたが、残念ながら、ファイルを開くことができないことを示すエラーが発生しました (下の画像を参照)。EasyEDA、Altium、KiCadなどの他の PCB ソフトウェアを使用する場合にも、同じ問題が発生します。 この時点で、 .STEP 形式の 2 つのボードの 3D モデルが緊急に必要です。これらのファイルを、 Google Drive、OneDrive、MEGAなどのクラウド ストレージ サービスやその他の便利なプラットフォーム経由で直接提供していただければ幸いです。 改めましてサポートありがとうございます。ご返信をお待ちしております。 よろしくお願いします、 アハメド Re: 3d Model of NXP mpc5744p MCU Board & Devkit MotorGD Board こんにちは、 はい、そのような場合は、NXP サポートにチケットを送信してください。 このようなファイルを取得するには、NXP との有効な NDA も締結する必要があります。 当社のサポート ポータルでは 2GB のファイルが許可されており、以前にも STEP ファイルを共有したことがあるため、STEP モデルをサポート ポータル経由で共有することが可能です。 内部ファイルを当社の公式システム外で共有することはできません。 よろしくお願いいたします。 ピーター Re: 3d Model of NXP mpc5744p MCU Board & Devkit MotorGD Board こんにちは、 petervlnaさん ご提案ありがとうございます。番号 (CASE: 00756530) でCASEを開設しました。 できるだけ早くファイルを入手したいと考えています。 どうもありがとう。 よろしくお願いします、 アハメド
查看全文
iMX6ULLコンソールUARTがRS-485を使用する他のUARTに干渉する カーネル lf-6.6.52-2.2.1 を搭載した iMX6ULL システム。コンソールは、ttymxc3 上の RS-485 シリアル ポートである ttymxc0 に設定されています。トランシーバ「Drive Enable」は SNVS_TAMPER7 にコネクテッドであり、次の DTS があります。 &iomuxc_snvs { pinctrl_rs485_snvs: rs485grp_snvs { fsl,pins = < MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x1b0b1 /* RS485.DE as RTS */ >; }; }; &uart4 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_rs485>, <&pinctrl_rs485_snvs>; fsl,dte-mode; rts-gpios = <&gpio5 7 GPIO_ACTIVE_HIGH>; linux,rs485-enabled-at-boot-time; status = "okay"; label = "rs485"; }; データがコンソールに出力されると、RS-485 シリアル ポートに干渉が発生することに気付きました。RTS/DE 信号が 5 ~ 10 ミリ秒遅延することがあります。これは 9600 bps で 3.5 文字より長いため、ホストがまだバスを駆動しているため、デバイスからの応答が文字化けすることになります。これは次のようにCANできます: while true;do echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx >/dev/kmsg;done これは既知の問題ですか? i.MX6UL ソフトウェア不具合の疑い Yocto Project Re: iMX6ULL console UART interferes with other UART using RS-485 こんにちは@astrand これは Linux カーネルではよくある問題のようです。こちらは LWN.NET での議論です。printk/console は遅いデバイスです。大量のログが発生した場合、カーネルはメッセージをコンソールに同期的に書き込む必要があります。このプロセス中、関連するロックが保持され、CPU 時間が消費され、他のタスクのスケジュールと割り込み処理が遅延されます。コンソールが RS-485 シリアル ポートと異なる場合でも、システム全体のスケジュール/ソフト割り込み/タスク キューは依然として遅くなります。これにより、UART 送信完了イベント情報がドライバに到達し、その後 DE ビットをプルダウンするまでの時間が遅延されます。詳細については、そのディスカッションを参照してください。 https://lwn.net/Articles/909980/ 実行時にCAN、コンソールのログレベルを低く設定するか、 rs485-rts-dts の遅延。 echo "4 4 1 7" > /proc/sys/kernel/printk よろしくお願いします、 志明
查看全文
IMX8mini Yocto Linux 的 rootfs 大小 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 对不起,我必须在这里提出这个问题。 [我的情况]: imx8mini,8G emmc,运行 Yocto Linux,Linux 4.14.98 电路板支持包。 [问题]: 默认情况下,Yocto Linux 版本的 rootfs 大概是 1.3GB,当我把它刷到 EVK 时,整个系统显示的只有 1.3GB,这绝对不合理,因为我的 emmc 是 8GB。 [我目前得到的解决方案] 在上网搜索 Yocto 之后,我知道可以使用 IMAGE_ROOTFS_EXTRA_SPACE=" xxxxxx" 或IMAGE_ROOTFS_SIZE="xxx" 来扩展整个大小。 [我的问题] 但是,如果这样做,我发现我的 rootfs 也会被强制放大到文件大小以上。 e,g,如果我将 IMAGE_ROOTFS_EXTRA_SPACE= " xxxxx " 设置为 8GB,那么版本 rootfs 图像大小也是 8GB!!!!!!!!!!!! 真糟糕,rootfs 添加了这么多无用的零填充,真正的 rootfs 只有 800MB,为什么要添加这么多无用的数据,强行放大到无用的 8GB?????!!!!!!!!!!!这导致我花了太多无用的时间将无用的 8GB 数据闪存到 EMMC!!!!!!!! 这既浪费了闪存图像时间,也浪费了我的硬盘存储!!!!!!!!! 为什么 Yocto 的设计如此糟糕??????? 为什么不使用 Android 的智能方式?????对于 Android,整个 system.img 只有大约 800MB,闪存到 EVK 后,整个系统(/)仍然显示 8GB emmc,而不是 800MB。 有谁能帮助我解决这个令人沮丧的问题?非常感谢。 i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus Linux Re: rootfs size for IMX8mini Yocto Linux 嗨,@Yuri、 我们使用的是 i.MX8M Plus EVK,它有 32 MB QSPI 闪存。 我们的目标是完全从 QSPI 闪存启动 U-Boot、Linux 内核、设备树和 initramfs (rootfs.img)。 我们能够成功启动: U-Boot(来自 flash.bin) Linux 内核(Image.gz) 设备树 (imx8mp-evk.dtb) 但是,我们在从 QSPI 闪存加载和使用 initramfs/rootfs 映像时遇到了问题。内核启动成功,但内核在 Waiting for removable media(等待可移动媒体)处挂起....,请参阅下面附带的日志。 -----Flash 布局和图像大小---------------- QSPI 闪存大小:32 MB flash.bin (U-Boot + SPL) ~2.3 MB Image.gz (内核) ~13.5 MB imx8mp-evk.dtb ~86 KB rootfs.img ~12.6 MB ----QSPI 偏移布局---------- flash.bin @ 0x00000000 Image.gz @ 0x00240000 imx8mp-evk.dtb @ 0x01000000 rootfs.img @ 0x01080000 ------ 将文件编入 QSPI(来自 SD 卡)--------- sf probe 0 sf erase 0x0 0x2000000 fatload mmc 1${loadaddr} flash.bin sf 写${loadaddr} 0x0${filesize} fatload mmc 1${loadaddr} Image.gz sf 写${loadaddr} 0x240000${filesize} fatload mmc 1${loadaddr} imx8mp-evk.dtb sf 写${loadaddr} 0x1000000${filesize} fatload mmc 1${loadaddr} rootfs.img # initramfs (cpio.gz) sf 写${loadaddr} 0x1080000${filesize} ------闪烁后,重启板------------------ 从 u-boot 启动后,为 Linux 内核 (Image.gz)、设备设置环境变量树 (imx8mp-evk.dtb),rootfs.img。 sf probe 0 setenv loadaddr 0x40480000 // 核心 setenv fdt_addr 0x43000000 //dtb setenv initrd_addr 0x43800000 //rootfs setenvkernel_comp_addr_r 0x50000000 setenv kernel_comp_size 0x04000000 sf read${loadaddr} 0x240000 0xCD3CE2 sf read${fdt_addr} 0x1000000 0x14360 sf read${initrd_addr} 0x1080000 0xC04DB0 setenv bootargs"console=ttymxc1,115200 root=/dev/ram0 rw" setenv bootcmd 'sf probe 0; sf read${loadaddr} 0x240000 0xCD3CE2; sf read${fdt_addr} 0x1000000 0x14360; sf read${initrd_addr} 0x1080000 0xC04DB0; booti${loadaddr} ${initrd_addr} ${fdt_addr} ' saveenv ----------------------------------------------------------------------- 1. 使用 SD 卡 Wic 文件在分区(启动/根目录)上运行良好。 2.We genarated Two yocto images ==> 1.bitbake core-image-minimal-initramfs (generated initramfs.cpio.gz)这个 cpio.gx 使用这个 cmd mkimage-A arm-O linux-T ramdisk-d (来自 linux 用户指南)== > 2. 还从 yocto 中生成了使用 bitbake core-image-tiny 生成的微小 rootfs。 core-image-tiny-imx8mp-evk.tar.zst,该 tar 已解压缩到 SD 卡中的 EXT4 分区,并成功加载了微小的 rootfs。 3.但正如第二点所说,rootfs.img 也被放入了 SD 卡的 EXT4 根分区,但却无法加载 rootfs。 ------------------------------------------------------------------------------------------- 1. 这是启动 initramfs (rootfs.img) 的正确方法吗从 QSPI 直接连接 i.MX8M Plus EVK? ----------------------------------------------------------------------------------------------- 3. 有没有推荐的恩智浦参考镜像用于在 i.MX8MP(Linux 内核 (Image.gz)、设备上完全从 QSPI 启动内核和 initramfs树 (imx8mp-evk.dtb),rootfs.img)? 4.如何在 I.MX8MP 上从 QSPI 闪存加载 rootfs.img? Re: rootfs size for IMX8mini Yocto Linux <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> [email protected] 你好 以下是文档,描述了如何版本和使用分区。 分区用户手册 也许使用大尺寸图片会更容易些:-( 此致, 尤里。 Re: rootfs size for IMX8mini Yocto Linux <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,尤里、 谢谢您的帮助。但对于 此外,还可以使用parted之类的实用程序来版本小尺寸的 文件系统并调整部分大小。 如何做到这一点?我很难理解这一点。这是否意味着有一种名为"parted" 的工具可以做到这一点?还是别的什么? 我用"Yocto + parted 谷歌了一下,没有得到任何有用的信息。" 谢谢! Re: rootfs size for IMX8mini Yocto Linux <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好 无论如何,使用 Yocto 方法生成 Linux 系统需要 大量主机资源。如恩智浦Linux文档中所述,客户只需版本一次 文件系统,然后在没有Yocto环境的情况下重新编译U-启动和/ 或内核。此外,还可以使用parted之类的实用程序来构建小尺寸的 文件系统并调整部分大小。 此致, 尤里。
查看全文
关于CANFD中二次采样点偏移SSP Offset的设置问题 在ISO 11898-1 2015,SSP要求是在普通采样点SP之前,但是公司规范中定义了 SSP offset 等于TSEG1,相当于SSP和SP在同一个位置。那么这个就失去了SSP的快速检测错误的功能。请问这个规范中固定的SSP offset是否合理。 例如:规范中要求CANFD采样点配置建议,其中SSP Offset =TSEG1   Re: 关于CANFD中二次采样点偏移SSP Offset的设置问题 您好, 我不知道 ISO 11898-1 2015 的确切措辞,也不知道您的图片来自何处。也许这只是误读。 符合 ISO 标准的 CAN FD 控制器使用 TDC 来测量回路延迟,并使用可配置的 SSP 使发射器能够在更高的数据速率下正确检测数据错误。省略 TDC/SSP 会使这一机制失效,从而降低错误检测的鲁棒性。 图示 TX 输出:代表控制器传输的 CAN FD 位。 RX 输入:代表收发器延迟后的接收比特。 TDC 测量:控制器测量 TX 和 RX 之间的环路延迟。 TDC 偏移:用户可配置的值,添加到测量的延迟中。 SSP 位置:计算公式为 SSP = TDC 测量值 + TDC 偏移。 SSP 不应该在 TX 功能域中的主 SP 之前。相反,在对 RX 信号进行采样时,它的位置应在考虑收发器延迟后与正确的比特中心对齐。从 TX 的角度看,SSP 出现的时间比正常 SP 晚,因为 RX 信号由于物理延迟而滞后于 TX。将 TDC 偏移量设置为等于标称 SP 可确保 RX 采样点与接收位处于同一时间,但可以自由设置,即位于位中间,这对于错误检测和数据完整性是最佳选择。 ISO 11898‑1 要求 SSP 进行发射器延迟补偿,而不是 TX 功能域中的早期错误检测。目标是确保发射器在延迟后能够正确验证自己的位。 BR, Petr Re: 关于CANFD中二次采样点偏移SSP Offset的设置问题 再次感谢
查看全文
S32K312:如何设置芯片的低电压检测 你好,NXT 团队   我只能找到 LVRBLPEN,描述如下   LVRBLP 在 LPM 期间启用位控制 VD D_HV_B 功率域上的低压 RESET 检测 (LVRBLP) 在 LPM 中处于活动状态还是非活动状态   然而,312 引脚上没有 VDD_HV_B,这让我很困惑   顺祝商祺! 赵 Re: S32K312:How to set low voltage detection for chips 你好,彼得 感谢您的回复 我能这样理解吗,低压检测只能在 LPM 模式下关闭? 如果不能关闭,能否配置这个阈值? 我目前正在测试RESET将在2.8V左右触发信号 顺祝商祺! 赵 Re: S32K312:How to set low voltage detection for chips 你好 请问我是否要禁用低电压RESET功能,我需要操作哪个寄存器? 您无法在此设备上禁用低压检测。它会导致意想不到的行为,最后肯定会RESET。 我也认为没有理由这样做,因为我们只保证 uC 的运行符合规范。 顺祝商祺! Peter Re: S32K312:How to set low voltage detection for chips 你好,彼得 感谢您的回复请 问我是否要禁用低电压RESET功能,我需要操作 哪个寄存器? 看来将LVRBLPEN寄存器设置为0将阻止MCU在LPM模式下RESET,在其他模式下应该控制 哪个寄存器? 顺祝商祺! 赵 Re: S32K312:How to set low voltage detection for chips 你好 LVRBLPEN 控制 VDD_HV_B 功能域的低电压 RESET 检测在电源模式 (LPM) 期间是否保持活动状态。 术语 VDD_HV_B 是指内部电源功能域,而不是物理引脚。它是 MCU 内部高压功能域的一部分,为某些外设和逻辑模块供电。 以下是 S32K312 的功率域: 和 S32K312 的耗材表: 该手册在 S32K3xx 系列中很常见。因此,通常所有功能都是笼统描述的,然后有必要注意哪些功能对您的设备衍生产品真正有效。 顺祝商祺! Peter Re: S32K312:How to set low voltage detection for chips 你好,彼得 感谢您的回复 我目前的检测结果是 该芯片将直接在2.8V左右RESET,这是预期的 但是 5.8V 无法RESET 此中断必须配对,并且必须在中断本身内调用RESET函数 请问高低压RESET的不同表现是否归因于芯片的特殊设计 顺祝商祺! 赵 Re: S32K312:How to set low voltage detection for chips 你好 我能这样理解吗,低压检测只能在 LPM 模式下关闭?如果无法将其关闭,我们可以配置这个阈值吗? 我目前正在测试RESET将在2.8V左右触发信号 不能配置其阈值。恩智浦工厂对其进行了微调。 请遵守数据表中规定的操作条件。 顺祝商祺! Peter Re: S32K312:How to set low voltage detection for chips 你好 即使禁用了 LVDIE,设备仍将 RESET 为相同的 2.8 V 阈值。 这种行为(没有 ISR 输入并在低电压跳闸点立即 RESET)是预期的操作,还是低压检测应该能够在 RESET 之前执行其中断处理程序? 这是意料之中的行为。我不清楚 S32K3 是如何实现的,但通常有两套 LVD。一种触发信号中断,另一种在电压下降时触发信号RESET。 这就是你的 2.8 伏电压。因为中断没有意义。因为你的内存、内核执行、寄存器设置可能已经损坏。你也不会因为故障而中断任何操作。 顺祝商祺! Peter Re: S32K312:How to set low voltage detection for chips 你好 请问高低压RESET的不同表现是否归因于芯片的特殊设计 我不明白这个问题。 您可以在低压检测或 HVD 支持的标志上配置中断: 但是 5.8V 无法RESET 但是为什么要RESET呢?高电压不会像低电压一样导致设备故障。 1* - 最高 6.0 伏,使用寿命 10 小时;最高 7.0 伏,使用寿命 60 秒。 甚至可以在 7V 电压下运行。 请遵守数据表的绝对最大额定值。 顺祝商祺! Peter Re: S32K312:How to set low voltage detection for chips 你好 Peter 谢谢你的回复,抱歉,我之前可能没有明确我的问题。 当我启用高压检测中断启用 (HVDIE) 时,调试器可以在中断服务例程的电压约为 5.8 V 时停止。 但是,当我启用低压检测中断启用 (LVDIE) 时,MCU 会立即 RESET 于 ≈ 2.8 V,我永远无法进入 ISR。 即使禁用了 LVDIE,设备仍会在相同的 2.8 V 阈值处触发 RESET。 这种行为(没有 ISR 输入并在低压检测低电压跳闸点立即 RESET)是预期的操作,还是低压检测应该能够在 RESET 之前执行其中断处理程序? 致以最崇高的敬意 Zhao Re: S32K312:How to set low voltage detection for chips 你好 对于 RESET 级别的低压检测(在我的测试中以 2.8 V 跳闸的那个),数据表中是否列出了任何允许我移动其阈值的用户可见的微调位、寄存器字段或出厂配置选项,还是固定、不可屏蔽的电压监测? 客户看不到。此外,每个芯片都有自己的调节器校准值,这些校准值在恩智浦工厂进行修整,以满足规范要求。 对于中断级低压检测(应该更早触发的那个,在 3 V—4 V 左右),手册是否提供了可编程的寄存器场(例如LVDVSEL、LVDSEL 或类似),让我选择其确切的跳变点,如果可以,允许的步长/分钟-最大范围是多少? S32K3 (PMC‑LVDSC1) 上的中断级低压检测不提供 LVDVSEL 或 LVDSEL 等可编程阈值场。其跳闸点在出厂前已校准,无法通过软件进行调整。 如果两个阈值都有记录,请注明寄存器名称和位域;如果其中一个是硬接线,请说明哪一个是固定的 两者都无法让用户访问。 两个跳闸点都是硬接线。 顺祝商祺! Peter Re: S32K312:How to set low voltage detection for chips 你好, 我将 VDD 从 5 V 慢慢降低, 我预计中断电平低压检测将会在更高的阈值(3 V,3.2 V,不管配置如何)下触发,这样我的 ISR 才能在电源变得临界之前运行,只有在导轨最终达到 2.8 V 硬复位跳闸点时,MCU 才会 RESET。 对于 RESET 级别的低压检测(在我的测试中以 2.8 V 跳闸的那个),数据表中是否列出了任何允许我移动其阈值的用户可见的微调位、寄存器字段或出厂配置选项,还是固定、不可屏蔽的电压监测? 对于中断级低压检测(应该更早触发的那个,在 3 V—4 V 左右),手册是否提供了可编程的寄存器场(例如LVDVSEL、LVDSEL 或类似),让我选择其确切的跳变点,如果可以,允许的步长/分钟-最大范围是多少? 如果两个阈值都有文件记录,请注明寄存器名称和位字段;如果其中一个是硬连线,请说明哪个是固定的 最佳问候, Zhao Re: S32K312:How to set low voltage detection for chips 您好 以HVD为例,电压调节至6V,根据MCAL配置项的描述,PMC中断会在HVDAF寄存器被置1时触发,我在触发POWER_IP_E_ISR_HIGH_VOLTAGE事件后在McuErrorIsrNotification回调函数中执行了复位操作,复位后看到HVDAF寄存器被清0,但不会再被置1,所以PMC中断只会触发一次,只执行了一次复位操作,请问这个现象是正常的吗 顺祝商祺 liao
查看全文
STM32Cube IDEからMCUXpresso IDEへ STアプリケーションのポーティング このセクションでは、STM32Cube IDEで開発されたアプリケーションを、NXP MCU用の互換SDKを使用してNXP MCUXpresso IDEに移行するプロセスについて概説します。 STM32Cube IDEに慣れているユーザーの場合、同様の開発環境を維持することで移行が容易になり、学習曲線を緩和できます。この例では、STM32デバイス用に元々開発されたI2Cベースのアプリケーションを、NXP MCU用に再作成し、適応させます。 移行は、必要なI2Cドライバを含む最小限のプロジェクトをMCUXpresso IDEで作成することから始まります。元のSTアプリケーションは、同じボード上のコンポーネント間の通信に2つのI2Cインスタンスを利用します。この機能を再現するには、2組のI2Cピンを初期化する必要があります。さらに、アプリケーションはプッシュボタン入力とLED出力を使用して動作の変化を示すため、MCUxpressoピン構成ツールを使用して対応するGPIOを設定する必要があります。 移行を開始するには、元のSTプロジェクトのメイン・ソース・ファイルと、STの標準ドライバ・セットに含まれていないカスタム・ソース・ファイルを、新しいNXPプロジェクトに組み込む必要があります。 以下の手順は、MCUXpresso IDEでの初期プロジェクトセットアップの概要を示すものです。 [Create a new C/C++ project(新しいC/C++プロジェクトを作成)]を選択します。 ターゲットとなるMCU(例:MCXA156)を選択します。 [Next(次へ)]をクリックします。 [Drivers(ドライバ)]セクションを展開します。 I2Cを選択してください。 [Next(次へ)]をクリックします。 [Finish(完了)]をクリックします。 プロジェクトを作成すると、基本的な「Hello World」のサンプルが含まれます。このテンプレートを開始点として使用できます。メインソースファイルのすべてのコンテンツ(初期マクロ定義を除く)は、アプリケーションロジックを統合するために段階的に置き換えることができ、モジュール式で制御された移行プロセスを可能にします。 次のステップでは、元のSTプロジェクトから新しく作成したMCUXpressoプロジェクトにメインソースファイルを転送します。このプロセス中、標準なSTは含まれ、ドライバ参照は除外されますが、カスタムヘッダーファイルが必要な場合を除きます。この場合、カスタムヘッダは使用されていないため、コアアプリケーションロジックのみが移行されます。 STソース・ファイル内の関数呼び出しの多くは、STM32固有のHAL APIに依存しています。これらの機能は見直され、NXP SDKの同等の機能に体系的に置き換えられます。このアプローチでは、main()ルーチン内の各関数を解析してその目的を理解し、それをNXP環境の対応する実装に置き換えます。   STプロジェクトの簡単の概要: 割込み優先度の設定 複数の割込みが同時に発生した際に優先度レベルを管理するよう、マイクロコントローラの割込みシステムを設定します。 パワー・ペリフェラル・クロックのイネーブルメント パワーマネージメント設定を構成するための前提条件として、パワー(PWR)ペリフェラル・クロックを有効にします。 パワーマネージメントのセットアップ 内部コンポーネント全体のエネルギー効率とパフォーマンスを最適化するために、STM32U5xxマイクロコントローラのパワーマネージメント機能を初期化します。 System Clock Configuration マイクロコントローラのタイミングシステムを設定し、160 MHzの周波数で動作するように構成します。 ペリフェラルの初期化 ペリフェラルのピン構成や機能設定を確立します。このアプリケーションでは、I2C1がフォロワー、I2C3がリーダーとして構成されています。 LED初期化 LEDを低アクティブ状態で開始し、初期状態または通信フィードバックを示すために点灯するように設定します。 GPIO Polling for Button Press GPIO入力ピンの状態を継続的に監視します。ボタンが押されていないと、LEDは速く点滅します。一度押すと、ループは終了し、LEDは点灯したままです。 I2C通信開始 マスター側からI2C通信プロセスを開始し、2つのI2Cインターフェース間のデータ転送を実行します。 NXP SDKではどのように処理されていますか? 割込み優先度の設定 この機能はCMSISコアNVIC機能を通じてサポートされており、直接再利用できます。必要なプリエンプション優先度レベルを確立するには、マクロを定義する必要があります。 クロックと電源の設定 これらの機能は、boardフォルダ内のclock_config.cにあるBOARD_InitBootClocks関数に統合されています。この関数は、NXP MCUのシステムクロックと電源設定の両方を初期化します。 ペリフェラルとピンの初期化 ペリフェラルのセットアップは2つの関数に分かれています。 BOARD_InitBootPins(pin_mux.c内)はI2CとGPIOのピン設定を処理します。 BOARD_InitBootPeripherals(peripherals.c内)はI2Cペリフェラルの初期化とGPIO割込み設定を管理します。 LEDの初期化 GPIOピンは、希望する初期状態に応じて出力を「ハイ」または「ロー」に設定できます。LEDはGPIO_PinWriteを使用して切り替えたり設定したりできます。 ボタン押下のGPIOポーリング この動作は、GPIO_PinReadを使用してボタンの状態を監視するカスタムポーリング関数を使用して再現できます。 I2C通信開始 I2Cマスター通信はLPI2C_MasterStartを使用して開始され、指定されたスレーブデバイスとのデータ転送プロセスが始まります。 Clock Config Toolを使用したクロックの初期化 MCUXpresso IDEには、統合構成ツールが含まれており、インターフェースの右上にあるドロップダウンメニューから適切なオプションを選択することで、プロジェクトエクスプローラからアクセスできます。 システムクロックを設定するには、MCUXpresso IDE内のクロックツールを開きます。 クロック図は選択したMCUでサポートされている構成を示しています。この例では、デバイスの最大コアクロック周波数は96MHzです。これはアプリケーションの要件を満たしているので、デフォルトのクロック設定を変更する必要はありません。 I2Cインスタンスのペリフェラル・クロックを有効にするには、MCUXpresso Config Tools内のクロック構成図に移動します。図をスクロールして利用可能なペリフェラルを見つけ、適切なクロックソースを選択してI2Cモジュールをアクティブにします。 I2C0およびI2C3ペリフェラルのクロックソースを設定するには、クロック構成図の各インスタンスに関連付けられているCLKSELフィールドをダブルクリックします。このセットアップでは、I2C0およびI2C3の両方のクロックソースとしてFRO_HF_DIVを選択します。 次に、クロック構成図で対応するフィールドを選択してクロック分周器を構成します。詳細はインターフェースの右上パネルに表示されます。I2Cペリフェラルへのクロックパスを有効にするには、「Divider clock is running(クロック分周期が実行中)」オプションが選択されていることを確認してください。 この段階で、I2Cペリフェラルクロックは正常に有効化されています。 構成の変更を適用してプロジェクトに統合するには、「コードの更新」をクリックしてください。このアクションにより、対応するソースファイルが生成され、新しい設定がプロジェクト構造に反映されます。 Pins Config Toolを使用したピンの初期化 MCUXpresso IDEには、統合設定ツールが含まれており、インターフェースの右上にあるドロップダウンメニューから適切なオプションを選択することで、プロジェクトエクスプローラからアクセスできます。 I2Cピンの構成を開始するには、MCUXpresso IDEの構成ツールメニューから「Open Pins(ピンを開く)」を選択します。 フィルタ機能を使用して、I2Cインスタンス0と互換性のある使用可能なピンを検索します。ボードの回路図を確認した後、ヘッダー経由でアクセスできるピンP0_16とP0_17が選択されました。LPI2C0:SDAとLPI2C0:SCLを構成オプションから選択して、これらのピンに適切なI2C機能を割り当てます。 I2Cインスタンス3の構成プロセスを繰り返します。ボードの回路図に基づき、P3_27ピンとP3_28ピンがこのインスタンス用に選択されています。ピン構成ツールでLPI2C3:SDAとLPI2C3:SCLを選択し、適切な機能を割り当てます。 ピンの選択が完了すると、各ピンのルーティングと設定を表示する構成テーブルが生成されます。このテーブル内で、ルーティングの詳細を使用して、必要に応じてピンを設定します。I2Cピンに対して、通信中の適切な信号の整合性を確保するために、内部プルアップ抵抗を有効にしてください。 I2Cピンの構成に加えて、入力用と出力用の2つのGPIOピンを設定する必要があります。このボードでは、SW2(P1_7)がボタン入力機能、P3_0がLED出力に割り当てられています。 ピン構成テーブルのルーティング詳細内で、入力GPIOと出力GPIOの両方の動作を定義します。アプリケーション要件に基づいて、LEDをアクティブにするために、出力ピンをロジック・ロー状態(論理0を選択)に初期化する必要があります。入力ピンに対して、ボタンの押下を正確に登録するために、立ち下がりエッジでの割込み検出を有効にします。 構成を確定し、変更をプロジェクトに統合するには、「Update Code(コードを更新)」をクリックします。これにより、必要なソースファイルが生成され、選択した設定がプロジェクト構造に適用されます。 Peripheral Config Toolを使用したペリフェラルの初期化 MCUXpresso IDEには統合構成ツールがあり、プロジェクトエクスプローラからアクセスできます。これらのツールを起動するには、インターフェースの右上にあるドロップダウンメニューを使用します。 ペリフェラルの構成を開始するには、MCUXpresso IDE内の構成ツールメニューから「Open Peripherals(ペリフェラルを開く)」を選択します。 このビューでは、各インスタンスのGPIOとI2C設定の初期化に集中してください。続行するには、 「Peripheral Drivers(ペリフェラル・ドライバ)」を選択して、対象デバイスで利用可能なサポートされているドライバのリストにアクセスします。 GPIO1設定 利用可能なペリフェラル・オプションを絞り込むには、ペリフェラル・ドライバ・ビューの検索フィールドに「GPIO」と入力します。関連するオプションが表示されたら、「OK」をクリックしてGPIOの設定を進めます。 ボタン入力に割り当てられているP1_7の割込み機能を有効にするには、まず新しいペリフェラル・ドライバを選択します。フィルタを使用してGPIOを検索し、適切なドライバを選択して、GPIO1割込みハンドラをアクティブ化します。 I2C3リーダー/マスター構成 I2Cペリフェラルを構成するには、ペリフェラル・ドライバ・ビュー内の検索フィールドに「I2C」を入力して利用可能なオプションをフィルタリングします。該当するドライバが表示されたら、アプリケーションに適したドライバを選択し、「OK」をクリックして続行します。 I2C3をマスター(リーダー)デバイスとして設定し、割り込み駆動のデータ転送を有効にします。この設定により、I2C3インスタンスは通信を開始し、割り込みメカニズムを使用してデータ送信を処理できるため、応答性と効率が向上します。 さらに、I2C3ペリフェラルの割込みハンドラを有効にします。適切な優先度レベルを設定し、送信データ・レディ・フラグを有効にして、割り込みによるデータ転送をサポートします。 I2C0フォロワー/スレーブの構成 I2C0フォロワー・ペリフェラルを構成するには、ペリフェラル・ドライバ・ビュー内の検索フィールドに「I2C」を入力して、利用可能なドライバをフィルタリングします。該当するドライバが表示されたら、適切なものを選択し、「OK」をクリックして構成を進めます。 I2C0をスレーブ(フォロワー)デバイスとして構成します。割込み駆動型転送方式を有効にし、通信に使用するスレーブアドレスを指定します。この設定により、I2C0インスタンスはマスタ要求に応答し、割込み経由でデータ受信を処理できるようになります。 さらに、I2C0ペリフェラルの割込みハンドラを有効にします。適切な優先レベルを設定し、割り当てられたフォロワーアドレスを検証し、受信データ・レディ・フラグをアクティブにして、割り込み駆動型のデータ受信をサポートします。 設定を適用してプロジェクトに統合するには、「Update Code(コードを更新)」をクリックします。このアクションにより、必要なソースファイルが生成され、すべてのペリフェラルとピンの構成がプロジェクト構造に反映されることを確認します。 Config Toolsが生成したファイル MCUXpresso構成ツールは、選択した設定に基づいて自動的にソースコードを生成し、メインアプリケーションへの統合を効率化します。この生成されたコードには、前のステップで構成されたクロック、ピン、およびペリフェラルの初期化ルーチンが含まれます。生成されたすべてのファイルは、プロジェクト構造内のboardディレクトリ内に整理されます。 board.c NXPの開発ボードを使用してプロジェクトを作成する場合、デフォルト構成には、シリアル端末通信用のデバッグUARTピンの初期化が含まれます。この場合、UART機能は不要であり、board.c内の対応する関数は使用されません。 clock_config.c このファイルには、すべてのシステムクロック設定が含まれています。BOARD_InitBootClocks関数を使用して、クロック周波数と電源モードの設定を初期化します。このアプリケーションでは、システムは96 MHzで動作するように構成されています。 peripherals.c このファイルには、Config Toolsで構成されたペリフェラルの初期化コードが含まれています。この例では、I2CインスタンスとGPIO割込みの両方のセットアップルーチンが含まれています。BOARD_InitPeripherals関数を使用することもできますが、生成されたコードをアプリケーション内の特定の場所に選択的に統合し、必要な実行シーケンスに合わせる方が効果的な場合がよくあります。 pin_mux.c このファイルは、I2CとGPIOの割り当てを含む、アプリケーション用に選択されたすべてのピン構成を定義します。UARTピンはデフォルトで含まれていますが、このプロジェクトでは使用しません。BOARD_InitBootPins機能を使ってピン設定を適用してください。 さらに、元のSTアプリケーションにはキャッシュ初期化機能(mx_ICache_init)が含まれています。NXP SDKでは、キャッシュ構成がスタートアップコード内で処理されます。これは、デバイスフォルダの下にあるSystem_MCU.cのSystemInit関数で確認できます。 初期化関数の置き換え クロックとピンの初期化 NXPベースのプロジェクトの主な機能では、システムクロックとピン構成が、構成ツールによって生成された関数を使用して初期化されます。 BOARD_InitBootClocks BOARD_InitBootPins 周辺機器の初期化 ペリフェラルの初期化コードは、Config Tools によって生成されたperipherals.cから提供されます。コードの最初のブロックは、優先度レベルとNVIC構成を含むGPIO割込みハンドラを設定します。 続いて、I2Cマスタとスレーブのインスタンスが、それぞれの割込みハンドラと優先レベルとともに初期化されます。この段階では、割込みフラグはまだ有効になっていません。割込みフラグは、適切なシーケンスを確保し、早すぎる割込みのトリガを回避するために、データ転送機能において後でアクティブ化されます。 peripherals.cファイルには、スレーブ操作用にLPI2C0ペリフェラルを初期化するためのコードスニペットが含まれています。このコードは、目的の実行フローに合わせて、メイン機能やアプリケーション内の他の適切な場所に選択的に組み込むことができます。 MCUXpresso IDEの構成ツールは必要な初期化コードを効果的に生成しますが、アプリケーション内でこのコードの最も適切な配置するのは開発者の責任です。この決定は、実装される特定のプロトコルやペリフェラルに必要な操作シーケンスに基づいて行う必要があります。 たとえば、I2C通信では、データ転送は割込みによって管理されます。タイミングを考慮せずにLPI2C0_init機能を使用すると、割込みが早期に発生し、トランザクションが不完全になったり、誤って管理されたりする可能性があります。 適切に実行するために、推奨されるシーケンスは以下のとおりです。 ペリフェラルと関連する割り込みハンドラを初期化します。 I2Cトランザクションを開始します。 マスタ操作とスレーブ操作の両方で割込みを有効にします。 このアプリケーションでは、初期化はmain()関数内で実行され、割込みフラグは、正しいタイミングとコントロールを維持するため、後からHandle_I2C_Master関数内で選択的に有効化されます。 アクション関数の置き換え SYSTICKの初期化 SYSTICKタイマは、LED点滅速度の制御など、アプリケーション内での遅延操作をサポートするように構成されています。SYSTICKの初期化に関する詳細な手順は以下のセクションで説明されています。 ボタンポーリングとLED制御 この機能は、ボタン入力を継続的にポーリングするカスタム関数を通じて実装されます。ユーザーの操作を待つ間、LEDが切り替わり、準備完了を示します。ボタンを押すと、LEDが点灯したままになり、I2Cデータ転送フェーズに進んでいることを示します。 I2Cマスタの処理 Handle_I2C_Master関数は、NXP SDKのI2Cペリフェラル用に提供されているドライバAPIを使用して実装されています。この関数はI2Cトランザクションを開始し、通信シーケンスを管理します。 マスターおよびスレーブI2Cインスタンスの割込みハンドラは、ペリフェラルの初期化コードから派生しています。この段階では、アプリケーションが必要とする特定の動作をサポートするために、関連する割込みフラグが選択的にイネーブルされます。 WaitForUserButtonPress 関数 GPIO割り込みハンドラのカスタマイズを開始するには、MCUXpresso IDE内でPeripherals Config Toolを開きます。そこから、自動生成されたGPIO用のIRQハンドラをコピーすることができます。このコードは、アプリケーションの特定の要件に合わせて修正することができます。 ペリフェラルを構成した後、コードエディタに戻るには、MCUXpresso IDEの右上にある「Develop(開発)」ボタンをクリックします。開発環境に入ったら、コピーしたIRQハンドラコードをメインのソースファイル(できれば上部周辺)に貼り付けて、アクセスと整理を容易にします。 修正が加えられ、whileループ内に制御変数が含まれるようになり、アプリケーションはボタンが押されるまで実行を一時停止するようになりました。これにより、プログラムはユーザーの操作後にのみ進行し、アプリケーションの意図したフローに沿うことが保証されます。 WaitForUserButtonPress機能は、GPIOの切り替え操作と書き込み操作を利用してLEDの状態を制御し、遅延メカニズムを使用してポーリングループ中の点滅間隔を管理します。遅延を実装するには、SYSTICKタイマーを初期化し、それに応じて構成します。 さらに、アプリケーション内の時間ベースの操作をサポートするために、対応するSYSTICK割込みハンドラとともにグローバルカウンター変数が導入されました。 main()関数内では、ボタンのポーリングロジックの前にSYSTICKタイマーの初期化を追加する必要があります。これにより、ユーザー入力を待機するループに入る前に、遅延メカニズムが完全に動作することが保証されます。 最終的なWaitForUserButtonPress関数には以下が含まれます。 GPIO操作でLED状態の切り替えと制御を行います。 ボタンの状態を継続的にチェックし、押下イベントが検出されたときにのみ続行するwhileループ。 GPIO_* APIは、NXP GPIOドライバライブラリの一部であり、初期化、ピン制御、割込み処理などのさまざまな操作に使用されます。コード内で強調表示されているマクロ(IDEs内では通常ピンクで表示)は、Config Toolsによって生成され、pin_mux.hで定義されます。 アプリケーションで使用される遅延機能は、前述のカスタムSYSTICKベースの関数によって実装されています。 利用可能なGPIO APIの全セットを見るには、fsl_gpio.hヘッダーファイルを参照してください。このファイルは、ポートとピンレベルの制御、構成、割込み管理など、GPIO操作の包括的なサポートを提供します。 I2C割り込みハンドラのカスタマイズ GPIOハンドラと同様の方法でI2C割込みハンドラをカスタマイズするには、まずMCUXpresso IDEでペリフェラル設定ツールを開きます。次に、I2C0用に自動生成されたIRQハンドラを見つけてコピーします。これは、アプリケーションの特定の要件を満たすように変更できる基本テンプレートとして機能します。 コードエディタに戻るには、MCUXpresso IDEの右上にある「Develop(開発)」ボタンをクリックします。開発環境に入ったら、コピーしたI2C割込みハンドラコードをメインソースファイルに貼り付けます。整理とアクセス性を高めるため、できれば上部に貼り付けてください。 Peripherals Config Toolから自動生成された割り込みハンドラをコピーして、I2C3に対し、同じプロセスを繰り返します。このハンドラはI2C0で採用されている方法と同様に、カスタマイズのベースとして利用できます。 I2C割り込みハンドラの統合 元のSTベースのプロジェクトでは、各I2Cインスタンスは、標準操作用とエラー処理用の2つの割込みハンドラを使用していました。ただし、今回の移行で使用されるNXP MCUは、I2Cインスタンスごとに1つの割込みベクタを提供し、標準状態とエラー状態の両方を処理します。 その結果、元の4つのハンドラの機能を、各I2Cインスタンスに1つずつ、合計2つに統合する必要があります。これには、元の割込みロジックを慎重に確認して、マージされた実装で関連するすべてのフラグと動作が保持されるようにする必要があります。 たとえば、元のプロジェクトのスレーブハンドラは、アドレス一致フラグをチェックし、検出されると、データを受信する準備ができているかどうかを確認します。NXP環境における同等の動作は、統合された割込みハンドラ内で適切なステータスフラグを監視することで実装され、アドレス認識とデータ受信の両方が正しく処理されることを保証します。 スレーブハンドラ I2Cスレーブ割込みハンドラは、マスタデバイスが0x7Eでスレーブにアドレスを指定するときにトリガーされます。このアドレスの一致を検出すると、スレーブは要求を確認し、着信データを受信する準備をします。 ハンドラの2番目の部分はデータ受信プロセスを管理します。マスタから送信された各バイトを処理し、送信終了を示すNACK(Not Acknowledge)状態を監視し、受信したデータを指定されたバッファに保存します。これにより、スレーブは通信シーケンスを正しく処理し、すべてのデータが受信された後にスムーズに転送を終了します。 マスタハンドラ I2Cマスタ割込みハンドラは マスタ転送レディ・フラグを監視し、ペリフェラルが次のバイトのデータを送信する準備ができていることを示します。この状態を検出すると、ハンドラは送信バッファをチェックして、送信すべき追加データが残っているかどうかを判断します。送信の進行状況を追跡するためにカウンタが使用されます。 適切なマスタ送信動作を使用して、ハンドラは次のバイトを送信し、バッファポインタを進めます。最後のバイトが送信されると、ハンドラはSTOP条件を発行して、データ転送シーケンスの完了を通知します。 Handle_I2C_Master関数 Handle_I2C_Master関数は、I2C通信プロセスの開始と管理を担当します。最初に、MasterStartコマンドを発行して、指定されたアドレスのスレーブデバイスとの通信を開始します。スレーブからの確認応答が成功すると、対応する割り込みルーチンを通じてデータ転送が処理されます。 この関数はまた、マスタおよびスレーブの両方のI2Cインスタンスの割込みハンドラを初期化します。前述のように、トランザクションシーケンスを中断させる可能性のある早すぎる割込みトリガを防ぐために、マスタが通信を開始した後に割り込みを有効にすることが重要です。 データ転送が完了し、スレーブが想定されるすべてのバイトを受信すると、関数はLEDを定常状態に設定して終了し、実行の成功とアプリケーションフローの終了を示します。 まとめ MCUXpresso IDEを使用してアプリケーションをSTM32開発環境からNXP MCXプラットフォームに移行するには、構造化された体系的なアプローチが必要です。統合構成ツールを利用し、STM32とNXP SDKコンポーネント間の機能の同等性を理解することで、開発者はパフォーマンスと機能を維持しながらアプリケーションを効果的に移行できます。 このガイドでは、I2Cベースのアプリケーションを複製する際の主要な手順を概説しています。これには、プロジェクトのセットアップ、ペリフェラルの構成、ピンとクロックの初期化、および割込み処理が含まれます。ツールは自動生成されたコードを通じて強力な基盤を提供しますが、信頼性の高い操作を保証するために、初期化とランタイムロジックのシーケンスと統合を慎重に検討する必要があります。 両方の環境を明確に理解し、アプリケーションロジックを慎重に適応させることで、開発者は移行プロセスを合理化し、NXP MCXプラットフォームが提供する機能を最大限に活用できます。
查看全文
支持 S32K344 的 MATLAB 和 S32DS 您好,先生, 我正在尝试为 S32K344 制作一个简单的版本模型,并使用 S32 配置工具对其进行配置。但是,它并没有像预期的那样工作,我觉得我可能遗漏了一些步骤。 我已经查看了恩智浦网站上的论坛和视频,但仍然无法解决这个问题。 我附上了一些我的工作截图,供您审阅。 我恳请您就正确的程序或我可以遵循的任何文件提供指导。非常感谢你们的支持。 谢谢! Re: Support on MATLAB and S32DS for S32K344 你好 我检查了您所附的图片,似乎您正确地将 PTB26 配置为输出引脚。 您遇到的问题是,在应用程序刷新到板后,PTB26 的逻辑电平仍然很低。我说得对吗? 为了更好地理解这个问题,你能告诉我你正在使用的开发板的确切模型吗?您安装的是什么版本的 S32K3?您使用的是哪个版本的 MATLAB? 顺祝商祺! 索林-伊万尼德-班奇拉 Re: Support on MATLAB and S32DS for S32K344 你好 我昨天漏查了一件事。 除了引脚和 DIO 元器件外,您还需要将端口元器件配置为使用指定的引脚。由于您使用的是旧版本的工具箱,端口引脚不会根据引脚配置自动更新(这也是它能在 S32DS 中工作的原因)。 总而言之 1。打开配置项目并导航到 Port 元器件。 2.在Dio 端口容器中,添加一个新的端口引脚 ,其 MSCR 为所需引脚的 MSCR(在本例中,对于 PTB28,MSCR 为 60)。 如果这能解决你的问题,请告诉我。 顺祝商祺! 索林-伊万尼德-班奇拉 Re: Support on MATLAB and S32DS for S32K344 感谢您的回复。 所需的详细信息请参见下文: MATLAB 版本:R2022a 开发板:S32K344-172 S32K3 软件包版本:1.6 与此同时,我们还使用 PTA27 进行了测试,但观察到了相同的行为。这让我们怀疑在 DIO 配置和引脚配置之间可能缺少一个环节。我们恳请就正确的程序提供指导,以确保不遗漏任何配置步骤。 关于我前面提到的一点:当我说它可以使用"嵌入式代码时," ,我的意思是我们通过 S32DS 平台使用嵌入式 C 代码测试了相同的逻辑,在这种情况下,引脚的表现与预期完全一致。该问题仅在使用 MATLAB/Simulink 生成的代码时出现。 Re: Support on MATLAB and S32DS for S32K344 是的,现在 Dio 的问题已经解决,而且工作正常。 Re: Support on MATLAB and S32DS for S32K344 你好 我们刚刚发布了 S32K3 工具箱的新版本 (1.8.0)。如果你想升级到最新版本,请前往 MATLAB 中的插件管理器并搜索 nxp_support_package_s32K3。安装支持软件包后,你可以运行 GettingStarted.mlx 脚本,该脚本将指导你安装最新版本。 顺祝商祺! 索林-班奇拉 Re: Support on MATLAB and S32DS for S32K344 您好,感谢您的回复。 您提到的是旧版本的软件。为了便于配置,你能否与我们联系应该使用哪个版本? Re: Support on MATLAB and S32DS for S32K344 你好,@chaudharimohit73、 如果建议的解决方案解决了您的问题,请告诉我。 顺祝商祺! 索林-班奇拉 Re: Support on MATLAB and S32DS for S32K344 您好, DIO 配置成功后,我现在正试图配置 CAN。我想使用混合标准报文和扩展报文的 CAN。 能否请您指导我完成配置步骤?
查看全文
Trace32デバッグを使用したS32K388 拝啓、 Trace32 を使用して S32K388 をデバッグしたいと思います。Trace32 プラグインをインストールするには、以下のリンクにアクセスしました。 https://community.nxp.com/t5/S32-Design-Studio-Knowledge-Base/HOWTO-Install-Lauterbach-TRACE32-debugger-plug-in-into-S32/ta-p/1112237 その後、Trace32 デバッグ構成を使用して、シングルコア プロジェクトとマルチコア プロジェクトの両方の新しいプロジェクトを作成しました。 しかし、Trace32 を使用してデバッグしようとすると、常にエラー メッセージが表示されます。 また、複数のコアをデバッグする場合、 M7_1_0.elfとM7_2_0.elfをプログラムできないという問題が発生します。 これをテストするのを手伝っていただけますか? ありがとうございます。 BR、 ショーン・ウー Re: S32K388 using Trace32 debug こんにちは、 S32DS から直接どのように動作するのかはわかりません。動作させることができなかったからです。 しかし、私はS32DSを使ってTrace32 powerviewを起動したことがありませんでした。 T32 フォルダーから PowerView を起動し、メニューからプログラミング スクリプトを実行するだけです。 ここにはプログラミング スクリプトがあります。Powerview で実行し、デバイスをプログラムするだけです。 その間に、S32DS 経由で CAN を使って起動して実行できるかどうかを確認します。 よろしくお願いいたします。 ピーター Re: S32K388 using Trace32 debug こんにちは、 petervlnaさん s32k38x.cmmとs32k38x.bin(おそらくあなたのフォルダ内のこの名前を私に知らせてもらえますか?このファイルはありません。 ありがとうございます。 BR、 ショーン・ウー Re: S32K388 using Trace32 debug こんにちは、 プライベートメッセージで送信しました。 よろしくお願いいたします。 ピーター Re: S32K388 using Trace32 debug 親愛なるペテヴルナ様 ご協力いただきありがとうございます。 BR、 ショーン・ウー Re: S32K388 using Trace32 debug 親愛なるpetervlna様 私はあなたの s32k38x.cmm を使用していますが、うまく動作します。ご協力いただきありがとうございます。 BR、 ショーン・ウー
查看全文
MCXW716Cの高温動作 こんにちは、 私は #mcxw71 を使用していますが、データシートによると動作温度範囲は–40 °C ~ +125 °Cです。無線と CAN PHY の両方を含むテストを実行しましたが、約 85 °C を超えると安定した動作を実現できません。マイクロコントローラは保護モードに入るか、またはその機能を制限しているようです。 また、SDKs API には、内部温度を NBU に送信する関数があることに気付きました。 私の質問は、NBU は温度調節を実行したり、適切なシステム動作を維持するために温度情報を必要とするのかということです。 より一般的には、MCXW716C が最大定格温度まで適切に動作することを保証するために必要な特定の手順 (構成、キャリブレーション、必要な API 呼び出しなど) はありますか? ご協力をよろしくお願いいたします。 開発ボード Re: MCXW716C operation at high temperature こんにちは。お元気でお過ごしでしょうか。 FRDM ボードとカスタム ボードのどちらを使用していますか?どのようなテストを実行し、どのような動作を観察しましたか? どの SDKs を参照しているのかも教えていただけますか?特定の例またはアプリケーションに取り組んでいますか? よろしくお願いします、 アナ・ソフィア。 Re: MCXW716C operation at high temperature こんにちは@sofiauruetaさん、 参照番号 #MCXW716CMFTAT のカスタム ボードを使用しています。私のテストと設定について説明します ワイヤレス アプリケーション用に、MCXW716CMFTAT を使用して PCB を設計しました。私はソフトウェアを作成し、「connectivity_test」というサンプル プログラムのロジックを使用して無線プロトコルを使用しました。 私は SDK SDK_2.X_MCXW716CxxxA バージョン 25.09.00 を使用しています。 2 つのボードが連携して動作しています。すべてのモジュールを実装しました。テストではヒートガンを使用し、80℃の温度を加えました。15 秒後、マイクロコントローラは動作を停止しました。ブロックされたようで、GPIO がロックされ、通信バスがデータの送信を停止しましたが、30 秒後、温度が下がると、マイクロコントローラは通常の動作に戻りました。 SO、私は、問題を理解するために温度を監視する機能について調査しました。SDK の fwk_platform_sensors ファイルから関数 PLATFORM_StartTemperatureMonitor() を使用しました。 私の目標は、マイクロコントローラがブロックされる正確な温度を知ることでしたが、驚いたことに、これで問題は解決しました。今では +120 °C でテストを実行でき、マイクロコントローラは完璧に動作します。問題がソフトウェア関連であるかどうかを確認するためにこの機能を削除してみましたが、確かに問題は再発しました。 CAN説明していただけますか?この機能を使用して温度を読み取ると、データがさまざまなコアに配布され、特定のパラメータが調整されますか? Re: MCXW716C operation at high temperature こんにちは、 この動作が FRDM ボードを使用した場合にも発生するかどうかを確認できますか?何も変更せずに connectivity_test の例を実行すると問題が発生しますか? また、PLATFORM_StartTemperatureMonitor 関数を呼び出した後は変化しますか? よろしくお願いいたします アナ・ソフィア。
查看全文
S32K3xx FEE初期化時間 こんにちは、チームの皆さん この FEE の動作についてフィードバックを提供していただけますか? Fee_Init 実行時間はレコードごとに約 1.9 ミリ秒増加すると予想されますか?これはかなりの遅延のようです。 Fee_Example_S32K344 では、初期化ルーチンに MEMIF_IDLE を待機する while ループが含まれています。書き込みとリセットのサイクルを繰り返すと、このルーチンに必要な時間が著しく増加します。 例: 1 回の書き込みとリセット後、初期化には約 1.9 ミリ秒かかります。 100 回の書き込み/リセット サイクル後、遅延は約 190 ミリ秒に増加します。 すべてのデータが正常に保存されるように、FEE への書き込みにはブロッキング操作を使用しています。 簡略化したシナリオは次のようになります。 初期化ルーチン FEEへの書き込み(ブロッキング操作) アプリケーションタスクを実行する リセット リセット後、初期化ルーチンにかかる時間が長くなります。 RTDバージョン3.0.0を使用していますパッチはインストールされていません。 ありがとうございました。 BR、ダニエル RTD Re: S32K3xx FEE initialization time こんにちは@danielmartynek 、 それは正常です。Fee ドライバーは、ユーザー データを仮想ブロックの形式で Fls メモリに保存することによって機能します。Fls への書き込みタスクごとに、レコード (ブロック ヘッダー + ユーザー データ + ステータス有効/無効ブロック) が作成されます。つまり、書き込みサイクルが増えると、より多くのレコードが作成されることになります。リセット後、Fee が初期化されます (Fee_Init + fee_mainfunction + MemAcc_mainfunction)。これは、Fls_memory 内のすべてのレコードをスキャンしてブロック ステータス テーブルを再構築することから構成されます。SO、書き込みサイクルの数が多く、初期化をスキャンする必要があり、レコード/ブロックの検証が大きくなります。 よろしくお願いいたします。 ニ Re: S32K3xx FEE initialization time こんにちは@Nhi_Nguyen 、 あなたの言いたいことは分かりますが、レコードあたり 2 ミリ秒というのはかなり長いように思えます。 品質レポートのプロファイリング レポートには、実際にはマイクロ秒単位でタイミングが表示されます。 よろしくお願いいたします。 ダニエル Re: S32K3xx FEE initialization time こんにちは@danielmartynek 、 実際、Fee_Init() は、いくつかのグローバル変数といくつかのレジスタを設定し、fls のステータスをチェックするだけですが、初期化タスクには {MemAcc_Init()、Fee_Init()、(Fee_Mainfunction()、MemAcc_Mainfunction()、fls がアイドル状態になるまで待機する Getstatus) のループが含まれます}。 クラスター ヘッダー、ブロック ヘッダー、データ ブロックの書き込み、ブロックのフラグ ステータスの書き込みをスキャンするループ。 または、Fee_Write() はグローバル変数を設定するだけですが、書き込みタスクには {Fee_Write(), loop of (Fee_mainfunction(), MemAcc_MainFunction(), GetStatus)} が含まれます。 これらのタスクの実行時間は、ページ サイズ、頻度、キャッシュ、仮想ブロックのサイズなどの構成によって異なります。 パッケージに添付されていた Fee の例で、データが 4 バイトの書き込みタスクを実行してみました。約 1,133 ミリ秒かかりました。 プロファイリング レポートは、タスクではなく各関数の実行時間のみを対象としています。 よろしくお願いいたします。 ニ
查看全文
CODEWarrior USB TAP 驱动程序问题 你好,我们使用的是 DSP56F803 芯片,我需要用 S-Record 文件闪存它。 我们有:安装了适用于 56800E 数字信号控制器 V8.3 的 CodeWarrior 的 Windows XP,安装了 56800E 闪存编程器,还有 USB TAP 调试器。 我检查了驱动程序是否已正确安装(CCS-> 驱动程序-> USB)。设备管理器显示该设备已正确安装(libusb-Win32 设备-> CodeWarrior USB TAP)。 但是,USB TAP TX/RX 呈红色闪烁,每次我想刷新 S-Record 文件时它都会提示 " CCSProtocolPlugin: CCS: USB 打开失败 "。 我不知道为什么,一切似乎都很正常,驱动程序也显示正常。 Re: CodeWarrior USB TAP driver issue 你好@Chenxuan、 感谢您的来信。我注意到你还有一个一模一样的私人箱子。我将专注于在该案件中解决您的问题。如需任何最新信息,请随时在该私人邮箱中回复我。 感谢您的理解。 BR 西莱斯特
查看全文
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。   我希望通过上面的解释,现在有感知了。   顺祝商祺! 帕维尔
查看全文