Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
Arm Trusted 固件-M + Zephyr 配置 你好 我正在使用 VS-Code MCUXpresso 扩展和恩智浦下游 Zephyr 仓库(v4.3.0)。我曾尝试按照 trustedfirmware.org指南进行配置,但是很难弄清楚哪些工具可用于闪存,哪些工具需要我编写。 我还读过有关MCUXpresso安全配置工具的信息,但我无法确定它是否与Zephyr/TF-M兼容。 如果有人能提供帮助,请告诉我!根据文件,我需要找出如何做: Flash 公共实施 ID 和实例 ID Flash 每台设备的私有硬件唯一密钥和初始认证密钥 闪存私有(全局,组内的所有设备)启动验证密钥和启动解密密钥 如果 MCUXpresso 工具可以做到这一点,请为我提供相关文档。 作为参考,我使用的是 RW610 处理器,但我认为这些都不是特定于处理器的 Re: Arm Trusted Firmware-M + Zephyr Provisioning 嗨,罗曼、 感谢您发送 Zephyr 文档链接。 我认为这有助于澄清有关启动验证 + 解密密钥的问题,我相信这些密钥是由 CONFIG_TFM_KEY_FILE_S 和 _N S 设置的。 在@@ 浏览了恩智浦的TF-M 仓库中frdm_rw612文件所在之后,看来USE_ELS_PKC_HUK和USE_ELS_PKC_IAK的定义使处理器能够根据用户无法触及的某些内部私钥生成机密。这个假设正确吗?如果是这样,看来我不需要为每台设备生成 HUK/IAK 来获得安全机密。 我仍然不确定该从这里去哪里。当我在项目配置中设置 config_tfm_dummy_provisioning=N 时,我的设备会将以下内容输出到控制台: [INF] 启动引导加载程序 [INF] 开始 BL2 配置 [错误] 未找到有效的 ASSEMBLY_AND_TEST 配置数据 [ERR] 配置失败 看来关闭虚拟配置会导致 TFM BL2 代码失败,因为结构 bl2_ass embly_and_test_prov_data(在 tee/tf-m/trusted-firmware-m/bl2/src/provisioning.c 中)不再初始化。我在 zephyr 文档中没有看到任何指定如何配置 BL2 的内容。我在原始帖子中链接的TFM文档提到了这个结构,但我不确定如何使用正确的信息对其进行初始化。 即使初始化了 BL2,在 SPE 配置(tee/tf-m/trusted-firmware-m/platform/platform/ext/common/proving.c)中 ass embly_and_trested_prov_data 和 psa_rot_prov_data 和 psa_rot_prov_data 也会再次遇到同样的问题。 这些是正常初始化 HUK 和 IAK 的结构 。 你知道配置 BL2 和 SPE 的首选方法吗?我想我可以修改前面提到的配置.c但如果有更好的办法,我宁愿不修改源文件。 谢谢! Re: Arm Trusted Firmware-M + Zephyr Provisioning 你好,@jm-streametric,希望你一切都好。 你分享的指南旨在用于将 TF-M 堆栈与其他硬件平台和操作系统集成,因此,与 Zephyr 的集成已经包含了你所问的一些功能和服务,因此我建议参考 Zephyr 文档中的 TF-M 部分,因为它包含一些支持的功能和相关信息,可能会消除你的疑虑。 关于您有关安全配置工具的问题,它不适用于TF-M/Zephyr集成。 如果有帮助,请告诉我。 Re: Arm Trusted Firmware-M + Zephyr Provisioning 嗨,@jm-streametric。 如果我误解了你最初的密钥生成方法,我很抱歉,因为 Zephyr 文档中没有提供有关配置的信息,我建议查看 RW612 参考手册 (UM11865) 的第 12 章,该章详细解释了如何将密钥存储到 OTP 熔丝中。此外,请参阅最新的安全配置工具用户指南,以获取有关如何设置这些 OTP 熔丝和根据需要配置芯片生命周期的参考。 关于您提出的 HUK 和 IAK 问题,请参阅 RW61x SDK 的tfm_demo_s中的example_board_readme.md文件(可从 MCUXpresso SDK 存储库中获取),其中包含有关如何使用 HUK 和 IAK 的更多信息。
查看全文
Example S32K389 GMAC0 lwIP FreeRTOS S32DS 3.6.1 RTD 6.0.0 ********************************************************************************* * Detailed Description: * Updated the example lwip_FreeRTOS_s32K389 to enable pinging the lwIP stack * from the command window * *ping 192.168.0.209 * *Pinging 192.168.0.209 with 32 bytes of data: *Reply from 192.168.0.209: bytes=32 time=1ms TTL=255 *Reply from 192.168.0.209: bytes=32 time=1ms TTL=255 *Reply from 192.168.0.209: bytes=32 time=1ms TTL=255 *Reply from 192.168.0.209: bytes=32 time=1ms TTL=255 * *Ping statistics for 192.168.0.209: * Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), *Approximate round trip times in milli-seconds: * Minimum = 1ms, Maximum = 2ms, Average = 1ms * * * EVB: * - All jumpers in default positions, except J848, J822, J1136 - disconnected * to enable an external debugger. * * Configuration: * - Updated pin configuration * - Modified PLLAUX + dividers * - Updated GMAC0 clocks * - Platform: added GMAC0 interrupts * - IP address set to 192.168.0.209 and enabled UDP_ECHO, etc. * - Eth_43_GMAC: configured for RGMII 1G, EthIndex = 0 * - Added DIO * * main.c * - Updated only the header * device.c * - Added RTD workaround for DCMRWF* registers * (copied from example S32K389_gptp_ds, SW32K3xx_M7_gPTP_1.1.0_CD01_D2602) * test.c * - Commented out the code that shuts down the TCP/IP stack after its predefined timeout * - Added LED task * * ----------------------------------------------------------------------------- * Test HW: S32K389EVB-Q437 SCH-94080 REV C, 700-94080 REV A * MCU: S32K389 * Debugger: Lauterbach Trace32 * Target: internal_FLASH * EVB connection: GMAC0 <-> Media converter TE-1402 (1G, Follower) <-> * <-> USB-to-Ethernet adapter <-> Laptop DELL, Windows 11
查看全文
Flexbuild 出现错误 你好,当我按照下面文档中的操作执行"bld -m ls1028ardb" 时,出现了以下错误。下载失败是因为我没有在 Ubuntu 中正确设置 https 服务代理吗?如果是,我是否需要在中国购买 https 服务代理才能下载?如果不是,请告诉我如何解决这个问题? ----------------------------- root @fbdebian:~/flexbuild# bld-m ls1028ardb 获取仓库时间:太平洋标准 时间 2026 年 2 月 12 日星期四 22:35:14 Flexbuild HEAD 提交:bc1c9ec 每次地精更新存储库 构建时间:太平洋标准时间 2026 年 2 月 12 日星期四 22:35:14 [信息] 正在下载 linux_lf-6.12.20-2.0.0.tar.gz 发生错误:下载失败:HTTPSConnectionPool(host='codeload.github.com'、port=443):使用 url 时已超过最大重试次数:/nxp-imx/linux-imx/tar.gz/refs/tags/lf-6.12.20-2.0.0 (Caused by NewConnectionError(' :建立新连接失败:[Errno 111] Connection refused')) Downloading without md5 failed, fallback to clone [INFO] Cloning linux (with submodules) 4^[[A^Z [13]+ Stopped bld -m ls1028ardb root@fbdebian:~/flexbuild# echo $http_proxy $https_proxy root@fbdebian:~/flexbuild# --------------------------------- QorIQ LS1设备 QorIQ LS2 设备 回复: Flexbuild Error occurred 你好 该错误表明存在网络限制,可能是因为无法访问 GitHub (codeload.github.com)从中国境内连接,导致连接被拒绝 .这几乎可以肯定是因为缺少正确配置的 HTTP/HTTPS 代理, echo $http_proxy $https_proxy 的空输出证实了这一点。  解决步骤: 配置代理:您必须在终端配置允许访问 github.com 的代理。 敲击 export http_proxy=http://your_proxy_address:端口 export https_proxy=http://your_proxy_address:端口 验证连接: 在再次运行 bld 之前,确保能通过 curl -I https://github.com 连接到 GitHub。 替代方法:中国人通常使用 clash 或设置本地 HTTP 代理(通过 VPN 路由)等工具来规避这一问题,而不是购买商业代理。 您不一定需要购买专门的"HTTPS 服务代理" ,但您确实需要一个能让流量通过受限网络的工作代理服务器。在环境变量中正确设置,如步骤 1 所示,应该可以解决问题   此致 回复: Flexbuild Error occurred 如果需要使用 https 代理,是否可以直接下载相应的项目并将其放在相应的目录中?例如,名为 linux_lf-6.12.20-2.0.0.0.tar.gz 的例程、我可以直接在外面下载。您能告诉我具体应该放在哪里吗?把它放进去能使项目正常编译吗? 回复: Flexbuild Error occurred 你好,我使用 Clash 添加了一个代理,并按照以下方法连接到了 GitHub:curl -Ihttps://github.com。日志中的输出是否被视为成功连接?我还在容器中安装了 Clash,并按照你的方法进行了连接,但还是出现了错误。问题出在哪里? 回复: Flexbuild Error occurred 你好,我使用 Clash 添加了一个代理,并按照以下方法连接到了 GitHub:curl -Ihttps://github.com。日志中的输出是否被视为成功连接?我还在容器中安装了 Clash,并按照你的方法进行了连接,但还是出现了错误。问题出在哪里? 回复: Flexbuild Error occurred 你好,我找到了一个解决方案。以前,我使用的是 Ubuntu 20.04,但在构建过程中遇到了不正确的 SSL 证书的问题。即使使用人工智能工具来排除故障也无济于事。不过,在切换到 Ubuntu 22.04 之后,我成功地构建了,bld -m ls1028ardb。我使用此工具进行冲突代理: https://sparkle.pics/
查看全文
FRDM-MCXA153 上手操作:心率传感器 目标 在本实验室中,您将学到 如何使用 MCUXpresso 安装程序获取 NXP 软件 (FreeMASTER) 如何使用应用程序代码中心将示例导入 VS 代码工作区 如何构建、清理、调试和运行示例。 如何连接适用于 UART 控制台的串行监测 如何将 FreeMaster 用作实时调试监测和数据可视化工具 硬件要求 个人电脑 FRDM-MCXA153 板 心率 4 CLICK 模块(MIKROE 5547) USB Type-C 电缆 软件要求 用于 VS 代码的 MCUXpresso FreeMASTER v3.2 或最新版本 frdm-mcxa153 SDK 应用代码中心 应用代码中心 (ACH) 存储库使工程师能够轻松查找恩智浦内部专家开发的微控制器软件示例、代码片段、应用软件包和演示。该空间为查找微控制器应用提供了快速、简便和一致的方法。更多信息,请访问www.nxp.com/ach。 安装前提条件 -启动适用于 VS Code 的 MCUXpresso -从快速启动面板启动 MCUXpresso 安装程序 - 安装MCUXpresso SDK Developer、LinkServer 和 FreeMASTER 心率监测实验室 恩智浦应用程序代码中心提供了如何在心率和 SPO2 监测应用程序中使用 MCXA-153 微控制器的完整示例。本实验将逐步完成导入、版本、编程和调试示例的步骤。实验的最后一部分展示了如何使用 FreeMASTER 作为数据可视化工具,用于在 FRDM-MCXA153 开发板上获取的传感器数据。 1.进入快速启动面板 2.选择应用代码集线器 3.筛选可见示例(MCX + 传感器) - 进入搜索栏旁边的筛选器部分,选择两个筛选器。 -在过滤器的 “设备系列” 部分中选择 “MCX”,在 “类别” 部分选择 “传感器” 4.在示例中搜索关键字 - 搜索关键字 "心率"。 - 选择演示版"frdm mcxa153 freemaster heart rate" 。 5.阅读心率演示概述 应用程序代码中心为每个项目提供一致的阅读概述。点击应用卡后可预览 FreeMASTER 心率演示概览。滚动阅读自述文件,熟悉可用内容,如所需硬件、软件和设置说明。 6.为项目选择目的地 向导会自动提示浏览到所需的目标文件夹。创建目标 C:\NXP_ACH,在此存储项目。或者您也可以指定一个自定义位置。 7.将项目导入工作区 在输入所需位置后选择导入项目。 如果有效的项目不可用,则向导仅显示 “导入存储库”,以允许将没有项目的代码仓库添加到工作区。 8。选择 “检测到 的项目” 导入向导将扫描示例仓库并列出已发现的有效项目。这样,用户就可以只选择他们想要创建的项目。选择 VS 代码窗口顶部列出的mcuxpresso项目。 9.关联工具链 最后一个选择是确定项目要使用的编译器工具链。本项目将使用 GCC。 选择 Arm GNU Toolchain 12.3.Rel1(或 MCUXpresso Installer 预备工作中提供的最新版本)扫描可能会找到与 MCUXpresso IDE 相关的编译器。验证所列编译器之间的路径和版本。 此时,向导将完成项目导入。屏幕底部会显示 "成功转换 "通知。必须认识到,所选的心率示例是 MCUXpresso IDE(基于 Eclipse)中的一个工作项目。 10. 在VS Code中浏览项目 MCUXpresso for VS Code 扩展包含一个 "项目 "部分,帮助用户访问有用的项目信息。用户可以通过以下步骤查看和修改项目信息。 查看项目详细信息 项目详细信息显示在 MCUXpresso 扩展导航窗格项目部分的下拉菜单中。 - 设置:针对项目的工作区设置 • MCU:目标设备。 • 版本配置:从可用列表中选择版本配置(即调试或版本)。 - 调试配置 - 存储信息 - 项目文件 11.处理源文件 有两种方法可以查看和修改项目文件: - 点击 VS 代码左侧导航窗格顶部的资源管理器图标。 - 从项目视图中展开项目文件部分 12。版本应用程序 MCXA153 FreeMaster Heart Rate 项目需要版本应用程序映像。在无任何错误地生成代码后,应用程序可以在 FRDM 板上运行。 以下步骤需要点击活动栏中的 MCUXpresso for VS Code X 图标,返回 MCUXpresso 视角 单击 “生成选定项” 图标生成项目。 成功版本后,终端控制台会显示内存使用情况(或编译器错误,如果有)。 13。将串行监测连接到板 要使用集成到 VS Code 中的串行监测: -将 USB-C 电缆连接到 J15,为 FRDM 板供电。板载调试器提供了一个 USBUART 桥接器,用于连接串行监视器。 -单击 VS Code 窗口底部终端窗口中作为选项卡找到的串行监测。 注意:默认 COM 设置对恩智浦评估板有效:" 115200,无..." -单击 “开始监控” 将监测连接到 FRDM 板自动检测的 COM 端口。 轻型主题中的 VS 代码 14。刷新/调试应用程序 本节使用板上调试器连接到 MCU 并对闪存 进行编程。恩智浦的LinkServer管理用于与恩智浦McuLink板载调试器通信的GDB服务器。它还支持闪存编程。 -单击 “播放” 图标调试应用程序:应用程序 将闪存到 FRDM 板上,VS Code 切换到调试视角。返回 “终端” 下的 “串行监视器” 选项卡。启动调试会话时,它会切换到 OUTPUT 终端。 轻型主题中的 VS 代码 - 执行将在断点处暂停。 单击 "继续/播放 "图标继续执行。 应用程序将前进到 main() 的起始位置。 -第二次单击 “继续/播放” 图标,心率应用程序将在 main () 中用上市。 15.通过串行终端查看心率值 心率程序使用串行端口显示信息。 main () 启动后,以下内容应显示在 “串行监视器” 选项卡中。 将手指放在 Heart Rate 4 点击板上丝印的心脏附近的传感器上。将手指放在传感器上后,以下内容应显示在 “串行监视器” 选项卡中: 之后将计算并显示心率值。 16。FreeMaster数据可视化 FreeMaster是恩智浦提供的独立应用程序,可帮助开发人员可视化、监测和操作其项目中可用的数据。心率示例包括一个/freemaster文件夹,可帮助用户开始使用该工具。 应用程序代码集线器中的设置是为基于 MCUXpresso IDE 的项目设置的。将项目转换为 VS Code 项目后,需要进行一些更改。 以下步骤将正确配置 FreeMASTER 以与心率示例项目配合使用: 用上市 FreeMASTER 应用程序 有两种用上市 FreeMASTER 的选择。 - 使用文件资源管理器点击 heart_rate.pmpx。FreeMASTER 应用程序应与 .pmpx文件扩展名。这也会自动加载包含的项目设置。 • 通过搜索 Windows 应用程序启动 FreeMASTER。 - 这将不会加载项目设置。如图所示,您需要使用 FreeMaster 菜单打开项目。打开 .pmpx项目文件。 - 验证项目选项 FreeMASTER 在打开项目后有几个关键设置需要验证。用户应检查是否正确设置了调试探针类型和项目输出文件的位置。 - 单击菜单栏中的项目 -> 选项。 -验证与板通信的方法是否设置正确。FRDM-MCXA153 的板上调试探针默认随恩智浦 CMSIS-DAP 固件一起提供。对于插件模块,选择 “通信” 选项卡下的 FreeMASTER CMSIS-DAP 通信插件: - 验证 VS 代码项目的目标默认符号文件是否正确。VS 代码项目中的符号文件在 /armgcc 文件夹下输出。在 VS Code 项目 MAP Files 选项卡中选择 /armgcc 文件夹。该窗口将自动检测二进制 ELF 文件,并将其显示在 “文件格式” 下: - 可视化心率项目数据 恩智浦软件团队为心率项目提供了默认可视化。该演示展示了项目数据的不同显示风格。 心率项目预设了以下可视化设置: 欢迎 HTML 页面:HTML 页面(选项下)指向 welcome.html 文件。这为显示元素提供了结构化的网络视图。超出了本实验室的范围,但 .html可以查看文件以查看 html 中如何引用目标值/图表。 示波器可视化:查看项目变量的示意图。绘制坐标轴的比例和颜色均已配置。配置了心率、SPO2 和心电图。 变量观察表:在配置好要跟踪的变量后,可将它们添加到此表视图中。 确保调试探针不在集成开发环境或 VS 代码的活动调试会话中。 点击菜单栏上的 GO 图标,启动项目数据可视化!FreeMASTER 输出突出了以下几点。 1.点击 "项目树 "下列出的元素可将视图更改为特定的示波器可视图。 2。在 “表” 视图中查看变量的捕获值。 3.根据 Welcome.html 中定义的布局组织数据的可视化。 FRDM-MCXA FRDM 培训 实践培训 单片机
查看全文
blkwfdll not working in certain machines with Windows 11 I use flashFirmware in blkwfdll. We have a build of the dll that I call from a .net application. The same .dll has worked since 2018, but recently it's been failling in Windows 11. A machine was updated to windows 11 enterprise build 26200.7705. After that, a new instantiation of Updater threw a "could not connect" error. The machine previously had no issues using blfwkdll.dll. The device instance of the the HID-compliant vendor-defined device that blfwkdll.dll connects can be seen properly connected in device manager. Another laptop with build 26200.7705 works fine with blfwkdll.dll. Are there other reports of issues? Is there a new version blfwkdll.dll I could try? I found the source code, but I'm having trouble building the .dll in such a way that my .net application can use it as a reference, as it has before. Thanks! Re: blkwfdll not working in certain machines with Windows 11 Hello @ryan_pearson , Thanks for your post. Sorry, blfwkdll is no longer maintained. You can try the blfwkdll located under the blhost directory. I'm not sure whether it is newer than the version you are currently using, but you can give it a try. blhost download link: https://www.nxp.com/webapp/Download?colCode=blhost_2.6.7&appType=license&location=null PATH: path\to\blhost\blhost_2.6.7\blhost_2.6.7\tools\common\blfwkdll BR Celeste Re: blkwfdll not working in certain machines with Windows 11 If blkfdll is no longer maintained, is there an alternative? Re: blkwfdll not working in certain machines with Windows 11 Hello @ryan_pearson , Thanks for your sharing, I am glad to hear that.  Wish a happy day. BR Celeste Re: blkwfdll not working in certain machines with Windows 11 I was able to fix this issue by changing Line 236 of hid-windows.c from: DWORD share_mode = (enumerate) ? FILE_SHARE_READ | FILE_SHARE_WRITE : FILE_SHARE_READ; to DWORD share_mode = FILE_SHARE_READ | FILE_SHARE_WRITE; This matches hidapi.
查看全文
S32G-VNP-RDB3 J35嵌合コネクタとワイヤーハーネス S32G-VNP-RDB3 J35嵌合コネクタとワイヤーハーネスを別々に購入するにはどうすればよいですか? ありがとうございます。 Re: S32G-VNP-RDB3 J35对配连接器和线束 こんにちは、ピオチュンリ お問い合わせいただきありがとうございます! ご購入をご希望のコンポーネントについて、さらに詳しい情報を教えていただけますか?J53インターフェース100BaseT1ハーネスのことでしょうか? BR ジョーイ
查看全文
Arducam B0353 摄像机与 i.MX93 的集成 亲爱的团队 我们需要将 Arducam B0353 MIPI 双车道摄像头 (https://www.arducam.com/arducam-full-hd-color-global-shutter-camera-for-raspberry-pi-2-3mp-ar0234-wide-angle-pivariety-camera-module-b0353.html) 与 i.MX93/i.MX9352 平台集成。我们是该平台的新用户,希望了解摄像机集成的程序。 如果有人已经集成了这种摄像头(或类似的 MIPI CSI-2 摄像头),请与我们分享: 整合步骤 司机详细信息 设备树配置(如果有) 期待您的支持。 敬上, Ajnas C Re: Arducam B0353 Camera Integration with i.MX93 我无法打开链接,根据您的链接名称描述,相机是 ar0234?关于 dts,您可以参考下面使用 AP1302 的 imx93 dts、 https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts 对于摄像头驱动程序,恩智浦不提供这个,需要客户询问供应商,你也可以检查当前的电路板支持包是否有你的摄像头驱动程序 https://github.com/nxp-imx/linux-imx/tree/lf-6.12.y/drivers/media/i2c
查看全文
Vision ML with the FRDM-MCXN947 The MCX N microcontroller family includes an eIQ Neutron N1-16 NPU for accelerating neural network models. The FRDM-MCXN947 development board can be combined with a camera and LCD screen to showcase running TinyML vision models on a microcontroller.   MCX N Camera Hardware Setup: The following hardware is used: MCX N FRDM Development Board - FRDM-MCXN947 OV7670 camera (with optional wide-angle lens) NXP LCD-PAR-S035  There are three small modifications needed for the FRDM-MCXN947 board for camera support. Without this modification the camera colors will be incorrect and tinted red.   Change SJ16, SJ26, and SJ27 found on the back of the Rev B board to connect pin 3 (the dashed side) so that it looks like the following:          Then connect the camera and LCD to the FRDM-MCXN947: Plug in the OV7670 camera into J11. It should line up with the orange box.                            Connect the LCD-PAR-S035 LCD into J12. It should be flush with the bottom so that the top 2 rows of pins are left hanging off the edge. Also note that on some LCD-PAR-S035 boards those top two rows of pins are not installed.          It should look like the following when complete           Also as the camera and Ethernet pins are shared, if you need to use the Ethernet+Camera at the same time please see this NXP Community post. MCX N Vision ML Examples: The NXP Application Code Hub contains several vision AI/ML examples: Face Detect Face Detect with Zephyr Multiple Person Detection  CIFAR10 Fashion MNIST There are also Multimedia Processing Pipeline (MPP) examples inside the MCX N MCUXpresso SDK that demonstrate more examples of using vision AI/ML on MCX N. These examples are only available for VSCode/GCC in the Repository-Layout SDK package. Note: It is recommended to use MCUXpresso SDK 25.09 for these examples. The MPP issues in the 25.12 and 26.03 MCUXpresso SDK releases should be fixed in the upcoming MCUXpresso SDK 26.06.  MCX N ML Vision Lab: The attached eIQ Neutron NPU for MCX N Lab Guide - Face Detect.pdf lab document walks through the steps to download an example Face Detect ML project from the NXP Application Code Hub and use the eIQ Neutron Converter tool to convert a model. It also describes how to update the eIQ and Neutron software libraries in an older MCUXpresso SDK project to work with the latest eIQ Neutron SDK libraries. It is recommended to go through the general MCX N NPU Lab Guide first and then do the attached Face Detect lab second.  The lab is also included below: 1  Lab Overview This document will demonstrate the acceleration provided by the eIQ Neutron NPU using the Multiple Face Detection demo for the FRDM-MCXN947 found on the NXP App Code Hub. The demo will run with the non-NPU optimized model and then the performance can be compared to the NPU optimized version of that same model. It also demonstrates how the NPU optimized version of the face detect model was generated. This lab is written for MCUXPresso IDE but the same basic steps can be used for VSCode or GCC. This lab will also cover how to update the Neutron NPU libraries in the project, as the original Face Detect example uses an older Neutron library version. It is highly recommended to complete the eIQ Neutron NPU for MCX N Lab Guide before starting this lab. 2  Software and Hardware Installation This section will cover the hardware and software needed for this lab. 2.1 Hardware The following hardware is required for this lab: MCX N FRDM Development Board - FRDM-MCXN947 OV7670 camera (with optional wide-angle lens) NXP LCD-PAR-S035 2.2 NXP Software Installation          Install MCUXpresso IDE v25.6 or later. Download the latest eIQ Neutron SDK Download and unzip the latest MCUXpresso SDK for FRDM-MCXN947 using MCUXpresso SDK builder Search for the FRDM-MCXN947 board Then click on Others On the SDK builder page, make sure to select the “eIQ” middleware and that the MCUXpresso IDE toolchain is selected. Then click on Build SDK.   Then click on the Download button and accept the license agreement to download the zip file. 3   Face Detection Example 3.1 Download Face Detect Demo from App Code Hub The code for this lab can be found on the NXP Application Code Hub hosted on Github, and we can use MCUXpresso IDE to directly import the Face Detection example from App Code Hub. Drag-and-drop the FRDM-MCXN947 SDK zip file into the Installed SDKs window, located on a tab at the bottom of the screen named “Installed SDKs”. You will get the following pop-up, so hit OK. Once imported, the Installed SDK tab will look something like this:  In the Quickstart Panel found in the lower left corner, click on Import from Application Code Hub.. In the dialog box that pops up there are many filters available to filter for different devices and types of demos. But since the name of the demo we are interested in is already known, the search box will be faster. Select the AI/ML category and then type in “face detection” and then click on the “Multiple face detection on mcxn947” demo. Make sure you don’t accidently click on the “Multiple Person Detection” demo. On the popup that comes up, click on GitHub link at the top. At that point the Next button at the bottom will become clickable so click on that. The next screen displays the possible branches. In this case there is only main so just click on the Next button at the bottom to go with the default. The next dialog box determines the location on your computer where the code will be downloaded to. You can leave it at the default location if desired or click on Browse to pick your own location. Then click on Next. The next screen will download the code and ask about importing the project. Click on Next to go with the default Import existing Eclipse projects option. Then finally on the last screen click on Finish to import the project into your MCUXPresso IDE workspace. You may get the following warning due to the project being made on an older version of the SDK. Then hit OK to accept the using the newest version.  15. It should look like the following when done: 3.2 Convert Model The demo is already using a model that was converted to take advantage of the eIQ Neutron NPU. This purpose of this section of the lab is to teach new NXP users how that model was converted. Unzip the eIQ Neutron SDK package in a directory of your choosing.   Optionally add \eIQ_NeutronSDK_ \bin to your executable path so that the neutron-converter utility can be directly called from the command line. Back in MCUXpresso IDE, find the location of the original non-converted model used for this demo by right clicking on the face_detect.tflite file in source/model/ and going to Utilities->Open directory browser here. Copy the directory location as it will be used in the next step Open a Windows Command prompt and navigate to the directory where the model was at from the previous step             Use the Neutron Converter to convert the Face Detection model: neutron-converter --input face_detect.tflite --output face_npu.tflite --target mcxn94x 3.3 Update eIQ Neutron Libraries The Face Detect ACH example uses an older version of the eIQ Neutron libraries, and so it needs to be updated to match the Neutron libraries in newest eIQ Neutron SDK since the model was converted with that version of the Neutron Converter tool. In the frdmmcxn947_multi_face_detection project, right click on the eiq folder and go to Utilities->Open directory browser here Overwrite the Neutron files from the eIQ Neutron SDK folder into your project to update the Neutron libraries to the latest version: File Name Source Directory in eIQ Neutron SDK Target Directory in MCUXpresso SDK libNeutronDriver.a target\mcxn94x\board\ eiq\neutron\mcxn\cm33 libNeutronFirmware.a target\mcxn94x\board\ eiq\neutron\mcxn\cm33 NeutronDriver.h target\mcxn94x\driver\include\ eiq\neutron\driver\include NeutronErrors.h target\mcxn94x\common\include\ eiq\neutron\common\include After the new Neutron libraries are copied over, clean the project to ensure the new libraries will be used 3.4 Board modifcations There are some hardware modifications to the MCX FRDM board required for this demo since the camera pins are muxed with the Ethernet pins and the Ethernet functionality is the default. The board version can be determined by scanning the QR code on the back of the MCX FRDM board with your phone. Most people will have Rev B boards. Rev A: Remove the R157, R158, and R159 resistors from the back of the Rev A board so that it looks like the following: Rev B: Change SJ16, SJ26, and SJ27 found on the back of the Rev B board to connect pin 3 (the dashed side) so that it looks like the following: 3.5 Connect the camera and LCD Plug in the OV7670 camera into J11. It should line up with the orange box. Connect the LCD-PAR-S035 LCD into J12. Note that some older LCD-PAR-S035 LCDs may have an extra set of pins soldered on, and in that case the extra 2 rows of pins should be hanging off the edge like in the photo below.             It should look like the following when complete 3.6 Run Models Now open up model_data.s by double clicking on it, and then modify line 43 to point to the original (non NPU converted) model file named face_detect.tflite. This particular project uses the .tflite file directly. Build the project by clicking on the Build icon in the Quickstart Panel Then download and run the project by clicking on the Debug icon in the Quickstart Panel You should see the demo working with an inference time of 817ms printed on the LCD display. Note: The default camera on the OV7670 is not very wide angle so you have to hold it fairly far back. There are wide-angle lenses that can be purchased to make it easier to demonstrate. Note: After POR there may be some glitching on the camera due to the fact the camera is expecting 2.8V but the board is at 3.3V and the initial HSYNC signal was missed. Press the reset button (SW1) and it should fix any camera issue.  Now let’s use the Neutron optimized model by opening model_data.s again and this time selecting the NPU converted model face_npu.tflite Recompile and reprogram the board. You’ll see it is significantly faster with a 22ms inference time, a 37x improvement! 4  Conclusion This lab demonstrated how the eIQ Neutron NPU on MCX N devices can significantly decrease inference time on quantized models and the steps to generate a NPU optimized model using the command line tools. Also explore the other App Code Hub ML examples available online. FRDM-Training MCXN NPU|ML
查看全文
i.MXRT1176は外付けQuadSPI NORフラッシュIS25WP256では起動しません こんにちは、 カスタム ボード上の QuadSPI NOR Flash IS25WP256 で i.MXRT1176 ブートを作成しようとしています。MIMXRT1170EVK 評価ボードと同じ方法でメモリを接続しました (ピン GPIO_SD_B2_05 ~ 11)。ブート ピンも評価ボードと同じ状態に設定します。 M7 コア上で実行されるシンプルな「Hello world」アプリケーションを作成しました。このアプリケーションは評価ボードでは正常に起動しますが、カスタム ボードでは起動しません。2 つのボードの唯一の違いはメモリで、カスタム ボードでは 32 MB、評価ボードでは 16 MB です。 そこで、私は FCFB (フラッシュ メモリの 0x400 にプログラム) を次のように変更しました。 フラッシュ サイズを 32MB に変更し、LUT 内の読み取りコマンドを、評価ボード上のフラッシュ メモリに十分な 24 ビット アドレスではなく 32 ビット アドレスの読み取りコマンドを使用するように変更しました。 これらの変更にもかかわらず、i.MXRT はカスタム ボード上で起動しません。 そこで、バスの信号を調べてみました。 ブート ROM はフラッシュ メモリから FCFB (512 バイト) を正しく読み取り、いくつかの構成 (書き込みの有効化、読み取りパラメータの設定、ステータス レジスタの読み取り) を実行します。これは、RM に記載されているように、30MHz のクロックで実行されます。 この後、ブート ROM は 133MHz のクロックで、それぞれ 64 バイトの読み取りアクセスを 4 回実行します (これにより、ブート ROM が FCFB を読み取り、設定を適用したことが確認されます)。ただし、アドレス 0x0000、0x0040、0x0080、0x00C0 のメモリを読み取ります。これらはブート ROM が行う最後のアクセスであり、M7 コアは起動しません。JLink プローブを M7 コアに接続したところ、ブート ROM が 0x223104 で無限ループに陥っていることがわかりました。 ブート ROM が 0x1000 にある IVT テーブルを読み取り、アプリケーション コードをロードして実行を開始できると予想しました。 クロック周波数を 133MHz ではなく 30MHz に変更してみました。ブート ROM は最後の 4 回の読み取りアクセスを 30 MHz で実行しますが、アプリケーションはまだ起動しません。 何が間違っているのでしょうか? 行き詰まっています。助けていただけると嬉しいです 😉 デビッド Re: i.MXRT1176 does not boot on external QuadSPI NOR Flash IS25WP256 こんにちは@davidjaouen 、 このページのリセットセクションで参照されているアドレス 0x223104 で実行が停止しているため、この問題はデバッガーに関連している可能性があります。デバッグ セッションを終了し、プロジェクトをクリーンアップして再構築してください。その後、デバッグ モードに入らずにアプリケーションを実行して、結果をお知らせください。 BR ハビブ Re: i.MXRT1176 does not boot on external QuadSPI NOR Flash IS25WP256 こんにちは、ハビブさん。 ご回答ありがとうございます。 残念ながら、デバッガー プローブをボードから取り外し、ハードウェア リセットを実行しましたが、i.MXRT はまだフラッシュ メモリから起動しません。 他に何かアイデアはありますか? よろしくお願いいたします。 デビッド Re: i.MXRT1176 does not boot on external QuadSPI NOR Flash IS25WP256 こんにちは、ハビブさん。 ついに、カスタム ボードを QSPI フラッシュで起動できるようになりました。問題はBOOT_CFG1[1]ピンがローレベルではなくハイレベルになっていたことです。つまり、ブート ROM は暗号化されたイメージを起動しようとしましたが、イメージは暗号化されていません。 ご助言ありがとうございます。 デビッド Re: i.MXRT1176 does not boot on external QuadSPI NOR Flash IS25WP256 スレッドを乗っ取らないでください。自分で新しいスレッドを立ててください。 Re: i.MXRT1176 does not boot on external QuadSPI NOR Flash IS25WP256 こんにちは、 @Habib_MS さん。 リセット/デバッグ起動後、ターゲットが0x002231FCのままになるという同じ問題に直面しています。ただし、ボードの電源を入れ直すと、アプリケーションはQSPIフラッシュから正常に起動して実行されます。 私は以下を使用しています: MCU: i.MX RT1176 IDE: MCUXpresso IDE デバッグプローブ: MCULink 私の観察によると、この問題はデバッガーのリセット/デバッグ起動時にのみ発生し、スタンドアロン起動時には発生しません。 この問題を解決するための適切なリセット/デバッグ設定、または回避策をご提案いただけますでしょうか? ご回答をお待ちしております。 よろしくお願いいたします。 ナゲンドラ・クマールS
查看全文
MPX5010DP "失压 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你们好我使用 MPX5010DP 传感器测量水箱水位。我试过很多方法来密封传感器上的管子,但还是会失压。随着时间的推移,输出电压不会停止下降。连接正常,测量开始。谁能帮帮我?谢谢 压力传感器 Re: MPX5010DP 'losing' pressure <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 谢谢您的回答。 我使用的是 867C-05 机箱,并尝试用硅胶和热胶密封(每种方法同时使用,或一种方法覆盖另一种方法)。拉链是我的第一次尝试:但没有成功。此外,我还使用了 Tygon 管。传感器在水箱上,但完全密封(只有电线和管道离开密封箱)。内部压力会造成这种差异吗? 我见过"飞思卡尔压力传感器直接暴露在汽车冷却液中一个月。" Joshevelle 帖子,我不明白这一点:"在此类应用中,我们建议使用派克 O 型硅润滑脂或 DMS-T46 或 T51。我们的大多数客户都使用这种润滑脂,没有出现过问题" 。我怎样才能在上面使用一些油?这种油是介质还是用来保持测量的? 我不知道该怎么办了 :X 我正准备大规模生产出售呢,哈哈 再次感谢您! Re: MPX5010DP 'losing' pressure <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,费利佩 在测量驻水高度时,传感器会随着时间的推移略有泄漏,但如果您使用的是 MPX5010DP CASE 867C-05,则这是泄漏最少的封装。或 867B-04 号案件。使用这些案例来最大限度地减少随着时间的推移漏电流,而不是 SOP 垂直端口或 SOP 侧端口封装。 此外,Tygon 管应该会有所帮助。一些客户使用类似于拉链的产品来固定管子。我们建议选择内径略小于 4.775 毫米的端口倒钩。稍稍加热导管,然后将导管滑入。冷却后,密封效果应该会很好。为了进一步固定,可以使用铁丝或非常小的拉链。请注意,由于空气和水蒸气可以穿过多孔的管材,因此有些管材也会随着时间的推移而慢慢泄漏。 希望对你有所帮助。 此致, 托马斯 PS: 如果我的回答有助于解决您的问题,请标记为"正确" 或 "有帮助"。谢谢。
查看全文
压力传感器 MPXM2051GST1 规格 在 2021 年 4 月 22 日的 MPXM2051G 规范第 5 版第 5 页,表 4 中的线性度显示最小为 -0.3,最大为 +3.0%Vfss。最大 +3.0% 似乎偏高。这个规格是否正确? Re: Pressure Sensor MPXM2051GST1 spec 亲爱的亚当 应用工程师确认,最大线性度值是个错别字,应该是 0.3%VFSS,而不是3%VFSS。 致以最崇高的敬意 约瑟夫 Re: Pressure Sensor MPXM2051GST1 spec 亲爱的亚当 感谢您所做的研究。根据您提供的新信息,我认为是的,最大值。线性值很可能是 0.3%VFSS,而不是 3%VFSS。我已联系应用工程师确认正确值,并要求修正数据表第 5 版中的错误,如果 0.3% 是正确的。我会让你知道应用工程师的答复。 致以最崇高的敬意 约瑟夫 Re: Pressure Sensor MPXM2051GST1 spec 约瑟夫 感谢您的回复。很抱歉给您添麻烦了,但在 MPXM2051G 规范的第 4 版中,线性度被列为 -0.3% 至 +0.3% ,第 4 页,表 3。MPXM2051G规格的修订版1、2和3也是如此。规范的第 4 次修订版附后。 修订版 5 规范的修订历史也未提及对线性度规范的修改。 谢谢您的帮助。 Adam M Re: Pressure Sensor MPXM2051GST1 spec 亲爱的亚当 很遗憾是的。MPXM2051GS 的线性误差如此之大。如果您需要线性误差更大的类似压力表传感器,可以使用MPX2050,它的线性误差为 +/-0.25% 。 请查看此链接,了解最高 115kPa 的其他差压和表压传感器。 致以最崇高的敬意 约瑟夫
查看全文
ロボット運転中の加速度センサの結果 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、   MMA7361LC を使って加速度を測定し、移動中のロボットの速度を計算してみました。 加速度センサをテストしたところ、(前方、後方に)動かしたときや、重力を測定しているかどうかをチェックしたときに良好な結果が得られました。 ロボット(戦車)に固定した状態でも、ロボットを手で動かす場合は問題なく動作します。 問題は、ロボットを車輪モーターで駆動しているときに、まったく適切な結果が得られないことにあります。 最初からロボットが停止するまで同じ振動が発生しています。正または負の加速があった場所をほとんど分析できず、70Hz の単純な LPF を適用した後でもノイズが非常に高くなっています。   ロボットが動いているとき(ホイールモーターによる)直線に近くならないのはなぜか分かりません。   添付ファイル: 緑 - LPF の前の正の駆動軸。 オレンジ - LPF 後の正の駆動軸。 scope_3 - 低い加速度 (約 0.5 秒間)、一定の速度、そして低い負の加速度 (約 0.5 秒間)。 scope_4 - 同じですが、開始時と終了時の加速が高くなります。   助けてください。 ありがとう、ドロール。 センサ・フュージョン Re: accelerometer results while driving a robot <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ドロール、 こう申し上げるのは残念ですが、あなたの基本的な前提には欠陥があります。単一または二重の積分によって速度/位置を取得しようとするのは、ほとんどの場合、悪い考えです。 問題 1 は、すべてのセンサにノイズがあり、ノイズを統合すると、時間の経過とともにランダム ウォークが発生することです。詳細については、 「位置計算」を参照してください。 問題 2 は、ある人にとっての信号が別の人にとってのノイズであり、その逆もまた同様であるということです。ロボットのモーターとギアトレインからの振動が見えるはずです。 このアプリケーションでは、速度/距離を決定するためにロータリー エンコーダを使用する方がよいでしょう。加速度/ジャイロデータの融合によりロボットの向きと直線加速度が得られますが、速度と位置の精度が必要な場合は、他のセンサタイプを検討する必要があります。 Mike
查看全文
MMA8452Q I2C 读取单字节问题[[ ## completed ## ]] <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好, 在尝试通过 I2C 读取 WHO_AM_I 寄存器时,MMA8452Q 遇到了问题。我们使用的是基于 iMX28 的平台,运行 Linux 2.6.35。设备驱动程序读取的值为 0,而不是预期的 0x2A。我已经看到,在I2C总线上,控制器在写入要读取的寄存器后发送停止条件,然后再开始读取实际值。它不使用重复启动。 MMA8452Q 数据表指出".... MM8452Q 希望使用重复启动来随机读取特定寄存器" 。它还指出(在 “单字节读取” 下)" 主机(或 MCU)传输重复启动条件 (SR),并将读取位设置为 " 1 " 的 MMA8452Q ($1D) 从先前选择的寄存器读取。 这是否意味着在读取随机寄存器值时,我们必须使用重复启动,并且 MMA8452 不支持在写入寄存器地址后使用停止条件,然后再启动/停止以读取实际值? 谢谢! 布鲁诺 加速度传感器 传感平台 Re: MMA8452Q I2C Read Single Byte problem <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 谢谢你,托马斯、 我也是这么想的,只是想确认一下。 布鲁诺 Re: MMA8452Q I2C Read Single Byte problem <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,布鲁诺、 是的,MMA8452Q 使用组合的 I 2 C 数据传输格式,需要在第二个字节(寄存器地址)之后重复启动条件。 从 WHO_AM_I 寄存器 0x0D 读取的单字节如下所示(请注意,它是针对我办公桌上的 MMA8652FC 的): 如果您还有其他问题,请告诉我。 此致, 托马斯 PS:如果我的回答有助于解决您的问题,请标记为"正确" 。谢谢。
查看全文
センサフュージョンツールボックスでMPL3115A2をテストする方法 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、 MPL3115A2センサをテストしたいです。MPL3115A2 が見えるFRDM-KL25ZとFRDM-FXS-MULTIを使用しています。センサーフュージョンツールボックスに高度計の動作を確認するオプションが表示されません。 誰かがそれをテストする方法を提案してくれると非常に助かります。   ありがとうございます チランジーヴィ センサ・フュージョン Re: How to test MPL3115A2 with sensor fusion toolbox <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、Mikeさん どうもありがとうございます。私にとってはうまくいきます。 よろしくお願いいたします。 チランジーヴィ Re: How to test MPL3115A2 with sensor fusion toolbox <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> チランジーヴィ KL25Z バイナリが MPL3115A2 が存在することを前提としてビルドされていると仮定すると (MULTI/MULTI-B のものも同様です)、以下に示すような「高度計」タブが表示されます。計算された高度と測定された温度を時間とともに表示します。それほど面白くはないが、少なくとも出発点にはなる。 Mike
查看全文
MXPH 系列压力传感器 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我们需要与任何有在潮湿(淡水和海水)环境中使用 MXPH6400 系列压力传感器经验的人交谈。 传感器的使用寿命有多长?有没有办法通过添加一层超软 RTV 或硅油脂来保护内部凝胶?? 如果能得到任何帮助和指导,我们将不胜感激。 Kelly Borsum,DASCOR 公司619-794-7788 [email protected] Re: MXPH series pressure sensors <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好,William, 希望你一切都好。 恐怕我没有任何在潮湿环境中使用 MPXH6400 设备的经验,但我想补充一些评论/建议: - 请注意,对于所有恩智浦标准压力传感器产品,除干燥空气外的任何环境都会对产品的可靠性和使用寿命产生一定影响。恩智浦硅压力传感器与油、气、汽油、水或水蒸汽或化学品不兼容。 -工作一段时间后,设备可能会因为用水而出现故障。 - 在水测量应用中,通常使用头管。这只是传感器与需要测量水位或压力的容器之间的一根管子。空气被截留在管道中,从而将传感器与液态水隔离开来。 请查看下面的应用笔记以获取更多信息: AN3728 - IPS PRT 压力传感器的介质兼容性 - 您是否考虑过使用适当的硅油来保护传感器,防止湿气或冷凝水进入? 用硅脂保护压力传感器无疑是在恶劣介质中使用我们产品的最佳方式。在如何 "工业化 "地实施这一解决方案方面,我们还没有太多经验。注油是在真空状态下进行的,以避免产生气泡。通常有必要进行偏移校准,因为润滑脂会带来一些机械应力,可能会使偏移值发生偏移。这个解决方案经过测试,似乎是确凿无疑的。 -您是否考虑过使用含有耐介质凝胶的设备? 恩智浦使用两种不同类型的凝胶,以便将芯片与环境隔离。氟硅凝胶(FE-53 型)用于我们所有标准类型的压力传感器。耐介质凝胶 (Sifel) 被用于我们的压力传感器,这些传感器主要用于汽车等高温环境中。所有标有 MPXAZ、MPXVZ 和 MPXHZ 的压力传感器均使用耐介质凝胶 (Sifel) 材料。该系列设备使用我们的汽车级凝胶,该凝胶对刺激性介质具有更强的抵抗力。不过,客户必须在其应用中进行验证,但该产品将比现有的标准压力传感器更加坚固耐用。 无论如何,您必须验证产品在您的应用中的性能,并承担所有风险和责任。 希望这些信息对你有用。 此致, 戴维
查看全文
MCX041 LIN Slave I am wanting to implement a low-cost encoder driver. MCX chips are very affordable with what I am trying to build but I am finding that driver support for LIN is only for S32/EVK based hardware. Has anyone had any success porting this to an MCX powered board?  Along with that, are there major hardware considerations with building this? I am already running into SRAM issue and freertos. 2KB is a very small amount for this chip. I'm new but very much want to succeed with this project  Communication & Control(I3C | I2C | SPI | FlexCAN | Ethernet | FlexIO) MCXC Re: MCX041 LIN Slave Hello @benrobbins , Thanks for your post. We currently do not have any application notes or demo projects specifically for the MCXC LIN slave. However, the MCXC family uses the LPUART module to support LIN slave operation, which is similar to the implementation in the Kinetis KL series. Therefore, you can refer to KL series LIN slave simply usage sharing Hope it helps. BR Celeste Re: MCX041 LIN Slave That's very helpful thank you!
查看全文
ENET ドライバフリーズ LPC546 こんにちは、 LPC54628J512の ENET ドライバに問題があります。VLAN下のネットワークで、別のVLANからMTUサイズのパケットを受信すると、デバイスがフリーズしました。 1 - コンテキスト ネットワーク設定は次の図に示されています。 2 - 問題 問題は、MTU サイズのパケット、または断片化されたパケットの最初のフラグメントを受信すると発生します (この場合、これは KDEConnect クライアント ソフトウェアからの ≃2000 サイズのペイロード パケットです)。パケットがデバイス VLAN (192.168.16.255) に直接送信される場合、問題はありません。しかし、デバイスが別の VLAN (192.168.11.255) から来て、メインスイッチによって他の VLAN に再送信されると、フリーズが発生します。 3 - 分析 LWIP_ASSERTをアクティブにした後、ethernetif_rx_frame_to_pbufs()でアサートを取得しました。   buffer = rxFrame->rxBuffArray[i].buffer; // corrupted bufferLength = rxFrame->rxBuffArray[i].length; // corrupted len += bufferLength; /* Find pbuf wrapper for the actually read byte buffer */ idx = ((rx_buffer_t *)(((uint8_t *)buffer) - ETH_PAD_SIZE)) - ethernetif->RxDataBuff; LWIP_ASSERT("Buffer returned by ENET_GetRxFrame() doesn't match any RX buffer descriptor", ((idx >= 0) && (idx < ENET_RXBUFF_NUM))); - idx = 1953659110 - bufferLenght = 65535 (または -1) この時点で、rxFrame からのデータは非常に無効なデータであることがわかります。SO、この構造体を埋める ENET_GetRxFrame() の値を分析してみましょう。 結果は次のとおりです (簡略化されたコード)。 /* Get the valid frame */ index = 0; do { rxDesc = &rxBdRing->rxBdBase[rxBdRing->rxGenIdx]; /* Calculate the buffer and frame length. */ if ((rxDesc->rdes3 & ENET_RXDESCRIP_WR_LD_MASK) != 0U) { isLastBuff = true; rxFrame->totLen = (uint16_t)(rxDesc->rdes3 & ENET_RXDESCRIP_WR_PACKETLEN_MASK); if (rxFrame->totLen - offset > (uint16_t)rxBdRing->rxBuffSizeAlign) { buff1Len = (uint16_t)rxBdRing->rxBuffSizeAlign; if (handle->doubleBuffEnable) { buff2Len = rxFrame->totLen - offset - (uint16_t)rxBdRing->rxBuffSizeAlign - ENET_FCS_LEN; } } else { buff1Len = rxFrame->totLen - offset - ENET_FCS_LEN; } rxFrame->totLen -= ENET_FCS_LEN; } else { if (!handle->doubleBuffEnable) { buff1Len = (uint16_t)rxBdRing->rxBuffSizeAlign; offset += buff1Len; } else { buff1Len = (uint16_t)rxBdRing->rxBuffSizeAlign; buff2Len = (uint16_t)rxBdRing->rxBuffSizeAlign; offset += buff1Len + buff2Len; } } // <-- Check data here (assert on invalid buff1Len) /* Allocate new buffer to replace the buffer taken by application */ if (!isDrop) { /* Get the frame data information into Rx frame structure. */ /* Give new buffer from application to BD */ } else { /* Drop frame if there's no new buffer memory */ } } while (!isLastBuff);   - buff1Len = 65534 (または -2) - rxDesc->rdes3 & ENET_RXDESCRIP_WR_LD_MASK = 1522 - rxFrame->totLen = 1518 -オフセット = 1520 最大バッファ サイズが aligned(1518) = 1520 であることがわかっているので、rxDescriptor によって報告されるフレームの長さはこの値の 2 倍になります。これはデータオーバーフローの原因である可能性があります... 4 - 不良パケット 問題のパケットは、別の VLAN から送信され、メイン スイッチによって再送信される断片化されたパケットです。 同じパケットをデバイス VLAN から直接送信しても、別の VLAN から送信しても、同じ効果は得られませんが、Wireshark でパケットを分析すると、MAC 層ヘッダーからペイロード データまでまったく同じになります (もちろん、ソースとタイムスタンプは除きます)。   VLAN コントローラがパケットを送信すると、IP レイヤー ヘッダーにいくつかの追加情報が追加されることがわかりました。https://en.wikipedia.org/wiki/IEEE_802.1Qを参照してください。これは 4 つの追加バイトを表し、1518 の長さのパケットを 1522 にすることができます。 ほとんどのネットワーク インターフェイスはこれらのデータを独自に処理し、パケットから削除するため、通常、これらのデータは Wireshark には表示されません。これは、いくつかのより「インテリジェント」なスイッチの場合でも同様であり、それらのスイッチを使用すると、問題は解消されます。 Linux では、これらのパケットの削除を停止するためのいくつかのトリックを実行できます。Wiresharkで見てみましょう 5 - ENETドライバの代替についてさらに情報が必要 私のプログラムでは、NXP MCUXPresso SDk Core の ドライバ/lpc_enet/ フォルダーから fsl_enet.c/.h を使用します。現在、v2.12.0 を使用していますが、github の最新バージョンも試しました。 ドライバ/enet/ の下に、ENET の別の実装があることがわかります。私の理解では、これはより汎用的な実装ですが、iMX シリーズなどのより高度な CPU 向けに、より多くのネットワーク機能 (VLAN など) もサポートしています。 enet/ ドライバでコンパイルできませんでした。iMX プラットフォームでのみ利用可能な定義がいくつか不足しているからです。このドライバを LPC546 で使用できる可能性はありますか? このバグの処理や、ドライバの他のバリエーションへの移行について、誰かが手助けしてくれることを願っています。 ありがとうございます ルーカス Re: ENET driver freeze LPC546 こんにちは@lucas3 「 enet/ ドライバでコンパイルできませんでした。iMX プラットフォームでのみ利用可能な定義がいくつか不足しているからです。このドライバを LPC546 で使用できる可能性はありますか? 」 ドライバ/ネット/(i.MXシリーズユニバーサルドライバー)に直接切り替えることはできません このドライバは LPC ではなく i.MX 用に設計されており、すぐには使用できません。 あなたの説明に基づきます。 フリーズは、別の VLAN から送信される VLAN タグ付きフレーム (回線上で約 1522 バイト) によってのみトリガーされます。現在の lpc_enet RX パスは 1518 バイトのフレームを想定しています。 1522 バイトのフレームが到着すると、RX の長さ/オフセットの計算がアンダーフローし (例: buff1Len = -2)、RX フレーム構造が破損し、LWIP_ASSERT がトリップします。 SO i think you CAN try to change the ENET_RXBUFF_SIZE to 1522. BR ハリー
查看全文
【NXPマイコン入門】【モータ制御】【基礎編②】永久磁石モータの仕組みと制御(日本語ブログ) 目次     【初心者向け】【基礎編】永久磁石同期モータの仕組みと制御方法 EVから家電まで!未来を動かす主役モーター「PMSM」の秘密に迫る! PMSMってどんなモーター?名前を分解してみよう! PMSMの「三大メリット」がスゴイ! 中身はどうなってるの?驚くほどシンプルな構造 どうして回るの?「回転磁界」という魔法 まとめ:PMSMが未来の主役である理由 【初心者向け】【基礎編】永久磁石同期モータの仕組みと制御方法 EVから家電まで!未来を動かす主役モーター「PMSM」の秘密に迫る! こんにちは! 最近の電気自動車(EV)の静かさや、高性能エアコンの細やかな温度調整、静音タイプの洗濯機やパワフルなドローン。これらのハイテク製品が、なぜこれほどまでに高性能なのか、考えたことはありますか? その心臓部には、ある共通の”主役”がいます。その名も**「PMSM(Permanent Magnet Synchronous Motor:永久磁石同期モータ)」**! なんだか難しそうな名前ですが、心配ご無用です。今回は、このPMSMが一体何者で、なぜこれからの時代に欠かせないのか、その秘密を誰にでも分かるように、じっくりと紐解いていきましょう! PMSMってどんなモーター?名前を分解してみよう! PMSMを一言で表すなら、「パワフルで効率が良く、とっても賢いモーター」です。その秘密は、名前に隠されています。 Permanent Magnet(永久磁石) ロータ(回転する部分)に、強力な磁石を使っています。これにより、常に磁力を発生させるための電気が不要になり、エネルギー効率が格段にアップします。 Synchronous(同期) ステータ(固定された部分)が作る回転する磁界(後で詳しく解説します!)に、ロータの磁石がピッタリと「同期」して、まるで引き寄せられるように一緒に回転します。ズレがないので、非常に精密な制御が可能です。 Motor(モータ) 電気エネルギーを回転運動に変える装置ですね! つまりPMSMとは、「永久磁石を使った、ズレなくピッタリ追従して回る、超高効率なモーター」 ということになります。 PMSMの「三大メリット」がスゴイ! なぜ多くの最新製品がこぞってPMSMを採用するのでしょうか?それには、他のモーターにはない圧倒的なメリットがあるからです。 高効率・省エネ ロータに電気を流す必要がないため、エネルギー損失が非常に少ないのが最大の特徴です。これは、EVなら「より長い航続距離」に、家電なら「より安い電気代」に直結します。 小型・ハイパワー(高出力密度) 強力な永久磁石のおかげで、小さいサイズでも大きなパワー(高トルク)を生み出せます。製品をより軽く、よりコンパクトに設計できるため、ドローンのような軽量化が求められる分野で大活躍します。 高精度な制御性 「同期」して回転するため、回転速度や位置を非常に正確にコントロールできます。この特性を「ベクトル制御(FOC)」という技術で100%引き出すことで、驚くほど滑らかで静かな回転が実現できます。EVの静粛性や、産業用ロボットの精密な動きは、このおかげなのです。 中身はどうなってるの?驚くほどシンプルな構造 「そんなに高性能なら、構造も複雑なんじゃないの?」と思いますよね。ところが、PMSMの基本構造は驚くほどシンプルです。 ステータ(固定子):回転磁界を生み出す”舞台” モーターの外側で動かない部分です。ここには3系統(U相, V相, W相)のコイルが配置されています。これらのコイルに順番に電気を流すことで、まるでN極とS極が追いかけっこをするように、回転する磁界(回転磁界)を創り出します。 ロータ(回転子):磁界に引かれて回る”主役” モーターの内側で回転する部分です。表面にはN極とS極を持つ強力な「永久磁石」が取り付けられています。このロータが、ステータの作る回転磁界に引き寄せられて回転します。 このステータとロータは直接触れ合っておらず、間にわずかな隙間(エアギャップ)があるだけ。物理的な接触がないので、摩耗する部品(ブラシなど)がなく、メンテナンスフリーで長寿命なのも大きな利点です。 (画像はイメージです) どうして回るの?「回転磁界」という魔法 では、どうやって滑らかに回転するのでしょうか?原理は、磁石の「N極とS極は引き合い、同じ極同士は反発する」という性質を利用した、非常に直感的なものです。 ステータが回転磁界を作る まず、マイコンがステータの3系統のコイルに、タイミングをずらしながら波のような交流電流を流します。すると、ステータ内部に、まるで磁石がぐるぐると回っているかのような「回転磁界」が発生します。 ロータの磁石がロックオン! ロータの永久磁石は、このステータが作った回転磁界に「カチッ」と引き寄せられます。まるで、目の前で回るエサに釣られる魚のように、回転磁界から逃れられなくなります。 磁界と一緒に「同期」して回転 あとは、ステータが回転磁界のスピードをコントロールすれば、ロータはそれに寸分の狂いもなく追従して回転します。これが「同期」回転の正体です。 この**「電気を流すタイミングと強さの絶妙なコントロール」**こそが、ベクトル制御の真骨頂! マイコンがロータの位置を常に把握し、常にロータが最も力を出せる最適な位置に磁界を作り出すことで、PMSMはただ回るだけでなく、私たちの要求に応じて、力強く、静かに、そして賢く動くことができるのです。 まとめ:PMSMが未来の主役である理由 最後に、PMSMのポイントをまとめてみましょう。 正体: 永久磁石を使い、ステータの回転磁界に同期して回るモーター。 強み: 「高効率」「小型ハイパワー」「高精度」の三拍子が揃っている。 原理: ステータのコイルが作る「回転磁界」に、ロータの永久磁石が引き寄せられて回転する。 最高の相棒: 「ベクトル制御」と組み合わせることで、その性能を100%発揮する。 活躍の場: EV、ドローン、ロボット、高性能家電など、省エネと高性能が求められるあらゆる分野。 これからの電動化社会で、ますます活躍の場を広げていくPMSM。皆さんも、ぜひこの名前を覚えておいてください! 次の基礎編を読みたい方はこちら↓ 【NXPマイコン入門】【モータ制御】【基礎編③】永久磁石同期モータの仕組みと制御方法(日本語ブログ) 具体的なセットアップ方法やサンプルコードの動かし方についての解説はこちら↓ 【NXPマイコン入門】【モータ制御】【実践編①】永久磁石同期モータの仕組みと制御方法(日本語ブログ) NXPのモーター制御の記事をまとめたサイトはこちら↓ NXPのモーター制御 ~まとめページ~ (日本語ブログ) =========================​ 本投稿の「Comment」欄にコメントをいただいても、現在返信に対応しておりません。​ お手数をおかけしますが、お問い合わせの際には「NXPへの技術質問 - 問い合わせ方法 (日本語ブログ)」をご参照ください。​ (既に弊社NXP代理店、もしくはNXPとお付き合いのある方は、直接担当者へご質問いただいてもかまいません。)​ NXPのFRDMボード「FRDM-MCXA156」を使用して、モーター制御について分かりやすく解説していきます。基礎編と実践編に分かれていますので、興味のある内容から参考いただければ幸いです。 ・基礎編①~⑦、実践編①~③ 今回は基礎編②として、永久磁石モータの仕組みと制御方法について分かりやすく解説します。 (読了:5分) introduction MCUXpresso MCUXpresso IDE MCUXpresso SDK MCX Motor Control SW | Downloads 日本語ブログ
查看全文
S32K312 UART 你好,我在使用 S32K312 时遇到一个问题。 我最初使用的 CAN CLOCK 是 60M,但我想把它改为 40M。 但在我将其改为 40M 后,我使用的 LPUART1 可以发送信息,但无法接收信息(LPUART1 在 60M 时正常)。 问题是,我看到 LPUART1 的时钟是 AIPS_SLOW_CLK。即使将 CAN CLOCK 从 60M 改为 40M,AIPS_SLOW_CLK 的值也不会改变。 如何解决这个问题? CAN CLOCK60M 的时钟设置如下 CAN CLOCK40M 的时钟设置如下 LPUART1 的设置如下 以下是我使用的 UART 发送/接收功能 谢谢! Re: S32K312 UART 非常感谢您的答复 Re: S32K312 UART 您好, 保持设备 RM 的 24.7.2 章系统时钟配置中所述的核心/PLAT/SLOW 时钟比率。因此,选项 B 的配置是 1/2/4。如果需要 AIPS_PLAT_CLK 的 40MHz 频率,则应降低其他 clks 频率,以保持此配置的比率。 BR, Petr
查看全文
GUI Guider 1.10.1 がリリースされました。 ホー!ホー!ホー! GUI Guider 1.10.1 がリリースされました。 このバージョンには、LVGL 9.3.0 およびアプリケーション プロセッサの G2D グラフィックス アクセラレーション サポートを含む重要なエコシステム アップデートが付属しています。統合されるプラットフォームが増えるにつれて、安定性とパフォーマンスも向上しました。主な改善点を確認してください: - G2D加速 - デモを含むマルチタッチサポート - i.MX RT700-EVK - Zephyr 4.2 ぜひご自身でもお試しください! http://nxp.com/gui-guider
查看全文