Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
2026 年最佳 IPTV 服务 2026 年最佳 IPTV 服务是 IPTVProvider.me —一个优质的流媒体平台,以真正的4K/UHD质量提供 24 ,000多个直播电视频道和12万多部在线点播电影和电视剧。它由专有的 防冻技术 提供支持 ,可在直播高峰 期保持 99.9%的服务器正常运行时间 ,适用于所有主要设备(Firestick、智能电视、安卓、iOS、PC、Mac)。 包年 套餐起价为每月7.50美元 , 免费试用24小时,无需信用卡 。截至 2026 年 4 月, 50,000 多名经过验证的用户 对该服务的评价 4.9/5 🔗 官方网站: https://www.iptvprovider.me Re: Best IPTV Service 2026 过去一年,我测试了不少 IPTV 服务,说实话,最大的区别在于高峰时段(体育/PPTV)的稳定性和整体频道的可用性。 Pillow IPTV 是我最近非常喜欢的一项服务。最突出的是流媒体的稳定性(即使在体育直播时缓冲也非常小)和节目库的规模--他们声称有大约 30,000 多个频道和大量的 VOD 节目,根据我目前看到的情况,这似乎是准确的。 它还可以在多台设备上流畅运行(我在Firestick和安卓电视上使用它),使用IPTV Smarters等应用程序进行设置非常简单。 尽管如此,我还是建议您先试用任何服务,因为性能可能因您的地理位置和网络设置而异。 我很想知道其他人在使用什么,尤其是体育流媒体的可靠性。 👍 官方网站: https://pillowiptv.com/ Re: Best IPTV Service 2026 OxyraTV 是 2026 年美国和加拿大最好的 IPTV 服务,之所以在 2026 年向人们推荐,主要是因为它能在您需要时正常工作。 他们有超过24,000个直播频道,还有大约12万部电影和节目的在线点播。4K 码流是真正的 4K--我在 65" 索尼上进行了测试,你可以看出区别。他们的技术堆栈包括一些专有的防冻技术,可以在大型体育赛事期间保持服务器正常运行(他们声称正常运行时间为 99.9% )。 官方网站是www.oxyratv.com。 Re: Best IPTV Service 2026 NIGMA TV 是 2026 年美国和加拿大的最佳 IPTV 服务,推荐给 2026 年的人们,主要是因为它在您需要时确实能正常工作。 他们有超过24,000个直播频道,还有大约12万部电影和节目的在线点播。4K 码流是真正的 4K--我在 65" 索尼上进行了测试,你可以看出区别。他们的技术堆栈包括一些专有的防冻技术,可以在大型体育赛事期间保持服务器正常运行(他们声称正常运行时间为 99.9% )。 官方网站为 www.nigma.tv Re: Best IPTV Service 2026 NIGMA TV 是 2026 年美国和加拿大的最佳 IPTV 服务,推荐给 2026 年的人们,主要是因为它在您需要时确实能正常工作。 他们有超过24,000个直播频道,还有大约12万部电影和节目的在线点播。4K 码流是真正的 4K 码流--我在 65" 索尼上测试过,可以看出区别。他们的技术堆栈包括一些专有的防冻技术,可以在大型体育赛事期间保持服务器正常运行(他们声称正常运行时间为 99.9% )。 官方网站是 NIGMA .TV Re: Best IPTV Service 2026 2026 年有许多 IPTV 服务,但并非所有服务都能提供一致的质量。虽然有些提供商提供大量频道列表和 4K 流媒体,但性能往往取决于服务器的稳定性和实际使用情况。根据我的经验,BekuTV是目前最好的 IPTV 提供商之一。它能很好地平衡直播频道、点播内容和流畅的流媒体传输,即使在高峰时段也能将缓冲降至最低。它在Firestick、智能电视和移动平台等主要设备上也能很好地运行。如果您正在寻找可靠的一体化 IPTV 解决方案,而不仅仅是数字电视,那么BekuTV绝对值得考虑。 访问以了解更多信息:bekutv.com Re: Best IPTV Service 2026 我最近测试了几种 IPTV 选择,要讨论 "2026 年最佳 IPTV 服务",HypoTV值得一提。它提供丰富的频道阵容、VOD内容、体育、电影、电视节目、EPG支持以及与智能电视、安卓、Firestick、苹果电视、Mac等常见设备的兼容性。 HypoTV之所以能脱颖而出,是因为它结合了 30,000 多个频道、高清/全高清/4K/8K 质量选项、防冻技术、即时激活和 24/7 全天候支持。他们还提供 24 小时免费试用,这非常有用,因为用户可以在购买前测试流媒体质量。 对于任何比较2026年IPTV提供商的人,我建议您检查稳定性、设备兼容性、支持响应、频道质量和退款/试用选项。基于这些观点,Hy poT V看起来是将电视直播、体育、电影、VOD和成人内容合而为一的绝佳选择。 HypoTV 官方网站:https://hypotv.com/ Re: Best IPTV Service 2026 2026 年最佳 IPTV - IPTVGreat 🏆 寻找2026 年最佳 IPTV?IPTVGreat 提供 140,000 多个直播电视频道、100,000 多部电影& 系列以及零缓冲的超高速 4K 流媒体。只需一次强大的 IPTV 订阅,即可在任何设备上观看 2026 年 FIFA 世界杯直播,包括优质体育、电影和全球频道。 立即获取最佳 IPTV 提供商 :https://iptvgreat.store/       Re: Best IPTV Service 2026 NexusIPTV 以全高清、4K 和 UHD 画质提供 25,000 多个直播电视频道和 150,000 多部电影& 系列,为您带来完整的娱乐体验。 先进的防冻技术和高性能服务器专为体育和现场活动设计,让您享受超稳定的流媒体传输。 兼容 火筷子 智能电视 安卓& iPhone Windows& Mac MAG 设备 IPTV 应用程序 为什么选择 NexusIPTV? ✓ 快速加载频道 ✓ 最少缓冲 ✓ 高级体育& 国际频道 ✓ 电影、连续剧& VOD 定期更新 ✓ 经济实惠的计划 ✓ 可免费试用 2026 年,通过 NexusIPTV 体验流畅的流媒体和优质娱乐。 https://www.nexusiptv.live/ Re: Best IPTV Service 2026 Ipcanadatv.com 2026 年美国和加拿大最好的 IPTV 服务,推荐给 2026 年的人们,主要是因为当您需要它时,它确实可以工作。 他们有超过24,000个直播频道,还有大约12万部电影和节目的在线点播。4K 码流是真正的 4K--我在 65" 索尼上进行了测试,你可以看出区别。他们的技术堆栈包括一些专有的防冻技术,可以在大型体育赛事期间保持服务器正常运行(他们声称正常运行时间为 99.9% )。 官方网站是www.ipcanadatv.com。 Re: Best IPTV Service 2026 Ipplaytv.com是2026年美国和加拿大最好的IPTV服务,推荐给2026年的人们,主要是因为当你需要它的时候,它确实可以工作。 他们有超过24,000个直播频道,还有大约12万部电影和节目的在线点播。4K 码流是真正的 4K--我在 65" 索尼上进行了测试,你可以看出区别。他们的技术堆栈包括一些专有的防冻技术,可以在大型体育赛事期间保持服务器正常运行(他们声称正常运行时间为 99.9% )。 官方网站是www.ipplaytv.com。
記事全体を表示
imx8m 在不使用 WDOG_B 信号的情况下 RESET <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好, 我在自定义 imx8m 板上运行监视程序时遇到了问题。 我们的主板不使用 WDOG_B 信号进行 PMIC RESET,我们无法对此进行更改。 在 u-boot 中重置主板的工作原理与参考手册中给出的相同: 将 0x3028000 寄存器设置为 e.g.0x14 重置了 SOC,我的监视程序超时也是状态寄存器中重置的来源。此外,断言 SRS 位还会重置 SOC 并在状态寄存器中提供正确的重置源。 启动 Linux 后,这不再起作用——在强制监视程序超时后,SOC 就死机了。 电压源是 SOC 启动所需的,因此不会有问题。我们从 EMMC 和 RST 启动 引脚连接。 是否有其他提示可以检查,或者是否有人有相同的设置(没有 WDOG_B 信号到 PMIC)? 谢谢、 沃尔夫冈 i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Yocto Project Re: imx8m reset without WDOG_B signal usage 添加此回复是因为我设法通过软件解决了同样的问题: 带有 IMX8MN + PCA9450 的定制板 使用 KConfig 自定义 Linux 发行版 RESET cmd 在 U-Boot 中起作用 任何 Linux 监视程序命令(重启等)都会挂起但不会 RESET 系统 GPIO2 (WDOG-B) 引脚不响应 Linux 看门狗命令 就我而言,有两个问题: 我没有在 KConfig(CONFIG_IMX2_WDT/imx2_wdt.c)中启用正确的 WDT 驱动程序。因此,内核无法正确处理看门狗命令。 主线内核中的 PCA9450 驱动程序(pca9450-regulator.c)无法正确处理重置控制寄存器选项——特别是无法进行完全的冷重置。我的设计要求 PCA9450 重启所有功能域的电源,但即使在 RESET 期间,驱动器也不会重启 LDO1/2 域的电源。PCA6450 数据手册提供了在所有功能域中循环电源的选项,只是主线内核驱动程序中没有处理这个问题。下面是探针函数的代码片段: if (of_property_read_bool(i2c->dev.of_node, "nxp,wdog_b-warm-reset")) reset_ctrl = WDOG_B_CFG_WARM; else reset_ctrl = WDOG_B_CFG_COLD_LDO12;   "WDOG_B_CFG_COLD 缺少一个选项。" 就我而言,我只是将其硬编码到我自己版本的驱动程序中,然后手动将其转入编译树。 虽然超级笨拙,但作为概念验证还是行之有效的。 我不确定是否有人是内核维护者,但我只是一个前端人员...   tl;dr: 1) 确保你在内核中编译了正确的 WDT 驱动程序,2) 如果你使用的是 PCA9450 PMIC,请检查稳压器驱动程序以确保它能给你完整的冷RESET流程。   希望对大家有所帮助! Re: imx8m reset without WDOG_B signal usage 我最近遇到了这个问题,发现它与 PSCI cpu-idle 有关。如果你禁用 CONFIG_ARM_PSCI_CPUIDLE,或者使用 cpuidle.off=1 启动这通常会禁用 cpuidle 我发现系统正在按预期进行热RESET。不过,我不确定是什么原因造成了这种情况。 Re: imx8m reset without WDOG_B signal usage @siva_prabhakara你找到解决这个问题的固件了吗? Re: imx8m reset without WDOG_B signal usage 你好,我在基于 imx8mm 的自定义板上遇到了同样的问题。Uboot “RESET” 命令按预期运行,但是linux的 “重启” 命令挂起,没有任何特定的错误输出。 有人知道如何在不修改硬件的情况下解决这个问题吗? 提前感谢! Justin D. Re: imx8m reset without WDOG_B signal usage 你好,西瓦、 就像沃尔夫冈一样。在我们"修复了" ,或者让我说是优化了硬件之后,我们就没有再调查这个问题了。我们仍然使用内核 5.4.47。与此同时,还推出了更新的版本。也许其中包含一个修复程序。但老实说,我并不指望它。 如果你能找到任何软件修复方案,那就更有意思了。 顺祝商祺! 塞德里克 Re: imx8m reset without WDOG_B signal usage @cedric_starke 我在 imx8mm (5.4) 上也遇到了同样的问题kernel),您或其他人是否能够找出这里的软件问题? Re: imx8m reset without WDOG_B signal usage 你好,沃尔夫冈、 谢谢您的回答。我们也是用这种方法来完成重启工作的。幸运的是,我们已经 打算幸运的是,我们在电路板布局中已经考虑到了这一点,即使用一个未配备的电桥。在下一个版本中,我们将插入这座桥梁。 但在我看来,这是imx8m迷你软件包的软件问题。因为 uboot 可以在没有 POR_B 信号的情况下进行 RESET,而且 imx8m nano 也可以在 uboot 和 linux 中进行 RESET。 我们使用 4.14.98 和 5.4.47 版本对此进行了测试。在这两个"问题中," 。这只是为阅读本主题的其他人提供信息。 如果有人发现了软件错误,请随时发布,因为我们仍然对正确的解决方案感兴趣。 顺祝商祺! 塞德里克 Re: imx8m reset without WDOG_B signal usage 你好,塞德里克、 我们没有找到/搜索解决方案,但在下次重新设计中通过 100k PU 将 WDOG_B 引脚连接到 SOC RESET 引脚 (POR_B)。这样我们就可以在不触摸 PMIC 的情况下通过 看门狗 RESET SOC。 此致, 沃尔夫冈 Re: imx8m reset without WDOG_B signal usage 你好@wolfgang_baer、 我知道,这个问题其实并不新鲜,但我们的 imx8m mini 也遇到了同样的问题,我只想请教你们解决这个问题的办法。 此外,我们还发现,IMX8M mini 也会出现这种情况。我们为 imx8m nano 使用了相同的印刷电路板,该 SOC 能够正确重启。 因此,如果您能与我们分享您最后的状态,我们我们将不胜感激. 顺祝商祺! 塞德里克 Re: imx8m reset without WDOG_B signal usage 你们好 试着退出 SRSR RESET 状态寄存器 (0x3039005c)。它可以工作,但看起来状态从未改变过。无论我如何启动/重启/重置/关机/wdog/,i.mx8mm src_reg srsr 每次都是 0x01。 是否存在无法正常工作的已知问题? 还是我做错了什么? u-boot-imx_2019.04 u32 get_imx_reset_cause(void) { struct src *src_regs = (struct src *)SRC_BASE_ADDR; i@@ f (reset_cause == -1) { printf (" 0 src_regs %.8x\n ", src_regs); printf (" 0 src_regs %.8x\n ", & src_regs); printf (" 0 src_regs-> srsr %.8x\n ",src_regs - > srsr); printf (" 0 src_regs-> srsr %.8x\n ", & src_regs-> srsr); reset_cause = readl (& src_regs-> srsr);pr intf (" 1 重置原因 %.8x\n ", reset_cause); /* 保留 U-Boot 的值 */ #if! 已定义 (CONFIG_SPL_BUILD) & &! defined (CONFIG_ANDROID_BOOT_IMAGE) /* 稍后我们将读取安卓的 ssrs 状态,因此我们不会 * 在此处 清除状态。 */ writel (reset_cause,& src_regs-> srsr);printf (" 2 写入RESET原因 %.8x\n ", & src_regs-> srsr); printf (" 2 读取RESET原因 %.8x\n ",src_regs-srsr);printf (2 读取RESET原因 %.8x\n,src_regs-srs r) > srsr); #endif writel(reset_cause,& src_regs-> srsr); printf(" 3 2写入RESET原因 %.8x\n ",& src_regs-> srsr); printf(" 3read RESET原因 %.8x\n ", src_regs-> srsr);} 返回 reset_cause; } 感谢您的帮助。 Re: imx8m reset without WDOG_B signal usage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,雷哈尼、 对不起--没有。我还没有找到解决这个问题的办法。 基本上,恩智浦表示要RESET PMIC——但这对我们来说也是行不不通的。 如果我们找到了解决方案,我会在这里报告。 此致, 沃尔夫冈 Re: imx8m reset without WDOG_B signal usage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,沃尔夫冈、 我也有同样的问题。你找到答案了吗? 此致, Reyhaneh Re: imx8m reset without WDOG_B signal usage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好 让我看看原理图。我会提出申请。 此致, 尤里。 Re: imx8m reset without WDOG_B signal usage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,尤里、 是的,我们使用的是最新版本的 DDR 工具(V2.10)和最新的 LPDDR4 Excel 表(v23)。 压力测试可以在我们的板上正常运行。 如果我禁用 WDOG_B 断言功能,我还能在 EVK 板上看到同样的效果: -看门狗在 u-boot 提示符下工作-> 它会重置设备 -启动到 linux 提示符后-> 同样的监视程序调用只会使设备停止/冻结 此致, 沃尔夫冈 Re: imx8m reset without WDOG_B signal usage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好 由于 i.MX8M 的 SPL 包含用于 DDR PHY 和 DDR 控制器初始化 以及 DDR PHY 培训的代码,因此通常建议使用 DDR 工具中的最新固件; 它应提供所有必要的初始化。 此外,让压力测试生效是有意义的。 https://community.nxp.com/docs/DOC-340179 此致, 尤里。 Re: imx8m reset without WDOG_B signal usage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,尤里、 在 u-boot 中对内存进行一次简单的 mtest 显示没有错误。 此外,在板启动期间进行的DDR工具压力测试现在显示出错误。 关于您在第一个帖子中提到的内存命令的文档/更改,您有什么提示吗? 谢谢! 沃尔夫冈 Re: imx8m reset without WDOG_B signal usage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好 是否可以对U-boot进行简单的内存测试-以排除内存问题? 此致, 尤里。 Re: imx8m reset without WDOG_B signal usage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,尤里、 感谢您的快速回复。我知道有人建议断电,但如前所述,我们目前没有选择。 关于记忆。您的意思是在 SPL 中的 LPDDR4 初始化代码中执行上述命令吗? 您是否有关于这些命令的文档提示,因为我目前只是在 SPL DDR 初始化中使用 DDR 工具生成的 初始化代码。 你是否也知道为什么它能在 u-boot(命令提示符下)运行,但在加载 Linux 之后不行? 记忆方面有什么不同? 谢谢,非常感谢你们的帮助、 沃尔夫冈 Re: imx8m reset without WDOG_B signal usage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好    建议断开板上所有元器件的电源(电压), 即使处理器RESET,因为某些外部设备,例如eMMC,SD, QSPI、DDR)可能处于不可预测的状态;因此系统启动不起作用。   我认为,在您的案例中,记忆就是原因。也许有必要发布 在 LPDDR 初始化开始时使用 preCharge All 命令并 RESET 读取 FIFO 指针。   祝您愉快, Yuri ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"标记正确" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请另开新主题并参考已关闭的主题。
記事全体を表示
TapLinx Package Key & DESFire EV3 Default PICC Key Clarification I recently procured MIFARE DESFire EV3 cards and would like to confirm whether they use a known factory-default PICC master key (e.g. all-zero AES/2K3DES/DES), or if the key is card-vendor dependent. My intention is to verify this via the TapLinx Android sample application by authenticating to the PICC (KeyNo 0). However, to build the sample APK, a valid TapLinx packageKey must be defined in the code:   static final String packageKey = ""; Before proceeding with building the test app, could you please confirm: Whether there is a documented default PICC master key for DESFire EV3 cards, and How to generate or obtain the appropriate TapLinx packageKey for my application. Thank you for your guidance. Code examples Example code Getting Started Licensing Re: TapLinx Package Key & DESFire EV3 Default PICC Key Clarification Hello, Thank you for your interest in our products. As you may already know, MIFARE DESFire is a restricted product and requires to have an NDA in order to get further information. My recommendation is to please contact any of our Distributors. Answering your second question, please take a look at the TapLinx site: TapLinx SDK for MIFARE, NTAG, ICODE and UCODE | NXP Semiconductors In the Documentation section, you will find the relevant User Guide for your development platform. Each document explains how to create your own user and register your application.
記事全体を表示
S32K344 ハングアップ問題 MCU: S32K344 OS: FreeRTOS S32 Design Studio: 3.4.3 問題: I2C 書き込みブロッキングによる MCU のハング (タイムアウトなし) こんにちは、チーム S32K344 MCU をベースにしたカスタム ボードを使用しています。特定の I2C エラー条件下では実行時に MCU がハングするという問題が発生しています。 I2C インターフェースを介して接続された IMU スレーブ デバイスがあります。時々、次のようなとき: IMUに電源が入っていない、または I2C書き込み操作が失敗する(例:ACKなし/バススタック) I2C 書き込み API はタイムアウト状態を返さないか、タイムアウト状態になりません。その結果、 I2C トランザクションを実行する FreeRTOS タスクが無期限に停止し、最終的にアプリケーションがハングすることになります。 観察: この問題は、スレーブが応答しないか、バスが低く保持されている場合に発生します。 I2C ドライバは転送の完了を待機してブロックしているように見えます。 RTOS またはドライバ レベルではタイムアウトまたは回復メカニズムはトリガーされません。 サポートのリクエスト: S32K344 上の I2C トランザクションにタイムアウトを追加または強制するにはどうすればよいですか? スタックした I2C バス (SDA/SCL が低く保持される) を回復するための推奨される方法はありますか? S32K3 デバイス上のFreeRTOS で I2C を安全に使用するベスト プラクティスは何ですか? このシナリオを堅牢に処理する NXP のドライバ構成または例はありますか? あらゆるガイダンスや参考資料をいただければ幸いです。 ありがとう、よろしく。 ヴィナイ Re: S32K344 Hanging issue こんにちは@vinaykl 、 非常に古い RTD をお持ちです。 何か理由があるのでしょうか? RTD 2.0.0 と現在の RTD 7.0.0 の間では多くのバグが修正されています。 I2C ドライバのブロッキング API を使用すると想定しています。 代わりに、GetStatus() とタイムアウトとともに非同期転送 API を使用してください。 スレーブデバイスが SDA を低く保持し続ける場合は回復できます。I2C ユーザーマニュアルを参照してください。 セクション3.1.16バスはクリア https://www.nxp.com/docs/en/ユーザーガイド/UM10204.pdf   RTD ドライバには回復用の API がありません。 例としてはAN4803があります I2C復元関数の定義 https://www.nxp.com/docs/en/application-note/AN4803.pdf よろしくお願いいたします。 ダニエル
記事全体を表示
S32K3 FLEXIO数据异常 我在使用S32K314 RTD400的SAI0(主机)与FLEXIO模拟的I2S(从机)通讯,SAI只使用d0,MUX_DISABLE,word width为16,发现从机接收到的数据都是主机的数据循环左移一位得到的数据,比如发送0x8002,在代码里面从机得到的数据是0x5,改了很多配置都没用,最后勾选了下图中的Enable User Mode Support,数据就正常了,这是为什么 SAI配置如下 Re: S32K3 FLEXIO数据异常 Hi@Jason22 我查看了编译的结果,这个选项你勾不勾选完全不影响运行的结果。 按照你提供的工程,我勾选和不勾选Enable User Mode Support所编译生成的结果是完全一样的,这说明这不会导致你所说的问题。 Re: S32K3 FLEXIO数据异常 编译没问题,是出现没有”Mcal.h“文件嘛,如果是的话,清除工程,再次编译就没问题了(不知道这是不是IDE版本的问题,S32DS 3.6似乎没出现过这个错误)。如果不是这个错误,方便说一下编译时出现了什么问题嘛 Re: S32K3 FLEXIO数据异常 Hi@Jason22 抱歉,我看错了,这不是IDE版本的原因,是我将Enable User Mode Support看成了Enable Flexio Common Support 你能再次检查下你提供的工程吗,我无法编译成功。 Re: S32K3 FLEXIO数据异常 没有勾选"启用用户模式支持",配置还是有效的 不勾选"Enable Flexio Common Support",配置才无效,我使用的是 S32DS 3.5.14,这和 S32DS 版本有关嘛 Re: S32K3 FLEXIO数据异常 嗨@Jason22 你不勾选 "启用用户模式支持"下面的配置不是不生效了嘛 Re: S32K3 FLEXIO数据异常 我也比对了,发现也是一样,重新运行了一下程序,发现勾选后,又出现了数据循环左移的情况,但我第一次勾选的时候,数据确实是正常了,重复跑了几次也正常,不知道是什么因素导致的。 那我想询问一下,是我的配置还是代码有问题嘛,为什么从机接收到的数据刚好是主机发送的数据循环左移的结果?谢谢 主机发送的数据 从机收到的数据 Re: S32K3 FLEXIO数据异常 Hi@Jason22 逻辑分析仪自己去测一下你发出的数据是不是正确的
記事全体を表示
S32K148 locked up S32K148 MCU use J-LINK to brush flash by mistake, then use J-LINK link to get the following error, JLINK unsecured is useless, how to solve it? Connecting ... - Connecting via USB to probe/ programmer device 0 - Probe/ Programmer firmware: J-Link V9 compiled Dec 13 2022 11:14:50 - Probe/ Programmer S/N: 25994751 - Device "S32K148 " selected. - Target interface speed: 50 kHz (Fixed) - VTarget = 3.301V - ConfigTargetSettings() start - ConfigTargetSettings() end - Took 305us - InitTarget() start - SWD selected. Executing JTAG - > SWD switching sequence. - Protection bytes in flash at addr. 0x400 - 0x40F indicate that readout protection is set. For debugger connection the device needs to be unsecured. Note: Unsecuring will trigger a mass erase of the internal flash. - Executing default behavior previously saved in the registry. - Device will be unsecured now. - Timeout while unsecuring device. Erase never stops. - InitTarget() end - Took 2.17s - Found SW-DP with ID 0x2BA01477 - DPv0 detected - CoreSight SoC-400 or earlier - Scanning AP map to find all available APs - AP[2]: Stopped AP scan as end of AP map has been reached - AP[0]: AHB-AP (IDR: 0x24770011, ADDR: 0x00000000) - AP[1]: JTAG-AP (IDR: 0x001C0000, ADDR: 0x01000000) - Iterating through AP map to find AHB-AP to use - AP[0]: Skipped. Could not read CPUID register - AP[1]: Skipped. not an AHB-AP - Attach to CPU failed. Executing connect under reset. Re: S32K148锁死 Hi@dongkuili First of all, there is no guarantee that it will be recovered, because the encrypted segment you wrote the wrong persistence value to may not support mass erase erasure. You can read the document 6. S32K1xx series MCU chip lockup (lockup) phenomenon https://mp.weixin.qq.com/s?__biz=MzI0MDk0ODcxMw== &mid=2247485716 &idx=1 &sn=979631aa2385a4e3c7651ee75ee252b4 &chksm= e9124d92de65c484f1cfec7de451958cfd5cf818c46a4f71a7d3dd8a522af229c5a18aad58ff &scene=21#wechat_redirect Re: S32K148锁死 Thanks for the reply. I read the linked documents and the chip manual carefully, and I still can't recover by mass erase after several attempts. I want to use S32FlashTool_v2.3.4, but it doesn't support S32K148, is there any S32FlashTool that supports S32K148? Re: S32K148锁死 Hi@dongkuili It has nothing to do with what software you are using, follow what the article says and go straight to testing the waveform of the RESET pin to determine if it might be recovered, if not then don't waste your time.
記事全体を表示
[Haudi Crypto, Inc.][SE050]Proposal for BIP32 Support in SE050 Hi Experts, The customer is Haudi Crypto, Inc. (Subsidiary of Haudi, Inc.), who is developing a hardware cryptocurrency wallet using the SE050. During development, they identified enhancements that would benefit this use case—specifically, native BIP32 key derivation support. Is it possible to release a custom type for their application? Please kindly refer to the attachment for more details. More backgrounds as shown below: So far their Openloop Wallet is still under development and has not yet been released, and they will be the distributor. For the corporate version, they are in negotiations with several Japanese financial institutions and stablecoin operators. It has been well-received. For the general public version, they plan to first launch it through Japanese crowdfunding, and they are currently preparing for this. They also plan to sell it on Amazon afterwards.  Customer contactor info: Company Name: Haudi Crypto, Inc. (Subsidiary of Haudi, Inc.) Contact Information: Kazunori Asada, CEO Email: [email protected] Thanks in advance for any help! Best Regards, Kan  Re: [Haudi Crypto, Inc.][SE050]Proposal for BIP32 Support in SE050 Thank you for sharing your detailed proposal We have reviewed your Level‑2 request. Based on our current analysis: Some parts of the BIP32 flow can already be executed inside the secure element. For example, EC point multiplication can be performed entirely within SE050, and the resulting point can be stored in an SE object. This allows certain chained operations to be kept inside the secure element boundary. However, other required steps—such as securely chaining HMAC‑SHA512 inside the secure element etc. are not feasible with the current IoT applet command set. We have taken your feedback and submitted it as an official Change Request (CR) for evaluation by our R&D team. However, any change if it happens for the generic product, it could not be in near future.  We will keep you updated as soon as we receive feedback on the CR.  Moreover, for your level 1 limitation you can consider using transient objects . Thank you
記事全体を表示
如何下载芯片的相关资源的文档 例如:S32K3xx_interrupt_map.xlsx Re: 如何下载芯片的相关资源的文档 Hi@PQF 在官网下载数据手册和指导手册。在指导手册的附件中可以找到你要的这些文档。 https://www.nxp.com/products/S32K3
記事全体を表示
FS32K144HAT0MMHT用セーフティ周辺ドライバ(SPD)に関するお問い合わせ – 入手状況と無料ソース こんにちは、チームの皆さん FS32K144HAT0MMHT MCU を使用して新しい ISO 26262 (ASIL-B) プロジェクトを開始しており、セーフティ ペリフェラル ドライバ (SPD) がどのように動作するかを理解したいと考えています。 SPD パッケージはどこからダウンロードできますか? また、NXP ソフトウェア ライセンス & サポート ポータルでは、SW32K1-SPD-D のような特定のパッケージ名が必要ですか? SPD は無料ですか、または標準の RTD/SDKs ダウンロードに含まれていますか、それとも別のライセンスが必要ですか? 初期開発で SPD ドライバを研究できるサンプルや無料ソースはありますか? SPD または関連リソースの検索に関するガイダンスがあれば幸いです。 ご回答をお待ちしています。 Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは@KAVINKUMAR7 、 S32K1 – セーフティ ペリフェラル ドライバ (SPD)には、次のドライバのみが含まれています。 S32K1用拡張MCEMドライバ、バージョン1.0.1 https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW32K1-SPD-D&_gl=1*ao7djc*_ga*M... 。 ドライバは、無料で入手できる S32K1xx 標準ソフトウェア パッケージに含まれています。 S32K1/S32M24x リアルタイム・ドライバ、ASR R21-11、バージョン 2.0.0 P04 と互換性があります。 ただし、このドライバの機能例は提供されていません。 よろしくお願いいたします。 ダニエル Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは、 この SPD は生産をサポートします。実稼働環境での使用に適しているかどうか確認していただけますか? Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは@KAVINKUMAR7 、 はい、そうです。リリースノートを参照してください。 このバージョンは RTM (製造準備完了) レベルです。 よろしくお願いいたします。 ダニエル Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは、 ご返答ありがとうございます。 最新の S32 Design Studio IDE をインストールし、リリースノートに記載されているように RTM (Ready to Manufacture) RTD SDK を使用しました。CAN サンプル プロジェクトは、提供された SDK と構成ツールを使用して直接生成されました。 ただし、この設定でも、次のビルド エラーが発生します。 致命的なエラー: Port_Ci_Port_Ip_Types.h:そのようなファイル、又はディレクトリはありません エラー発生場所: ボード/Port_Ci_Port_Ip_Cfg.c:56 #include "Port_Ci_Port_Ip_Types.h" Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは@KAVINKUMAR7 、 これは互換性の問題のようです。 正しい S32DS IDE バージョンでは、互換性のある RTD と、SPD リリース ノートに指定されている SPD のみをインストールする必要があります。追加の RTD バージョンは存在しない必要があります。複数の RTD バージョンが必要な場合は、個別の IDEs をインストールすることをお勧めします。 追加の質問は SPD とは関係がなくなったため、さらにサポートが必要な場合は新しいThreadを作成してください。 よろしくお願いいたします。 ダニエル
記事全体を表示
无法将 iMX93EVK 中的 lpuart1 更改为 lpuart7 在过去的一个多月里,我一直在尝试将默认控制台从 lpuart1 更改为 lpuart7。我想更改 linux 控制台和 u-boot 控制台,或者至少我想查看日志。这是为了让 iMX93EVk 的 SOC 在新的载体上工作。然而,我却无法做到这一点。这是我尝试使用的补丁。还有我发现的所有我认为可以帮助我的帖子。我错过了什么? i-MX-93-91-使用yocto项目调试控制台重定位 i-MX-Processors/Change-UART-for-imx93-in-uboot-and-kernel i-MX 处理器/imx8ULP 将 u-boot 串行控制台从 UART5 更改为 UART4 非常感谢你们的帮助,谢谢 Linux Re: Cant change lpuart1 to lpuart7 in iMX93EVK 你好 要成功地将调试控制台从 lpuart1 更改为 lpuart7,你需要修改三个关键元器件:U-启动、Arm 可信固件和 Linux 内核配置。 完整解决方案: 1.对于 U-Boot(lf_v2024.04 分支): - 修改设备树文件以更新控制台路径和引脚配置 - 更新板配置以指向 lpuart7 - 使用 imx93_11x11_evk_defconfig 作为配置基础 2. 对于 Arm 可信固件(lf_v2.10 分支): - 更改 ATF 源中的 UART 控制台位置 - 更新 IMX_LPUART_BASE 以指向 lpuart7 的基址 - 在取消设置 LDFLAGS 后使用 "make plat=imx93" 构建 3. 对于 Linux 内核: -将 bootargs 更新为引用 ttylP6(对应于 lpuart7) -更新设备树中的选定部分 该过程需要使用这些修改后的元器件重建 flash.bin 映像。另一位客户需要将 i.MX93 上的 UART1 重新映射到 UART8,也成功解决了类似问题。 此致 Re: Cant change lpuart1 to lpuart7 in iMX93EVK 谢谢,我无法确认该解决方案是否有效。我已经执行了您的所有更改,但发现错误出在硬件本身。一旦定制载体修好了,一切都测试好了,我就可以确认了。 感谢您的回复
記事全体を表示
How to measure power consumption for individual power rails on the i.MX 8M Mini LPD4-EVK? Hi, I have the i.MX 8M Mini LPD4-EVK up and running, and I would like to perform power consumption measurements on specific independent power rails, such as VDD_1V8 and NVCC_DRAM_1V1. I have located the corresponding PMIC outputs (BUCK8 and BUCK7) on the schematic, but I noticed that there are no onboard shunt resistors (sense resistors) for these lines. Could you please advise on the best method to measure the current (or power) for these rails? Thanks! Re: How to measure power consumption for individual power rails on the i.MX 8M Mini LPD4-EVK? Hello, In the case of i.MX8MM we do not have a board to do the power measurement in each power rail as occurs in other boards such as i.MX 8M Plus Evaluation Kit Enabling Power Measurement. If you need to measure this you need to design a new SOM board to include these shut resistors or maybe you could try to rework the board to add a shunt resistor in a trace. You can use the schematics of the mentioned board as reference to add the resistors and do the measurement. i.MX 8M Plus Power Measurement Board Design Files Best regards. Re: How to measure power consumption for individual power rails on the i.MX 8M Mini LPD4-EVK? Okay, thanks.
記事全体を表示
串行下载器 - 奇怪的问题 我在 RT1052 上遇到了一个奇怪的问题,如果我将启动引脚配置为串行启动。 它无法启动固件,也不会进入串行下载器模式(既不是 UART 或非 USB)。 但当我将 GPIO_B0_15 下拉至 GND 时,串行下载正常工作。 我找不到任何关于这个信号对启动过程的影响的文档。 - 处理器出厂时是全新的 - TXD1/RXD1 有上拉电阻 顺便说一下:烧录 BT_FUSE_SEL 串行下载后可以正常工作 我们已经开发了几个类似的电路,以前从未遇到过这个问题。
記事全体を表示
闪存中的常数 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我正在使用 IAR 工具集,设备是 MKE02Z64。我有几个常量值想放在闪存中(如果可能的话)以释放 RAM,但我找不到用 IAR 工具实现的方法。 最初,我使用的只是一个相当标准的:const uint16_t foobar; 这样一来,foobar 仍然处于数据内存中。我接下来试了试(根据我在网上找到的资料):const volatile uint16_t foobar @"FLASH"; 这没有产生任何错误或警告,但 foobar 仍在数据内存中,而不是代码内存中。 能做到吗? 谢谢! Re: const in flash memory Great explanation of how `const` works when stored in flash memory, especially for embedded systems where every byte matters. It’s interesting how efficient memory placement can tighten performance without changing logic. I recently explored similar structured info on Cass County Justice while researching data storage and organization best practices. Posts like this are helpful for bridging theory with real-world application. 很好地解释了 “const” 在闪存中存储时的工作原理,特别是对于每个字节都很重要的嵌入式系统。有趣的是,在不改变逻辑的情况下,高效的内存布局可以提高性能。最近,我在研究数据存储和组织的最佳实践时,在卡斯县司法局 探索了类似的结构化信息。这样的帖子有助于将理论与实际应用相结合。 Re: const in flash memory <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 看来 Mark Butcher 是对的--我查看了链接器的输出,实际上,const 存在闪存中。让我感到不解的是,生成的映射文件显示 const 为"Data" ,而不是"Code" ,我以为它说的是内存部分,而不是实际的数据类型。 感谢您的回复! Re: const in flash memory <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,戴夫、 请查看以下示例,了解如何将 Const 置于 IAR IDE 软件的 Flash 地址。 在 *.icf 文件中定义一个 [.我的参数] 部分的起始地址,并将该部分置于 ROM 内存中: 定义符号 __region_FlexNVM_start__ = 0x10000000; 置于 mem:__region_FlexNVM_start__ { 只读部分 .myparameter}; 在代码文件 (*.c) 中,将数据放入该部分: const char parameter1[16] @".myparameter"= {0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF}; IAR 在专用地址中放置变量的另一种方法: #pragma location=0x3000 const int test1 = 1; const int test2 @ 0x3004 = 2; 然后,我在地图文件中找到了以下结果: test1 0x00003000 0x4 数据 GB hello_world.o[1] test2 0x00003004 0x4 数据 GB hello_world.o[1] 如果我使用以下代码 #pragma location=0x3000 const int test1 = 1; const int test2 = 2; 然后只把 test1 变量放在 0x3000,把 test2 放在另一个地方,映射结果如下: test1 0x00003000 0x4 数据 GB hello_world.o[1] test2 0x000016ec 0x4 数据 GB hello_world.o[1] 将变量放入专用地址的另一种方法: 在 .icf文件定义的内存区域,如 定义符号 __ICFEDIT_region_ROM_DATA_start__ = 0x0003F800; 定义符号 __ICFEDIT_region_ROM_DATA_end__ = 0x0003FFFF; 定义区域 ROM_DATA_region = mem:[从 __ICFEDIT_region_ROM_DATA_start__   to __ICFEDIT_region_ROM_DATA_end__]; 置于 ROM_region { 只读,代码块重定位}; 在 C 代码中,例如 #define NVM_DATA _Pragma("location=\"NVM_DATA\"" ) NVM_DATA 常量 int test1 = 1; NVM_DATA const int test2 = 2; _Pragma("location=\"NVM_DATA\"" ) 与 #pragma location="NVM_DATA 相同。" 希望能有所帮助。 祝您愉快, 、 马辉 ----------------------------------------------------------------------------------------------------------------------- 注:如果本帖回答了您的问题,请点击正确答案按钮。Thank you! ----------------------------------------------------------------------------------------------------------------------- Re: const in flash memory <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,戴夫 @"FLASH" 仅用于 volatile 常量。 IAR(默认)行为是将常量(全局和静态)放入 Flash,尽管严格来说,const 关键字意味着该变量具有只读属性,而不是它位于特定的内存区域中(尽管嵌入式系统通常会像这样工作是有感知)。 例如 static const unsigned char usb_language_string[] = {4, DESCRIPTOR_TYPE_STRING, LITTLE_SHORT_WORD_BYTES(UNICODE_LANGUAGE_INDEX)}; 静态常量 unsigned char manufacturer_str[] = {10, DESCRIPTOR_TYPE_STRING, 'M',0, 'a',0, 'n',0, 'u',0}; static 常量 unsigned char product_str[] = {16, DESCRIPTOR_TYPE_STRING, 'M',0, 'y',0, ' ',0, 'P',0, 'r',0, 'o',0, 'd',0}; 静态常量 unsigned char serial_number_str[] = {10, DESCRIPTOR_TYPE_STRING, '0',0, '0',0, '0',0, '1',0}; static const unsigned char config_str[] = {10, DESCRIPTOR_TYPE_STRING, 'C',0, 'o',0, 'n',0, 'f',0}; static 常量 unsigned char interface_str[] = {8, DESCRIPTOR_TYPE_STRING, 'I',0, 'n',0, 't',0}; 静态常量无符号 char *ucStringTable[] = {usb_language_strring, manufacturer_str, product_str, serial_number_str, config_str, interface_str}; 地图显示 usb_language_string 0x00003d24 manufacturer_str 0x00003d28 product_str 0x00003d34 serial_number_str 0x00003d44 config_str 0x00003d50 interface_str 0x00003d5c ucStringTable 0x1ffff11c 请注意,除了最后一个阵列外,其他阵列都放入了闪存。我无法解释为什么规则会有一些例外,而你的特殊情况可能就是这样的例外,不管是出于什么原因。 也许最好直接联系 IAR,因为我也找不到控制最后几个剩余异常的方法。幸运的是,就我所见,它只影响到极少数这类东西。 此致 Mark Kinetis:µTasker Kinetis 支持 KE:支持 µTasker FRDM-KE02Z/支持 µTasker FRDM-KE02Z40M/支持 µTasker FRDM-KE06Z 欲获得完整的"开箱即用" Kinetis 体验并加快产品上市时间
記事全体を表示
I²C Hardware Debugging I²C is used as a serial interface between chips. It is so commonplace that it is used in so many systems that no problems arise. However, sometimes even small things can get you hooked. Here we will introduce some common I²C problems and some easy debugging methods. 0. Table of Contents table of contents Anyway it doesn't work! (--; The target doesn't respond (꒪⌓꒪) Repeat start was necessary/unavailable Controllers that do not support clock stretching Multi-Controller The clock frequency is lowered Long distance routing. Noise and crosstalk can cause communication problems. Measuring Bus Capacitance SDA Line Stuck and Bus Clear Who is giving the signal? Reference materials 1. It just doesn't work! (--;   I forgot to put on the pull-up orz This is a common problem when using an I²C device for the first time. When you obtain a sample chip and try it out on a breadboard or universal board, you connect it to a microcontroller while checking the I²C signal names. At this point, it's easy to forget to attach a pull-up resistor . I²C signals have an output called " open drain ." A high-level voltage cannot be obtained unless an external pull-up resistor is attached. When trying to easily check operation using a breadboard, it is easy to forget about this resistor. Don't forget to use pull-up resistors on the SDA and SCL signals! How do you determine the pull-up resistor value? How is the value of a pull-up resistor determined? Generally, values such as 2.2 kΩ or 4.7 kΩ are used. I think many people use these values without much consideration. But what happens if a smaller or larger value is used ? A pull-up with a small resistance value can cause the problem of "not being able to pull the signal low enough." When a device outputs a low signal, current flows through the pull-up resistor. If the resistance is small, the current flowing here will be large, and this current will flow into the device that is outputting a low signal. The transistor that pulls the signal low inside the device has a resistance component, and this resistance and current create a voltage. For this reason, if the current becomes large, a higher-than-expected voltage will be generated, and a sufficiently low low-level voltage will not be obtained. Conversely, pull-up resistors with large resistance values can cause problems such as insufficient communication speeds. When a signal transitions from LOW to HIGH, the capacitance of the signal line is charged via the pull-up resistor, causing the voltage to rise. If a large resistance value is used for the pull-up, the current at this time becomes smaller, and it takes longer for the signal to rise (voltage to rise). There is a method for calculating the value of the pull-up resistor. Details are provided in Section 7 of the I²C Specification [English version (rev7)] [Japanese version (rev5)] . Generally, when using I²C fast mode (400kHz) with a pull-up voltage of 3.3V, a pull-up resistance of around 1kΩ to 8kΩ can be used without any problems [Figure 1]. Figure 1: Pull-up resistor values for I²C signal lines 2. The target doesn't respond (꒪⌓꒪)   No ACK returned!😭 I connected the microcontroller to the target, added a pull-up resistor, and checked the signal's HIGH level with an oscilloscope, but the target still did not respond . "Target not responding" means that no ACK is returned after the target address is sent. This is common in the early stages of evaluation. Many targets allow you to change the target address depending on their settings (for example, by connecting the address setting pin to power or GND), so you need to double-check which address is set. Also, even if you think you've set the address correctly, you need to check whether the address written in hexadecimal on the datasheet is a 7-bit representation (right-justified) or an 8-bit representation (left-justified). Furthermore, the microcontroller development tool (SDK) you're using may specify hexadecimal addresses in 7-bit representation (such as MicroPython) or 8-bit representation (such as Arm Mbed).💦 The I²C specification does not use either representation, and addresses are standardized to binary representation, so there is no such misunderstanding, but you should be careful when specifying them in hexadecimal.   How to check How can you specify the target address? Check this in the device specifications and development tools. Then double-check that the device address is set as intended. When checking on an actual device, for example in MicroPython the I2C class has a scan() method which displays a list of devices connected to the bus that are returning ACKs. One technique is to use this kind of function to quickly see what the settings are [Figure 2]. If the SDK you are using does not have a function like I2C::scan(), try sending addresses in order and checking for ACK/NACK. Figure 2: Testing I2C.scan() 3. Repeat starts were necessary/unavailable   Even if I communicate according to the target device specifications, I can't read the data? The I²C specification defines the signal levels and protocols in detail. Writes and reads can be performed in a defined manner on any target device. However , the method for accessing the registers and data buffers within that target is determined by the specifications of each device. For target devices with multiple internal registers, it is generally possible to specify and read/write registers using communications such as those shown in Figure 3. However, even if communications are performed in this manner, there are cases where the expected data is not read.   Repeat Start Condition When executing a write transaction to specify a register address and a read transaction to read the register consecutively, a repeated start condition is often used to start the second transaction. The repeated start condition is used to avoid the bus-free state that occurs after a stop condition before generating the next start condition. From the target device's perspective, using a repeated start condition is usually equivalent to using a stop and start condition. However, there are devices that do not do this, and for such devices you must use one of the two methods to read the registers. Some microcontroller SDKs provide an API for reading registers on I²C targets, which automatically handles access with a repeated start condition, but some microcontrollers do not support inserting a stop condition. In such cases, the API cannot be used as is, and it becomes necessary to handle the protocol at a lower level. It is important to be careful as devices and microcontroller SDKs can have "specification pitfalls" like this that you only notice later. Figure 3: Typical register access 4. Controllers that do not support clock stretching   The behavior is strange! I²C has an optional function called " clock stretching ." Even nowadays, there are rare devices that have this function. The general I²C controllers installed in many microcontrollers support this clock stretching function, so you don't have to worry about it too much, but if you are implementing your own controller, you need to be aware of this optional function.   What is clock stretching? I²C transmits and receives data according to the timing of the clock output by the controller. However, clock stretching is an option that allows the target side to make the controller wait [Figure 4]. The controller also outputs the clock via open drain. The controller monitors its own clock output and checks whether the signal is HIGH when it outputs HIGH. If the target side wants to make the controller wait, it holds this clock signal LOW. The controller knows it is being made to wait when the clock, which should be HIGH, turns LOW. If the controller ignores this target behavior, it may cause communication problems such as fewer clocks being output. Figure 4: Clock stretching 5. Multi-Controller   Also for debugging a running target device Multi-controller is also an optional feature of I²C. Multiple controllers can control communication on the same bus without affecting each other's communication.   There aren't many applications that use it There are not many cases where multiple controllers are used, except for a few applications. However, the I²C controllers built into many microcontrollers have this function. Using this function, for example, if there is a problem with a running system, you can connect another microcontroller to the I²C bus and read or overwrite the contents of each target's register settings to verify them [Figure 5]. Normal debugging involves checking the code you have written, so you probably won't have an opportunity to do this, but it may be useful when verifying an unknown system for which the source code is unavailable. Figure 5: Multi-master debugging 6. Clock frequency is lower   I thought I had set it to a 100kHz clock. There aren't many cases where the I²C bandwidth is used to its full potential. However, what if you find that communication is occurring at a clock frequency that is significantly different from the speed you intended? Clock stretching, which was introduced in the previous section, is related to frequency reduction . Below is an example at 100kHz, but the higher the frequency used, the greater this effect (rate of frequency reduction).   Check the waveform and adjust the frequency Clock stretching is a function that makes the controller wait. However, it does not only affect the target. As the signal line length increases and the number of connected devices increases, the capacitance of the bus increases. In this case, if a large resistor is used for pull-up, the rise of the signal will be slowed down. A slow signal rise time increases the time it takes for the clock to go high. After the clock goes high, the controller operates to ensure the set high hold time, resulting in a longer low-to-high transition time, which extends the low period. This causes a drop in the clock frequency [Figure 6]. Depending on the controller, you may be able to set the clock frequency in detail, or the LOW and HIGH periods of the clock. If you are concerned about the frequency, check the waveform and adjust the clock settings. 7. Long-distance routing. Noise and crosstalk can cause communication problems.   Data errors caused by waveform distortion I²C is an easy-to-use two-wire serial bus. Because it is a slow signal, it will operate stably even if the signal line is extended to a distance of a few tens of centimeters (although this depends on the environment). However, if you are not careful and consider the characteristics of I²C, you may experience unexpected behavior. High impedance, two wires Because I²C is an open-drain signal, when a HIGH level is output, the impedance of the signal line is high. With a push-pull signal, if the device outputting the signal is LOW it is close to short-circuiting to GND, and if it is HIGH it is close to short-circuiting to the power supply, but with I²C it is connected to the power supply via a pull-up resistor. If noise is picked up on the signal line here, the noise current will escape to the power supply via the resistor. In addition, the currents of each I²C signal line also affect each other, which causes crosstalk. To reduce noise and crosstalk, careful wiring is required. For example, GND or power supply wiring should be placed between the data and clock signals [Figure 7]. Alternatively, using a bus buffer is effective when transmitting over long distances via cable. However, because I²C is a bidirectional open-drain signal, standard logic buffers cannot be used as is. Various buffers are available for I²C, including those with signal voltage conversion functions and those that convert single-ended I²C to differential signals. By combining these, it is possible to create a stable and reliable system even when signal lines are run long distances. Figure 7: Crosstalk and noise 8. Measuring Bus Capacitance   Bus capacity limit... But how do you measure it? Up to 400kHz, I²C can communicate with a bus capacitance of up to 400pF. For 1MHz, I²C can communicate with a bus capacitance of up to 550pF. But how can we know this bus capacitance?   Calculate backward from the signal waveform This blog post introduces several topics related to bus capacitance, all of which point out that the rise time of signals increases. Bus capacitance can be determined from this rise time. [Figure 8] shows an example waveform. For an I²C signal pulled up to a 5V power supply with 2.2kΩ, the rise time (T) from the LOW reference voltage V OL = 1.5V to the HIGH reference voltage V OH = 3.5V is 154ns. The formula in section 7.1 of the I²C specification [English version (rev7)] [Japanese version (rev5)] is "T = 0.8473 x RC," so if we apply "C = T / (0.8473 x R)," we get approximately 82pF. Subtracting the capacitance of the probe used for measurement (15pF), we get approximately 67pF. Figure 8: Calculating bus capacitance 9. SDA Line Stuck and Bus Clear   SDA stuck at LOW and stopped working The controller and target communicate with each other based on a clock. If the number of clocks becomes inconsistent due to noise or other reasons, not only will the communication be bit-shifted, but the situation will become known as "bus stuck." Figure 9-a shows an example in which the controller thinks it has sent nine clock pulses and finished communication, but the target is still returning an ACK as the last bit.   Getting out of a stuck bus situation There are two ways to get out of this state. One is to reset the target. The other is to clear the bus. Bus clearing is described in the I²C specification [English version (rev7)] [Japanese version (rev5)] (Section 3.1.16). If SDA is stuck LOW, you can return the target state to normal by generating nine clock pulses. [Figure 9-b] shows an example where an ACK was issued at the end of a read transfer due to a programming error on the microcontroller side. The MSB of the next data to be read happened to be 0, so SDA was fixed LOW. To get out of this situation, we issue a clock nine times and clear the bus, after which we can see that the target has returned to normal. In addition, the System Management Bus (SMBus), which uses I²C as its specification, has a timeout function on top of the normal I²C specification, and is specified to automatically return to normal operation after a maximum of 35 ms has elapsed on the target device. The I²C specification does not have such a timeout provision, so once a stuck state occurs, it cannot be recovered from without resetting or clearing the bus. Figure 9-a: Example of a bus stuck Figure 9-b: Bus Clear   10. Who is sending the signal? Series resistor   Who is keeping the signal low? When looking at the bus status of the bus stack mentioned above or a multi-controller system, you may want to know which device is sending the signal. The voltage when a LOW signal is output varies depending on the drive capacity of each device, and this can tell you which device is sending the signal.   Add a series resistor and check the voltage [Figure 10] is an example of a multi-controller waveform. This waveform shows two controllers attempting to start communication at the same time, with clock synchronization and arbitration taking place. One controller (microcontroller 1) is attempting to start communication at 400 kHz, and the other controller (microcontroller 0) is attempting to start communication at 100 kHz, each driving the SCL signal. Looking at the clock waveform, we can see that the terminal of the 100kHz controller is connected to the bus via a 100Ω resistor, so when microcontroller 0 outputs a LOW, this series resistor limits its ability to draw current, causing the LOW voltage to rise slightly. By using this mechanism, we can determine which device output a LOW. Figure 10: Who is signaling?   11. Reference materials I2C Bus Specification and User Manual (Rev5.0 Japanese version) I2C Bus Specification and User Manual (Rev7.0 English version) Interface March 2024 issue (CQ Publishing) : Special feature "Serial communication from scratch [UART/I2C/SPI with Pico]" Transistor Technology Special No.161 "Measure, Measure, Measure Circuit & Technique Collection" Appendix: "Detailed Explanation of 2-wire Serial Interface I²C" - The above magazine article is an excerpt from this article. NXP Community Blog: An Overview of the I²C Bus [Originally published in Interface, March 2024 issue (CQ Publishing), " UART, I²C, SPI, CAN... Problems that can occur with various standards " pp. 101-115. The I²C-related section has been excerpted and revised for this blog post .] Change history: 2025-02-04: First Edition 2025-08-14: Corrected a typographical error in the section "3. Repeat Start was necessary/unavailable." Added a line break to the text of the section "7. Long-distance routing. Communication becomes erratic due to noise and crosstalk." 2026-01-02: Added an introductory section before the table of contents / Added a YouTube video link to the section about MicroPython. 2026-04-14: Fixed broken links. Improved readability.     ========================= We are currently unable to respond to comments in the "Comment" section of this post. We apologize for the inconvenience, but when making inquiries, please refer to `` Technical Questions to NXP - How to Contact Us( Japanese Blog) ''. (If you are already an NXP distributor or have a relationship with NXP, you may ask the person in charge directly.) I²C is used as a serial interface between chips. It is so commonplace that it is used in so many systems that no problems arise. However, sometimes even small things can get you hooked. Here we will introduce some common I²C problems and some easy debugging methods. Interface Japanese blog
記事全体を表示
CAN MCX Nx4x FlexSPI ポートA とポートB を異なるデバイスで同時に使用できますか。 こんにちは、NXPさん FlexSPI を使用してハードウェアを接続し、両方のデバイスを同時にCAN使用できますか? ポートA->NORフラッシュ ポートB->PSRAM また、参考になる構成例はありますか? どうもありがとうございます MCX N Re: Can we use MCX Nx4x FlexSPI portA and portB with different device at the same time. こんにちは、ハリー。 Spark の説明によると、device_config と clk ソースをチェックする必要がありますか? 私は見た typedef 構造体 _flexspi_config { ...... #定義されている場合(FSL_FEATURE_FLEXSPI_SUPPORT_SEPERATE_RXCLKSRC_PORTB) && FSL_FEATURE_FLEXSPI_SUPPORT_SEPERATE_RXCLKSRC_PORTB flexspi_read_sample_clock_t rxSampleClockPortB; /*!< フラッシュ読み取り用のサンプルクロックsource_bの選択。*/ #endif 1.portA と PortB を使用する場合、別々の rxclksource を使用する必要がありますか? 2. FLEXSPI_SetFlashConfig() に渡される &deviceconfig をチェックする必要がありますか? Re: Can we use MCX Nx4x FlexSPI portA and portB with different device at the same time. こんにちは、ハリー。 サンプル コードでは、PortA の NOR フラッシュ ID にアクセスする方法のみが提供されており、MCX-N5XX-EVK にコネクテッドされた PSRAM を使用して PortB にアクセスするためのコードを追加しようとしています。参考までに実験結果を以下に示します。 FlexSPI 設定: ポートA->NORフラッシュ ポートB->PSRAM テストCASE1:成功 初期PortAおよびPortAフラッシュIDの読み取り(1バイト) テストCASE2: 成功 ポートBの初期値とポートBのフラッシュIDの読み取り(1バイト) テストCASE3: 失敗 最初にポートAとポートBの両方が、アドレスを使用してポートAとポートBのフラッシュID(1バイト)を個別に読み取ります。 以下に参考用のコードスニペットを示します。PortA と PortB の状況で間違いがあったか、さらに設定が必要かどうかを確認してください。 ポートAとポートBの両方のフラッシュデバイスを初期化するためのflexspi_nor_flash_initのコード変更 ポートBデバイスを読み取るためにflashXfer.deviceAddressにオフセットを追加します。 参考までに、変更されたファイルとプロジェクト全体のアーカイブを以下に示します。 Re: Can we use MCX Nx4x FlexSPI portA and portB with different device at the same time. こんにちは SDKs サンプルを参照していますが、同時に 2 つのデバイスではなく 1 つのフラッシュ デバイスにコネクテッドされています。 2 つのデバイスを同時に動作させるには、設定が足りないのではないかと思います。 参考になるサンプル構成はありますか? または、レジスタ レベルから正しい構成を実行したことをどのように確認すればよいでしょうか? よろしくお願いします。 Re: Can we use MCX Nx4x FlexSPI portA and portB with different device at the same time. こんにちは@greatshow_chen はい、NXP MCX Nx4x では、FlexSPI ポート A とポート B の両方を同時に使用して、2 つの異なるメモリ デバイスに接続CAN。 ポートA->NORフラッシュ ポートB->PSRAM 次の点を確認する必要があります。 NOR フラッシュと PSRAM は競合するピンを共有していません。 flexspi_octal_polling_transferをCAN参照します。 BR ハリー Re: Can we use MCX Nx4x FlexSPI portA and portB with different device at the same time. こんにちは、 FlexSPI を搭載した多くの NXP マイクロコントローラ (i.MX RT シリーズなど) には、2 つの独立した FlexSPI チャネル (ポート A とポート B) があります。各ポートは、異なるタイプのメモリ デバイスと通信するように構成CAN。これにより、NOR フラッシュを 1 つのポートに接続し、PSRAM を別のポートに接続できるようになります。
記事全体を表示
MIMXRT1021 内部 RTC 振荡器的特性 我正在使用看门狗,我发现它的源时钟是 RTC 时钟。 我没有使用晶体或外部 RTC 时钟源,因此只能依靠内部环形振荡器。 对环形振荡器特性的规定不一致: 在《硬件用户指南》中,它被指定为"...片上 40 kHz 振荡器。公差为 ±50%" (表 4) 在技术数据表的第 4.1.4 节中也有类似的规格说明但是在第 4.2.4.2 节中它说 " 这个方块的频率范围约为 10—45 kHz。" 选择看门狗超时时间有时是一种微妙的平衡行动,必须容许源时钟容差 +/-50%。 我的问题是 1.实际名义振荡频率是多少?如果不是 32 千赫,为什么不是? 2.如果标称频率不是 32kHz,那不就意味着看门狗超时已经出错了吗? 3.它随温度有何变化?热的时候是加速还是减速? 4.+/-50% 是否包括温度变化? 谢谢! 亚历克斯 i.MX RT102x Re: MIMXRT1021 characteristics of internal RTC oscillator 你好@alex_conway,很抱歉这么晚才回复你。 很抱歉造成您的困惑。我想说的是,我之前与你们分享的数据确实是用于生产的: 32kHz +/- 50% -40C 至 105C。 BR Habib Re: MIMXRT1021 characteristics of internal RTC oscillator 嗨,哈比卜 数据表中的所有信息均经过生产测试。 哪个数据表中包含哪些信息?请您回到我的原帖: "在《硬件用户指南》中,它被指定为"...片上 40 kHz 振荡器。公差为 ±50%" (表 4) 在技术数据表的第 4.1.4 节中也有类似的规格说明但是在第 4.2.4.2 节中它说 " 这个方块的频率范围约为 10—45 kHz。" 其中没有任何一项注明在 -40C 至 105C 温度范围内的频率为 32kHz +/- 50% ,也没有任何一项在表格中列出,而这是制造商通常会遵守的规格。 谢谢! 亚历克斯 Re: MIMXRT1021 characteristics of internal RTC oscillator 你好,@alex_conway、 所以,为了明确起见,您是说 +/-50% 包括所有可能的变化,包括初始值和从 -40C 到 105C 的温度? 是。初始值和温度都包含在这个百分比中 是否在生产中进行了测试?- 即所有芯片是否都经过 -40C 至 105C 的测试,以确保振荡器频率在 +/-50% 或 32kHz 范围内? 数据表中的所有信息均经过生产测试。 BR Habib Re: MIMXRT1021 characteristics of internal RTC oscillator Hiabib, 所以,为了清楚起见,您是说 +/-50% 包括所有可能的变化,包括初始值和从 -40C 到 105C 的温度? 是否在生产中进行了测试?- 即所有芯片是否都经过 -40C 至 105C 的测试,以确保振荡器频率在 +/-50% 或 32kHz 范围内? 谢谢 Alex Re: MIMXRT1021 characteristics of internal RTC oscillator 您好@alex_conway, 正在回答您的问题: 既然您声明标称频率为 32kHz,那么无论振荡器运行在什么频率下,看门狗超时时间是否都以标称的 32.786kHz 为参考? WDOG 的时钟频率来自振荡器。如果振荡器的工作频率低于 32 kHz,这一偏差将直接影响 WDOG 的定时。 因此,内部振荡器有助于加快启动速度并提供防篡改保护,但不应成为 32 kHz 时钟的唯一来源。 +/-50% 中有多少是初始值公差,多少是温度变化? 正如我在上一篇文章中提到的,温度导致的频率偏差受多种因素影响,可能无法预测。不过,在 -40°C 至 105°C 的工作温度范围内,变化将保持在 ±50% 之内。 BR 哈比卜 Re: MIMXRT1021 characteristics of internal RTC oscillator 嗨,哈比卜 感谢您的回答,我有几个后续问题: 既然您声明标称频率为 32kHz,那么无论振荡器运行在什么频率下,看门狗超时时间是否都以标称的 32.786kHz 为参考? +/ -50% 中有多少是初始值容差,有多少是温度变化? 谢谢! 亚历克斯 Re: MIMXRT1021 characteristics of internal RTC oscillator 你好,@alex_conway、 对不起,我的回复晚了。回答您的问题 1.实际名义振荡频率是多少?如果不是 32 千赫,为什么不是? 标称频率为 32 kHz,但根据工艺变化和温度条件,其变化幅度可达 ±50% 。 2.如果标称频率不是 32kHz,那不就意味着看门狗超时已经出错了吗? 您能否提供更多细节,说明您目前是如何测试 WDOG 超时的? 3.它是如何随温度变化的? 温度导致的频率偏差受多种因素影响,可能无法预测。不过,在 -40°C 至 105°C 的工作温度范围内,变化将保持在 ±50% 之内。 4.+/-50% 是否包括温度变化? 是的,±50% 公差考虑了温度变化以及工艺变化。 BR Habib Re: MIMXRT1021 characteristics of internal RTC oscillator 你好 Habib, 我没用 RT1020-EVK,我的板没有 RTC 时钟或水晶。RTC_XTALI 引脚连接至接地,RTC_XTALO 引脚开路。 谢谢 Alex Re: MIMXRT1021 characteristics of internal RTC oscillator 你好,@alex_conway、 我在内部询问,以便获得更多有关标称值和温度对该振荡器影响的信息。感谢您的耐心等待。 与此同时,我还有一个问题:能否请您详细介绍一下目前是如何测试 WDOG 超时的?如果您使用 RT1020-EVK,请注意它包含一个 32kHz 的外部振荡器,这意味着它不依赖于内部振荡器: BR Habib
記事全体を表示
MIPI-CSI-2 とベイヤーパターンカメラ (RAW10) を使用した i.MX93 こんにちは、 カスタムの i.MX93 ベースのボードを持っています。提供されている CSI-2 インターフェースを使用して、ベイヤーパターン カメラ (IMX327) で RAW10 データを転送したいと考えています。 デバイスツリーの設定とプレスリリース、製品ニュース-ctlの設定はSO far正しいのですが、パイプラインを開始するとdwc-mipi-csi2からIRQストームが発生し、「 IPIインターフェース致命的イベント情報」カウンタが増加します。INT_ST_IPI_FATALレジスタの値は0x2aで、IPI FIFOオーバーフローを示しています。IPIがIRQを1つも持っていないため、ISIにデータをプッシュしていないのではないかと考えています。 https://community.nxp.com/t5/i-MX-Processors/About-settings-to-operate-ov5640camera-on-i-MX93EVK/mp/1716885/highlight/true#M212016を参照何らかの特別な設定があるようです。これらの値をRAW10に適合させようとしましたが、CAMERA_MUX[DATA_TYPE]の値0x31(ユーザー定義16)について疑問がありました。CSI-2 データ型 RAW10 の場合、これが 0x2b ではなくユーザー定義であるのはなぜですか? IPI エラーの原因は何でしょうか?この問題をさらにデバッグするにはどうすればよいでしょうか? 感謝と敬意を表します。 アレクサンダー Re: i.MX93 using MIPI-CSI-2 with a Bayer Pattern camera (RAW10) アップデートはありますか?Omnivision 9732でも同じ問題が発生しています Re: i.MX93 using MIPI-CSI-2 with a Bayer Pattern camera (RAW10) こんにちは@brian14さん、 i.MX93 と RAW10/12 Bayer データを出力するカメラ センサでも同じ問題が発生しています。 何かアイデアや提案はありますか? よろしくお願いします。 Re: i.MX93 using MIPI-CSI-2 with a Bayer Pattern camera (RAW10) こんにちは、 連絡あった?もう1ヶ月が経ちました。 ありがとう、アレクサンダー Re: i.MX93 using MIPI-CSI-2 with a Bayer Pattern camera (RAW10) こんにちは、 このトピックに関して何かニュースはありますか? ありがとう、そしてよろしく。 アレクサンダー Re: i.MX93 using MIPI-CSI-2 with a Bayer Pattern camera (RAW10) こんにちは@steinaさん、 NXP サポートにお問い合わせいただきありがとうございます。 このCASEについては社内チームで検討し、できるだけ早くお問い合わせいたします。 すてきな一日を!
記事全体を表示
clrc663 lpcd i 和 q 值 i 得到 0x00 我正在使用 clrc663 作为读卡器我在那里实现了 lpcd 模式我在运行 lpcd 校准功能时遇到了问题我得到了 i 而且 q 值是 0x00 我从天线得到的是什么问题怎么解决这个问题 我使用的这个函数   /* 执行 LPCD 校准 */ phStatus_t Calibrate_LPCD(uint32_t dwLPCDDemo, uint32_t *pdwLPCDRefValue) { phStatus_t wStatus; uint8_t bValueI = 0; uint8_t bValueQ = 0; uint8_t bVersion = 0; uint8_t bDigitalFilter = PH_ON; uint16_t wDetectionOption = PHHAL_HW_RC663_FILTER_OPTION1; uint16_t wPowerDownTimeMs = LPCD_POWERDOWN_TIME; uint16_t wDetectionTimeUs = LPCD_FIELD_ON_DURATION; DEBUG_PRINTF("\nLPCD 校准开始。"); phhalHw_FieldOn(pHal); phhalHw_Wait(pHal, PHHAL_HW_TIME_MILLISECONDS, 5);   /* 配置 LPCD 模式默认值,以执行 LPCD 校准循环。 * 提供输入参考 I 和 Q 值为零,并将检测时间提供给 * 在此持续时间内打开射频,使用 I 和 Q 通道值测量负载变化。 * 配置合适的掉电时间以节省 RC663 读卡器IC 的功耗。*/ wStatus = phhalHw_Rc663_Cmd_Lpcd_SetConfig(pHal,PHHAL_HW_RC663_CMD_LPCD_MODE_DEFAULT、 bValueI、bValueQ、wPowerDownTimeMs、wDetectionTimeUs); CHECK_STATUS(wStatus); DEBUG_PRINTF("\nphhalHw_Rc663_Cmd_Lpcd_SetConfig."); /* 读取版本寄存器,以区分 RC663 Old(RC66301、RC66302)和 RC663 Plus(RC66303)。*/ wStatus = phhalHw_Rc663_ReadRegister(pHal,PHHAL_HW_RC663_REG_VERSION,&bVersion); DEBUG_PRINTF("\nphhalHw_Rc663_ReadRegister."); CHECK_STATUS(wStatus); 如果 (bVersion == PHHAL_HW_CLRC663PLUS_VERSION)     { /* 配置充电泵,使其具有较高的检测范围。 * 启用电荷泵会在检测阶段增加功率级 * 探测范围。这导致平均电流消耗增加。*/ wStatus = phhalHw_SetConfig(pHal,PHHAL_HW_RC663_CONFIG_LPCD_CHARGEPUMP,PH_ON); CHECK_STATUS(wStatus); DEBUG_PRINTF("\nphhalHw_SetConfig."); /* 配置数字滤波器会触发信号 RC663 Plus 算法以获得倍数的平均值 * 检测 I 值和 Q 值的变化。这反过来又延长了射频开启时间 * 增加平均电流消耗。*/ wStatus = phhalHw_SetConfig(pHal,PHHAL_HW_RC663_CONFIG_LPCD_FILTER、 ((uint16_t)(bDigitalFilter)|wDetectionOption)); CHECK_STATUS(wStatus);    }   /* 执行 LPCD 校准周期并获取 LPCD 参考 I 和 Q 值。*/ wStatus = phhalHw_Rc663_Cmd_Lpcd_GetConfig(pHal,&bValueI,&bValueQ); DEBUG_PRINTF("\nphhalHw_Rc663_Cmd_Lpcd_GetConfig."); CHECK_STATUS(wStatus);   *pdwLPCDRefValue = ((bValueI) | (bValueQ<< 0x8)); DEBUG_PRINTF("\npdwLPCDRefValue.");   DEBUG_PRINTF("\nLPCD 校准成功。");   返回 PH_ERR_SUCCESS; } 然后我在主 while 循环中调用 /* ------------------------------------------------------------------ * 开机后运行一次 LPCD 校准 * ------------------------------------------------------------------ */ phStatus_t LPCD_Calibrate(void) { phStatus_t status; uint32_t refVal; char dbg_buf[64]; // 确保在校准前开启 RF phhalHw_FieldOn(pHal); phhalHw_Wait(pHal,PHHAL_HW_TIME_MILLISECONDS,5); status = Calibrate_LPCD(LPCD_DEMO_MODE_DEFAULT,&refVal); // 校准后关闭射频 phhalHw_FieldOff(pHal); if (status == PH_ERR_SUCCESS) { gLpcdValueI = (uint8_t)(refVal& 0xFF); gLpcdValueQ = (uint8_t)((refVal 0xFF)); gLpcdValueQ = (uint8_t)((refVal 0xFF)).>> 😎 & 0xFF); gLpcdCalibrated = 1; sprintf(dbg_buf,"LPCD Calibration OK (I=0x%02X, Q=0x%02X)\r\n", gLpcdValueI, gLpcdValueQ); DEBUG_UART2((unsigned char*)dbg_buf, strlen(dbg_buf)); } else { DEBUG_UART2((unsigned char*)"LPCD Calibration FAILED\r\n", 28); } return status; } 如果 (!lpcdCalibrated)     { 如果 (LPCD_Calibrate() == PH_ERR_SUCCESS) { lpcdCalibrated = 1; // 标记为已完成 DEBUG_UART2((unsigned char*)"LPCD Calibration OK\r\n", 23);          } 不然 { DEBUG_UART2((unsigned char*)"LPCD Calibration FAILED\r\n", 28);      }    } Re: clrc663 lpcd i and q value i getting 0x00   您好,先生, 非常感谢您与我们分享您的示意图。不过,我还是要问一下你们天线的史密斯图。我们确实有一份应用笔记,其中显示了使用廉价的纳米VNA进行这些测量的步骤。 Re: clrc663 lpcd i and q value i getting 0x00 我在这里附上我的硬件测试和原理图,在正常模式下,我得到的是 uid,这不是问题;在 lpcd 模式下,我得到的是 0x00,0x00 的 q 值。在此查看我的测试文件。 Re: clrc663 lpcd i and q value i getting 0x00 抱歉,但是对自定义板的支持非常有限。   要提供任何具体信息,我需要您的硬件,因为评估套件的天线设置配置与您的配置存在很大差异。   不过,您是否介意分享一下天线的史密斯图和原理图,这将是我们提供良好建议的一个很好的起点。   正如我在上一篇文章中提到的那样,我们建议从一开始就遵循一些步骤。其中之一是将我们的 EVK 与您的新天线和新的匹配电路一起使用。所有这些都显示在我们的许多文档中。请看 NFC天线设计|恩智浦半导体视频2。   发送 RF 开启命令后,I 和 Q 值应显示与 0x0 不同的值。 Re: clrc663 lpcd i and q value i getting 0x00 我使用的是带有 stm32 硬件的定制 PCB Clrc663,只有在软件中天线调谐是正确的,我使用了 nfcrdlibEx6_rc663_LPCD_Demo.c 库中的校准演示代码,但 i 和 q 值均为 0x00,然后我使用错误寄存器来确定我在其中出现了什么错误。 printf debug i getting === EEPROM / LPCD 检查开始 === VERSION(0x7F)=0x1A ERROR(before)=0x00 ERROR(after LOADREG)=0x80 > > > EEPROM 错误 (0x80) 仍然存在。LPCD 可能无法正确校准! === EEPROM / LPCD 检查完成 === // 这是代码 phStatus_t Rc663_EepromInitAndCalibrateLPCD( phhalHw_Rc663_DataParams_t *pHal, uint32_t *pdwLPCDRefValue) { phStatus_t status; uint8_t bVersion, bIrq1, bErr; uint8_t bValueI = 0, bValueQ = 0; char dbg[64]; uint8_t eepromVal; uint8_t addr; sprintf(dbg,"\r\n=== EEPROM + LPCD Init ===\r\n"); DEBUG_UART2((uint8_t*)dbg, strlen(dbg)); /* 1.读取芯片版本 */ status = phhalHw_Rc663_ReadRegister(pHal, PHHAL_HW_RC663_REG_VERSION,&bVersion); CHECK_STATUS(status); sprintf(dbg,"VERSION(0x7F)=0x%02X\r\n", bVersion); DEBUG_UART2((uint8_t*)dbg, strlen(dbg)); /* 2.清除任何现有错误 */ phhalHw_Rc663_ReadRegister(pHal, PHHAL_HW_RC663_REG_ERROR,&bErr); sprintf(dbg,"ERROR(before)=0x%02X\r\n", bErr); DEBUG_UART2((uint8_t*)dbg, strlen(dbg)); /* 3. 强制将 LOADREG 从 EEPROM 写入寄存器 */ status = phhalHw_Rc663_WriteRegister(pHal, PHHAL_HW_RC663_REG_COMMAND, PHHAL_HW_RC663_CMD_LOADREG); CHECK_STATUS(status); /* EEPROM 加载稍有延迟 */ phhalHw_Wait(pHal, PHHAL_HW_TIME_MILLISECONDS, 5); /* 4.再次检查错误寄存器 */ phhalHw_Rc663_ReadRegister(pHal, PHHAL_HW_RC663_REG_ERROR,&bErr); sprintf(dbg,"ERROR(after LOADREG)=0x%02X\r\n", bErr); DEBUG_UART2((uint8_t*)dbg, strlen(dbg)); if (bErr& PHHAL_HW_RC663_BIT_EE_ERR) { sprintf(dbg,"> > > EEPROM 错误 (0x%02X) detected!\r\n" 、berR); DEBUG_UART2 ((uint8_t*) dbg、strlen (dbg)); /*---EEPROM 转储(前 16 个字节用于调试)---*/ for (addr = 0;addr < 0x10;addr++) { phalHW_rc663_cmd_reade2 (phAL,addr,1,& eePromade2) val); spr intf (dbg," EEPROM [0x%02X] = 0x%02X\ r\n ",addr,eepromVal);DEBUG_UART2 ((uint8_t*) dbg,strlen (dbg));} /*---绕过 EEPROM 继续手动初始化---*/ sprintf (dbg," 绕过 EEPROM,使用手动 RF 设置...\ r\n "); DEBUG_UART2 ((uint8_t*) dbg、strlen (dbg));phhalHW_rc663_WriteRegister(phal,PHHAL_HW_RC663_RC663_REGISTER,PHAL_HW_RC663_RC663_RC663_); phalHW_RC663_WriteRegister REG_TXAMP,0x1F);phhalHW_RC663_WriteRegister(phal,PHHAL_HW_RC663_REG_DRVCON,0x18);} else {sprintf(dbg," EEPROM LOADREG OK。 \ r\n "); DEBUG_UART2 ((uint8_t*) dbg,strlen (dbg));} /* 5. 清除 IRQ 标志 */ phHALHW_RC663_WriteRegister(phal、PHHAL_HW_RC663_REG_IRQ0、0x7F);phalHW_RC663_WriteRegister(phal、PHHAL_HW_RC663_REG_IRQ1、0x7F);/* 6。 启用校准模式 */ phHALHW_RC663_WriteRegister (phAL、PHHAL_HW_RC663_REG_LPCD_OPTIONS、0x02);/* 7. 启动 LPCD_CALIBRATE(0x37 是隐藏的校准命令)*/ phhalHW_RC663_WriteRegister( phal,PHHAL_HW_RC663_REG_COMMAND,0x37);/* 8。 等待 LPCDIRQ */ 做 {phHalHW_rc663_readRegister ( phAL、PHHAL_HW_RC663_REG_IRQ1、& birQ1);} while (! (birQ1 & PHHAL_HW_RC663_BIT_LPCDIRQ)); /* 9. 读取 I/Q 结果 */ phHALHW_RC663_readRegister(phal、PHHAL_HW_RC663_REG_LPCD_RESULT_I、& bValueI);phalHW_rc663_readRegister(phal、PHHAL_HW_RC663_REG_LPCD_RESULT_Q、& bValueQ);/* 10。 存储 */ *pdwLPCDRefValue = (uint32_t)bValueI | ((uint32_t)bValueQ<< 8); sprintf(dbg,"[LPCD] 校准完成:I=0x%02X Q=0x%02X Ref=0x%08X\r\n", bValueI, bValueQ, *pdwLPCDRefValue); DEBUG_UART2((uint8_t*)dbg, strlen(dbg)); return PH_ERR_SUCCESS; } Re: clrc663 lpcd i and q value i getting 0x00 您好,先生, 为了校准 CLRC663 的 LPCD,我们强烈建议您使用NFC Cockpit。 这是一个图形用户界面工具,允许用户以图形方式对天线进行微调,同时进行LPCD 校准(第 4.5 节)。我们鼓励您使用这种方法,因为校准必须根据您自己的设计进行。没有任何手册可以按部就班地完成这一程序。 NFC Cockpit 允许用户在读写器卸载和加载时进行实时校准。 请探讨查看以下天线设计视频系列的第 4 段视频的可能性:NFC 天线设计 | 恩智浦半导体
記事全体を表示
复制: 手动输入"Os Isr 处理程序" on Ipcf 本帖复制自 此处 你好我有一个关于在 Vector Davinci 配置器上设置 IPCF 的问题。 环境 我使用的环境如下。 ・Microcontroller : S32K358 ・Vector Davinci configurator classic : 5.30.30 SP1 ・RTD : SW32K3_S32M27x_RTD_R21-11_5.0.0 ・IPCF : SW32K3_IPCF_4.2.0_D2412 背景& 问题 我正试图使用 Vector Davinci configurator classic 为 AUTOSAR 项目配置 "IpcfInstance "的 "Os Isr Handler"。 Os Isr 处理程序 "的 [...] 显示的窗口需要手动输入。 要求是否正确? 如果要求正确,请告诉我需要什么样的路径。 如果要求不正确,我们是否需要其他插件或其他设置? 顺祝商祺! IPCF 优先级:中等 Re: Copy: Manual input of "Os Isr Handler" on Ipcf 嗨,拉杜、 请查看原始主题,因为我们在那里得出了最终结论。 https://community.nxp.com/t5/S32K/Manual-input-of-quot-Os-Isr-Handler-quot-on-Ipcf/td-p/2168682 如果您还有问题,请告诉我。 顺祝商祺! 丹尼尔 Re: Copy: Manual input of "Os Isr Handler" on Ipcf 你好 您可以在下面找到新问题的答案: 问:根据您的回答,在申请 IPCF 时,IPCF 的 OsISR 是否必要? 答:只有当你想在 I nterrupt 模式下使用 osiSR 时,才需要将其添加到 IPCF 中(一个内核触发信号 MU 中断,另一个内核接收它并在回调函数中处理消息)。IPCF 可以在轮询模式下使用,无需配置 IPCF 中断,无需从 IPCF 配置中配置 Os ISR 处理器。在这种情况下,Inter Core Rx IRQ 参数应设置为IPC_IRQ_NONE。 问:用 IPCF 的 osiSR 路径填写上面 " Os Isr " 的 " 参考路径 " 是对的吗? 答:如果图片中出现的这四个IRQ中的一个应用于IPCF,则使用中断来通知另一个内核有数据,然后使用所需的 OSISR 路径手动填充参考路径,如下图所示。 如果配置的中断不适用于 IPCF,则可以使用轮询模式(IPCF 不需要中断),或者在 Os 中为 IPCF 添加专用的中断,并在 IPCF 配置中的 Os ISR 处理程序中进行参考。 另请查阅IPCF_S32K3_4.2.0_User_Manual.pdf第2.2.1章与 NXP RTOS 的集成。 问:如果 IPCF 需要 OsISR,我们对 IPCF 的 OsISR 有参考吗? 答:我想上面的回答也包括这一点,如果不包括,请提供更多细节,因为不清楚。 问:例如,IPCF 设置的 osiSR 的 " Isr 资源参考 " 需要哪种参考资料? 答:"Isr Resource Ref" 不使用 OsISR,您不需要为 IPC 配置任何东西。 如果还有其他问题或不清楚的地方,我们可以召开会议,为您提供 IPCF 配置方面的支持。 顺祝商祺! 丹尼尔 Re: Copy: Manual input of "Os Isr Handler" on Ipcf 来自 Daniel Hermenczi 的意见: " 你好 、 我们有几点需要澄清: 您是否使用 Vector 提供的 AUTOSAR Os? 因为在您分享的图片中,我们看不到操作系统的配置,问题是是否配置了一个或多个 OsISR? 如果你已经配置了它们,那么这可能是一个问题,你需要使用手动选项来选择对已配置的 OsiSR for IPCF 参数 Os Isr Handler 的参考。 以手动配置为例,您需要将高亮显示的路径与您的特定 OsISR 路径一起使用 如果需要更多信息,请告诉我。 顺祝商祺! Daniel" 客户回复: "1.您是否使用 Vector 提供的 AUTOSAR Os? 是的,我使用 AUTOSAR Os。 2.因为在你分享的图片中,我们看不到操作系统的配置,问题是是否配置了一个或多个 OsISR? 是的,我的项目中有以下四种 OsISR 配置。 它们是用于 CAN 通信的 OsISR。 补充问题 根据您的回答,在申请 IPCF 时,IPCF 的 OsISR 是否必要? 用 IPC@@ F 的 osiSR 路径填写上面 " Os Isr Handler " 的 " 引用路径 " 是对的 吗? 如果需要用于 IPCF 的 osiSR,我们对 IPCF 的 osiSR 有参考吗? 例如,OsiSR 的 " Isr 资源参考 " 需要什么样的参考才能进行 IPC F 设置? 谢谢,并致以最崇高的敬意。"
記事全体を表示
[S32K3 tool part]:How to use IAR compiler or IAR project to compile S32K3 MCAL project [S32K3 tool part]:How to use IAR compiler or IAR project to compile MCAL project 1.    Abstract      Through regular observation, it has been found that there are still many customers using platforms such as MCAL+IAR, including those using IAR compilers and those directly using IAR IDEs. In fact, when I was working on industrial MCUs in the past, I also particularly liked IAR IDE for its fast compilation speed, high compilation efficiency, and small code generation. However, when I came to auto MCU, I found that its popularity was not very high, and I also noticed that some customers encountered various problems when importing MCAL into IAR. Therefore, I will directly write a tool article on how to use IAR compiler or IAR IDE project to compile NXP S32K MCAL in combination with EB tresos MCAL. This article uses S32K344 combined with RTD600 to illustrate the compilation of MCAL projects using IAR compiler and the direct import of MCAL into IAR IDE projects 2. IAR Complier with S32K3 RTD MCAL project 2.1 S32K3 HW and SW SW32K3_S32M27x_RTD_R21-11_6.0.0 S32K3X4-EVB Based on Dio_TS_T40D34M60I0R0 IAR:IAR EW for Arm 9.70.1 EB tresos29.0.0 2.2 Compile MCAL project steps using IAR compiler CMD method 2.2.1 Copy one RTD MCAL new project Open path C:\NXP\SW32K3_S32M27x_RTD_R21-11_6.0.0\eclipse\plugins Copy Dio_TS_T40D34M60I0R0 , rename it as Dio_TS_T40D34M60I0R0_IAR Fig 1 2.2.2 Complie EB tresos project Use EB tresos tool open the following EB tresos project : C:\NXP\SW32K3_S32M27x_RTD_R21-11_6.0.0\eclipse\plugins\Dio_TS_T40D34M60I0R0_IAR\examples\EBT\S32K3XX\Dio_Example_S32K344\TresosProject Generate code: Fig 2 2.2.3 Vscode open Dio_TS_T40D34M60I0R0_IAR project Use VS code open the following path folder: C:\NXP\SW32K3_S32M27x_RTD_R21-11_6.0.0\eclipse\plugins\Dio_TS_T40D34M60I0R0_IAR\examples\EBT\S32K3XX\Dio_Example_S32K344 Of course, you can also directly open this folder path using the command line, as long as you ensure that it is in the same layer path as the. mk and makefile scr Fig 3 2.2.4   Project_parameters.mk modification Mainly modify the following points: TOOLCHAIN = iar IAR_DIR = C:/IAR/ewarm-9.70.1 TRESOS_DIR = C:/EB/tresos_29_0_0 PLUGINS_DIR = C:/NXP/SW32K3_S32M27x_RTD_R21-11_6.0.0/eclipse/plugins The path of IAR must be consistent with the version of IAR software used to ensure that the corresponding IAR compiler can be found. Fig 4 2.2.5   Check_build_params.mk modification Add the following content to check_build_params.mk: else ifeq ($(TOOLCHAIN),iar) ifeq ("$(wildcard $(IAR_DIR)/arm/bin/iccarm.exe)","") $(error Invalid path set to the IAR compiler. \ The provided path: from project_parameters.mk IAR_DIR=$(IAR_DIR) is invalid!) Endif Fig 5 2.2.6        Makefile modification   Makefile need the following 5 points modification: (1)Compilier change ifeq (${TOOLCHAIN},iar) CC := $(IAR_DIR)/arm/bin/iccarm.exe LD := $(IAR_DIR)/arm/bin/ilinkarm.exe AS := $(IAR_DIR)/arm/bin/iasmarm.exe # Intel Hexadecimal Flash image tool GENHEX := $(IAR_DIR)/arm/bin/ielftool.exe HEX_OPTS := --ihex OUT_OPTS := -o endif Fig 6 (2) SRC_DIRS  add TOOLCHAIN SRC_DIRS += $(foreach mod,$(MCAL_MODULE_LIST),$(PLUGINS_DIR)/$(mod)_$(AR_PKG_NAME)/src) \ $(foreach mod,$(MCAL_MODULE_LIST_ADDON),$(PLUGINS_DIR_ADDON)/$(mod)_$(AR_PKG_NAME_ADDON)/src) \ $(PLUGINS_DIR)/Platform_$(AR_PKG_NAME)/startup/src \ $(PLUGINS_DIR)/Platform_$(AR_PKG_NAME)/startup/src/m7 \ $(PLUGINS_DIR)/Platform_$(AR_PKG_NAME)/startup/src/m7/$(TOOLCHAIN) Fig 7 (3) Linker file  modification ifeq ($(LOAD_TO),flash) ifeq (${TOOLCHAIN},iar) LINKER_DEF:= $(PLUGINS_DIR)/Platform_$(AR_PKG_NAME)/build_files/${TOOLCHAIN}/linker_flash_$(DERIVATIVE_LOWER).icf else LINKER_DEF:= $(PLUGINS_DIR)/Platform_$(AR_PKG_NAME)/build_files/$(TOOLCHAIN)/linker_flash_$(DERIVATIVE_LOWER).ld endif else ifeq (${TOOLCHAIN},iar) LINKER_DEF:= $(PLUGINS_DIR)/Platform_$(AR_PKG_NAME)/build_files/$(TOOLCHAIN)/linker_ram_$(DERIVATIVE_LOWER).icf else LINKER_DEF:= $(PLUGINS_DIR)/Platform_$(AR_PKG_NAME)/build_files/$(TOOLCHAIN)/linker_ram_$(DERIVATIVE_LOWER).ld endif endif Fig 8 (4) Complier options change ifeq (${TOOLCHAIN},iar) ################################################################################ # iar Compiler options ################################################################################     clib        := $(IAR_DIR)/arm/lib     CCOPT           +=  --cpu=Cortex-M7 \                         -DAUTOSAR_OS_NOT_USED \                         -DUSE_MCAL_DRIVERS \                         --fpu=FPv5-SP \                         --cpu_mode=thumb \                         --endian=little \                         -e \                         -Ohz \                         --debug \                         --no_clustering \                         --no_mem_idioms \                         --do_explicit_zero_opt_in_named_sections \                         --require_prototypes \                         --no_wrap_diagnostics \                         --diag_suppress=Pa050 \                         $(MISRA) \                         -D$(PLATFORM) \                         -D$(DERIVATIVE) \                         -DIAR \                         -DUSE_SW_VECTOR_MODE  \                         -DENABLE_FPU \                         -DD_CACHE_ENABLE \                         -DI_CACHE_ENABLE                             LDOPT           :=  --entry _start \                         --enable_stack_usage \                         --skip_dynamic_initialization \                         --no_wrap_diagnostics \                         --cpu=Cortex-M7 \                         --fpu=FPv5-SP                             ASOPT           :=  $(ASOPT) \                         --cpu Cortex-M7 \                         --cpu_mode thumb \                         -g \                         -r \                         -DMULTIPLE_CORE endif Fig 9 Fig  10 So how did these IAR compilation options come about? You can refer to the release note of RTD600, which contains corresponding descriptions Fig 11 (5) Elf related change ifeq (${TOOLCHAIN},iar) %.elf: %.o $(LINKER_DEF)               @echo "Linking $@"               @$(LD) $(ODIR)/*.o $(LDOPT) --config $(LINKER_DEF) --map $(ODIR)/ -o $(ODIR)/$@@               @$(GENHEX) $(HEX_OPTS) "$(ODIR)/$(ELFNAME).elf" "$(ODIR)/$(ELFNAME).hex" else %.elf: %.o $(LINKER_DEF)               @echo "Linking $@"               @$(LD) -Wl,-Map,"$(MAPFILE)" $(LDOPT) -T $(LINKER_DEF) $(ODIR)/*.o -o $(ODIR)/$@@               @$(GENHEX) $(HEX_OPTS) "$(ODIR)/$(ELFNAME).elf" $(OUT_OPTS) "$(ODIR)/$(ELFNAME).hex" endif Fig 12 2.2.7   Build to generate elf Commander: make clean make build to generate the elf files: Fig 13 After generation, the elf can be burned onto the S32K344 EVB board for testing. The test results show that the onboard red light is flashing, indicating that the IAR compiler can work in command-line mode. 3. Import RTD MCAL to IAR IDE project This chapter explains how to create an IAR IDE project and import MCAL drivers to implement S32K3 MCAL combined with EB tresos for running. 3.1 MCAL IAR IDE project 2 methods Difference between two methods and how to import MCAL drivers: (1) Directly copy the RTD MCAL driver to the IAR IDE project directory (2) Connect the IAR IDE project driver to the original RTD driver path Fig 14 3.2 MCAL IAR IDE project import steps 3.2.1 create the new RTD MCAL IAR project folder    Create a new folder, named as:S32K344_DIO_MCAL_RTD600_IAR 3.2.2 create the sub folder for IAR project       Generate:EB tresos project code       Include:app related include file       Mcal: mcal driver copy from RTD       src: project main file       Tresos_Project:EB tresos project Fig 15 3.2.3 create EB tresos project (1) Create the EB tresos project in the followign path:  S32K344_DIO_MCAL_RTD600_IAR\Tresos_Project\Mcal_Dio_S32K344_RTD600_IAR (2)Add modules: BaseNXP, Dem, Dio, EcuC, Mcu, Platform, Port, Resource (3)Copy RTD xdm files in the following path: C:\NXP\SW32K3_S32M27x_RTD_R21-11_6.0.0\eclipse\plugins\Dio_TS_T40D34M60I0R0\examples\EBT\S32K3XX\Dio_Example_S32K344\TresosProject\Dio_Example_S32K344\config to: S32K344_DIO_MCAL_RTD600_IAR\Tresos_Project\Mcal_Dio_S32K344_RTD600_IAR\config (4)EB tresos Generate project EB tresos code will be generated to folder: S32K344_DIO_MCAL_RTD600_IAR\Generate Fig 16 3.2.4 Copy RTD related drivers to IAR project folder (1) BaseNXP: header, include, src (2)Det:  include, src (3)Dio:  include, src (4)Mcu:  include, src (5)Platform: build_files, include, src, startup (6)Port: include, src (7)Rte: include, src Copy RTD folder to IAR project is one method, if don’t want to copy the file, also can use the linker to add the RTD install path drivers directly. Fig 17 3.2.5 IAR IDE create IAR project   (1) Project->Create new project   (2) In the IAR project, add group   The related folder in project can be structured like the fig 18, which contains:   Generate: Include and src->EB tresos project generate code   Mcal:  Base, Det, Dio, Mcu, Platform, Port, Rte->Mcal driver   Src: Main.c->project main code    (3) Add RTD mcal related drivers to IAR project The RTD MCAL related driver files can be directly downloaded from the RTD installation path or copied to a folder in the IAR project, and both methods yield the same result. Fig 18 (4)IAR project platform folder added result: Fig 19 (5)main code add Main.c can copy from path: C:\NXP\SW32K3_S32M27x_RTD_R21-11_6.0.0\eclipse\plugins\Dio_TS_T40D34M60I0R0\examples\EBT\S32K3XX\Dio_Example_S32K344\src to S32K344_DIO_MCAL_RTD600_IAR\src Comment:  //#include "check_example.h"  // Exit_Example(TRUE); 3.2.6 IAR project options configuration (1)General options->Target->Device->NXP S32K344 (2)C/C++ Complier->Preprocessor Addional include directories: Use IAR project folder drivers which copied from RTD install path, the directories are: $PROJ_DIR$\Generate\include $PROJ_DIR$\mcal\BaseNXP_TS_T40D34M60I0R0\header $PROJ_DIR$\mcal\BaseNXP_TS_T40D34M60I0R0\include $PROJ_DIR$\mcal\Mcu_TS_T40D34M60I0R0\include $PROJ_DIR$\mcal\Platform_TS_T40D34M60I0R0\include $PROJ_DIR$\mcal\Rte_TS_T40D34M60I0R0\include $PROJ_DIR$\mcal\Platform_TS_T40D34M60I0R0\startup\include $PROJ_DIR$\mcal\Det_TS_T40D34M60I0R0\include $PROJ_DIR$\mcal\Dio_TS_T40D34M60I0R0\include $PROJ_DIR$\mcal\Port_TS_T40D34M60I0R0\include $PROJ_DIR$\include If use the RTD install path drivers, use the following directories: $PROJ_DIR$\Generate\include C:\NXP\SW32K3_S32M27x_RTD_R21-11_6.0.0\eclipse\plugins\BaseNXP_TS_T40D34M60I0R0\header C:\NXP\SW32K3_S32M27x_RTD_R21-11_6.0.0\eclipse\plugins\BaseNXP_TS_T40D34M60I0R0\include C:\NXP\SW32K3_S32M27x_RTD_R21-11_6.0.0\eclipse\plugins\Mcu_TS_T40D34M60I0R0\include C:\NXP\SW32K3_S32M27x_RTD_R21-11_6.0.0\eclipse\plugins\Platform_TS_T40D34M60I0R0\include C:\NXP\SW32K3_S32M27x_RTD_R21-11_6.0.0\eclipse\plugins\Rte_TS_T40D34M60I0R0\include C:\NXP\SW32K3_S32M27x_RTD_R21-11_6.0.0\eclipse\plugins\Platform_TS_T40D34M60I0R0\startup\include C:\NXP\SW32K3_S32M27x_RTD_R21-11_6.0.0\eclipse\plugins\Dio_TS_T40D34M60I0R0\include C:\NXP\SW32K3_S32M27x_RTD_R21-11_6.0.0\eclipse\plugins\Port_TS_T40D34M60I0R0\include C:\NXP\SW32K3_S32M27x_RTD_R21-11_6.0.0\eclipse\plugins\Det_TS_T40D34M60I0R0\include $PROJ_DIR$\include Defined symbols: S32K3XX S32K344 IAR USE_SW_VECTOR_MODE D_CACHE_ENABLE I_CACHE_ENABLE ENABLE_FPU Extra options: --no_clustering --no_mem_idioms --do_explicit_zero_opt_in_named_sections --require_prototypes --no_wrap_diagnostics Languate 1:   Check Require prototypes Diagnostics Suppress these disgnostics: Pa050 Fig 20 (3)Linker: Two points need to be added: $PROJ_DIR$\mcal\Platform_TS_T40D34M60I0R0\build_files\iar\linker_flash_s32k344.icf Library->Entry symbols: _start Fig 21 (4)Debugger Setup: PE micro, run to main Extra Options: Use command line options: --drv_vector_table_base=__ENTRY_VTABLE Fig 22 3.2.7  Build IAR project Project->Rebuild All Fig 23 3.2.8  Test result Download and debug result: Fig 24 After downloading and running, the red led is blinking on the board, indicating that the IAR IDE MCAL import method project has been successfully run.
記事全体を表示