Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
ST7701 驱动程序 Hello 我正在尝试与 ST7701 显示控制器通信。 是否有一些例子?如果可能的话,谁能分享一下? 我使用的是 i.MX RT1170 板。在 SDK 示例中,我找到了 HX8394、RM68191 和 RM68200 显示控制器的驱动程序。我想为 ST7701 找到类似的东西。 谁能帮帮我? 谢谢,并致以诚挚的问候、 弗朗切斯科-索利托 Re: ST7701 drivers 你好,@SolitoFrancesco、 目前,我们的 SDK 中没有任何针对ST7701 显示控制器 的驱动程序支持。 与该控制器的集成必须手动完成。 必须调整 LCDIF 模块的分辨率值、同步信号和时钟频率,以便与显示控制器兼容。如果使用 EVK,则可以使用 SDK 驱动程序并调整以下功能的值: BOARD_InitLcdifClock() BOARD_InitMipiDsiClock() BOARD_SetMipiDsiConfig() 这些函数以及同步值的宏都在 " display_support.c " 中引用文件,这是调整显示控制器支持时需要关注的主要文件。   另外,请务必阅读以下应用笔记,因为它详细介绍了液晶显示器设置的工作原理以及其他有用的注意事项:i.MX RT elcDIF RGB 模式用例 (nxp.com)   BR, Edwin. Re: ST7701 drivers 早上好 我按照显示器制造商和驱动程序制造商的指示,修改了你提到的文件。我可以通过 MIPI 对驱动寄存器进行写入和读取。我可以用示波器看到差分 MIPI 波形(也是在"配置" 阶段之后),但仍然无法在显示屏上看到任何东西。我正在使用恩智浦 SDK 中名为"mipi_dsi_compiance_test" 的演示示例。 您能提供更多帮助吗? 谢谢,并致以诚挚的问候、 弗朗切斯科-索利托 Re: ST7701 drivers 你好,@SolitoFrancesco、 您能在运行时调试代码吗?是否打印出任何错误信息?您在数据线上看到了哪些数据模式?这些模式是否与 readme.md 文件中描述的预期模式一致? BR, Edwin. Re: ST7701 drivers 你好 我也遇到了同样的情况(相同的驱动程序和分辨率,基础是在开发板上运行的测试示例)。控制器已配置好,我也可以读取状态(没有任何错误),DSI 线路上的数据也已存在,但屏幕上什么也没显示。 将 dsi_dpi_config 中的 videoMode 从 kDSI_DpiBurst 改为其他模式也没有效果。 看起来屏幕不接受视频流? Re: ST7701 drivers 你好示例项目在显示 DEMO_PANEL_RK055MHD091 时运行正常。然后,我切换到最终应用中必须使用的面板。它的分辨率不同(480x800),因此我调整了定义。然后,我更改了驱动程序(fsl .h和 .c文件),我就能与显示器通信了。我可以写入和回读寄存器。但在配置显示屏后,当示例项目开始发送图像缓冲区时,我能在示波器上看到 MIPI 波形,但显示屏上什么也看不到。假设显示屏没有损坏,因为我尝试通过专用命令打开所有像素,我可以看到屏幕完全白色。我不明白的是,问题是出在显示器的配置上,还是出在示例项目中我必须调整的其他地方。我联系了显示器制造商和控制器制造商,但我需要各方尽可能多的帮助。有可能为安装在显示器上的控制器获取 fsl 驱动程序吗?它是 Sitronix ST7701。请告诉我。谢谢并致以诚挚的问候,弗朗切斯科 Re: ST7701 drivers 您好,Rino 我正在对我的设置和您的设置进行比较(最后我会上传到这里)。 同时,我注意到我使用的是 ST7701,而你使用的可能是 ST7701S(后缀为 S)。我认为它们很相似,但我不确定。 我注意到,现在即使不进行任何初始化,显示屏也能正常工作。"开始时速度很慢," ,硬度也很低,但还是能用。然后,如果我只发送 0xE0 至 0xEF 的设置(ST7701 数据表中没有记录),显示器启动速度非常快,颜色也正确。似乎所有其他设置都没有必要(听起来很奇怪)。 让我们保持联系。完成后,我将与大家分享比较结果。 再次感谢您。 亲切的问候, Francesco Re: ST7701 drivers 你好,Rino 非常感谢你的建议。在我的应用中似乎也是如此。好极了我可能需要更好的设置,但现在我可以在屏幕上看到图像了。 如果可能的话,请与我分享您的配置,以便我与您的配置进行比较,更好地完善配置。如果我看到了不同的东西,我会在这里告诉你。 再次感谢您。您是如何设置 enableNonContinuousHsClk 的? 致以亲切的问候, Francesco Re: ST7701 drivers 你好,弗朗切斯科 、 我设法让显示屏正常工作。 在 DisplayTFT_SetMipiDsiConfig 函数中,添加一行内容: dsiConfig.enableNonContinuousHsClk= true; 例如,在这几行之后: DSI_GetDefaultConfig(&dsiConfig); dsiConfig.numLanes = DISPLAY_MIPI_DSI_LANE_NUM; dsiConfig.autoInsertEoTp= true; 假设你已经正确配置了显示 IC(如果有必要,我可以分享我的屏幕配置)和显示时钟(我的设置大约是 26MHz)。 致以最诚挚的问候,克里斯 Re: ST7701 drivers 你好 文件是根据 SDK 中的其他驱动程序创建的。 您还可以将延迟时间改为更短。 今天上午,我确认了配置顺序,并按照显示器制造商的建议做了一些更改,但没有进一步改善,于是我开始仔细研究 DSI 配置本身。我知道时钟很好,视频模式(突发模式)也是如此,所以剩下的唯一选择是 DSI 本身的选择。 熟悉(以及文档中的其他部分): https://docs.nxp.com/bundle/AN13573/page/topics/continuous_vs_non-continuous_clock.html BR, Chris Re: ST7701 drivers 你好,里诺 按照约定,请在附件中查看您和我的设置对比。我没有细说,但如果我或你会在差异中发现一些有趣的东西,请让我们继续写下去。 此致敬礼, 弗朗西斯科 Re: ST7701 drivers 你好,弗朗切斯科、 抱歉耽搁了。 我浏览了你的对比,发现了很多差异,部分原因是屏幕本身(我们有玻璃/触摸屏/屏幕三明治,对此进行了配置修复——或者至少供应商是这样解释的) 🙂 )。 有些设置(如功率控制)不是启动所必需的,而是为了提高质量(对比度/伽玛设置)。 有趣的是,无论我们是否运行"Sunlight Readable Enhancement" 这个东西,我想他们称之为 "阳光可读增强",都是必需的。根据这些数据,它可以自动设置最佳参数。如果它们不正确或缺失(默认值),则需要一段时间才能自动设置它们 -> 因此,正如你所注意到的,启动速度会很慢。 文档本身可能相当令人恼火,许多命令都没有文档说明,如果没有文档,往往无法完全启动屏幕。不只是这款机型,我在其他几款态龙机型上也遇到过这种情况。 亲切的问候, Chris
View full article
IMX8M PLUS LPDDR4 2G compatibility We try to implement an ISSI IS43LQ32512A-046BLI 2GB RAM. After Calibration the RAM fails during the  memcpy SSN armv8_x32 test with 2000MHz configured. If I configure the RAM to 1500MHz it pass all the tests. Has anybody implement this LPDDR4 RAM? Is it in general compatible with IMX8M PLUS? i.MX 8 Family | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: IMX8M PLUS LPDDR4 2G compatibility Hi @TMpieye  Are you using DDR config tool run the Calibration? If yes,. please share your configuration page and fail log file. B.R Re: IMX8M PLUS LPDDR4 2G compatibility The IS43LQ32512A-046BLI (ISSI 2GB LPDDR4X SDRAM) is generally compatible with the NXP i.MX 8M Plus processor, as long as it adheres to JEDEC standards for LPDDR4/LPDDR4X memory. However, your issue with the memcpy SSN armv8_x32 test failing at 2000MHz (but passing at 1500MHz) is not uncommon and likely stems from configuration, board design, or calibration challenges rather than fundamental incompatibility. Compatibility Confirmation The i.MX 8M Plus supports LPDDR4/LPDDR4X memory up to 4266 MT/s (2133MHz clock), and the IS43LQ32512A-046BLI operates at up to 2133MHz (4266 MT/s data rate), which aligns with NXP's specifications. NXP's community forums confirm that similar ISSI LPDDR4X parts (e.g., IS46LQ32512A-046BLA2, which is an automotive variant of your model) are compatible with the i.MX 8M Plus, provided they follow JEDEC specs. Users have successfully implemented them without issues when properly configured. Potential Reasons for Your Test Failure at 2000MHz Based on similar reports in NXP and embedded forums: Timing/Configuration Mismatch: The i.MX 8M Plus DDR controller requires precise timing parameters (e.g., CAS latency, tRCD, tRP) from the RAM's SPD/ datasheet. At 2000MHz, your calibration might not fully optimize for the ISSI part's specs (e.g., CL=32, RL=14 at higher speeds). Lowering to 1500MHz reduces stress and passes, but this indicates suboptimal tuning. Board Design Issues: Signal integrity problems like trace length mismatch, impedance errors, or insufficient power decoupling can cause failures at higher speeds. Check for reflections or noise on DQ/DQS lines using an oscilloscope. Calibration Limitations: The i.MX 8M Plus uses NXP's DDR Tool for calibration. If your script or settings are based on Micron/ Samsung references (common in EVKs), they may not match ISSI's characteristics. Re-run calibration with ISSI-specific parameters. Power/Temperature: At 2000MHz, higher current draw could cause voltage droop or overheating, failing memcpy tests (which stress sequential reads/writes). Has Anyone Implemented This RAM? Yes, there are documented implementations: In NXP community threads, users have integrated similar ISSI LPDDR4X (e.g., IS46LQ series) on custom i.MX 8M Plus boards for industrial applications, achieving stable operation up to 2133MHz after fine-tuning. Embedded Linux/BSP developers report success with ISSI parts in Yocto-based builds, but often with custom DDR init scripts to handle the 512M x 32 organization (16Gbit density). Recommendations to Fix Your Issue Verify Datasheet Alignment: Download the ISSI datasheet (IS43/46LQ32512A series) and compare timing params with NXP's i.MX 8M Plus RM (Reference Manual, Section 13.5 DDR Controller). Key specs for your RAM: 2133MHz max clock, LVSTL interface, 1G x 16 organization (dual-channel x32 total). Re-Run Calibration: Use NXP's DDR Test Tool or SCFW DDR Config Tool with ISSI-specific stress tests. Start at 1600MHz, gradually increase to 2000MHz while monitoring eye diagrams. If using U-Boot/Linux, update the device tree (.dtb) with correct timings (e.g., mx8mp-ddrc-devfreq.dtsi). Board-Level Checks: Ensure VDDQ = 1.1V, VDD2 = 0.6V, with clean decoupling (capacitors close to pins). Use a signal integrity simulator (e.g., HyperLynx) to verify traces. Test with lower temperatures or better cooling to rule out thermal throttling. If Still Fails: Contact NXP support via their community or ticket system — provide your calibration logs and board schematics. Consider switching to validated RAM like Micron MT53E512M32D2NP (NXP EVK default) for comparison. Overall, the RAM is compatible, but your 2000MHz failure is likely a setup issue. If you share more details (e.g., calibration logs or board schematic snippets), I can help troubleshoot further! I suggest contacting +8526583 (7594) via the messaging app; obtain the EOL document from him and then make a recommendation. He can help you Re: IMX8M PLUS LPDDR4 2G compatibility On the used board we have sucsesslully runing 3GB (MT53E768M32D2ZW-046 WTC) and 4GB (MT53E1G32D2FW-046 AAT:B) Micron LPDDR4 on 2000MHz. Re: IMX8M PLUS LPDDR4 2G compatibility Thanks for your support. In Attachments i send you the configuration .xls and the test log. Re: IMX8M PLUS LPDDR4 2G compatibility Hello @pengyong_zhang , Same result with the config Tool V 13.1. Maybe our configuration is wrong for the IS43LQ32512A-046BLI? Can you provide the correct configuration (*.ds file)? Our hardware desing is a 1:1 copy of the eval board regarding the LPDDR4 interface.  Kind Regards Tobias Re: IMX8M PLUS LPDDR4 2G compatibility Hi @TMpieye Please use the below link download our DDR Config Tool and run the ddr test wIth configure 2GB dram.  https://www.nxp.com/design/design-center/development-boards-and-designs/i-mx-evaluation-and-development-boards/config-tools-for-i-mx-applications-processors:CONFIG-TOOLS-IMX B.R Re: IMX8M PLUS LPDDR4 2G compatibility Hi @TMpieye  Please use below setting run the DDR test. B.R Re: IMX8M PLUS LPDDR4 2G compatibility Thanks for your Config Exaple. Its the same I already tryed with this RAM and still get the error. Re: IMX8M PLUS LPDDR4 2G compatibility Hi @TMpieye  It's strange. Please share your DDR Config Tool v25.12 fail log B.R Re: IMX8M PLUS LPDDR4 2G compatibility hHi @pengyong_zhang  for stresstest we use the Mscale DDR Tool 3.31. I will do it with the other config tool Re: IMX8M PLUS LPDDR4 2G compatibility Hello @pengyong_zhang , here is the log of the stresstest. We have the same Problem wirth an 4GB ISSI IS43LQ32K01S2A-046BLI.  Re: IMX8M PLUS LPDDR4 2G compatibility Hi @TMpieye  Did you run the stress test with our DDR Config Tool? From your log file, it seems not from the Config Tool output. Also use out latest tool version v25.12. B.R Re: IMX8M PLUS LPDDR4 2G compatibility Hello @pengyong_zhang , I run the tes in the config tool and and its passed. So it seems to be a tool problem with the MSCALER tool. Many thanks for your great support!
View full article
基于 RT1170 通过 USB DFU 更新固件 基于 RT1170 通过 USB DFU 更新固件 基于 RT1170 通过 USB DFU 更新固件 开发环境 准备dfu-util 准备dfu-util 的步骤 运行演示 使用 SDK 中的预建固件 使用自定义固件 无需借助外部编程工具即可在现场执行微控制器 (MCU) 固件升级是一项必要的功能。 对于支持 USB 设备控制器的 MCU,USB 设备固件更新 (DFU) 类提供了一种解决方案。USB_DFU 引导加载程序只需要一台 PC 和一根 USB 电缆。 RT系列也提供了此功能。以 RT1170 为例,SDK 中 USB 类下提供了一个 DFU 项目。该项目基于 MCUXpresso IDE。通过运行 SDK 中的 dev_dfu_freertos_cm7 项目,RT1170 将被枚举为 dfu 设备,并且在通过另一根 USB 电缆将其连接到主机 PC 后,用户可以使用“dfu-util”实用程序将固件下载到该设备。 开发环境 软件环境: SDK版本:2.15.000 IDE: MCUXpresso IDE 演示项目: dev_dfu_freertos_cm7 主机软件: dfu-util 下载链接: dfu-util 对于 Windows 64 位:下载dfu-util-0.9-win64.zip   硬件环境: 主板:RT1170-EVKB   Preparing dfu-util dfu-util用于将固件下载到 DFU 设备,但它不会将 CRC32 添加到固件中。由于 SDK 中的 DFU demo 会验证 CRC32,以确保写入 Flash 的固件没有位错误,因此需要修改dfu-util源代码。 准备dfu-util 的步骤 安装依赖项 sudo apt-get build-dep libusb-1.0-0 dfu-util sudo apt-get 安装 gcc-mingw-w64-x86-64 下载dfu-util和libusb源代码 git克隆https://git.code.sf.net/p/dfu-util/dfu-util git 克隆https://github.com/libusb/libusb.git 修改源代码中的 CRC 代码 修改dfu_file.c中的dfu_store_file函数,将CRC32添加到Firmware后缀。 /* 如果有后缀,则写入 */ 如果(写入后缀){ uint8_t dfusuffix[DFU_SUFFIX_LENGTH]; dfusuffix[0] = 文件->bcdDevice & 0xff; dfusuffix[1] = 文件->bcdDevice >> 8; dfusuffix[2] = 文件->idProduct & 0xff; dfusuffix[3] = 文件->idProduct >> 8; dfusuffix[4] = 文件->idVendor & 0xff; dfusuffix[5] = 文件->idVendor >> 8; dfusuffix[6] = 文件->bcdDFU & 0xff; dfusuffix[7] = 文件->bcdDFU >> 8; dfusuffix[8] = 'U'; dfusuffix[9] = 'F'; dfusuffix[10] = 'D'; dfusuffix[11] = DFU_SUFFIX_LENGTH; /*crc = dfu_file_write_crc(f, crc, dfusuffix, DFU_SUFFIX_LENGTH - 4);*/ dfusuffix[12] = crc; dfusuffix[13] = crc >> 8; dfusuffix[14] = crc >> 16; dfusuffix[15] = crc >> 24; crc = dfu_file_write_crc(f,crc,dfusuffix + 12, 4); }   构建libusb mkdir -p构建 cd libusb-1.0.24 ./autogen.sh PKG_CONFIG_PATH=$PWD/../build/lib/pkgconfig./configure --host=x86_64-w64-mingw32 --prefix=$PWD/../build 制作 进行安装 光盘 .. Build dfu-util cd dfu-util-0.11 ./autogen.sh PKG_CONFIG_PATH=$PWD/../build/lib/pkgconfig./configure --host=x86_64-w64-mingw32 --prefix=$PWD/../build 制作 进行安装 光盘 .. 完成这些步骤后,新构建的工具将位于/build/bin文件夹中。 打开 Windows 的 cmd。使用新的dfu-suffix.exe运行以下命令,CRC32 将添加到固件中。 dfu-suffix.1 exe -a你的固件 运行演示 使用 SDK 中的预建固件 SDK 提供了一个预编译的固件二进制文件 ( dev_hid_mouse_bm.bin ),其中已包含 CRC32 校验码。请按以下步骤操作: 使用 MCUXpresso IDE 将dev_dfu_freertos_cm7演示刷入 EVKB 板。   通过 USB 将开发板连接到主机 PC。 在 USB 设备描述符中,我们找到供应商 ID 和产品 ID:   运行以下命令下载固件: dfu-util.exe -d <你的视频:进程号> -D <你的固件> 下载后,DFU 演示将验证 CRC32 并在 RAM 中执行新的固件。该设备将被枚举为 USB 鼠标,在屏幕上以矩形图案移动。 使用自定义固件 使用自定义固件时,请确保图像加载到正确的地址(例如,0x10000)。如果偏移量不正确,即使 CRC 校验通过,DFU 演示也将无法加载固件。 构建和加载自定义固件: 将hello_world_cm7项目导入 MCUXpresso IDE。 在托管链接器脚本设置中,启用“将应用程序链接到 RAM”。 调整内存设置以匹配 DFU 项目要求,确保 ITCM 是第一个 RAM 区域。 构建项目并生成二进制文件。 使用修改后的dfu-util工具将 CRC32 附加到二进制文件并将其下载到开发板。验证自定义固件是否正确执行。 CRC 添加: 新固件加载成功: 中文版及演示版请见此链接: https://www.nxpic.org.cn/module/forum/forum.php?mod=viewthread&tid=803149&fromuid=3253523 动手实践培训
View full article
imx95 电源模式 我正在开发一款运行 Linux 6.12(基于 Yocto)的自定义 i.MX95 板。我遇到了与 USB3 主机控制器有关的挂起到内存(深度睡眠)故障。当执行 echo mem> /sys/power/state 时,系统会中止 xhci-hcd 的挂起:WARN: xHC CMD_RUN 超时,紧接着 PM: failed to suspend async: error -110.启用 USB 主机模式时,即使没有活动的 USB 流量,问题也会持续出现。我使用的是由 GPIO 控制的固定 5V VBUS 稳压器,USB3 控制器、PHY、时钟和功率域在 DTS(附后)中定义。我的要求是在低电源模式下完全关闭 USB VBUS 的电源,同时允许系统成功进入深度睡眠。我附上了完整的暂停/恢复 dmesg 日志和与 USB 相关的相关 DTS 节点以供参考。我希望得到指导,了解在 i.MX95 上避免 xHCI 挂起超时所需的正确 DTS 和/或驱动程序处理方法。 Re: imx95 low power mode 您能否向我们分享详细步骤,以便我们在 EVK 板上复现它?谢谢 Re: imx95 low power mode 在自定义板中我使用 fusb302 但未作为 usb3.0 启用,我们将其用作 usb2.0。 但在进入深度睡眠时(echo mem> /sys/power/state ),xhci-hcd 驱动程序出现错误。 测试设置: • SoC:i.MX95 • 操作系统:Yocto Linux(内核 6.x、电路板支持包) • USB 模式:主机(xHCI、USB3)• 连接设备:USB 闪存盘(大容量存储) 正常启动板。 将 USB 存储设备连接到 USB3 主机端口。 使用 lsusb 验证枚举并确认设备可访问。 使用以下命令进入电源模式: echo mem > /sys/power/state 在此步骤本身之后它会显示错误。 使用配置的唤醒源(电源按钮/ GPIO)恢复系统。 恢复后,观察到 USB 设备是: 未检测到,或 在 dmesg 中显示 xHCI / DWC3 相关错误,或 需要重新插入 USB 才能重新工作。 ERROR LOGS : echo mem> /sys/power/state [ 117.057281] PM: suspend entry (deep) [ 117.066009] Filesystems sync:0.005 seconds [ 117.071209] Freezing user space processes [ 117.076800] Freezing user space processes completed (elapsed 0.001 seconds) [ 117.083781] OOM killer disabled. [117.087011] 冻结剩余的可冻结任务 [117.132725] 冻结剩余已完成的可冻结任务(已经 0.041 秒) [117.140164] printk:暂停主机(使用 no_console_suspend 调试) [117.156868] sd 0:0:0:0:0:[sda] 同步 SCSI 缓存 [117.267552] xhci52-hcd xhci-hcd.2.auto:警告:xHC CMD_RUN 超时 [117.267611] xhci-hcd xhci-hcd.2.auto:PM:dpm_run_callback ():platform_pm_suspend 返回 -110 [117.267631] xhci-hcd xhci-hcd.2.auto:无法暂停异步:-110 [117.267702] 下午:一些 设备无法挂起,或者检测到提前唤醒事件 [117.268017] hub 1-0:1.0:hub_ext_port_status 失败(错误 = -108) [117.268044] USB usb1-port1:无法禁用(错误 = -108)[117.516365] 下午:恢复设备花了 0.248 秒 [117.570639] OOM 杀手已启用。 [ 117.573777] 重新启动任务......完成。 [ 117.575261] sd 0:0:0:0: [sda] 测试单元就绪失败:Result: hostbyte=0x01 driverbyte=DRIVER_OK [ 117.578423] random: crng reseeded on system resumption [ 117.587117] sda: detected capacity change from 120164352 to 0 [ 117.598136] PM: suspend exit -sh: echo: write error:连接超时 Re: imx95 low power mode 嗨@kannappan、 好了,我们要放元旦假期了。当我回到办公室时我会在我们的板上试一试然后给你回复。 祝您有美好的一天 顺祝商祺! Rita Re: imx95 low power mode 嗨@kannappan、 对不起,这周太忙了,我下周会为您测试并与您分享结果。 祝您有美好的一天 顺祝商祺! Rita Re: imx95 low power mode HI@Rita_Wang, 对于上述问题是否有任何答复。 谨致 Kannappan
View full article
中子转换后的 YOLOv8n 模型无法在 i.MX95 中正常输出 您好, ,我从 ultralytics 导出了完全量化的 int8 YOLOv8n 物体检测模型。我已经使用最新的 eIQ Toolkit 版本 1.17 中的中子变流器将其转换成在 NPU 上运行,我曾尝试在 i.MX95 硬件上执行它。 我用 NPU 委托试过转换模型和非转换模型,但似乎只有转换模型上的中子图才能在 NPU 上执行。 当我比较两个模型的原始输出时,转换后的模型给出了多个假阳性,得分超过 95% 。我对已转换和未转换的模型都使用了相同的脚本,但只对已转换的模型有问题。我用多种方法进行了验证,但每次的结果都一样。 当我用 netron 应用程序检查这两个模型时,我发现转换后的模型在结构上发生了重大变化。 在此,我想问几点: 1.eIQ Toolkit 版本 1.17 的 Neutron 变流器是否支持像 YOLOv8 和 YOLOv11 这样的最新物体检测架构? 2.您在 i.MX95 上使用 NPU 测试过 YOLOv8 和 YOLOv11 吗?如果回答为 "是",请将模型和后处理步骤一并发送到 3.如果我们要在 i.MX95 中的 Neutron NPU 上执行 Neutron Graph 以外的操作,流程是什么? 4. 如果我们要在 i.MX95 中的 GPU 上执行上述模型,流程是什么? 我也翻阅了《机器学习用户指南》,但没有找到相关细节。 谢谢, Vatsal。 Re: Neutron Converted YOLOv8n model is not giving proper output in i.MX95 你好 您遇到的 Neutron 转换 YOLOv8n 模型误报问题是一个已知的难题。目前 i.MX95 NPU 对 YOLOv8 模型的支持仍在优化中,转换过程中的架构变化可能会影响性能。 关于您的具体问题: 1. eIQ 工具包 1.17 中的 YOLOv8 架构支持仍在改进中。推荐的转换工作流程是: - 在导出模型时确保正确的 int8 量化 - 使用最新的 eIQ 工具包 (v1.17) 使用变流器进行转换 - 命令:`./变流器 --input [你的模型].tflite`--target imx95 --use-python-prototype` 2.虽然支持 YOLOv8,但可能尚未完全优化。YOLOv5 与当前的 NPU 实现具有更好的兼容性。恩智浦团队正在积极改进对 YOLOv8/YOLOv11 的支持。 3. 要在 NPU 上执行 Neutron Graph 以外的操作,需要使用 eIQ 或 netron 工具分析模型,以确定哪些运算符已成功转换为在 NPU 上运行(显示为 neutronop 内容)。未转换的运算符将在 CPU 上运行。 4.在 i.MX95 上执行 GPU 运算时,应使用 TensorFlow Lite GPU 委托而不是 NPU 委托。这需要修改推理代码以使用 GPU 委托。 您可以通过在 netron 中检查转换后的模型来验证模型操作的分布情况--任何含有"neutronop" 内容的运算符都在 NPU 上执行,而其他运算符仍在 CPU 上执行。 此致 Re: Neutron Converted YOLOv8n model is not giving proper output in i.MX95 我们再次使用带有自定义数据集的YOLOv5s进行了训练,并尝试进行推断,因为您在之前的聊天中声称YOLOv5使用中子变流器取得了不错的结果。YOLOv5 也仍然存在这个问题。我也附上结果以供参考。在这里,我们尝试了已转换和未转换的 int8 tflite YOLOv5s 模型。 现在,如果你声称 YOLOv5 能够带来良好的效果,那么为什么不与我们分享经过验证的模型呢?请分享从导出、量化到转换的所有步骤,以及后期处理的步骤。这样我们就可以验证您的模型,并在我们这里复制您所遵循的步骤。 如果可以的话,也请与i.MX95共享您的基准测试和我的数据。 Re: Neutron Converted YOLOv8n model is not giving proper output in i.MX95 你好,@Bio_TICFSL! 我注意到恩智浦团队建议使用 --use-python-prototype 标志,但是我的中子变流器无法识别它。它是在 Windows 上支持的,还是只与 Linux eIQ 版本兼容? Re: Neutron Converted YOLOv8n model is not giving proper output in i.MX95 这对我来说也是一个问题。我使用过 Linux eIQ,但效果不佳。因此我跳过了它,尝试只通过目标 arg 转换模型。 Re: Neutron Converted YOLOv8n model is not giving proper output in i.MX95 您好@Bio_TICFSL, 由于时间已久,我仍在等待您的回复。我们被困在这里,我们也有一些紧迫感。请尽快回复。 谨致 Vatsal [i.MX95 NPU] YOLOv5n/v8n/v11n Neutron-converted Models Run but Return No Detections (Zero Output) 问题描述 我正在使用 Neutron 变流器在 i.MX95 NPU 上评估 YOLO 目标检测模型。 虽然 INT8 量化的 TFLite 模型在 Cortex-A55 CPU 上运行成功并能检测到物体,但编译后的 neutron.tflite 版本在卸载到 NPU 时,尽管执行推理时没有崩溃,却产生了零检测结果(空/无输出)。 环境及硬件设置   硬件: i.MX95 19x19 LPDDR5 EVK(A1 版本) 操作系统/内核: Linux 6.12.34-lts-next-gbe78e49cb433 #1 SMP PREEMPT (aarch64) NXP 工具链: MCU-SDK v25.09.00 + Linux 6.12.34_2.1.0 测试型号: YOLOv5nu、YOLOv8n、YOLOv11n(Ultralytics) 工作流程步骤和使用的命令 1. 量化(Ultralytics 导出) 模型导出为 INT8 全整数量化格式,分辨率为 320x320: yolo export model=yolov8n.pt format=tflite int8=True imgsz=320# (Repeated identically for yolov11n.pt and yolov5nu.pt)   状态:在CPU上运行完美。yolovXn_full_integer_quant.tflite 在 A55 内核上能够正确检测对象。 2. 中子汇编 TFLite 模型是使用 MCU_SDK_25.09.00+Linux_6.12.34_2.1.0 中的 Neutron 转换器为 i.MX95 NPU 编译的: ./neutron-converter --input yolov8n_full_integer_quant.tflite --target imx95 --output yolov8n_full_integer_quant_neutron.tflite   状态:无法在 NPU 上检测到对象。编译后的模型可以加载并运行推理,不会抛出语法或执行错误,但对于完全相同的测试图像,输出张量返回零检测结果。 观察到的症状和疑似根本原因   操作回退:变流器是否会针对特定的 YOLO 层(如自定义锚点、SiLU/Swin 激活或非最大值抑制)回退到 CPU? 量化缩放/不对称性:通过 Ultralytics 导出的 YOLO 模型通常使用不对称量化或具有 Neutron NPU 驱动程序可能误解的特定输出张量缩放。 输出张量格式:推理运行正常,这表明输入管道没有问题,但输出边界框/分数要么为空白,要么完全是垃圾值。 向恩智浦专家提问   中子变流器是否存在针对 Ultralytics YOLO 架构的已知限制或必需的优化标志? 在将 TFLite 模型传递给 Neutron 转换器之前,是否应该去除 NMS(非极大值抑制)层? i.MX95 Neutron SDK 是否需要对称量化(per_channel=True 或 False)才能正确解析输出层? 任何关于 i.MX95 NPU 的指导、参考脚本或 YOLO 部署说明都将不胜感激。        
View full article
Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp Hello, I’m trying to establish communication between two Imx95 verdin EVK A1 Silicon version boards, through their Aquantia 10 Gbps interfaces. Both boards are running Debian 12 ( linux kernel 6.12.3) with the aquantia10 G firmware (AQR-G4_v5.6.D-AQR_Marvell_NoSwap_XFI_ID44834_VER2068.cld ) properly installed using the nxp installer (aquantia-firmware-utility/aq_api_2_9_7 at master · nxp-qoriq/aquantia-firmware-utility · GitHub). They are physically connected using a Cat6a Ethernet cable. When I run performance tests using iperf3, I get around 5 Gbps in TCP and 1.2 Gbps in UDP with 0% of loss, even when specifying a target bandwidth of 7 Gbps: # TCP Test iperf3 -s # on the first board iperf3 -c -t 30 # on the second board # UDP Test iperf3 -s iperf3 -c -u -b 7G -t 30 when i try to activate jumbo frame with ip link set dev enp1s0 mtu 9000 but i get an error that i exceded the limit (it’s weird that a 10Gbps interface does not accept jumbo frames) also i tried to to increase the UDP buffer size, but i get the same bitrame the CPU load does not exceed 40% when i run iperf3 in both sides Are there any specific n configurations to apply or additional tools to install in order to reach the maximum throughput (close to 10 Gbps)? is the Aquantia FW version is good? the linux kernel version? the FW installer version??? SOmeone have already tried to use the 10Gbps interface on this Targets??? Regards, Abdelmonaem Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp 1. Try configuring following settings on both of your systems: cpufreq-set -g performance sysctl -w net.core.rmem_max=26214400 sysctl -w net.core.wmem_max=26214400 sysctl -w net.core.netdev_max_backlog=250000 sysctl -w net.ipv4.tcp_rmem='4096 87380 16777216' sysctl -w net.ipv4.tcp_wmem='4096 65536 16777216' 2. If possible use a different reference system as iperf server (e.g. Intel Xeon) 3. iperf3 itself is single-threaded per test stream, try using  -P option: e.g. iperf3 -c -u -b 10G -t 30 -P 6 (6 streams) 4. Check both forward and reverse stream (-R) iperf3 -c 192.168.1.1 -t 10 -b 10G -u -R Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp Hi, Thank you for your feedback, applying your configuration: cpufreq-set -g performance sysctl -w net.core.rmem_max=26214400 sysctl -w net.core.wmem_max=26214400 sysctl -w net.core.netdev_max_backlog=250000 sysctl -w net.ipv4.tcp_rmem='4096 87380 16777216' sysctl -w net.ipv4.tcp_wmem='4096 65536 16777216' Now i'm able to achieve 10Gbps some times 8,8 or 9,8Gbps on emitter side only and with only iperf and not iperf3, on the receiver side i can only achieve 5.59Gbps with 36% of loss frames, could you help to resolve this issue Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp it will be a minor version upgrade to 6.12.49 BTW, you may also want to consider DPDK or AF_XDP for better throughput?  Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp => TCP vs UDP send performance When you are using iperf3 to send TCP packets, each TCP packet is 128KB, and the packet will be fragmented by the LSO feature of ENETC Hardware. So you see higher TCP transfer performance. iperf3 does not enable UDP_SEGMENT when creating UDP sockets. Therefore: - Each UDP packet is approximately MTU-sized (≈1500 bytes). - For the same data size, UDP requires to send many more packets than TCP. More packets → more kernel processing → lower performance compared to TCP with LSO. => Why receive is much lower in comparison to send for TCP? - The TX and RX paths are not symmetrical in the Linux kernel, so the processing time for each RX packet and each TX packet in the kernel is different. Also TCP is using LSO offload in send. - RSC is not enabled by default in kernel; We need to disable TCP timestamp so that the RSC of ENETC can work properly. Currently, the RSC of i.MX95 is disabled by default. a) Enable RSC of i.MX95 (receiver side): ethtool -K eth1 large-receive-offload on b) Disabled TCP timestamp (sender side) : sysctl -w net.ipv4.tcp_timestamps=0 sysctl -p /etc/sysctl.conf After enabling RSC, you will see the TCP performance at receiver side will be increased. Additionally you can try using Jumbo frames to get higher throughput. (Hope you are running latest release). # Change MTU to 9000 on both side ip link set dev eth1 mtu 9000 # Change RX buffer length in the ethernet driver. ethtool -G eth1 rx-buf-len 16384 We can see between 8 to 10 Gbps UDP RX/TX with multi-stream mode. Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp Hi, I'm interested only on UDP for the moment and not TCP and i think that the offload mecanisms are not applicable for UDP I tried to activate the jumbo frames by setting mtu to 9000 but i get an error that i exceeded the limits which is 1500 (im using the kernel version 6.12.3) Regards, Abdelmonaem Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp Ok i will try this and told you what i get, Could you precise the linux kernel version for LF-Q4?? As i told you i'm on 6.12.3 and i cannot go to a superior version because i have a A1 silicon revision, i need to know if i have to upgrade to B0 revision or not Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp The RSC settings will also improve UDP performance. The changes/fixes for Jumbo frames in ENETC should be available in upcoming LF-Q4 release in two weeks.  Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp With i don't have an issue i can go to 10Gbps sometime 9, 8Bps with iperf in parallel flows with only one flow i'm at 5Gbps , but my big issue is the Udp, in mono flow i'm at 2Gbps with no lost frame it's ok, but in parallel flows i'm at 5,5Gbps with 42% of loss Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp i don't think that AF_XDP or DPDK will help to reduce a 46% of loss to 0%, i verified also the IRQ affinty and i can see that on the 10G interface i have 6 IRQ each one is affected to a CPU, and i don't see any CPU load issue during the test, the maximum CPU load for 1 CPU is 40%, i still don't understand why i keep loosing frames , maybe the fact that the kernel version used does not support jumbo frames , did you have any performance tests on the 10G interface in your Side (NXP) i think you should test in your side and see if you have the same issue than mine Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp AF_XDP or DPDK do not use kernel networking stack.  DPDK specially have a different driver and work in userspace only. It is highly optimized for networking and packet processing.  It can provide really fast performance for all IP packets.  you may check it out at;  Chapter 10: https://www.nxp.com/docs/en/reference-manual/RM00293.pdf Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp this test is performed on which silicon revision A1 or B0?? do you confirm that the kernel version used for this test 6.12.49 is applicable only for B0 or could be applicable on A1??? i'm not seeing this kernel version in your bsp delivery, the last one is 6.12.34 https://www.nxp.com/pages/alpha-beta-bsps-for-microprocessors:IMXPRERELEASES Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp The new kernel tree and changes are available at: https://github.com/nxp-imx/linux-imx/commits/lf-6.12.49-2.2.0 A1 support has been dropped from newer LF release.  You have following options; 1.  Just build the kernel independently and replace the kernel only in your build. (It may work)   2. Ask your marketing contact to replace your boards with B0 - so that you can run LF-Q4'2025 release.  Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp Ok got it, but just to be sure, could you do the test with MTU = 1500 at reception side i need to know if you have the same result than me on this new version and also i see on your test you put TX at 1500 and reception at 9000 but this does not change anything it's like you are in 1500 in both side if you need to test jumbo frames you need to be at 9000 in both sides , please redo the tests with following configuration: 1- RX/TX with MTU = 1500 in both sides with mono and muti streams 2- RX/TX with MTU = 9000 in both sides with mono and muti streams thank you in advance Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp i don't understand that frome those lines: Single UDP Stream send (1500 MTU): 2 Gbps(this seems at tx with MTU 1500 in single stream you are at 2Gbps) Multi UDP stream send (1500 MTU): 10 Gbps (this seems at tx with MTU 1500 in multi streams you are at 10Gbps) Single UDP Stream send (9000 MTU): 8.2 Gbps(this seems at tx with MTU 900 in single stream you are at 8.2Gbps) Single UDP Stream receive(9000 MTU): 3.9 Gbps(this seems at Rx with MTU 9000 in single stream you are at 3.9Gbps) Multi UDP Stream receive(9000 MTU): 10Gbps(this seems at Rx with MTU 9000 in Multi streams you are at 2Gbps) for me i don't see : Single UDP Stream receive(1500 MTU) Multi UDP Streams receive(1500 MTU) Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp yes, this how the results were tested. MTU was same on both side in all cases (either both 1500 or both 9000) Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp see attached,  Also note that I am also running it on A1 SOC UBOOT logs: -  U-Boot 2025.04-g8c1de2e1deca (May 09 2025 - 15:29:26 +0000) CPU:   i.MX95 rev1.1 at 1800MHz CPU:   Automotive temperature grade (-40C to 125C) at 30C LM Boot reason: sw, origin: 2, errid: 1 LM shutdown reason: sw, origin: 2, errid: 1 Model: NXP i.MX95 19X19 board DRAM:  15.8 GiB --- SM logs >$ info SM Version = Build 633, Commit c37b26da SM Config = mx95evk, mSel=0 Board = i.MX95 EVK, attr=0x00000000 Silicon = i.MX95 A1 Boot mode = normal Boot device = MMC1 Boot stage = primary Boot set = 1 ECID = 0x6E5F04BA0000000500041D0899123F81 PMIC 0 (0x08) = 0x20, 0x09, 0x10, 0x00, 0x01 PMIC 1 (0x2A) = 0x54, 0x22, 0x00, 0x0B PMIC 2 (0x29) = 0x55, 0x22, 0x00, 0x0A Compiler = gcc 14.2.1 20241119
View full article
No SCL/SDA Signals when using I2C Send as Master I have set up LPI2C1 as Master but get no outputs when attempting to send. I have pull-up resistors and the signals are connected to 1 slave device only. Please see below. What are some possible reasons for this problem? Initialization: /* set I2C1 interrupt */ IntCtrl_Ip_EnableIrq(LPI2C1_IRQn); IntCtrl_Ip_InstallHandler(LPI2C1_IRQn, LPI2C1_Master_Slave_IRQHandler, NULL_PTR); /* Init lpi2c in master mode */ Lpi2c_Ip_MasterInit(LPI2C_CHANNEL_0, &I2c_Lpi2cMasterChannel0); Send data: boolean I2C_read_fault_status(uint8 *rx_buffer) { TxBuff[0] = 0x78;   if (LPI2C_IP_SUCCESS_STATUS == Lpi2c_Ip_MasterSendData(LPI2C_CHANNEL_0, (uint8 *)&TxBuff[0], 1U, FALSE)) { LM5171_data_ptr = rx_buffer; LM5171_data_len = 1; return TRUE; } Re: No SCL/SDA Signals when using I2C Send as Master We are using the S32K324 part with the S32DS3.5 debugger and a Multilink FX Universal interface. Our RTD version is 4.00 HF02. There is not an option in the LPI2C peripheral to enable debugging (like there is in other peripherals). I did not think to set the option manually! When I set the DBGEN bit, the signals work as expected. Re: No SCL/SDA Signals when using I2C Send as Master What kind of debug mode you are using? specific debugger or on board debugger? Re: No SCL/SDA Signals when using I2C Send as Master Hi@phil_b Could you tell us the part number you're using? Also, the RTD version is ? If you're using S32K3, could you please try to set this bit and have a try again. Re: No SCL/SDA Signals when using I2C Send as Master The signals were missing while I was running in Debug mode. When I removed the debug connector, the signals were there! Is there a way to see the signals while in Debug mode?
View full article
使用SHA3验证S32K148固件 寻求帮助以获得对嵌入式网络安全方法的更高层次的理解。 现在我的想法是,当我们的生产固件准备好时,我们会在应用程序二进制文件上生成一个 SHA3 哈希,并将其存储在安全的内存位置。 然后在应用程序启动时,应用程序将在所有应用程序内存上创建另一个哈希(或者我猜是预定义的启动/停止地址)。 某些东西必须比较两个哈希值(不确定 cSEC 模块是否在硬件中执行此操作?)。如果通过,申请就可以继续进行,如果不通过,申请就会被拒绝。 这种理解看起来正确吗? 我的系统没有引导加载程序。 回复:使用SHA3验证S32K148固件 谢谢卢卡斯。 如果您不想永远处于重置状态,您可以根据不可用的密钥做什么?如果有密钥,如何使用它? 密钥最初是如何存储的?有什么方法可以防止黑客覆盖或重新编程整个设备? S32DS 中有一个名为 csec_boot_protection_S32K148 的项目示例。我正在看它,但有点难以理解它是如何工作的。是否有关于这个具体例子的一些文档,或者只有代码本身?
View full article
咨询S32E板子使用方法 你好, 我有2块板子,型号分别是2023 NXP B.V.S32SE28X-DC和2022 NXP B.V.X-S32X-MB。请问下这2块板子的软硬件使用方法,能否提供相应的一些资料。 谢谢
View full article
使用 Jlink-Segger 脚本下载 HSE 固件 你好 我需要将 FW 下载到 S32k310 中 目前,我使用的是移植到 s32k310 上的恩智浦演示程序 HSE_FW_INSTALL。 我注意到 Trace32 练习脚本可用于此目的。 有可能为此创建一个 Segger Jlink 脚本吗? 需要采取哪些步骤? 我需要一个更快的批量生产流程。 顺祝商祺! 法比奥 Re: Download HSE Firmware using a Jlink-Segger Script 目前,我们没有使用SEGGER J-Link安装HSE固件的现成解决方案或参考流程。 可用且经过验证的方法有 TRACE32 Practice 脚本(官方支持用于此目的)和 HSE Demo 应用程序(独立于调试器,可以移植并用于执行安装)。 如果您计划使用J-Link,则需要根据通用HSE安装顺序(UTEST标志编程、固件映像下载、RESET)自行开发自定义脚本解决方案,因为恩智浦目前不为该用例提供专用的J-Link脚本。 有关 SEGGER 的具体指导,请参阅其文档或联系其支持人员: https://www.segger.com/support/。
View full article
Question about ENEDC(S32K3) Hello Team May I ask about ENEDC of K3? Customer uses MCAL with RTD.  However, I did not find the information of RTD about ENEDC. from MSCM, it is showing only ISR core assign configuration.  May I ask, how to enable ENEDC using RTD(MCAL)? Thank you.  Safety_SW Source: Direct Customer Source: NXP Internal Re: Question about ENEDC(S32K3) Thanks for your explanation! Re: Question about ENEDC(S32K3) Hi @Luke_Chun , as per my understanding from RM description, it is needed to enable these bits if you want to have report path form the gaskets to FCCU active. This is why sCheck is enabling these bits otherwise it would be not possible to test the report path. I have to agree that this is essential setup and maybe a lot of K3 customers are not even aware of this setup (just enabling related FCCU channel, but not these bits). Kind Regards, Radoslav Re: Question about ENEDC(S32K3) Hello @RadoslavB  Thanks for your explanation, but I’m not sure about the ENEDC’s proposal. Could you confirm my understanding?  Does ENEDC need to use only “TEST”? Or Is it need to enable for Safety application? (such as, if User wishes to use the check of eDMA Read, ENEDC’s bit2 will be “set” by manually with FCCU configuration.) Thank you.  Re: Question about ENEDC(S32K3) Hi @Luke_Chun , there is no request for configuring MSCM peripheral registers in SAF. The sCheck tests internally enables these registers when it is testing latent faults in associated EDC gaskets, but enabling those bits for application is not covered by any NXP SW. Therefore, customer shall enable these registers manually. For S32K5 there has been defined sBoot check for enablement these registers but again, AFAIK configuration is not in scope of any NXP SW. Kind Regards, Radoslav Re: Question about ENEDC(S32K3) Hi @Luke_Chun, I don't support issues related to Safety driver. To request support from them, you should remove "RTD" label and keep only "Safety_SW" label in your post. Or you can raise a new post only for Safety_SW. Best regards, Dan Re: Question about ENEDC(S32K3) Hi @DanNguyenDuy  Thanks for your update. I also checked Safety drive but I did not find which one is related with ENEDC... May I ask, how to check about it? Thank you. Re: Question about ENEDC(S32K3) Hi @Luke_Chun, RTD driver is not supported for configurating ENEDC. From my point of view, you should check this feature in modules of Safety driver because this register is related to FCCU. Best regards, Dan Re: Question about ENEDC(S32K3) Adding snippet from K3 HW Safety Manual: So right now it is up to customer to follow this AoU - configuration and check is not supported by NXP at the moment. Kind Regards, Radoslav Re: Question about ENEDC(S32K3) Hi @Luke_Chun , there is support for configuration of the INTM peripheral, you can find it in RTD Platform plugin - Interrupt Monitors. On SAF side, sCheck does have INTM latent faults test, but sBoot is not checking any INTM configuration register. In my opinion if Interrupt is as detection/reaction mechanism for safety related fault, then SM1.INT_MON must be active and customer shall fulfill SM4.INT_CHK, sBoot should double check such a configuration. Kind Regards, Radoslav Re: Question about ENEDC(S32K3) Hi @RadoslavB  may I ask one more question? How about the INTM_MM? Is this same with ENEDC? (RTD or SAF does not support for configuration INTM_MM enable. User has to do the configuration INTM_MM by user code.) Thank you.   
View full article
[过滤器:垃圾邮件] evelynteddy 的帖子正文与 " *telegram* " 相符,板 " imx-processors "。 [过滤器:垃圾邮件] evelynteddy 的帖子正文与 " *telegram* " 相符,板 " imx-processors "。 帖子主题:回复:IMX7ULPEVK-等待根设备 /dev/mmcblk0p2... 职位机构: 如何从骗子手中找回丢失或被骗的加密货币,请访问 OPTIMISTIC HACKER GAIUS。 上周我的加密货币被骗后,我感到很无助,不知道该怎么办。我与乐观黑客盖乌斯取得了联系,他一直都很专业,有良好的沟通,并设定了合理的期望值。他细心地处理问题,经常提供最新信息,并描述了每一个步骤。通过坚持不懈的努力和专业技术,我被盗的加密货币被找到并追回。我吸取了重要的网络安全教训,并通过这次遭遇恢复了信心。我感谢你们在这段艰难时期给予我的帮助和指导。强烈建议 网站:optimistichackargaius.co m 电子邮件:support @ optimistichackargaius.com。 WhatsApp number:+44 737 674 0569 电报:t.me /OPTIMISTICHACKERGAIUSS 正文"电报" 匹配的过滤模式"*telegram*" 。 用户[id=259418,login=evelynteddy]的发帖因以下最终用户面临的错误而被拒绝: 信息正文中包含 Telegram,这在本社区是不允许的。请在发送您的帖子前删除这些内容。
View full article
KW45 FlexCAN 可以触发接收中断并接收自己发送的消息 我正在调试 KW45 芯片的 FlexCan 驱动程序,发现当未配置接收过滤器掩码时,FlexCan 模块可以触发信号自己的接收中断并接收自己发送的消息。这种行为正常吗?如果是,根本原因是什么?例如,修改 SDK 中的flexcan_interrupt_transfer代码,如附件所示。 uart log : ********* FLEXCAN 中断示例 ********* 报文格式: 信息缓冲区 0 用于 Rx。 信息缓冲区 1 用于 Tx。 中断模式:启用 运行模式:TX 和 RX --> 正常 ********************************************* 请选择本地节点 A 或 B: 注:节点 B 应先启动。 节点:A 按任意键触发单发传输 Rx MB ID:0x321,Rx MB 数据:0x0,时间戳:60127 按任意键触发下一次传输! Rx MB ID:0x321,Rx MB 数据:0x1,时间戳:3624 按任意键触发下一次传输! Rx MB ID:0x321,Rx MB 数据:0x2,时间戳:18344 按任意键触发信号下一次传输! Rx MB ID:0x321,Rx MB 数据:0x3,时间戳:56722 按任意键发送下一个触发信号! Rx MB ID:0x321,Rx MB 数据:0x4,时间戳:55297 按任意键触发下一次传输! Rx MB ID:0x321,Rx MB 数据:0x5,时间戳:53656 按任意键触发下一次传输! Rx MB ID:0x321,Rx MB 数据:0x6,时间戳:30470 按任意键触发下一次传输! Rx MB ID:0x321,Rx MB 数据:0x7,时间戳:22438 按任意键触发下一次传输! Rx MB ID:0x321,Rx MB 数据:0x8,时间戳:1009 按任意键触发下一次传输! Re: The KW45 FlexCAN can trigger a receive interrupt and receive the messages sent by itself 你好,我已经解决了问题,需要设置:   flexcanConfig.disableSelfReception = TRUE;
View full article
RT1021 input max current Hello, do you know how much current a GPIO input can handle? I'm using GPIO_AD_B1_02 and 8mA are flowing through that pin. What is the maximum current an input can handle before damaging the pin? The pin is on it's default values, if I understood right it is configured as input with 100k pulldown resistor by default Thank you Re: RT1021 input max current Hi @jtrujillo, In general, the maximum current for any RT1xxx GPIO pin should be limited to 25mA whether it is sourcing or sinking current. This is the safe limit for the technology to prevent reliability issues, like latent damage due to electromigration, and can be sustained for long durations if the pin needs to. BR, Edwin.
View full article
Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 Running MCUXpresso IDE V25.6.136 + evkmimxrt685 board with SDK_25_12_00. When debug starts all debug tool (resume ..) are greyed out and cannot run the project.  Works fine with older SDK_25_03_00 but same problem with SDK_25_06_00 and SDK_25_09_00.  How can i restore the debug tools Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 Hello Carlos, Posting the screenshot> It happens on all the examples including hello world. It always stops at the first line of the "void ResetISR(void) function i.e. at the line __asm volatile ("cpsid i") (line No 381) in the startup_mimxrt685s.c file in the startup directory. It never get to the main() to start the run.  I am trying to run the evkmimxrt685_dsp_mu_polling_cm33. This example works fine in the 25.03 version. All versions after than (06,09,12) have this problem. Is there some change I should make in the IDE for SDK versions after 24.03 ?.   Thanks  bobvr Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 Hello Carlos, It happens on all the examples including hello world. It always stops at the first line of the "void ResetISR(void) function i.e. at the line __asm volatile ("cpsid i") (line No 381) in the startup_mimxrt685s.c file in the startup directory. I am trying to run the evkmimxrt685_dsp_mu_polling_cm33. This example works fine in the 25.03 version. All versions after than (06,09,12) have this problem. Is there some change I should make in the IDE for SDK versions after 24.03 ?. I do have a screenshot but how do i post it. Thanks @bobvr Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 Hi @bobvr  Could you please share which OS your compute has? Linux, Windows 10, Windows 11? Could you please review the BOOT_SEL of the EVK to be properly selected? Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 Hi @bobvr  Thanks for sharing the details about your setup. Could you please do a mass erase of the flash, and retry to debug it?  To do it please change the link server action at the QuickStart Panel after that return it to Debug using LinkServer probes. Please share a screenshot if you have any error message in the process.  Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 I am running Windows 11 on a Dell Alder Lake desktop. The boot jumper (JP1) is open which is the default according to the manual (MIMXRT685-AUD-EVKUM Rev 3 - 21 July 2023). I presume this is what you meant by "review BOOT_SEL of the EVK". Thanks bobvr Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 Carlos, Thanks. Before I do this i wanted to let you know that I have always used the SEGGER J-Link probes and there is "erase flash action using SEGGER J-Link probes" menu option. Should i erase using that or using the link server probes as you mentioned above. Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 Carlos,  I tried to do a mass erase with the link server but got an error message - screenshot attached.  Thanks  Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 Hello Carlos,  I deleted the Flash using the Segger J-Link Probes (not the link server probes as that firmware was overwritten by the Segger firmware).  I understand I must use the Segger probes to debug both the ARM core and HiFi4 DSP.  I also updated the Segger firmware to the latest version 8.98.  I deleted the debug launch file,  deleted the workspace to generate a new one on bootup and also power cycled the board.  Still the same problem.  It says a debug session is running but I'm not able to debug.  As i said this happens with all versions after 03 (06, 09 and 12).  It stops at the startup_mimxrt685s.c file as before.    In the debugger console I do see a warning  message but this is probably harmless.  "warning: could not convert 'main' from the host encoding (CP1252) to UTF-32. This normally should not happen, please file a bug report. monitor exec SetRestartOnClose=1 Please advise next steps. Thanks bobvr. Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 Hi @bobvr  Thanks for sharing that you are using. The issue persists if you try to debug with link server? Please share the error message in case you get one. 
View full article
MCXW716C 在高温下运行 你好 我使用的是 #mcxw71,根据数据表,其工作温度范围为 -40 °C 至 +125 °C。我对无线电和 CAN PHY 都进行了测试,但无法在大约 85 °C 以上实现稳定运行。微控制器似乎进入保护模式,或以其他方式限制其功能。 我还注意到,在 SDK 应用程序接口中有向 NBU 发送内部温度的函数。 我的问题是:NBU 是否需要温度信息来进行热调节或维持系统正常运行? 一般来说,是否需要任何特定的程序(配置、校准、所需的 API 调用等)来确保 MCXW716C 在最高额定温度下正常运行? 提前感谢您的帮助。 开发板 Re: MCXW716C operation at high temperature 你好,希望你一切都好。 您使用的是 FRDM 板还是自定义板?您进行了哪些测试,观察到的行为是什么? 能否请您分享一下您所指的是哪些 SDK API?您是否正在研究一个具体的示例或应用? 致以最诚挚的问候, Ana Sofia。 Re: MCXW716C operation at high temperature 你好,@sofiaurueta、 我正在使用参考编号为 #MCXW716CMFTAT 的自定义板。我将解释我的测试和配置 我使用 MCXW716CMFTAT 为无线应用设计了 PCB。我已创建了软件,并使用名为"connectivity_test" 的示例程序中的逻辑来使用无线电协议。 我使用的是 SDK SDK_2.X_MCXW716CxxxA 版本 25.09.00。 两个董事会正在一起工作。我已经实施了所有模块。测试时,我使用了热风枪,温度为 80 °C。15 秒后,微控制器停止工作;它似乎被阻塞了,GPIO 被锁定,通信总线停止发送数据,30 秒后,温度下降后,微控制器恢复正常运行。 因此,我研究了监测温度的功能,以了解问题所在。我使用了 SDK 中 fwk_platform_sensors 文件中的 PLATFORM_StartTemperatureMonitor() 函数。 我的目标是知道微控制器堵塞的确切温度,而令人惊讶的是,这解决了问题。现在,我可以在 +120 °C 的温度下进行测试,微控制器工作正常。我甚至尝试删除该功能,以确保问题是否与软件有关,结果问题又出现了。 您能给我更多的解释吗?使用该功能读取温度是否会将数据分发到不同的内核并调整某些参数? Re: MCXW716C operation at high temperature 你好 您能否确认使用 FRDM 板时是否也会出现这种行为?在未作任何修改的情况下运行 connectivity_test 示例时是否会出现问题,调用 PLATFORM_StartTemperatureMonitor 函数后问题是否会改变? Ana Sofia。
View full article
MIMXRT1180-EVK の EtherCAT デモ こんにちは、 UG10322 UG10322: ICEツールを使用したEtherCATのOOBEガイド | NXP Semiconductorsに記載されているEtherCATデモを試すために、MIMXRT1180-EVK評価ボードを使用しています。 i.MX RT1180 評価キット | NXP Semiconductorsから Ethercat 評価バイナリをダウンロードしました。 私はすべての手順を注意深く実行しました。上記のドキュメントに記載されている構成でバイナリを正常にフラッシュし、ICE ツールを起動できました。 ただし、GUI でネットワーク インターフェースを選択し、Ethercat を有効にしようとすると、「有効にできませんでした」というメッセージが表示されます。インターフェースをスキャンすると、「デバイスが見つかりません」と表示されます 私は Windows ノートPCを使用しており、USB 3-ギガビット イーサネット アダプターを使用して ETH0 と ETH4 にコネクテッドしていますが、それ以外は問題なく動作しています (他の作業にも使用しています)。 この問題を解決するためにご協力いただければ幸いです。 また、この EtherCat Eval バイナリ :goal_nxp_evkmimxrt1180_rtos_flash_boot.bin のソースを教えていただけますか?SDK をチェックしたところ、EtherCat の例がいくつか見つかりましたが、これらの例のいずれかが上記のバイナリに対応しているかどうかはわかりません。 よろしくお願いします。 よろしくお願いします。 PNC Re: EtherCAT demo on MIMXRT1180-EVK こんにちは@pnc お問い合わせいただきありがとうございます UG10332 の最初のリリースですでにいくつかの問題が見つかりました (更新する予定です) 同僚が作成した内部レポートを以下に掲載します。お役に立てれば幸いです。 5 ページのステップ 12 では、RT1180-EVK コンソールは USB_OTG1 ではなく MCU-Link USB である必要があります。また、Note の場合、EEPROM と呼ばれるセクションはないようです。 私の場合、セクション 5.4 のステップ 11 以降では EtherCAT インターフェースのフォント カラーは赤にならず、ステップ 15 以降でのみ赤に変わります。 24 ページの表 1 と表 2 では、表にリストされているマップされたオブジェクトが ICE ツールの実際の表示と一致していません。 私の側では、セクション 5.4 の手順 9 の前に、ホスト PC の IP アドレスを構成する必要があります。そうしないと、内部エラーが報告されます。 さらに問題が発生した場合や、関連する質問がある場合はお知らせください。 ではごきげんよう、 ディエゴ Re: EtherCAT demo on MIMXRT1180-EVK ちなみに、EtherCAST デモには特別なジャンパー設定が必要ですか?上記のドキュメントではこの点については何も言及されていません。 Re: EtherCAT demo on MIMXRT1180-EVK こんにちは、ディエゴ。 ご返信ありがとうございます。しかし、これらの問題はすでに解決済みですので、役に立ちませんでした。 とにかく、私は方針を変えました。つまり、事前にビルドされたイメージを使用する代わりに、AN14155 ユーザーガイド (i.MX RT1180 EtherCAT を BECKOFF TwinCAT3 および SSC ツール Rev. と共に使用) を使用して、SDK から ecat/digital_io の例をビルドして実行しようとしています。1.0) ここでも同じ問題に直面しています。例をビルド、フラッシュ、実行できます (CM33 と CM7 の両方)。digitial_ip.cのメインループにprintfを入れました。実際に実行されていることを確認します。 しかし、AN14155 のセクション 5.1.8 で行き詰まっています。TwinCAT を使用して EtherCAT デバイスのスキャンを実行すると、「I/O デバイスが見つかりません」と表示されます。イーサネット ケーブルを J28 と J32 の両方に接続してみました。 私は次のジャンパー設定を行いました: J63、J73、J72、J65 を 1-2 短絡位置 (デフォルト位置ではない) に移動しました Ecat に他のジャンパー設定や他の HW 設定が必要かどうかはわかりません。これら以外のすべてのジャンパーはデフォルトのポジショニング(箱から出した時の状態)にあります。私が行った他の唯一のジャンパー変更は、Segger プローブ (JP5 を短絡) を使用するためでした。 ちなみに、ICE ツールの実行も試してみました。以前と同じ状況です。 何かご意見があれば教えていただけると幸いです よろしくお願いします。 よろしくお願いします。 PNC Re: EtherCAT demo on MIMXRT1180-EVK EVK ユーザー マニュアル UM12021 を注意深く読み直したところ、ジャンパーを間違えたようです。私が今持っているものは次のとおりです。 J63とJ65:デフォルトで2-3が短絡 J73とJ72: デフォルト以外の1-2ショート ただし、上記の変更を行った後でもまだ動作しません。 また、36 ページのこの行が関連しているかどうかはわかりません。「ECAT 信号と FLEXSPI2 信号間の多重化は、抵抗器の再構成によって実装されます。」デフォルトでは、FLEXSPI2 接続は有効になっています。 これについても何かする必要があるでしょうか?もしSOなら、何ですか? ちなみに、このEVKユーザーマニュアルは本当に読みにくいです。EVK で ECAT を動作させるためにユーザーが行う必要があることを、簡潔かつ明確に 1 か所にまとめておくべきだと思います。散らばった混乱を招く情報の代わりに、シンプルに「EVK で ECAT を有効にするには、これらのジャンパー設定を行ってください...」とだけ書かれています。 Re: EtherCAT demo on MIMXRT1180-EVK こんにちは、ディエゴ。 今朝すべてを再起動すると、デバイスのスキャンが機能し始めました。昨日の夕方にジャンパーに加えた変更が効果を発揮したようです。 しかし、デバイス1をスキャンすると、セクション5.1.9で説明した「ボックス1」が表示されません。SO、スレーブが検出されないようです。Wireshark でも EtherCAT に関連するトラフィックは表示されません。さらにデバッグ中ですが、何かヒントがあれば、ぜひ教えてください。
View full article
i.MX RT700 eIQ Neutron NPU 实验室指南 这些实验室指南提供了分步说明,说明如何制作量化的 TensorFlow Lite 模型,并使用 e IQ Neutron SDK 中的中子转换工具将模型转换成在 i.MX RT700 设备上 的 eIQ Neutron NPU 上运行。适用于 i.MX RT700 的 eIQ Neutron NPU 实验指南 文档 重点介绍使用 eIQ Neutron SDK 中的中子转换器工具转换模型,然后将转换后的模型导入 eIQ mcuxPresso SDK 示例。有 VSCode、GCC 和 MCUXpresso IDE 实验室 。 这些实验室旨在在 i.MX RT700 EVK 上运行,但同样的概念也可以应用于 MCX N 主板,类似于 MCX N eIQ Neutron NP U 实验室。您还可以查阅《TFLM 入门指南》,了解如何使用自己的模型和数据进行推理。 此外,请务必查看AN14700 - i.MX RT700 eIQ Neutron NPU Enablement and Performance,其中详细介绍了 i.MX RT700 上的 eIQ Neutron N3-64 NPU。 --- 2026 年 4 月末更新,适用于 MCUXpresso SDK 26.03 和 eIQ Neutron SDK 3.1.0 实践培训
View full article
便携式射频烹饪应用的设计挑战 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 在设计烹饪设备时,需要充分考虑家庭有线电气系统所需的电力以及维持安全和工作温度所需的性能。NXP 固态射频烹饪团队开发了一种使用固态射频能量的便携式食品加热器具,该加热器具能够依靠电池供电运行。本次会议将讨论通过便携式、便携设备提供能量来加热食物所面临的主要挑战和方法。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 在设计烹饪设备时,需要充分考虑家庭有线电气系统所需的电力以及维持安全和工作温度所需的性能。NXP 固态射频烹饪团队开发了一种使用固态射频能量的便携式食品加热器具,该加热器具能够依靠电池供电运行。本次会议将讨论通过便携式、便携设备提供能量来加热食物所面临的主要挑战和方法。
View full article
MCUXpresso 配置工具:如何使用时钟工具(日语博客) 目录 介绍 Clocks Tool 适用于哪些情况? 安装配置工具 Minecraft 工具的屏幕配置 时钟工具使用基本术语 演示:更改 CPU 核心时钟设置并改变 LED 闪烁速度。 奖励 1 - 时钟设置已作为预设提供。 附加题 2 - 初始化代码自动生成的设置值在哪里? 介绍 MCUXpresso 是恩智浦半导体 (NXP) 提供的一款微控制器开发软件平台。除了 MCUXpresso IDE 之外,它还提供 MCUXpresso for VSC(Visual Studio Code)和配置工具,以辅助外设配置。 配置工具包含多个工具,例如用于设置引脚的“引脚工具”和用于配置时钟设置的“时钟工具”。其主要特点是可以通过图形用户界面 (GUI)直观便捷地完成微控制器外设的初始设置。本文将重点介绍负责时钟设置的“时钟工具” 。有关“引脚工具”的使用说明,请参阅以下文章。 MCUXpresso 配置工具:引脚工具的使用方法(日语博客) 时钟设置是直接影响微控制器性能、功耗和各外设运行的关键因素。然而,时钟树可能非常复杂,难以理解各个外设正在使用哪个时钟。时钟工具允许您可视化和配置时钟源、分频设置以及每个外设的时钟供电状态。它还可以根据设置自动生成初始化代码。 安装MCUXpresso IDE时,配置工具也会一并安装,使其成为IDE的内置功能。另一方面,在近年来嵌入式开发领域日益流行的Visual Studio Code ( VSC ) 环境中,您也可以通过安装MCUXpresso相关扩展来使用配置工具(包括时钟工具)。IDE版本和VSC版本在配置工具的功能上并无显著差异。 本文 解释了如何在 VS Code 环境中安装 配置工具 ,如何使用这些工具,并最终演示了如何在 时钟工具 中更改 CPU 时钟设置,以及如何使用 FRDM-MCXN947 改变 LED 闪烁速度。 您还可以观看视频。点击此链接观看:如何使用 MCUXpresso 时钟工具(VS Code 环境) Clocks Tool适用于哪些情况? 当您想要检查现有的内部时钟设置(时钟树)时 当您需要调整和优化每个模块的工作频率时。 当您想要考虑一种既能降低时钟频率又能降低功耗的配置时。 安装配置工具 本指南解释了如何在VS Code环境中安装Config Tools 。 *如果您尚未为 VS Code 安装 MCUXpresso ,请参阅此博客文章。 安装适用于 VSC 和 SDK 的 MCUXpresso(日文博客) 启动VS Code后,从左侧面板中选择MCUXpresso ,然后从快速启动面板中单击“打开 MCUXpresso 安装程序” 。 安装程序将启动。选择MCUXpresso 配置工具,然后单击右上角的“安装” 。 (这篇博文介绍了 MCUXpresso 配置工具 v26.03 的安装过程。) 安装开始后,系统会提示您登录MyNXP 。 登录后,将显示许可协议。请阅读并同意其内容。 *安装完成后请重启VS Code。 问:如果安装失败怎么办? A. 请从以下网站下载适合您电脑操作系统环境的安装程序并进行尝试。 MCUXpresso 配置工具 | NXP 微控制器 (MCU) 软件开发 | NXP 半导体 安装过程中,初始屏幕上会出现以下界面。如果您没有看到任何相关信息,可以将其关闭。 要从VS Code访问配置工具,请安装SDK ,导入示例,然后右键单击您的项目。 “使用 MCUXpresso 配置工具打开”将出现;单击它。 *整个过程将在最终演示中详细解释,因此我们在此省略。 配置工具将在短时间内启动。 如果您使用的是 MCUXpresso IDE,则配置工具默认已集成,可以直接从顶部选项卡启动。 Minecraft 工具的屏幕配置 启动配置工具后,您可以使用屏幕右侧的面板在工具之间切换。 这次,我们将选择“时钟”。 时钟图(在更改时钟设置时经常用到)可以从屏幕左上角选择。 屏幕右下角的“问题”视图会显示与您的设置相关的任何错误或警告。 如果由于时钟设置不正确而出现错误,“问题”视图将显示错误的位置和原因。此外,时钟图上的相关区域将以红色突出显示,以便您直观地识别问题。 例如,如果将 CPU 时钟设置为超过指定的最大值,则会显示错误消息(如下所示)。 时钟工具使用基本术语 本节阐明了使用时钟工具时时钟图上显示的基本术语。 时钟树 这是一个配置图(树状图),展示了时钟的生成位置、分配和选择方式,以及如何将它们提供给每个模块。时钟工具允许您在查看此时钟树的同时配置设置。 时钟源 这是作为时钟起始点的信号源。它包括内部RC时钟、外部晶体(振荡器)和外部时钟输入,位于时钟树的上游。 在 MCX N947 中,默认情况下使用内置的48MHz RC时钟(FIRC)作为时钟源。 PLL(锁相环) 该电路以时钟源为输入,产生稳定的高频时钟。 通过设置倍频器和分频器可以调节输出频率,从而为 CPU 和高速总线灵活地创建时钟。 这里,基于48MHz输入时钟(即时钟源)生成300MHz时钟(48MHz/8*50=300MHz) 。 除号 (DIV ) 此功能允许您对时钟频率进行分频和调整。 CPU 、总线和每个外围设备都有分频设置,用于调整到所需的运行频率。 在以下示例中,由 PLL0 生成的 300MHz 时钟生成 150MHz 时钟(300MHz/2=150MHz)。 多路复用器(Mux ) 该机制允许您从几个可选时钟中切换使用哪个时钟。 切换选择项会改变下游提供的时钟信号。 在下图所示的电路中,有两个多路复用器;左边的多路复用器从内部RC时钟中选择48MHz时钟,右边的多路复用器选择150MHz时钟除以DIV(PLL0_PDIV) 。 演示:更改 CPU 核心时钟设置并改变LED闪烁速度。 在这里,我们将使用时钟工具实际改变提供给CPU 的时钟,看看评估板上的LED闪烁速度是否会发生变化。 硬件准备 本文使用的评估板是 FRDM-MCXN947 安装 SDK 在VS Code左侧面板中选择MCUXpresso 图标,然后单击“导入存储库”。 接下来,点击左侧第二个选项“远程存档”,然后在“软件包”部分搜索“ FRDM-MCXN947 ”。输入“ 947 ”后, FRDM-MCXN947 将立即显示为建议。 您可以根据需要设置名称、位置和“创建 Git”复选框。 *对于名称和位置名称,最好只使用小写字母数字字符和下划线(_)或连字符(-) ,并避免使用符号( \、/、:、*、?、"、、| )(这可能会导致程序故障)和空格。 最后,勾选“我同意”复选框,然后点击“导入”开始安装SDK 。请稍候片刻。当屏幕右下角显示“存储库导入成功”时,安装即完成。 导入示例代码 SDK安装完成后,即可导入示例代码。 点击左侧面板中的“从存储库导入示例”。 在右侧显示的每个选项卡中,“存储库”下,选择您刚刚导入的SDK 。 请为“主板”选择FRDM-MCXN947 。 在这个“模板”演示中,我们将改变LED的闪烁速度。 尝试输入“ led ”,然后选择出现的“ driver_examples/gpio/gpio_led_output_cm33_core0 ”。 接下来,选择工具链并点击“导入” 。 打开配置工具 右键单击导入的示例,然后选择“使用 MCUXpresso 配置工具打开”。稍等片刻,配置工具将启动。 配置工具打开后,首先查看右侧面板中的概览。在本例中, “时钟”和“引脚”均显示为绿色(开启) ,表示这两个工具均已启用。 现在,让我们来看一下时钟图。 150MHz 的主时钟由48MHz时钟源FIRC 通过PLL (PLL0) 、 DIV (PLL0_PDIV)和MUX (SCSSEL)生成。 接下来,向下滚动一点,可以看到提供给CPU 的时钟。在本示例应用程序中,“ System_clock”对应于CPU 核心时钟。 主时钟频率为 150MHz ,中间经过一个分频器(分布式变量),但仍然以150MHz的频率提供给系统时钟。稍后,我们将改变这个分频器的值,从而改变输入到系统时钟的时钟信号,并观察LED闪烁速度的变化。 检查 CPU 时钟频率设置为 150MHz 时的 LED 闪烁速度。 首先,我们来看看 CPU 时钟频率设置为150MHz且不做任何更改时的 LED 闪烁速度。关闭配置工具并打开VS Code 。 在组装之前,将电路板( FRDM-MCXN947)连接到电脑。 连接建立后,调试导入的示例(构建、写入和运行应用程序)。 调试过程完成后,程序将在断点处停止,因此请点击屏幕顶部的“|▶”图标。 如视频所示,红色LED灯将开始闪烁。这是时钟频率为150MHz (默认设置)时的闪烁速度。 (function() { var wrapper = document.getElementById('lia-vid-6395306957112w304h540r743'); var videoEl = wrapper ? wrapper.querySelector('video-js') : null; if (videoEl) { if (window.videojs) { window.videojs(videoEl).ready(function() { this.on('loadedmetadata', function() { this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) { bar.setAttribute('role', 'presentation'); bar.setAttribute('aria-hidden', 'true'); }); }); }); } }})(); (显示我的视频) 要停止,请点击方形图标(即使停止调试后,程序仍会在板上继续运行,因此 LED 会继续闪烁,但请暂时忽略这一点) 。 将 CPU 时钟频率改为 50MHz,并检查 LED 闪烁速度。 接下来,我们将使用ClocksTool将 CPU 核心时钟从 150MHz 更改为50MHz 。 再次打开配置工具中的时钟工具。在时钟图中向下滚动一点,然后更改连接到系统时钟的DIV(AHBCLKDIV) 。更改时,单击要更改的 DIV 中的数字,然后从下拉菜单中进行选择。此处选择1/3会将系统时钟更改为50MHz 。 *更改时钟设置时请注意,更改靠近时钟源的上游时钟设置可能会影响下游的多个时钟设置。 现在,我们将重写示例代码。首先,单击“配置工具”屏幕左上角的“更新代码” 。在出现的对话框中,选择“确定”。 在此状态下返回VS Code后,屏幕顶部会出现三个复选框。请确保选中它们,然后单击“确定” 。稍等片刻,时钟工具中所做的更改将应用到VS Code中的示例代码。 *如果 SDK 版本不同,则可能不会显示此内容。 如果成功,屏幕右下角将显示以下消息。 再次运行调试测试,完成后,使用“|▶”运行示例应用程序。 LED灯将开始闪烁。这是50MHz时钟频率下的闪烁速度。显然,它比150MHz时钟频率下的闪烁速度要慢。 (function() { var wrapper = document.getElementById('lia-vid-6395308518112w304h540r499'); var videoEl = wrapper ? wrapper.querySelector('video-js') : null; if (videoEl) { if (window.videojs) { window.videojs(videoEl).ready(function() { this.on('loadedmetadata', function() { this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) { bar.setAttribute('role', 'presentation'); bar.setAttribute('aria-hidden', 'true'); }); }); }); } }})(); (显示我的视频) 演示到此结束。感谢各位的参与。 奖励 1 - 时钟设置已作为预设提供。 之前的步骤需要使用DIV 函数更改时钟,而时钟工具则预配置了多种时钟设置。在配置工具中选择时钟工具,然后从屏幕顶部选择所需的时钟:FRO 12MHz / FRO HF 48MHz / FRO HF 144MHz… 例如,如果您选择“BOARD_BootClockPLL_100M ” ,您会发现时钟源、 PLL和DIV都与之前不同。例如,时钟源是24MHz 的外部时钟(SOSC) 。 附加题 2 - 用于自动生成初始化代码的设置在哪里? 我们将研究如何使用时钟工具自动更新时钟设置(更新代码),以及这如何在实际初始化代码中体现。 检查导入示例的项目文件中的 C 源文件 (gpio_led_output.c)。 如果你查看C源文件,你会发现初始化引脚、时钟和调试控制台的代码。 右键单击BOARD_InitHardware();然后单击“转到定义”以查看更多详细信息。 代码中包含初始化 引脚 、 时钟 和 调试控制台的 功能。 右键单击 BOARD_InitBootClocks(); 并选择“ 转到定义”(或“fn + F12”) 以查看更多详细信息。 目标文件(clock_config.c)是 FRDM-MCXN947这是定义启动时钟配置的生成代码。 向下滚动页面,您会看到,如前所述,有多种时钟配置( FRO 12MHz / FRO HF 48MHz / FRO HF 144MHz / PLL 150MHz / PLL 100MHz )作为预设选项。下图显示的是PLL150MHz的默认值。 例如,如果您将此部分更改为BOARD_BootClockFROHF48M 初始化将使用FRO HF 48M时钟配置执行,该配置已准备就绪。 接下来,我们来看看在保持FRO HF 48M不变的情况下,直接在时钟工具中修改DIV 值时,时钟配置和代码会发生怎样的变化。红色框内的文本和设置将会改变。 此外,如果您将时钟工具中连接到系统时钟的DIV更改为1/2 ,即从48MHz更改为 24MHz,然后运行更新代码,您将看到由于 DIV 的变化,红色帧发生了变化。   您还可以使用时钟工具查看更改前后的差异。 更改时钟设置后,点击“更新代码”将显示如下所示的对话框。存在差异的文件,其文件名右侧会显示“更改”字样。点击此字样即可查看差异。 clock_config.c我们来检查一下区别。左侧(新生成)显示的是修改后的文件,右侧(磁盘上)显示的是原始文件。您应该能够看到系统时钟存在差异。 出现差异的区域用不同的颜色突出显示,使其在视觉上很容易被发现。   由于微控制器和处理器的功能集成度不断提高,其内部时钟树变得极其复杂。如果没有像这样的时钟可视化工具,设计和评估此类系统几乎是不可能的,所以请务必使用它。   参考资料 教程视频:如何在 VS Code 环境下使用 MCUXpresso Clocks Too   =========================​ 我们目前无法 回复 此帖子“ 评论”部分留下的评论。 对于由此造成的不便,我们深表歉意,但 在进行咨询时, 请 参考“ NXP 技术问题 - 如何联系我们 ( 日语博客 ) ” 。 (如果您已经是 恩智浦的 分销商或 与 恩智浦 有合作关系 ,您可以直接咨询您的代表。) 本指南重点介绍 MCUXpresso 配置工具中的“时钟工具”,解释其基本原理和设置时钟的方法。内容涵盖从在 VS Code 环境中安装到演示 CPU 时钟变化引起的 LED 闪烁等各个方面。 (预计耗时:10 分钟 *假设已安装 MCUXpresso for VSC(Visual Studio Code)SDK) MCUXpresso MCX SW | 下载 日本博客
View full article