Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
i.MX 93 Memory Compatibility Guide The purpose of this document is to provide extended guidance for the selection of compatible LPDDR4/4X memory devices that are supported by the i.MX 93 series of processors. In all cases, it is strongly recommended to follow the DRAM layout guidelines outlined in the NXP Hardware Developer's Guides for the specific SoCs. The i.MX 93 series of processors supports different packages, and each have their own maximum supported LPDDR4/4x data rates. Please refer to the respective datasheets. Memory devices with binary densities (e.g., 1 GB, 2 GB, 4 GB) are preferred because they simplify memory management by aligning with system addressing schemes and reducing software complexity. NOTE: Some of the LPDDR4/4X devices may not support operation at low speeds and in addition, DQ ODT may not be active, which can impact signal integrity at these speeds. If low-speed operation is planned in the use case, please consult with the memory vendor about the configuration aspects and possible customization of the memory device so correct functionality is ensured. LPDDR4/4X - Maximum Supported Densities SoC Max Data bus width Maximum density Assumed memory organization Notes i.MX 93 (i.MX 93xx) 16-bit 16 Gb / (2 GB) single rank, single channel device with 17-row addresses (R0 - R16) 1, 2, 3   LPDDR4/4X - List of Validated Memories The validation process is an ongoing effort - regular updates of the table are expected. SoC Density Memory Vendor Validated Memory Part# Notes i.MX 93 16 Gb/ (2 GB) Micron LPDDR4/4x: MT53E1G16D1FW-046 AAT:A  (Z32N) MT53E1G16D1ZW-046 AAT:C (Z42N) 7 4, 8 8 Gb/ (1 GB) Micron LPDDR4/4x: MT53D512M16D1DS-046 AAT (Z11M) 4, 10 16 Gb/ (2 GB) Micron LPDDR4/4x: MT53E1G32D2FW-046 AUT:B (Z42M) 4, 5, 10 8 Gb/ (1 GB) Nanya LPDDR4: NT6AN512M16AV-J1I LPDDR4x: NT6AP512M16BV-J1I 4, 8 4 Gb/ (512 MB) Nanya LPDDR4x: NT6AP256M16AV  4, 8 16 Gb/ (2 GB) Kingston LPDDR4: D1611PM3BDGUI-U 4, 8 16 Gb/ (2 GB) Kingston LPDDR4: C1612PC2WDGTKR-U  7, 9 4 Gb/ (512 MB) ISSI LPDDR4: IS43LQ16256B-062BLI 4, 8 2 Gb / (256 MB) ISSI LPDDR4: IS43LQ16128A-062BSLI 4, 6, 8   8 Gb/ (1 GB) CXMT LPDDR4/4x: CXDB4CBAM-EA-M 4, 9 16 Gb/ (2 GB) JSC LPDDR4x: JSL4BAG167ZAMF  4, 8 8 Gb/ (1 GB) JSC LPDDR4x: JSL4B8G168ZAMF-05x  4, 8 4 Gb/ (512 MB) JSC LPDDR4x: JSL4A4G168ZAMF-05 4, 8 2 Gb / (256 MB) Winbond  LPDDR4x: W66BQ6NBHAGJ 4, 6, 8 8 Gb / (1 GB) IM (Intelligent Memory) LPDDR4x: IM8G16L4JCB-046I 4, 11 16 Gb / (2 GB) IM (Intelligent Memory) LPDDR4/4x: IMAG16L4KBBG 4, 8 4 Gb / (512 MB) Samsung LPDDR4: K4F4E164HD-THCL 4, 8 8Gb / (1 GB) AM (Alliance Memory) LPDDR4X: AS4C512M16MD4V-053BIN 4, 8 4 Gb / (512 MB) ISSI LPDDR4/4X: IS43LQ16256B-053BLI 4, 8 8 Gb / (1 GB) ISSI LPDDR4/4X: IS46LQ16512B-046BLA2 4, 8 32Gb / (4GB) 16 Gb / (2Gb) usable by i.MX 93 ISSI LPDDR4/4X: IS46LQ32K01B-046BLI 4, 8   Note 1: The numbers are based purely on the IP documentation for the DDR Controller and the DDR PHY, on the settings of the implementation parameters chosen for their integration into the SoC, SoC reference manual and on the JEDEC standards JESD209-4B/JESD209-4-1 (LPDDR4/4X). Therefore, they are not backed by validation, unless said otherwise and there is no guarantee that an SoC with the specific density and/or desired internal organization is offered by the memory vendors. Should the customers choose to use the maximum density and assume it in the intended use case, they do it at their own risk. Note 2: Byte-mode LPDDR4/4X devices (x16 channel internally split between two dies, x8 each) of any density are not supported therefore, the numbers are applicable only to devices with x16 internal organization (referred to as "standard" in the JEDEC specification). Note 3: The SoC also supports dual rank single channel devices therefore, 16Gb/2GB density can be also achieved by using a dual rank single channel device with 16-row addresses (R0 - R15). Note 4: The memory part number did not undergo full JEDEC verification however, it passed all functional testing items. Note 5: This is a dual channel x32 device. Since i.MX93 only supports 16-bit LPDDR4/X data bus, it can only interface with one of the channels and therefore, utilize only half of the device's density. As indicated in the table - the device has 32Gb/4GB density however, only 16Gb/2GB can be used. There is no functional problem with using only one channel of a dual channel device as the channels are independent in LPDDR4/4X.  Note 6: This is a new JEDEC 100 ball package, half the size of the standard 200 ball package. This 100 ball package has the same performance and functionality as the 200 ball package, and has the added advantage of being smaller and cheaper than the standard package. Note 7: This device has been EoLed by the manufacturer and has been updated by a new memory part number  Note 8: Part is active. Reviewed Q3 2026 Note 9: Part is obsolete. Note 10: This device will be EoLed in Q2 24 by the manufacturer and will not be updated by a new memory part number Note 11: DQ eye marginalities were identified during TSA analysis. vTSA and stability testing did not identify any issues.
記事全体を表示
PN7462AU FreeRTOS:无法从 heap_3 切换到 heap_4,系统卡死 + 堆内存使用情况可见性 大家好,我正在使用搭载 FreeRTOS 的 PN7462AU 平台,SDK 示例已配置为使用 heap_3.c。我目前遇到了内存溢出问题,想更深入地了解堆的配置。 由于 heap_3 使用标准库中的 malloc()/free(),因此无法使用 xPortGetFreeHeapSize() 等函数以及堆统计信息。为了了解堆的使用情况,并可能增加可用堆空间,我尝试通过禁用 heap_3.c 来切换到 heap_4.c并启用 heap_4.c。然而,进行此项更改后,应用程序在启动时会卡住。 我有以下几个问题: 在 PN7462AU 上将 heap_3 切换为 heap_4 是否安全且值得推荐? 如何确定 heap_3 当前可用的内存量? 由于 heap_3 不支持 xportgetFreeHeapSize (),因此推荐使用哪些方法来监测堆使用情况和检测内存耗尽? 从 heap_3 迁移到 heap_4 时,还需要进行哪些额外的配置更改(例如 configTOTAL_HEAP_SIZE、链接器脚本更改、内存区域等)? 如果能提供关于 PN7462AU 和 FreeRTOS 的具体指导或示例,将不胜感激。 谢谢 核心与内存 Re: PN7462AU FreeRTOS: Unable to switch from heap_3 to heap_4, system stuck + heap usage visibility 你好@uday_gowda , NFC读取器库提供了示例,展示了如何使用 PN7462 实现 FreeRTOS,这可能会有所帮助。另外,我建议参阅AN11784 ,它提供了有关将 RTOS 与 PN7462 集成的指导,您可以参考该文档。 MCUXpresso IDE 还包含多个用于 FreeRTOS 应用程序的调试功能。特别是,“堆使用情况视图”可以帮到你。更多详情请参阅MCUXpresso IDE 25.06 FreeRTOS 调试指南第 3.6 章。 最后,请注意PN7462只有12k的SRAM。 BR 哈比卜
記事全体を表示
什么是工业以太网协议?EtherCAT、PROFINET 和 EtherNet/IP 详解(日语博客) 目录 介绍 什么是工业以太网? 工业网络的基本结构 1. EtherCAT(超高速、低延迟方向) 2. Profinet(灵活性/互操作性) 3. 以太网/IP(IT 亲和性/标准化) 总结 介绍   工业设备通信正迅速从传统的现场总线转向基于以太网的系统。而这一转变的核心正是工业以太网协议。   本文重点介绍三种广泛使用的协议,并清楚地解释它们在技术结构和设计理念上的差异。 以太网 PROFINET 以太网/IP (※评估和实施方法将在另一篇文章中详细说明。) 什么是工业以太网?   简而言之,工业以太网是一种通信技术,与通用以太网相比,它增强了“实时性能”、“鲁棒性”和“诊断能力” 。 标准以太网在工业应用中面临以下挑战:   这是一种尽力而为的通信方式,延迟会根据负载和切换过程而变化。 可能会出现丢帧(丢包)现象。 TCP/UDP/IP 并非为实时控制而设计。 为了应对这些挑战,工业以太网协议采用独特的方法来满足以下要求:   实时通信 同步控制 冗余配置 诊断功能   ■ 理解工业以太网的关键点:OSI 模型   理解工业以太网的关键之一在于理解“实时性能是在哪一层实现的”,而OSI参考模型有助于理解这一点。OSI模型将通信功能划分为七层,每一层都扮演着不同的角色,从物理信号的传输到应用处理。 工业以太网以 OSI 的每一层为基础,并针对每种协议扩展和优化特定层,从而实现实时性能和可靠性。 工业以太网中的 OSI 参考模型: 等级制度 姓名 工业以太网的作用 7 应用 通信数据内容(设备控制、状态、设置) 6 推介会 数据编码、压缩和加密 5 会议 建立、维护和终止通信 4 运输 通信质量控制(TCP/UDP),数据传输保证。 3 网络 通过 IP 地址路由(确定数据包目的地) 2 数据链路 通过 MAC 地址进行数据传输,创建以太网帧 1 物理 电缆(Cat5e/6 等)、连接器和物理信号传输。 工业以太网协议所使用的层: 以太网协议各特性: 协议 等级制度 特点 以太网 2 无需使用IP即可实现高速传输 PROFINET RT/IRT 是L2 NRT L3/4 RT 和 IRT 的区分使用。 以太网/IP 3/4 基于标准以太网 这些特征差异直接导致以下结果: 速度(实时性能) 实施成本 适用范围   工业网络的基本结构   工业以太网通常具有共同的基本结构,而本文讨论的三种协议(EtherCAT、PROFINET 和 EtherNet/IP)也不例外。 ■ 系统和设备结构   工业网络大致可以分为“控制器侧”和“设备侧”。   主设备(控制器): 它在控制整个网络中起着核心作用。 启动通信并设置连接参数 发送输出数据和接收输入数据 沟通管理和终止流程 典型例子:PLC、工业PC 子设备(设备): 响应连接请求并发送和接收必要数据。 接收输出数据并发送输入数据 网络自通知 根据需要发送警报 典型例子:传感器、伺服电机、执行器 ■ 沟通方式:周期性沟通与非周期性沟通 连接建立后,主设备和子设备之间会以极短的时间间隔持续交换I/O数据。根据应用场景的不同,这种通信可分为“周期性通信”和“非周期性通信”。 周期性沟通(周期性沟通) 应用:用于实时控制 - 对于需要实时性能的应用,例如电机控制和I/O控制,至关重要。 非循环通信 用途:配置、诊断和事件管理 - 用于读取和写入配置数据、诊断信息和意外事件通知。 ■支持实时性能的关键概念:同步(时钟) 在工业系统中,“所有设备都按照同一时间标准运行”这一点至关重要。 例如,如下图所示,如果多个设备在不同的时间 Δt₁、Δt₂ 和 Δt₃ 获取数据,则控制器 (PLC) 接收到的信息将不是来自同一时间的数据,而是时间上交错的“单独的快照”。 结果: 位置错位的发生 错误的控制判断 特别是运动控制中的关键同步误差 这可能会导致诸如此类的问题。 因此,在工业以太网中,设备间时钟同步机制是一个至关重要的要素。 三种协议的技术比较总结   以太网 PROFINET 以太网/IP 运营组织 贝乔夫 / ETG(EtherCAT 技术集团) 西门子 / PNO(PROFIBUS & PROFINET International) 洛克威尔 / OVDA(开放设备网络供应商协会) 沟通方式 摘要帧(子设备在帧中读取和写入数据) 基于第 2 层的实时通信 (RT/IRT) CIP:显式(TCP)/隐式(UDP)通信模型 主要用途 运动控制,超高速控制 通用型FA、过程控制以及广泛的工业应用 工厂自动化、PLC网络、机器人 周期 约 31.25μs 级(取决于具体实现,速度非常快) RT:几毫秒 IRT:31.25μs(取决于具体实现方式,TSN/IRT) 通常情况下,延迟级别为 10 毫秒(基于 UDP)。 同步方法 分布式时钟(DC) IRT:精确同步(PTCP) CIP 同步(IEEE1588) 设备型号 PDO/SDO(基于 EtherCAT 的 CANopen) 插槽/子插槽(GSDML) 类/实例/属性对象模型 拓扑 线型、树型、环型(低延迟) 线、星、环(MRP/MRPD) 线、星、环(DLR) 优势 简而言之,就是高速低延迟/硬件处理。 多种类别和诊断功能,高度互操作性 广泛应用于标准以太网基础设施,易于理解。 接下来,我们将解释每项技术特点。 1. EtherCAT (超高速、低延迟导向型) ■ EtherCAT 概述 由 Beckhoff Automation 开发,ETG 管理。 它运行于第 2 层,没有 IP/TCP/UDP 开销。 周期时间:约31.25微秒(取决于具体实现方式) 同步精度:±1μs 或更小 ■ 网络配置 主设备(主控设备)和  多个子设备(从设备) 该子设备配备了ESC ( EtherCAT 从控制器),并使用专用硬件进行高速处理。 虽然线路配置是基本设置,但它也支持使用环形结构的冗余配置。 图: EtherCAT网络配置图 EtherCAT 最显著的特点是“即时处理”。单个帧在经过所有设备的过程中都会被处理,每个设备都会在传输过程中读取和写入数据。由于处理工作由专用硬件(ESC)完成,无需 CPU 参与,因此延迟极低。   图: EtherCAT网络传输图像 ■ 相关协议转换:EtherCAT(IEC 61784-2-12) • CoE (CAN over EtherCAT):通过EtherCAT帧隧道化,使CANopen通信得以使用。 • FoE (File over EtherCAT):一种通过 EtherCAT 传输文件的协议。 EoE (以太网 over EtherCAT):一种封装和传输常规以太网帧(例如TCP/IP )的机制。 图:主设备(MDevice)的EoE协议转换 2. PROFINET (灵活性/互操作性) ■ PROFINET 概述 由西门子开发,PNO 管理。 基于标准以太网 根据应用场景选择RT/IRT/NRT。 生产者/消费者模式 ■ 网络配置 灵活支持各种拓扑结构,例如线型、星型和混合型拓扑结构。 它还支持通过MRP (媒体冗余协议) / MRPD(IRT)实现环冗余。 PROFINET的通信性能按“一致性等级( CC )”进行分类。 CC-A :基本实时,所有IT服务(例如TCP/IP )均可无限制使用。 CC-B :为通用FA的RT添加网络诊断和其他功能。 CC-C ( IRT ): 31.25 μs级运动应用 ■ 沟通类型 NRT(非实时):记录读/写:非周期性地发送和接收参数和设置。报警:通知设备异常情况。 RT:周期性I/O通信,通常为1 毫秒 IRT(等时性):时间同步的高速周期性通信,通常为 31.25 微秒。 → 实现了高度灵活性、详细的诊断和高度互操作性。 3. 以太网/IP ( IT兼容性/标准化) ■以太网/IP概述 EtherNet/IP 由 ODVA(开放设备网络供应商协会)管理。 它采用 CIP(通用工业协议),该协议运行在 TCP/UDP/IP(L3/L4)之上的一层。 面向对象模型 ■ 网络配置 支持线型、星型和环形拓扑结构。 支持使用DLR (设备级环)的高速冗余。 主设备 →扫描器:作为控制器运行,通常发起请求。 子设备 →适配器:响应该请求的设备。 ■ EtherNet/IP 的关键特性:“面向对象模型” 每个设备都被定义为由“类”、“实例”、“属性”和“服务”组成的对象的集合。 类:函数类型(例如,恒等函数、汇编函数) 实例:该类的特定实例。 属性:每个实例所具有的特定值。 服务:操作细节,例如读写。 这使得设备的功能结构非常清晰,从而实现了与不同制造商之间的高度兼容性。 ■ 沟通类型 显式消息连接 使用TCP ,读取和写入配置值,执行自我诊断,并记录日志。 分别发出一次“读”和一次“写”之类的指令。 隐式消息传递 - I/O 连接 它使用UDP 协议,可以实现实时通信,例如循环I/O ,扫描器会定期发送和接收I/O数据。   EtherNet/IP的关键特性是它能够使用隐式( UDP )协议实现高速I/O通信。 总结 工业以太网不仅仅是通信;它是一种能够实现实时控制的系统技术。本文介绍的三种协议分别通过不同的方法来实现这一目标。 协议 设计理念 主要用途 以太网 高速、低延迟 运动控制 PROFINET 灵活性和集成性 通用工厂自动化(FA) 以太网/IP IT集成 PLC网络   作为未来的发展趋势,产业网络将朝着以下方向发展。 TSN (时间敏感网络) 安全(包括符合《社区再投资法案》) 与OPC UA集成 换句话说,关键在于“实时性× IT集成×安全性”的融合。 下次, 为什么i.MX RT1180适用于工业以太网协议? 实际实施和评估程序 我们将详细解释这一点。 ============================= 我们目前无法 回复 此帖子“ 评论”部分留下的评论。 对于由此造成的不便,我们深表歉意,但 在进行咨询时, 请 参考“ NXP 技术问题 - 如何联系我们 ( 日语博客 ) ” 。 (如果您已经是 恩智浦的 分销商或 与 恩智浦 有合作关系 ,您可以直接咨询您的代表。 ) 工业设备通信正迅速从传统的现场总线转向基于以太网的系统。而这一转变的核心正是工业以太网协议。 本文重点介绍三种广泛使用的协议,并清楚地解释它们在技术结构和设计理念上的差异。 以太网 PROFINET 以太网/IP (※评估和实施方法将在另一篇文章中详细说明。)   本文将介绍主导工业以太网的三大协议:EtherCAT、PROFINET 和 EtherNet/IP,并清晰地解释它们在技术结构和设计理念上的差异。   (阅读时间:15分钟) i.MX RT 处理器 介绍 日本博客
記事全体を表示
由于 高效密码学标准\\(SEC\\)/CAAM 未初始化,BL2 中的安全启动失败 安全启动在 BL2 中失败看起来是因为 高效密码学标准(SEC)/CAAM 未初始化。在仔细研究代码时,似乎没有直接调用 sec_init,但看起来配置函数是在它之前被调用的,因此全局变量无法获得 高效密码学标准(SEC) 区块地址的定义常量。即 NXP_CAAM_ADDR 值。当我对这个值进行硬编码时,我可以让它稍微进一点,但随后我出现了无法刷新/重置任务铃声的错误。 QorIQ LS1设备 Re: Secure boot fails in BL2 because SEC/CAAM not initialized 你好 BL2中的这种安全启动失败是TF-A(可信固件-A)初始化流程中典型的 " chicken and egg " 问题,专门针对恩智浦Layerscape或i.MX平台。 当你对 NXP_CAAM_ADDR 进行硬编码并克服地址错误但遇到 Job Ring 刷新/RESET 错误时,这通常意味着 CAAM 硬件块要么没有时钟,要么处于过渡状态,要么被安全违规阻止。   1.初始化序列 sec_init 没有在配置函数之前被调用的原因,很可能是 bl2_main.c 中的顺序造成的。或特定平台的 plat_bl2_el3_setup.c 。 修复:确保在 bl2_el3_early_platform_setup 内调用 plat_ls_sec_init() (或与 SoC 类似的函数)。 全局变量问题:如果 NXP_CAAM_ADDR 没有弹出,请检查平台的 plat_get_caam_address() 函数是否返回 0,或者 BL2 转换表中的数据段是否没有正确映射。   2.为什么工作环冲洗失败 如果代码试图刷新作业环却失败了,请考虑以下三个罪魁祸首: 安全违规(最有可能):如果 SoC 处于 " Closed " 模式(已熔丝),CAAM 可能在从 bootROM 过渡到 BL2 的过程中触发了安全违规。网络安全违规会使 CAAM 处于 " Halted " 状态,在该状态下,在违规行为被清除之前,无法重置或使用工作戒指。 缺少时钟/功率:如果在 BL2 期间未在 DCFG(设备配置)或 PCC(外设时钟控制)中明确启用 高效密码学标准(SEC) 模块时钟门,则寄存器将可访问(如果幸运的话),但内部逻辑(如 Job Ring 控制器)不会响应重置命令。 主 ID (MID) 不匹配:作业环需要特定的主 ID 配置,以便 BL2(在 EL3 中运行)能够"自己的" 。如果 BootROM 将振铃分配到不同的 MID 但没有释放它们,BL2 在尝试 RESET 它们时会超时。   3.调试步骤 检查 SEC_VID(版本 ID)和 SEC_STA(状态)寄存器:在 Job Ring 重置呼叫之前阅读这些寄存器。如果状态寄存器显示网络安全违规,则需要找出触发该违规的原因(通常是前一阶段的身份验证失败)。 验证重置位:确保在切换重置位后等待足够长的时间。在某些芯片版本中,CAAM 重置所需的时间比 SDK 中提供的标准延迟环路长。 检查 TrustZone 设置:确保您正在访问的任务环在中央安全单元 (CSU) 或资源域控制器 (RDC) 中标记为 " Secure "。 此致 Re: Secure boot fails in BL2 because SEC/CAAM not initialized 开机后,但在加载 SRKH 镜像寄存器并释放 CPU 之前,如果我检查 DCFG_CCSR_DEVDISR1 寄存器,我会发现位 22 (高效密码学标准(SEC)) 设置为 1。根据有关重置的文档,该寄存器应全部为 0。在启动过程的这么早期,这个值可能在哪里设置?我需要对 pbl 命令做些什么吗?RCW 是否有误?我确实看到在低功耗安全寄存器中检测到电源故障,但我也看到配置寄存器显示应忽略/不应对低功率篡改采取行动。 Re: Secure boot fails in BL2 because SEC/CAAM not initialized 好吧,谁能帮我确认一下? 在 TF-A 驱动程序/nxp/dcfg/dcfg.c 中我找到了一个用于检查是否启用 高效密码学标准(SEC) 的计算方法。它在 SVR_SEC_MASK 和寄存器 0x1ee00a4 的值之间进行比特& ,寄存器 0x1ee00a4 是一个只读寄存器。如果我正确读取了字段,那么 16-23 位的状态是否为 ls1043 或 ls1023,是否 高效密码学标准\(SEC\) 硬件是否启用。我看到该位的值为 0x00000001。哪个会是这个芯片上禁用的高效密码学标准(SEC)封锁,对吗?我参考了完整零件号的示意图并得到了 LS1043ASN7MNLB,当我查看恩智浦的网站显示高效密码学标准(SEC)已禁用时。这是否导致了我的安全启动问题?高效密码学标准(SEC)能否启用这款芯片,还是在它离开恩智浦后就一成不变了?我们需要考虑其他芯片吗,还是可以在没有高效密码学标准(SEC)的情况下进行安全启动? Re: Secure boot fails in BL2 because SEC/CAAM not initialized 支持人工智能复制粘贴?如果我们要走这条路,就需要进一步调整代理。如果 SoC 知道自己的代码库,那么它就应该知道 NXP_CAAM_ADDR 是在头文件中静态定义的,而不是先填充的。
記事全体を表示
Physical connections for INT2 on MPL3115A2 and nRST on MPL115A2 Hi, I'd like to use interchangeably either a MPL115A2 or a MPL3115A2 in my circuit and I'm wondering if I can get away with not using a DNF/resistor on pin 5 and just connecting it to VDD. This is the RST line (active low) on the 115A2 but is INT2 on the 3115A2. What would the effect be if the INT2 line was internally pulling low and the pin is connected to VDD? Is the internal resistance enough that it wouldn't overheat/blow up? Would it be power hungry? Is this a CMOS type output? etc. etc. I'd be running them both from 3.3V on VDD/VDDIO. Any information appreciated - The only information I can find in the datasheets on this is VOH/VOL for INT1 and INT2 with a test condition I_o of 500uA. Pressure Sensors Re: Physical connections for INT2 on MPL3115A2 and nRST on MPL115A2 Thanks Tomas, your reply is very helpful. Re: Physical connections for INT2 on MPL3115A2 and nRST on MPL115A2 Timothy, By default all interrupts are disabled (CTRL_REG4 = 0x00), so the INT2 pin will be high all the time. If you want to use any of the internal interrupts (Data Ready, FIFO etc.), just set a corresponding bit in the CTRL_REG4 register and then route the interrupt to the INT1 pin by setting a corresponding bit in the CTRL_REG5 register. In both cases the INT2 pin can be connected directly to VDD without any problems. I hope it helps. Regards, Tomas
記事全体を表示
Installing SDK for NHS3152 fails Hello, I am trying to develop the firmware for a NHS3152TEMOADK board. I have MCUXpresso 25.6.136. When trying to install the SDK (release_mra2_12_6_nhs3152.zip) I get the following error message shown in the attached picture. Please suggest a solution. Mo Re: Installing SDK for NHS3152 fails Hello @MoAbdol  Please select the below button and import the project should be working. Does not need install SDK.
記事全体を表示
首次成功设计 KW47(汽车级)或 MCX W72(物联网 / 工业级)PCB 的最佳方法 /*** 2025 年 4 月最新免责声明: - KW47、MCX W72 是 KW45 和 MCX W71 的直接衍生产品 —— 请将本页面加入书签以获取未来更新 - 本文基于 KW45、K32W148、MCX W71 进行早期启用说明,有待 2025 年 KW47 和 MCX W72 更广泛发布时更新 -- 大部分设计文档(包括数据手册、参考手册和硬件制造文件)可应要求提供--  ***/ 请参考以下重要链接,了解如何使用 KW47 或 MCX W72 设计 PCB,以及有关射频性能、低功耗和射频认证 (CE/FCC/IC) 的所有信息。 KW47 产品 NXP 官网页面:https://www.nxp.com/products/KW47 MCXW72 产品 NXP 官网页面:https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/mcx-arm-cortex-m/mcx-w-series-microcontrollers/mcx-w72x-secure-and-ultra-low-power-mcus-for-matter-thread-zigbee-and-bluetooth-le:MCX-W72X KW-MCXW-EVK 入门指南 NXP 官网页面(待 KW47/MCXW72 发布) KW47-LOC 入门指南 NXP 官网页面(待 KW47/MCXW72 发布) MCXW72-LOC 入门指南 NXP 官网页面(待 KW47/MCXW72 发布) 硬件  KW47 和 MCX W72 EVK 开发板:初步附件  KW47 LOC 信道探测板 - 原理图:初步附件  KW47-MCXW72-EVK 硬件指南:可应要求提供    HVQFN48 封装规格:SOT619-17 (D)(待 SOT619-17 (DD) 发布)    KW47-MCXW72-EVK 用户手册(待 KW47/MCXW72 发布)    最小物料清单(附件)>> KW45 - MCX W71 - KW47 - MCX W72 Minimum BoM Presentation Customers July25.pdf   DC-DC 管理指南 (AN13831):KW45/K32W148 - 电源管理硬件 (nxp.com)(KW45 的内容适用于 KW47,待 KW47/MCXW72 版本发布)   Design-In 检查清单:请参阅本文底部附件   射频匹配:S 参数(附件)(待 KW47/MCXW72 发布)   PCB 上纽扣电池应用处理方法:AN14664_Coincell_Hardware_recommendation_Rev1.0.pdf 说明:“由于射频性能取决于 PCB 布局和制造工艺,基于 NXP 建议制作的 PCB 原型必须进行微调,以确保最终产品平台达到预期的射频合格标准。” 在 EVK 上,为连接 M10 模块进行射频测试,建议使用 μFL 转 SMA 电缆: CSH-SGFB-200-UFFR TE Connectivity / Linx Technologies | Mouser France 在 KW47-LOC 或 MCXW72-LOC 上,需安装特定的 SMA 连接器以实现连接:TE Connectivity Ltd CONSMA021.062-G 从 KW45 到 KW47 的硬件移植: KW47 与 KW45 引脚到引脚兼容。然而,从硬件的角度来看,某些组件的值需要进行调整,例如 RF 匹配组件的值。 根据当前的硅验证,预计KW4x周围的其他组件不会发生变化。 另请注意,为实现 KW47 的新功能,部分引脚采用了新的复用配置。例如,KW47 提供了第二个 Flex CAN。详见附件。 射频   射频报告:KW45 和 K32W148 的蓝牙低功耗射频系统评估报告,以及 K32W148 的 802.15.4 应用评估报告……(待 KW47/MCXW72 发布,可应要求提供)   射频共存:Kinetis 无线系列产品的蓝牙低功耗与 Wi-Fi 共存应用(nxp.com)(待 KW47/MCXW72 发布)   距离性能:参考附件(待 KW47/MCXW72 发布)   天线: 用于NXP EVK板的2.4 GHz通信设计和应用的紧凑型平面天线 用于信道探测应用的天线   BLE 连接性测试二进制文件:可按需在 SDK 中获取   回波损耗 (S11) 测量:如何测量射频匹配的回波损耗 (S11)(射频报告 AN13728 的一部分)   负载牵引:待 KW47/MCXW72 发布 用于 RF 试验的 SW 工具:   IoT 工具箱(移动应用)   连接性产品的连接测试工具(IoT 工具箱的一部分)   DTM:如何在 Kinetis 系列产品上使用 HCI_bb……- NXP 社区 https://community.nxp.com/t5/Wireless-Connectivity-Knowledge/BLE-HCI-Application-to-set-transmitter-... 晶体  文章:KW45/K32W1 的 32MHz 和 32kHz 振荡裕量 - NXP 社区(待 KW47/MCXW72 发布) 推荐的水晶已附上 低功耗 蓝牙 LE 功耗配置文件估算工具 KW45_WK47_BLE_power_profile_calculator_v1.32.xlsm   低功耗              AN14554 Kinetis KW47 & MCX W72 Bluetooth LE Power profile analysis release.pdf 802.15.4 Matter & Zigbee 功率配置文件估算工具               MCX W7x 802.15.4 Matter ICD SIT LIT & ZED Power profile v0.2.xlsx                 AN MCX W72 802.15.4 Matter and Zigbee Power profile analysis - proposal.pdf CCC 信道探测 BLE 功率配置文件估算工具               KW47 Digital Key CCC CS Power Estimator tool v0.8.xlsx               AN14628_AN14628_KW47_CCC_CS_Power_Profile_estimator tool_release.pdf Bluetooth ® 信道探测技术概述  认证 RF 预认证已完成 - 完整认证待 KW47/MCXW72发布 KW47 和 MCXW72 已通过蓝牙 6.0 信道探测认证!
記事全体を表示
S32K314 LPSPI - 在 DMA 下出现异常 CS toogle 你好@DanNguyenDuy 如下图所示,在 LPSPI DMA 模式下发生了意外的 CS 切换。 帧大小为 8 位,默认配置下 DMA 传输大小为一个字节。SPI 波特率为 10 Mbps。 绿色信号代表 CS,在使用 " Keep " 选项时,CS 应在传输过程中保持钳位状态。然而,它却意外地发生了切换。在中断模式下,CS 保持钳位状态。此外,使用基于 GPIO 的 CS 而不是 PCS,在不切换的情况下也能正常工作。 这种现象在波特率较高时比在波特率较低时出现得更频繁,这表明原因可能是 SPI 端 TX 欠运行。 我试着启用散点采集模式和调整 SPI 时序,但都没有解决问题。 我认为,默认 DMA 配置可能不具备处理高速 LPSPI 传输的能力。 请问如何解决 CS 意外切换的问题? 谢谢。 BRs, Alex Yang RTD Re: S32K314 LPSPI - Unexpected CS toogle under DMA @DanNguyenDuy 我共享 Mobis 的 arxml 文件。 热电阻版本为 4.0.0_HF04(适用于HKMC) Re: S32K314 LPSPI - Unexpected CS toogle under DMA @DanNguyenDuy 我分享 Mobis 的 LPSPI DMA 配置屏幕截图。在捕获的图像上,使用的频道名称是 Vsp。 Re: S32K314 LPSPI - Unexpected CS toogle under DMA 你好@alexyang、 你使用了哪个软件包版本? 能否将您的示例或配置文件(.xdm 或 .arxml文件)? 顺祝商祺! 丹 Re: S32K314 LPSPI - Unexpected CS toogle under DMA 你好@alexyang、 1.我查看了配置,没有发现任何问题。 2.因为我没有 S32K314,所以我在 S32K344 上检查了这个问题,我这边没有发现这个问题(传输过程中 PCS 保持低电平)。 3.能否检查调用前后 LPSPI2_TCR 寄存器的值 Spi_AsyncTransmit() 函数? 如果在发送过程中的任何时候 TCR[CONT] = 0,则 PCS 引脚将被置为高电平。 否则,当 LPSPI 从 TX FIFO 空数据移位时,可能会出现此问题,因为在 FIFO 空之前,DMA 没有将数据传输到 TX FIFO。这种情况将触发信号 PCS,因为 LPSPI 会检测到终端传输信号,这看起来像是设计限制。 顺祝商祺! 丹 Re: S32K314 LPSPI - Unexpected CS toogle under DMA 你好@DanNguyenDuy CS 切换的原因似乎是 TX FIFO 空了,因为 TX 水印降低了 CS 切换率。 不过,这一改动并没有完全解决 CS 切换问题。在 TX 水印的基础上,您还有什么其他建议可以完全防止 CS 切换? 此外,如果TX watermark = 0 是 Lpspi_ErrataHandle() 函数之后的意外动作,您是否有计划进行修正?Autoever 希望得到 NXP 对 TX 水印处理的确认,并在需要修正时得到 NXP 的补丁计划。 谢谢。 BRs, Alex Yang Re: S32K314 LPSPI - Unexpected CS toogle under DMA 你好@alexyang..、 在联系 RTD 团队之前,我希望他们尝试两种测试方案: 情况 1:在 Lpspi_ErrataHandle() 函数之后设置 Dma 优先级中断为最高,且 TX watermark = RX watermark = 3。 场景 2:场景 1 + 禁用 RX DMA 并通过轮询方法接收数据。 顺祝商祺! 丹 Re: S32K314 LPSPI - Unexpected CS toogle under DMA @DanNguyenDuy TCR[CONT] 已设置,因此这不是 CS 意外切换的原因。 我对 LPSPI 的 TX 水印有疑虑,据我估计,这可能是 TX FIFO 空的原因。 在 Lpspi_Ip_Init 中将 TX 水印设置为 2,如下所示。 但是,ERR_IPV_LPSPIV2_0001 的 Lpspi_ErrataHandle(Base,State)将其设置为 0,据我估计,这是意料之外的操作。 因此,在我的审查中,ERR_IPV_LPSPIV2_0001 解决方法意外地使 TX 水印为 0。另一位客户 Autoever 也报告了这一情况。 在 Autoever 报告中,发生了 SPI TX 欠运行,Autoever 发现 Lpspi_TransmitTxInit 清除了 TX 水印。因此,Autoever 通过添加"Base->FCR = LPSPI_FCR_TXWATER((uint32)LPSPI_IP_FIFO_SIZE_U8-(uint32)2u);" ,将 TX 水印返回到 2,从而减少了 TX 欠运行。 您如何看待 TX 水印?TX 水印为 0 是否会导致 DMA 意外切换 CS? Re: S32K314 LPSPI - Unexpected CS toogle under DMA 你好@alexyang、 在我看来,TX 水印等于 0 会导致此问题。我建议你在测试时提高 Dma 中断的优先级,并在 Lpspi_ErrataHandle() 函数 后添加一条语句,将 TX 水印修改为 3(最大值) 。 顺祝商祺! 丹
記事全体を表示
关于使用 FS32K144HAT0MMHT EVK 的热电阻驱动器可用性的说明 大家好, 我想购买FS32K144HAT0MMHTMCU 和相关评估套件 (EVK)。我想知道 EVK 是否包含热电阻驱动器,无需额外费用? 如果不是,是否需要单独购买 RTD 驱动器? 预先感谢您的帮助! Re: Clarification on RTD Driver Availability with FS32K144HAT0MMHT EVK 你好@NagulMeera 实时驱动程序 (RTD) 和 S32 设计工作室 (S32DS) 是免费的。 EB tresos Studio 提供免费评估许可证,但必须向 Elektrobit 订购生产许可证。 我们还提供高级软件,例如: - S32 功能安全软件框架 (SAF) 和功能安全外设驱动器 (SPD) - 结构核心自检 (SCST) 如需高级软件,请联系您的恩智浦代表。 BR、VaneB
記事全体を表示
S32K5 SAF 版本时间表 嗨,团队、 客户 PATAC 正在评估我们的 S32K5 SAF。他们知道,目前的 S32K5 SAF 只能提供非常有限的功能,无法满足他们的实际使用要求。因此,他们要求我们提供 S32K5 SAF 的详细时间表。 大概的版本发布时间。 下一个版本将支持哪些功能和模块? 谢谢& ,致以最崇高的敬意、 理查德 优先级:中等 SAFETY_SW 资料来源直接客户 Re: S32K5 SAF release schedule 你好@RaduBraga、 是否有任何更新? BR 理查德 Re: S32K5 SAF release schedule 嗨 @RichardLi,计划 在 2026 年 7 月版本 K5 PRC,我们的目标是涵盖所有 SAF 模块的全部功能。 亲切的问候, Radoslav Re: S32K5 SAF release schedule 嗨 @RichardLi, 我们今年 1 月没有任何 EAR 版本。 EAR 0.8.0 已于 2025 年 12 月发布,功能非常有限,直到 7 月 26 日 PRC 才有其他计划。 亲切的问候, Radoslav Re: S32K5 SAF release schedule 你好@RadoslavB、 感谢您的反馈。计划于今年1月底发布的SAF EAR版本有任何范围吗?它能涵盖大部分功能吗? BR 理查德
記事全体を表示
嵌入式系统开发的最佳 DevOps 实践 大家好 我想讨论在嵌入式系统开发中实施 DevOps 的最佳实践。我们都知道,嵌入式系统面临着独特的挑战,但结合 DevOps 原则并利用正确的 DevOps 解决方案可以大大改善我们的工作流程。 以下是我发现的一些有用的做法: 自动版本构建和 CI/CD 设置自动构建管道对于嵌入式系统至关重要。借助 CI/CD,我们可以自动测试、刷新和部署到真实设备,从而确保尽早发现错误。 固件和硬件的版本控制 将固件视为软件 — 使用 Git 或类似工具进行版本控制,以及硬件抽象层 (HAL),有助于同步管理软件和硬件依赖关系。 硬件在环 (HIL) 的持续集成 将 HIL 测试内置到您的 CI 管道中可确保您针对真实场景进行验证,而不仅仅是模拟环境。这有助于发现只有在实际硬件中才会出现的问题。 嵌入式软件的容器化 使用 容器 或类似工具进行软件环境复制可确保开发、测试和部署阶段的一致性,即使在使用嵌入式平台时也是如此。 我很想听听您的想法和其他有效的做法。您如何将 DevOps 内置到嵌入式开发工作流程中? DSC Re: Best DevOps Practices for Embedded Systems Development 我们正在努力做你所建议的事情。您有什么具体的建议吗?
記事全体を表示
S32K 输入捕获 嗨,团队、 我们使用的是 S32K146 微控制器,我们需要任何一个输入引脚作为输入捕获引脚,你能建议我应该使用哪个模块配置吗? 如果我使用 FTM 作为信号测量,我能否实现输入捕获功能?或者我应该使用 ic_pal 功能? 请支持 谢谢 Shruthi C Re: S32K Input Capture 你好,彼得、 我无法使用 INT_SYS_InstallHandler(FTM0_Ch0_Ch1_IRQn,PWM_InputCapture_IRQHandler,NULL);函数,因为它使用默认处理程序,而不使用FTM0_Ch0_Ch1_IRQn处理程序。 我的配置是 /* flexTimer_ic_1 InitConfig 的全局配置 */ ftm_user_config_t flexTimer_ic_1_InitConfig = {     { true,/* 软件触发信号状态 */ false,/* 硬件触发信号 1 状态 */ false,/* 硬件触发信号 2 状态 */ false,/* 硬件触发信号 3 状态 */ 虚假,/* 最大加载点状态 */ 虚假,/* 最小装载点状态 */ ftm_system_clock、/* INVCTRL 寄存器的更新模式 */ ftm_system_clock、/* SWOCTRL 寄存器的更新模式 */ ftm_system_clock、/* OUTMASK 寄存器的更新模式 */ ftm_system_clock、/* CNTIN 寄存器的更新模式 */ false,/* 自动清除触发信号 */ ftm_update_now、/* 同步点 */ }, ftm_mode_input_capture、/* FTM 的运行模式 */ ftm_clock_divid_by_1、/* FTM 时钟预分频器 */ ftm_clock_source_systemclk、 /* FTM 时钟源 */ ftm_bdm_mode_11、/* FTM 调试模式 */ 虚假, /* 中断状态 */ false /* 初始化触发信号 */ }; /* FlexTimer_IC_1 的输入捕获配置 */ ftm_input_param_t flexTimer_ic_1_InputCaptureConfig = { 1U,/* 通道配置数量 */ 65535U,/* 最大计数值 */ flexTimer_ic_1_InputCaptureChannelConfig/* 通道配置*/ }; /* FlexTimer_IC_1 输入捕获的信道配置结构 */ ftm_input_ch_param_t flexTimer_ic_1_InputCaptureChannelConfig[1] = {     { 0U,/* 通道 ID */ FTM_SIGNAL_MEASUREMENT,/* 输入捕获操作模式 */ ftm_rising_edge、/* 边缘对齐模式 */ ftm_falling_edge_period_measurement、/* 信号测量操作类型 */ 0U,/* 过滤器值 */ 虚假,/* 过滤器状态(启用/禁用) */ true,/* 连续测量状态 */ NULL,/* 通道事件的回调参数向量 */ NULL/* 通道事件的回调向量 */    } }; Re: S32K Input Capture 您好, 是的,这些功能应该足够了。SDK 驱动程序启用了 FTM 通道中断,我认为正确的处理程序应从启动时分配。如果不是正确的处理程序,则为 FTM0_Ch0_Ch1_IRQHandler。 调用 ftm_drv_getInputCaptureMeasuremeasum 以获取捕获的值。 BR, Petr Re: S32K Input Capture 你好,彼得、   感谢您的明确说明。   我可以使用这些函数将 FTM 引脚初始化为输入捕获 `ftm_drv_init () ``ftm_drv_init_initCapture () `ftm_drv_initInputCapture ()`   并安装一个 IRQ 处理器来捕获脉冲发生情况 `INT_SYS_InstallHandler(FTM0_Ch0_Ch1_IRQn, PWM_InputCapture_IRQHandler, NULL)`     请支持   谢谢 Shruthi C Re: S32K Input Capture 您好, 最常见和最有效的方法是在输入捕获模式下配置 FTM 并使用具有 FTM 功能的引脚。每个 FTM 通道均可配置为输入捕获模式,在该模式下,它捕获输入信号边缘(上升、下降或两者兼有)上的计时器值。这通常用于测量:信号周期、脉冲宽度、频率。 IC PAL 驱动器允许检测输入信号并测量通道输入信号的脉冲宽度或周期。其设计目的是使其可移植到支持 FTM、eMIOS、FLEXPWM 和 ETIMER 的所有平台和 IP 上。 因此,如果您想获得全面的控制和性能,请直接使用 FTM。如果您希望代码更简单、更便于携带,请使用 IC PAL。 BR, Petr Re: S32K Input Capture 您好, 您可以直接参考 SDK 示例 (ftm_signal_measurement)。 或共享显示该问题的简化项目。 BR, Petr Re: S32K Input Capture 您好, 在 SDK 示例中,我直接提到(ftm_signal_measurement)。 在这个例子中,他们没有使用中断方法,他们使用了轮询方法,然后他们调用了 ftm_drv_g etInputCap t ureMeasuremeasum 我正在寻找带中断功能的 FTM 信号测量,一旦输入捕获识别出信号,我需要中断才能触发并调用 ISR 中的 ftm_dr v_getInputCaptureMeasuremeasurem ensum 函数 请提供相关代码 谢谢 Shruthi C Re: S32K Input Capture 您好, 如果您需要再次安装处理程序,您应该有 extern void FTM0_Ch0_Ch1_IRQHandler(void); INT_SYS_InstallHandler(FTM0_Ch0_Ch1_IRQn, FTM0_Ch0_Ch1_IRQHandler, NULL); BR, Petr Re: S32K Input Capture 你好, 是的,我确实定义了该函数,但函数调用后会进入无限循环,并继续运行 整个系统将无法运行, 谢谢 Shruthi C Re: S32K Input Capture 你好、 感谢您的支持和代码片段,我将进行检查 T&R、 Shruthi C Re: S32K Input Capture 你好,我 能否获得任何支持中断的 FTM 引脚的输入作为输入捕获 谢谢! Shruthi C Re: S32K Input Capture 您好, 驱动程序使用中断来捕获事件,只是没有直接显示在示例中。 我修改了 FTM IC 设置,使其使用单发模式,并添加了从驱动程序中断调用的回调。 ftm_signal_measurement_s32k146 演示修改后的 main.c 参见附件。 BR, Petr
記事全体を表示
MaaxBoard (NXP i.MX93) で GPIO およびタイマー ピンを構成し、pinmux 設定を有効にする方法は? 私は MaaxBoard (NXP i.MX93 プロセッサベース) を使用していますが、次のユースCASEの pinmux とピン構成の設定について支援が必要です。 トリガー ピン (出力) として GPIO ピンが 1 つ必要です。 1 つのピンをタイマー入力 (TPM 入力キャプチャまたは PWM) 用に構成する必要があります。 問題は次の通りです: GPIO ピンが読み取り/書き込み操作に正しく応答しません。 pinmux 構成が欠落しているか間違っているか、デバイス ツリーが適切に更新されていないと思われます。 以下の点についてご協力いただけますでしょうか? MaaxBoard のピン配置とリファレンス マニュアルで GPIO とタイマーの正しいピン名とパッドを見つけるにはどうすればよいでしょうか? 必要なピン多重化を有効にするには、デバイス ツリー (.dts) にどのような変更を加える必要がありますか。 GPIOピンを出力用に設定し、ユーザー空間からの読み取り/書き込みを許可する タイマーピンを入力キャプチャまたはPWM用に設定する MaaxBoard で GPIO が正しく動作しない原因となる一般的な問題はありますか? 1 つの GPIO を読み取りと書き込み用に設定する方法の例はありますか?そのために、pin_mux.c や app.h など、何を更新する必要がありますか? i.MX93 #マックスボード MCX C Re: How to configure GPIO and Timer pins on MaaxBoard (NXP i.MX93) and enable pinmux settings ? こんにちは、Manjunathb MaaxBoard は Element14 によって製造およびサポートされています。所有者に問い合わせて、BSP とボードに関する詳しい情報を入手することをお勧めします。 MaaXBoard OSM93 - element14 コミュニティ MaaXBoardハードウェアデザイン - element14コミュニティ    i.MX 93 EVK 用の NXP MCUXpresso SDK も参照できます。 SDKは以下からダウンロードできます。 MCUXpresso SDK Builder パッケージ内には TPM と GPIO / タイマーのデモが含まれています。 よろしくお願いします。 ダニエル よろしくお願いします。 ダニエル Re: How to configure GPIO and Timer pins on MaaxBoard (NXP i.MX93) and enable pinmux settings ? -> ここで参考のためにコードを添付しました。1 つの GPIO を構成して読み取りおよび書き込み操作を実行するだけで、コードを次のように更新しました。   /* * 著作権 (c) 2015、Freescale Semiconductor, Inc. * 著作権 2016-2017 NXP * 無断転載を禁じます。 * * SPDXライセンス識別子: BSD-3条項 */ #include "board.h" #include "fsl_debug_console.h" #include "fsl_rgpio.h" #include "app.h" /**************************************************************************************** * 定義 **********************************************************************************/ /**************************************************************************************** * プロトタイプ **********************************************************************************/ /*! * @briefしばらく遅延します。 */ void遅延( void ); /**************************************************************************************** * 変数 **********************************************************************************/ /**************************************************************************************** * コード **********************************************************************************/ /*! * @briefメイン関数 */ int main( void ) { /*[手動で]-> GPIO入力のinit構造体を定義する*/ rgpio_pin_config_t 入力構成 = {         kRGPIO_デジタル入力、         0 , }; /* ボードピン、クロック、デバッグコンソールの初期化 */ BOARD_InitHardware(); /* 端末にメモを印刷します。*/     PRINTF ( "\r\n GPIO は状態の読み取りを開始します.....\r\n" ); /* 出力 LED GPIO を初期化します。*/ RGPIO_PinInit( BOARD_LED_RGPIO 、 BOARD_LED_RGPIO_PIN 、 &input_config);     一方( 1 )     {         uint32_t val = RGPIO_PinRead( BOARD_LED_RGPIO 、 BOARD_LED_RGPIO_PIN );         PRINTF ( "GPIO%d の現在の値は : %d\r\n" , BOARD_LED_RGPIO_PIN ,val); SDK_DelayAtLeastUs( 500000U , SystemCoreClock);    } } ######################################################## /* * 著作権 2022 NXP * * SPDXライセンス識別子: BSD-3条項 */ /******************************************************************************************************************************** * このファイルは、MCUXpresso Config Tools によって生成されました。このファイルに対して手動で行われた編集 * それぞれの MCUXpresso Config Tools を使用してこのファイルを更新すると、上書きされます。 ******************************************************************************************************************************/ /* * 以下のテキストはツールの設定として使用されます ************************************* !!グローバル情報 製品: Pins v12.0 プロセッサ: MIMX9352xxxxM パッケージID: MIMX9352DVVXM mcu_data: ksdk2_0 プロセッサバージョン: 0.12.3 * このコメントを変更する際は注意してください - これはツールの YAML 設定です *********** */ #include "pin_mux.h" /* 関数 ************************************************************************************************************ * * 関数名: BOARD_InitBootPins * 説明: 初期化関数を呼び出します。 * * 終わり ****************************************************************************************************************/ BOARD_InitBootPins を無効にします( void ) { BOARD_InitPins(); } /* * 以下のテキストはツールの設定として使用されます ************************************* ボード初期ピン: - オプション: {callFromInitBoot: 'true', coreID: cm33} - ピンリスト: - {pin_num: F20、ペリフェラル: LPUART2、信号: lpuart_rx、pin_signal: UART2_RXD、HYS: DISABLED、FSEL1: SlOW_SLEW_RATE、DSE: NO_DRIVE} - {pin_num: F21、ペリフェラル: LPUART2、信号: lpuart_tx、pin_signal: UART2_TXD、HYS: 無効、PD: 無効、FSEL1: SlOW_SLEW_RATE} - {pin_num: L17、ペリフェラル: GPIO2、信号: 'gpio_io, 04'、ピン信号: GPIO_IO04、HYS: 無効} * このコメントを変更する際は注意してください - これはツールの YAML 設定です *********** */ /* 関数 ************************************************************************************************************ * * 関数名: BOARD_InitPins * 説明: ピンのルーティングとオプションでピンの電気機能を構成します。 * * 終わり ****************************************************************************************************************/ void BOARD_InitPins( void ) { /*!< コアに割り当てられた関数: undefined[cm33] */     // IOMUXC_SetPinMux(IOMUXC_PAD_GPIO_IO04__GPIO2_IO04, 0U); IOMUXC_SetPinMux( IOMUXC_PAD_UART2_RXD__LPUART2_RX 、 0U ); IOMUXC_SetPinMux( IOMUXC_PAD_UART2_TXD__LPUART2_TX 、 0U ); /* 手動で追加 (開始)*/ IOMUXC_SetPinMux( IOMUXC_PAD_GPIO_IO13__GPIO2_IO13 , 0U ); IOMUXC_SetPinConfig( IOMUXC_PAD_GPIO_IO13__GPIO2_IO13 、 /* 手動で追加 (終了)*/     // IOMUXC_SetPinConfig(IOMUXC_PAD_GPIO_IO04__GPIO2_IO04,     // IOMUXC_PAD_PD_MASK); IOMUXC_SetPinConfig( IOMUXC_PAD_UART2_RXD__LPUART2_RX 、                         IOMUXC_PAD_PD_MASK ); IOMUXC_SetPinConfig( IOMUXC_PAD_UART2_TXD__LPUART2_TX 、                         IOMUXC_PAD_DSE ( 15U )); } /******************************************************************************************************************************** * 終了 ******************************************************************************************************************************/ /* * 著作権 2022 NXP * * SPDXライセンス識別子: BSD-3条項 */ #ifndef _APP_H_ #define _APP_H_ /**************************************************************************************** * 定義 **********************************************************************************/ /* ${macro:start} */ #BOARD_LED_RGPIOを定義します          GPIO2 #BOARD_LED_RGPIO_PINを定義します      13U #DEFINE EXAMPLE_RGPIO_CLOCK_ROOT kCLOCK_Root_BusWakeup #DEFINE EXAMPLE_RGPIO_CLOCK_GATE kCLOCK_Gpio2 /* ${macro:end} */ /**************************************************************************************** * プロトタイプ **********************************************************************************/ /* ${prototype:start} */ BOARD_InitHardware をvoidにします。 /* ${prototype:end} */ #endif /* _APP_H_ */
記事全体を表示
SPSDK v3.1 release We are excited to annouce the release of Secure Provisioning SDK (SPSDK) 3.1 Please note this release is a new generation of SPSDK and it is NOT backward compatible to 2.x versions.  A migration guide is provided below: ⭐What's NEW: https://spsdk.readthedocs.io/en/latest/release_notes.html ⚠️Migration Guide: https://spsdk.readthedocs.io/en/latest/migration_guide.html 📦Supported Devices: https://spsdk.readthedocs.io/en/latest/devices_list.html 👇More details: Github PyPi Documentation SPSDK Plugins 3.1: Github (Plugins) PyPi (Plugins) Restricted Data Package for SPSDK 3.1: Please note that the package uses an LA_OPT license. Package will be located in the Download section. announcement
記事全体を表示
Zephyr SDKバージョンのインストール Zephyr SDKは、Zephyrアプリケーションをビルドするためのビルド・ツールセットです。GCCやCMakeが含まれており、各Zephyrリリースは特定の Zephyr SDKバージョンに紐づいています。このバージョンは、Zephyrリポジトリ内のSDK_VERSIONファイルに記載されています。推奨されているZephyr SDKバージョンを使用することが重要です。バージョンが一致しないと、ビルド・エラーが発生する可能性があります。 たとえば、Zephyr v4.1はZephyr SDK v0.17.0を指定します。Zephyr SDK v0.17.2(Zephyr v4.2 用)を Zephyr v4.1 で使用すると、ビルドエラーが発生します。Zephyr v4.1 用のアプリをビルドする必要がある場合は、Zephyr SDK v0.17.0をインストールしてください。 複数のZephyr SDKバージョンをインストールしておき、ビルド時に切り替えることが可能です(下記の手順を参照)。 フルインストールと最小インストールの比較 フルインストール(Full Install): すべてのサポートされているSoCアーキテクチャ向けの全ツールチェーンが含まれます。初心者に推奨されますが、より多くのディスク容量とダウンロード時間が必要です。 最小インストール(Minimal Install): 必要なツールチェーンのみを選択できます。スペースと時間を節約できます。 最小インストールの場合は、setup.cmdスクリプトを実行して、インストールするツールを選択します。NXPボードでは、次を選択します。 Zephyr SDK CMakeパッケージを登録する Install host tools aarch64-zephyr-elf (64ビットARM) arm-zephyr-eabi (32ビットARM、NXP MCUを含む) オプション xtensa-nxp… (Cadence Tensilica DSPコア) Zephyr SDKをインストールします これらの手順では、MCUXpresso Installer、CLI(West)、または手動ダウンロードを使用してZephyr SDKをインストールする方法を説明しています。 MCUXpresso Installerを使用したインストール MCUXpresso InstallerはZephyr v4.2からZephyr用パックをサポートし始めました。各パックは対応するZephyr SDKバージョンをインストールします(例:v4.2パックはSDK v0.17.2をインストール)。このオプションはNXP開発用の最小限のツールセットをインストールします。 MCUXpressoインストーラーは、古いZephyr SDKバージョンをサポートしていません。v0.17.1以前の場合は、Westまたは手動インストールを使用してください。 West CLIを使用したインストール Zephyr ProjectはWestにZephyr SDKのインストール機能を追加しました。 CLIの場合は、Python仮想環境をアクティブ化してから、次を実行します。 west sdk install --version 0.17.0   --version が省略された場合、WestはZephyrリポジトリのSDK_VERSIONファイルにあるバージョンを使用します。 デフォルトでは、Fullパッケージがインストールされます。最小のインストールを行う場合は、 -i を追加します。 手動ダウンロードによるインストール https://github.com/zephyrproject-rtos/sdk-ng/releasesから、Zephyr SDKをダウンロードします。 使用するホストOS向けに、FullまたはMinimalを選択します。 WestとMCUXpressoの場合のデフォルトの場所として、ユーザーフォルダーに展開します。 Windows: C:\Users\ \zephyr-sdk-0.17.0 Ubuntu: /home/ /zephyr-sdk-0.17.0 Zephyr SDKのバージョンの選択 複数のZephyr SDKバージョンを共存させることができます。Westはデフォルトで最新バージョンを使用しますが、次の方法で上書きできます。 VS Code: 例をインポートする際は、ウィザードでZephyr SDKバージョンを選択してください。 CLI:環境変数 ZEPHYR_SDK_INSTALL_DIR を、ビルド前に設定します。このコマンドはUbuntuでその変数を設定します。 export ZEPHYR_SDK_INSTALL_DIR="/home/ /zephyr-sdk-0.17.0" またはWindowsの場合: set ZEPHYR_SDK_INSTALL_DIR= C:\Users\ \ zephyr-sdk-0.17.0   Zephyr Knowledge Hubに戻る    
記事全体を表示
Linux 嵌入式挑战项目 - 2014 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 1. 带行人聚光灯功能的自适应动态大灯 - eVision 团队成员: Balaban Valeriu - 高级微电子学、电子学、UPB 硕士 Voicu Tudor Alexandru - 学士,应用电子,电子,UPB Stanescu Sebastian - 学士,电信网络和软件,UPB 简短描述: 由于夜间事故死亡率高,因此开展了大量研究以开发技术 增加夜间驾驶员的视野范围,并在无法避免的情况下减少事故损失。这 自适应大灯功能有助于在光线不足的情况下,尤其是在弯道中看得更远:转向灯 按照行驶方向旋转前照灯,旋转角度由 CPU 计算,以照亮尽可能多的道路 面积尽可能 一个有趣的解决方案是聚光灯照明功能,它是一种专门照亮潜在危险的 LED 光束。 如果近红外摄像头检测到路边的鹿或道路上的行人,它们就会被短暂地照亮 在远光灯正常覆盖范围之外,用聚光灯提醒驾驶员注意可能存在的危险。 推介会: 请查阅eVisionPresentation.pdf 。 文档: 请查阅eVisionDoc.pdf 。 代码源 https://github.com/izzi/app-evision https://github.com/izzi/meta-evision 2. 人车交互语音控制界面 - She# 团队成员: Iulia Neagoe - 军事技术学院计算机科学与军事信息系统专业 Mihaela-Anca Sorostinean - 军事技术学院计算机科学与军事信息系统 简短描述: 在汽车和通信领域技术不断进步的背景下,驱动因素 责任已经从仅仅控制汽车转变为与汽车提供的众多小工具进行交互 制造商。该项目的目的是设计一个界面,为驾驶员提供控制 通过语音命令来控制汽车的一些非重要功能,以便驾驶员集中注意力 在路上行驶的同时还能与汽车进行舒适的通讯。 我们开发了一个语音识别系统,可以识别收音机、窗户、气候或电话等一些基本功能 我们在 Wandboard 上实现了它。我们还为用户提供了一个公认的图形界面 命令以增强他与车辆的互动。 推介会: 请查阅ShePresentation.pdf 。 文档: 请查阅SheDoc.pdf 。 代码源 请参阅She#_Project_Source.zip。 3. 驾驶控制软件 - FreeSoftwares 团队成员: Petrosanu Adrian-Sabin - 计算机科学,UPB Birsan Nicoleta Cosmina - 计算机科学,UPB Radoi Ioana Gabriela - 计算机科学,UPB 简短描述: 《驾驶控制软件》是一款控制自动变速箱的软件。该项目包括模拟行为 自动变速箱在 Wandboard 上的应用。自动变速箱是一种机动车辆变速箱,可以 随着车辆移动自动改变齿轮比。 推介会: 请查阅FreeSoftwaresPresentation.pdf 。 文档: 请查阅FreeSoftwaresDoc.pdf 。 代码源 请参阅Freesoftwares_Project_Source.zip。 4. 自动泊车 - 通过 ATM 团队成员: Mihai Coca - 军事技术学院计算机科学与军事信息系统专业 格鲁吉亚安德烈 - 军事技术学院计算机科学与军事信息系统 Hiji Iulian -军事技术学院计算机科学与军事信息系统 简短描述: 许多公司正在开发自动驾驶汽车技术,通过将其在该领域的工作应用于 一个特定的用例:停车。该项目的目的是设计一款概念车,它可以停放在 主人把车停在路边,让它自己进入停车位。这个过程甚至可以逆转 当车主准备离开时,汽车会自行停放离开现场,并在路边与钥匙持有者再次会合。 文档: 请查阅ATM Doc.pdf 代码源 请参阅ATM_Project_Source.zip。 5. 碰撞检测 - Beer2.0 团队成员: Nitu Adrian - 计算机科学,UPB 简短描述: 我们项目的目的是让汽车感知前方道路,并使其能够采取预防措施 碰撞;我们希望通过这种方式减少道路上的事故。它将收集来自不同硬件的信号和信息 并会向驾驶员发出警报或立即控制车辆,以便采取关键操作来保护驾驶员 免受任何危及生命的事件的影响。 飞思卡尔杯赛车将配备一个Wandboard和两个USB摄像头,以便我们能够追踪环境。初始之后 对象跟踪我们将通过远程控制融入人机交互。对于这个项目,我们相信一个简单的警告系统 和/或打破就足以作为概念的证明。 推介会: 请参阅Beer20Presentation.pdf 文档: 请查阅Beer20Doc.pdf 代码源 https://bitbucket.org/adriannitu92/freechallenge 6. 使用子带归一化滤波 X LMS 算法实现前馈自适应噪声消除 - Brainiacs 团队成员: Cristian Monea - 电信和信息技术、电子、UPB Madalin Zaharia - 电信和信息技术、电子、UPB 简短说明 本项目提出了一种基于子带归一化滤波X LMS(NFXLMS)的前馈自适应噪声消除(ANC)算法。 使用自适应算法比固定 FIR 或 IIR 滤波器等简单滤波算法具有优势。此外, 汽车环境可以被认为是静止的,因为它保留了一些属性,比如光谱分布、均值、方差,这些属性 允许在汽车噪音消除应用中使用自适应滤波器。 前馈系统应该比反馈系统更有效。在这种情况下,在它之前感测到相干参考噪声输入 传播通过取消扬声器。 因此,该算法将模拟两个传感器(麦克风):参考传感器,用于测量需要消除的主要噪声, 和错误传感器。 推介会: 请参阅BrainiacsPresentation.pdf 文档: 请查阅BrainiacsDoc.pdf 2014年Linux嵌入式挑战赛
記事全体を表示
开放工业Linux ® (OpenIL)——安全、稳健、实时的工业和自动化应用_Connects China <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> OpenIL 是专为工业市场设计的 Linux ®发行版。OpenIL 是 PLC、HMI、工业控制和自动化系统的理想部署。OpenIL 是一个基于 buildroot 的开源项目,旨在为工业用途提供紧凑的文件系统,支持 LTS Linux 内核 4.1 和 4.9、Xenomai 钴核、工业 IEEE ® 1588、时间敏感网络等诸多功能。实时裸机框架支持继电器控制和机器人应用。了解 OpenIL、架构、设计目标和路线图。了解如何为 OpenIL 做出贡献并推动社区项目的发展方向。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> OpenIL 是专为工业市场设计的 Linux ®发行版。OpenIL 是 PLC、HMI、工业控制和自动化系统的理想部署。OpenIL 是一个基于 buildroot 的开源项目,旨在为工业用途提供紧凑的文件系统,支持 LTS Linux 内核 4.1 和 4.9、Xenomai 钴核、工业 IEEE ® 1588、时间敏感网络等诸多功能。实时裸机框架支持继电器控制和机器人应用。了解 OpenIL、架构、设计目标和路线图。了解如何为 OpenIL 做出贡献并推动社区项目的发展方向。
記事全体を表示
FTF-ACC-F1259 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 同時マルチスレッド (SMT) は、独立した実行スレッドがスーパースカラー CPU パイプライン編成をより効果的に利用できるようにする高度なプロセッサ マイクロアーキテクチャ機能です。2ウェイ・スーパースカラー・パイプラインでのSMT実装は、動的消費電力の増加が比較的少ないデュアル・スレッドの同時実行性を最大化します。このセッションでは、次世代のPower Architecture e200z9プロセッサ・コアに含まれるSMT機能と、このマイクロアーキテクチャによって達成可能なパフォーマンス/パワー・メトリックの向上に焦点を当てます。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 同時マルチスレッド (SMT) は、独立した実行スレッドがスーパースカラー CPU パイプライン編成をより効果的に利用できるようにする高度なプロセッサ マイクロアーキテクチャ機能です。2ウェイ・スーパースカラー・パイプラインでのSMT実装は、動的消費電力の増加が比較的少ないデュアル・スレッドの同時実行性を最大化します。このセッションでは、次世代のPower Architecture e200z9プロセッサ・コアに含まれるSMT機能と、このマイクロアーキテクチャによって達成可能なパフォーマンス/パワー・メトリックの向上に焦点を当てます。 日時:FTF-ACC-F1259 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 新しいe200z9はいつ発売されますか?
記事全体を表示
How to enable DDR mode As we know, the RT series MCUs support the XIP (Execute in place) mode and benefit from saving the number of pins, serial NOR Flash is most commonly used, as the FlexSPI module can high efficient fetch the code and data from the Serial NOR flash for Cortex-M7 to execute. The fetch way is implementing via utilizing the Quad IO Fast Read command, meanwhile, the serail NOR flash works in the SDR (Single Data transfer Rate) mode, it receives data on SCLK rise edge and transmits data on SCLK fall edge. Comparing to the SDR mode, the DDR (Dual Data transfer Rate) mode has a higher throughput capacity, whether it can provide better performance of XIP mode, and how to do that if we want the Serial NOR Flash to work in DDR (Dual Data transfer Rate) mode? SDR & DDR mode SDR mode: In SDR (Single Data transfer Rate) mode, data is only clocked on one edge of the clock (either the rising or falling edge). This means that for SDR to have data being transmitted at X Mbps, the clock bit rate needs to be 2X Mbps. DDR mode: For DDR (Dual Data transfer Rate) mode, also known as DTR (Dual Transfer Rate) mode, data is transferred on both the rising and falling edge of the clock. This means data is transmitted at X Mbps only requires the clock bit rate to be X Mbps, hence doubling the bandwidth (as Fig 1 shows).   Fig 1 Enable DDR mode The below steps illustrate how to make the i.MX RT1060 boot from the QSPI with working in DDR mode. Note: The board is MIMXRT1060, IDE is MCUXpresso IDE Open a hello_world as the template Modify the FDCB(Flash Device Configuration Block) a)Set the controllerMiscOption parameter to supports DDR read command. b) Set Serial Flash frequency to 60 MHz. c)Parase the DDR read command into command sequence. The following table shows a template command sequence of DDR Quad IO FAST READ instruction and it's almost matching with the FRQDTR (Fast Read Quad IO DTR) Sequence of IS25WP064 (as Fig 2 shows).   Fig2 FRQDTR Sequence d)Adjust the dummy cycles. The dummy cycles should match with the specific serial clock frequency and the default dummy cycles of the FRQDTR sequence command is 6 (as the below table shows).   However, when the serial clock frequency is 60MHz, the dummy cycle should change to 4 (as the below table shows).   So it needs to configure [P6:P3] bits of the Read Register (as the below table shows) via adding the SET READ PARAMETERS command sequence(as Fig 3 shows) in FDCB manually. Fig 3 SET READ PARAMETERS command sequence In further, in DDR mode, the SCLK cycle is double the serial root clock cycle. The operand value should be set as 2N, 2N-1 or 2*N+1 depending on how the dummy cycles defined in the device datasheet. In the end, we can get an adjusted FCDB like below. // Set Dummy Cycles #define FLASH_DUMMY_CYCLES 8 // Set Read register command sequence's Index in LUT table #define CMD_LUT_SEQ_IDX_SET_READ_PARAM 7 // Read,Read Status,Write Enable command sequences' Index in LUT table #define CMD_LUT_SEQ_IDX_READ 0 #define CMD_LUT_SEQ_IDX_READSTATUS 1 #define CMD_LUT_SEQ_IDX_WRITEENABLE 3 const flexspi_nor_config_t qspiflash_config = { .memConfig = { .tag = FLEXSPI_CFG_BLK_TAG, .version = FLEXSPI_CFG_BLK_VERSION, .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackFromDqsPad, .csHoldTime = 3u, .csSetupTime = 3u, // Enable DDR mode .controllerMiscOption = kFlexSpiMiscOffset_DdrModeEnable | kFlexSpiMiscOffset_SafeConfigFreqEnable, .sflashPadType = kSerialFlash_4Pads, //.serialClkFreq = kFlexSpiSerialClk_100MHz, .serialClkFreq = kFlexSpiSerialClk_60MHz, .sflashA1Size = 8u * 1024u * 1024u, // Enable Flash register configuration .configCmdEnable = 1u, .configModeType[0] = kDeviceConfigCmdType_Generic, .configCmdSeqs[0] = { .seqNum = 1, .seqId = CMD_LUT_SEQ_IDX_SET_READ_PARAM, .reserved = 0, }, .lookupTable = { // Read LUTs [4*CMD_LUT_SEQ_IDX_READ] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xED, RADDR_DDR, FLEXSPI_4PAD, 0x18), // The MODE8_DDR subsequence costs 2 cycles that is part of the whole dummy cycles [4*CMD_LUT_SEQ_IDX_READ + 1] = FLEXSPI_LUT_SEQ(MODE8_DDR, FLEXSPI_4PAD, 0x00, DUMMY_DDR, FLEXSPI_4PAD, FLASH_DUMMY_CYCLES-2), [4*CMD_LUT_SEQ_IDX_READ + 2] = FLEXSPI_LUT_SEQ(READ_DDR, FLEXSPI_4PAD, 0x04, STOP, FLEXSPI_1PAD, 0x00), // READ STATUS REGISTER [4*CMD_LUT_SEQ_IDX_READSTATUS] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05, READ_SDR, FLEXSPI_1PAD, 0x01), [4*CMD_LUT_SEQ_IDX_READSTATUS + 1] = FLEXSPI_LUT_SEQ(STOP, FLEXSPI_1PAD, 0x00, 0, 0, 0), // WRTIE ENABLE [4*CMD_LUT_SEQ_IDX_WRITEENABLE] = FLEXSPI_LUT_SEQ(CMD_SDR,FLEXSPI_1PAD, 0x06, STOP, FLEXSPI_1PAD, 0x00), // Set Read register [4*CMD_LUT_SEQ_IDX_SET_READ_PARAM] = FLEXSPI_LUT_SEQ(CMD_SDR,FLEXSPI_1PAD, 0x63, WRITE_SDR, FLEXSPI_1PAD, 0x01), [4*CMD_LUT_SEQ_IDX_SET_READ_PARAM + 1] = FLEXSPI_LUT_SEQ(STOP,FLEXSPI_1PAD, 0x00, 0, 0, 0), }, }, .pageSize = 256u, .sectorSize = 4u * 1024u, .blockSize = 64u * 1024u, .isUniformBlockSize = false, }; Is DDR mode real better? According to the RT1060's datasheet, the below table illustrates the maximum frequency of FlexSPI operation, as the MIMXRT1060's onboard QSPI flash is IS25WP064AJBLE, it doesn't contain the MQS pin, it means set MCR0.RXCLKsrc=1 (Internal dummy read strobe and loopbacked from DQS) is the most optimized option. operation mode RXCLKsrc=0 RXCLKsrc=1 RXCLKsrc=3 SDR 60 MHz 133 MHz 166 MHz DDR 30 MHz 66 MHz 166 MHz In another word, QSPI can run up to 133 MHz in SDR mode versus 66 MHz in DDR mode. From the perspective of throughput capacity, they're almost the same. It seems like DDR mode is not a better option for IS25WP064AJBLE and the following experiment will validate the assumption. Experiment mbedtls_benchmark I use the mbedtls_benchmark as the first testing demo and I run the demo under the below conditions: 100MH, SDR mode; 133MHz, SDR mode; 66MHz, DDR mode; According to the corresponding printout information (as below shows), I make a table for comparison and I mark the worst performance of implementation items among the above three conditions, just as Fig 4 shows. SDR Mode run at 100 MHz. FlexSPI clock source is 3, FlexSPI Div is 6, PllPfd2Clk is 720000000 mbedTLS version 2.16.6 fsys=600000000 Using following implementations: SHA: DCP HW accelerated AES: DCP HW accelerated AES GCM: Software implementation DES: Software implementation Asymmetric cryptography: Software implementation MD5 : 18139.63 KB/s, 27.10 cycles/byte SHA-1 : 44495.64 KB/s, 12.52 cycles/byte SHA-256 : 47766.54 KB/s, 11.61 cycles/byte SHA-512 : 2190.11 KB/s, 267.88 cycles/byte 3DES : 1263.01 KB/s, 462.49 cycles/byte DES : 2962.18 KB/s, 196.33 cycles/byte AES-CBC-128 : 52883.94 KB/s, 10.45 cycles/byte AES-GCM-128 : 1755.38 KB/s, 329.33 cycles/byte AES-CCM-128 : 2081.99 KB/s, 279.72 cycles/byte CTR_DRBG (NOPR) : 5897.16 KB/s, 98.15 cycles/byte CTR_DRBG (PR) : 4489.58 KB/s, 129.72 cycles/byte HMAC_DRBG SHA-1 (NOPR) : 1297.53 KB/s, 448.03 cycles/byte HMAC_DRBG SHA-1 (PR) : 1205.51 KB/s, 486.04 cycles/byte HMAC_DRBG SHA-256 (NOPR) : 1786.18 KB/s, 327.70 cycles/byte HMAC_DRBG SHA-256 (PR) : 1779.52 KB/s, 328.93 cycles/byte RSA-1024 : 202.33 public/s RSA-1024 : 7.00 private/s DHE-2048 : 0.40 handshake/s DH-2048 : 0.40 handshake/s ECDSA-secp256r1 : 9.00 sign/s ECDSA-secp256r1 : 4.67 verify/s ECDHE-secp256r1 : 5.00 handshake/s ECDH-secp256r1 : 9.33 handshake/s DDR Mode run at 66 MHz. FlexSPI clock source is 2, FlexSPI Div is 5, PllPfd2Clk is 396000000 mbedTLS version 2.16.6 fsys=600000000 Using following implementations: SHA: DCP HW accelerated AES: DCP HW accelerated AES GCM: Software implementation DES: Software implementation Asymmetric cryptography: Software implementation MD5 : 16047.13 KB/s, 27.12 cycles/byte SHA-1 : 44504.08 KB/s, 12.54 cycles/byte SHA-256 : 47742.88 KB/s, 11.62 cycles/byte SHA-512 : 2187.57 KB/s, 267.18 cycles/byte 3DES : 1262.66 KB/s, 462.59 cycles/byte DES : 2786.81 KB/s, 196.44 cycles/byte AES-CBC-128 : 52807.92 KB/s, 10.47 cycles/byte AES-GCM-128 : 1311.15 KB/s, 446.53 cycles/byte AES-CCM-128 : 2088.84 KB/s, 281.08 cycles/byte CTR_DRBG (NOPR) : 5966.92 KB/s, 97.55 cycles/byte CTR_DRBG (PR) : 4413.15 KB/s, 130.42 cycles/byte HMAC_DRBG SHA-1 (NOPR) : 1291.64 KB/s, 449.47 cycles/byte HMAC_DRBG SHA-1 (PR) : 1202.41 KB/s, 487.05 cycles/byte HMAC_DRBG SHA-256 (NOPR) : 1748.38 KB/s, 328.16 cycles/byte HMAC_DRBG SHA-256 (PR) : 1691.74 KB/s, 329.78 cycles/byte RSA-1024 : 201.67 public/s RSA-1024 : 7.00 private/s DHE-2048 : 0.40 handshake/s DH-2048 : 0.40 handshake/s ECDSA-secp256r1 : 8.67 sign/s ECDSA-secp256r1 : 4.67 verify/s ECDHE-secp256r1 : 4.67 handshake/s ECDH-secp256r1 : 9.00 handshake/s Fig 4 Performance comparison We can find that most of the implementation items are achieve the worst performance when QSPI works in DDR mode with 66 MHz. Coremark demo The second demo is running the Coremark demo under the above three conditions and the result is illustrated below. SDR Mode run at 100 MHz. FlexSPI clock source is 3, FlexSPI Div is 6, PLL3 PFD0 is 720000000 2K performance run parameters for coremark. CoreMark Size : 666 Total ticks : 391889200 Total time (secs): 16.328717 Iterations/Sec : 2449.671999 Iterations : 40000 Compiler version : MCUXpresso IDE v11.3.1 Compiler flags : Optimization most (-O3) Memory location : STACK seedcrc : 0xe9f5 [0]crclist : 0xe714 [0]crcmatrix : 0x1fd7 [0]crcstate : 0x8e3a [0]crcfinal : 0x25b5 Correct operation validated. See readme.txt for run and reporting rules. CoreMark 1.0 : 2449.671999 / MCUXpresso IDE v11.3.1 Optimization most (-O3) / STACK SDR Mode run at 133 MHz. FlexSPI clock source is 3, FlexSPI Div is 4, PLL3 PFD0 is 664615368 2K performance run parameters for coremark. CoreMark Size : 666 Total ticks : 391888682 Total time (secs): 16.328695 Iterations/Sec : 2449.675237 Iterations : 40000 Compiler version : MCUXpresso IDE v11.3.1 Compiler flags : Optimization most (-O3) Memory location : STACK seedcrc : 0xe9f5 [0]crclist : 0xe714 [0]crcmatrix : 0x1fd7 [0]crcstate : 0x8e3a [0]crcfinal : 0x25b5 Correct operation validated. See readme.txt for run and reporting rules. CoreMark 1.0 : 2449.675237 / MCUXpresso IDE v11.3.1 Optimization most (-O3) / STACK DDR Mode run at 66 MHz. FlexSPI clock source is 2, FlexSPI Div is 5, PLL3 PFD0 is 396000000 2K performance run parameters for coremark. CoreMark Size : 666 Total ticks : 391890772 Total time (secs): 16.328782 Iterations/Sec : 2449.662173 Iterations : 40000 Compiler version : MCUXpresso IDE v11.3.1 Compiler flags : Optimization most (-O3) Memory location : STACK seedcrc : 0xe9f5 [0]crclist : 0xe714 [0]crcmatrix : 0x1fd7 [0]crcstate : 0x8e3a [0]crcfinal : 0x25b5 Correct operation validated. See readme.txt for run and reporting rules. CoreMark 1.0 : 2449.662173 / MCUXpresso IDE v11.3.1 Optimization most (-O3) / STACK After comparing the CoreMark scores, it gets the lowest CoreMark score when QSPI works in DDR mode with 66 MHz. However, they're actually pretty close. Through the above two testings, we can get the DDR mode maybe not a better option, at least for the i.MX RT10xx series MCU. i.MXRT 102x i.MXRT 105x i.MXRT 106x
記事全体を表示
HOWTO: offline install S32K1 RTD 2.0.0 in S32DS v3.5 The release notes of S32K RTD usually mention which dependent software packages need to be installed. Taking SW32K1_S32M24x_RTD_R21-11_2.0.0_P04_D2404_ReleaseNotes.pdf as an example, we can see that the following software packages need to be installed: You must be logged into your account on NXP.com to gain access to the download link. 1. Download and install S32Design Studio 3.5: Click S32 Design Studio 3.5 – Windows/Linux -> 3.5 S32 Design Studio for S32 Platform v.3.5 -> S32DS.3.5_b220726_win32.x86_64.exe Note: For Windows OS, the user account designated for installing S32 Design Studio for the S32 Platform must be a member of the local Administrators security group. 2. Download and Install S32 Design Studio 3.5 Update 4 D2307: SW32_S32DS_3.5.4_D2307.zip (com.nxp.s32ds.update_3.5.4.20230707034206.zip) Since the SW32K1_S32DS_3.5.4_D2307.zip downloaded in step3 already contains the files of the SW32_S32DS_3.5.4_D2307.zip in the step2, we will skip this step here. 3. Download and Install S32 Design Studio 3.5 development packages for offline use, support for S32K1 (3.5.4_D2307): SW32K1_S32DS_3.5.4_D2307.zip  (com.nxp.s32ds.s32k1.dev.repository_1.0.0.202307062245.zip) Unchecking Contact all update sites during install to find required software can complete offline installation faster. 4. Click Real-Time Drivers for S32K1 -> Automotive SW - EB tresos Studio / AUTOSAR Configuration Tool Select and install one of the following updatesite.zip for S32K1 RTD 2.0.0: The latest S32K1 RTD version is usually recommended. However, if you need to use Reference Software or Premium Software (such as FreeRTOS, LIN Stack, TCP/IP Stack Structural , Core Self-Test (SCST), Automotive Math and Motor Control Library (AMMCLib), S32K ISELED), it is recommended to install the specific version of S32K1 RTD according to their release notes. 4.a) Download and install S32K1_S32M24X Real Time Drivers AUTOSAR 4.4 & R21-11 Version 2.0.0: SW32K1_S32M24x_RTD_4.4_R21-11_2.0.0_D2308_DS_Updatesite.zip 4.b) Download and install S32K1_S32M24X Real Time Drivers AUTOSAR 4.4 Version 2.0.0 P01: SW32K1_S32M24x_RTD_4.4_R21-11_2.0.0_P01_D2308_DS_Updatesite.zip 4.c) Download and install S32K1_S32M24X Real Time Drivers AUTOSAR R21-11 Version 2.0.0 P04: SW32K1_S32M24x_RTD_R21-11_2.0.0_P04_D2404_DS_updatesite.zip Activation | Installation | Licensing | Installer Download SDKs
記事全体を表示