Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
How To Do FRDM-KW36 Direct Test Mode or Radio Test Mode? Hello, I want to perform DTM (Direct Test Mode) or RF testing on our application hardware board, on which we are using the FRDM-KW36 as the controller. Could anyone please suggest how to perform this test, and provide a list of the required tools and which firmware should be used for this purpose? FRDM-KW36  Re: How To Do FRDM-KW36 Direct Test Mode or Radio Test Mode? Hello Sofia, I am trying to do this test over the application specific hardware, not over the development board and I gone through hci_bb example code in that it is not mentioned for KW36 family it is for KW38/40. So could you please tell me how to do it and what will be the connections as we;; as required tools(like software like Test Tool12)? Although I already tried by uploading the hci_bb example code over my hardware and tried to connect it to Test Tool12 using UART cable but its not detecting in Test Tool12, so could please help me to resolve this? (Note: I have checked that the UART port is detecting in device_manager). Re: How To Do FRDM-KW36 Direct Test Mode or Radio Test Mode? Hello, hope you are doing well!   You can refer to this document: AN12076 FRDM-KW36 RF System Evaluation Report for the Bluetooth LE applications. It provides the RF evaluation test results of FRDM-KW36 for Bluetooth LE applications, as well as the test setup description and the tools required so you can perform the tests on your own. The binary codes used for the tests are based on the Connectivity Software Package (GenFSK protocol) and the HCI_blackbox example, with the Tera Term terminal emulator used to communicate with the KW36 MCU.   Additionally, we also have these guides that might be helpful, as they explain how to use the HCI Blackbox example to perform DTM on KW devices: How to use the HCI_bb on Kinetis family products and get access to the DTM mode Bluetooth LE HCI Black Box Quick Start Guide   Best regards, Ana Sofia. Re: How To Do FRDM-KW36 Direct Test Mode or Radio Test Mode? I tried to perform it by uploading the example code "hci_bb_bm" through mcuxpresso but when I tried to connect the board to Test Tool12 using UART interface(UART-TTL) then Test Tool12 will not detect the  COM-port, could anyone help me to resolve/correct this problem? Re: How To Do FRDM-KW36 Direct Test Mode or Radio Test Mode? Hello, Are you using MCUXpresso IDE? Which SDK version are you using and how are you flashing the binary? By "application specific hardware" are you referring to a custom board?` Have you been able to run any examples with your custom board? For example, can you confirm whether you see any output in a terminal (like Tera Term) when loading an example and resetting the board? If possible, it might be helpful to validate the setup first on the FRDM-KW36 board using the same example firmware, and then migrate to your custom hardware. By the way, information included in the guides can be applied for the KW family in general, though it is demonstrated using KW38 device, the same approach can also be followed for KW36. The steps required for DTM testing are described in this guide, but I would recommend to first ensure that the UART configuration is working correctly before proceeding with the DTM setup. Best regards, Sofia.
查看全文
LinuxリリースRev.LF5.15.71_2.2.2 i.MX 参考・ガイドドキュメント こんにちは、スタッフの皆さん。 現在、IMX8MPUを使って i.MX YoctoプロジェクトLF5.15.71_2.2.2に取り組んでいます。 この特定のバージョンに対応する ユーザーガイドやリファレンスマニュアルなどにアクセスする必要があります。しかし、NXPのデザインセンターで検索しても、最新の 6.x カーネルバージョンのドキュメントしか見つからずダウンロードもできません。 どなたか正しい方向を教えていただけるか、 LF5.15.71_2.2.2のアーカイブドキュメントへの直接リンクを教えていただけませんか? よろしくお願いします! 評価ボード
查看全文
如何进行FRDM-KW36直接测试模式或无线电测试模式? 你好, 我想在我们的应用硬件板上执行 DTM(直接测试模式)或 RF 测试,该板采用 FRDM-KW36 作为控制器。请问各位能否提供如何进行这项测试的建议,并提供所需工具清单以及应该使用哪个固件? FRDM-KW36 Re: How To Do FRDM-KW36 Direct Test Mode or Radio Test Mode? 你好,索菲亚, 我正在尝试在特定应用硬件上进行此测试,而不是在开发板上进行测试。我查看了 hci_bb 示例代码,但其中没有提到 KW36 系列,而是提到了 KW38/40。所以,请问您能否告诉我该如何操作,以及我们需要哪些连接,例如需要哪些工具(如Test Tool12之类的软件)? 虽然我已经尝试将 hci_bb 示例代码上传到我的硬件,并尝试使用 UART 电缆将其连接到 Test Tool12,但 Test Tool12 无法检测到它,请问您能否帮我解决这个问题? (注:我已经检查过,设备管理器中可以检测到 UART 端口。) Re: How To Do FRDM-KW36 Direct Test Mode or Radio Test Mode? 你好,希望你一切都好!   您可以参考以下文档: AN12076 FRDM-KW36 射频系统蓝牙低功耗应用评估报告。它提供了 FRDM-KW36 在蓝牙低功耗应用中的射频评估测试结果,以及测试设置说明和所需工具,以便您可以自行执行测试。 测试中使用的二进制代码基于连接软件程序包(GenFSK 协议)和 HCI_blackbox 示例,并使用 Tera Term 终端仿真器与 KW36 MCU 进行通信。   此外,我们还有一些指南可能对您有所帮助,因为它们解释了如何使用 HCI Blackbox 示例在 KW 设备上执行 DTM: 如何在 Kinetis 系列产品上使用 HCI_bb 并访问 DTM 模式 蓝牙低功耗人机交互黑盒快速入门指南   此致, 安娜·索菲亚。 Re: How To Do FRDM-KW36 Direct Test Mode or Radio Test Mode? 我尝试通过 mcuxpresso 上传示例代码“hci_bb_bm”来执行此操作,但是当我尝试使用 UART 接口(UART-TTL)将开发板连接到 Test Tool12 时,Test Tool12 无法检测到 COM 端口,请问有人可以帮我解决/纠正这个问题吗? Re: How To Do FRDM-KW36 Direct Test Mode or Radio Test Mode? 你好, 你使用的是MCUXpresso IDE吗?你使用的是哪个SDK版本?你是如何烧录二进制文件的?您说的“特定应用硬件”是指板吗? 您是否已成功使用自定义板运行过任何示例?例如,您能否确认在加载示例并执行 RESET 操作及重置板时,终端(如 Tera Term)中是否看到任何输出?如果可能的话,最好先使用相同的示例固件在 FRDM-KW36 板上验证设置,然后再迁移到您的自定义硬件上。 顺便说一下,指南中包含的信息可以普遍适用于 KW 系列产品,虽然指南中使用了 KW38 设备进行演示,但同样的方法也可以用于 KW36。本指南中描述了 DTM 测试所需的步骤,但我建议先确保 UART 配置正常工作,然后再进行 DTM 设置。 此致, 索菲亚。
查看全文
LS1028A IEEE1588 Phyタイムスタンプによるサポート こんにちは、IEEE1588 LS1028Aのサポートについて質問があります。利用可能な資料をざっと見てみましたが、質問の答えが見つかりませんでした。具体的には、FelixのスイッチドライバーかMACドライバー(どちらかは不明)が、タイムタンピングがMACレイヤーではなくEthernet Phyで行われるIEEE1588をサポートしていますか?理論的には、Phyタイムスタンプを使用すると、ラインに近いので、より高い精度が得られるはずなので、疑問に思っています。少なくとも理論上は。このSoCではどのように動作するのですか? Re: LS1028A IEEE1588 support with Phy timestamping こんにちは、 いいえ — LS1028Aでは、IEEE 1588/PTPのタイムスタンプは、SoCの内部イーサネットハードウェア(ENETC MACまたはFelix switch MAC/PTPブロック)によって行われると記録されており、外部イーサネットPHYによって行われていません。IEEE 1588タイムスタンプは、外部のPHYベースのパケットタイムスタンプではなく、ENETC/Felix MAC側のPTPハードウェアと個別のPHCブロックによって内部的に処理されます。 よろしくお願いします。
查看全文
FS26 Amux 传感问题 我尝试在将BAT 感知电压连接到AMUX 引脚后测量该引脚上的电压。我已经验证了所有相关的寄存器值, FS_STATES寄存器报告设备处于正常模式。然而,AMUX 引脚持续输出 0 V,我的 12 位 ADC 读数始终为 0。我的代码以S32K3xx 参考示例之一为基础(已附上),但 AMUX 测量功能并未按预期工作。请查一下。 Re: FS26 Amux sensing issue 您好, 感谢您分享代码和详细信息。请您核对以下内容: - 写入后读取 M_AMUX_CTRL 寄存器,并确认 AMUX_EN = 1 且 AMUX[4:0] = 0x16(已选择 BATSENSE)。 - 请同时确认 SPI 响应指示 M_AVAL = 1,这意味着主状态机处于正常模式。 - 硬件方面,请确认 BATSENSE 引脚是否有预期的电压,以及 AMUX 引脚是否正确连接到 ADC 输入。   BRs,托马斯 Re: FS26 Amux sensing issue M_AMUX_CTRL 寄存器配置为 M_AMUX_EN | M_AMUX_BATSENSE | M_AMUX_DIV_0,并通过回读验证为 0x56。这证实了模拟多路复用器处于活动状态,并正确地路由了 12V 电池感应输入。   但是,SPI 设备状态 (u8DeviceStatus) 读取结果为 0xCA。由于最高有效位已设置(sbc_fs26_RxFrameType.u8DeviceStatus & 0x80 == 1),因此全局故障保护故障处于活动状态。此外,FS_STATES 寄存器返回 11,证明设备卡在 INIT_FS(初始化故障保护)状态。 Re: FS26 Amux sensing issue 你好, 您的回读结果确认 AMUX 配置正确,但设备卡在 INIT_FS 中。 为解决此问题,请按照AN13850 (需要签署保密协议的安全文件)第 6.1 节和第 6.2 节中描述的初始化和监视程序序列进行操作: 上电或 RESET 后,按照 6.1 节所述配置所有必需的 FS_I_xxx 和 FS_I_NOT_xxx 寄存器。 在 256 毫秒的 INIT_FS 窗口内执行一次良好的看门狗刷新,以结束初始化阶段。 一旦功能安全输出解除,设备将进入正常模式,AMUX 测量功能将按预期运行。 BRs,托马斯 Re: FS26 Amux sensing issue 感谢您的支持。 我的 AMUX 没有正确启用,所以它没有将选定的电压路由到 AMUX 引脚。非常感谢您提供的初始化序列——它解决了这个问题。我还把看门狗周期配置为 256,现在设备如预期那样保持在正常状态。
查看全文
i.MX Linux 版本 Rev.LF5.15.71_2.2.2 的参考和指南文档 各位员工好。 我目前正在使用imx8mp MPU 开发 i.MX yocto 项目LF5.15.71_2.2.2 。 我需要查阅该特定版本的用户指南、参考手册等资料。但是,在 NXP 设计中心搜索时,我只能找到并下载最新的6.x内核版本的文档。 请问有人能指点一下,或者提供LF5.15.71_2.2.2的存档文档的直接链接吗? 谢谢您! 评估板
查看全文
S32K358 eMIOS ISR 卡在 85°C 尊敬的恩智浦技术支持团队: 我们在 S32K358 上进行 85°C 左右的温度测试时遇到了问题。   在我们的应用中,我们使用了 6 个 eMIOS 通道,每个通道都配置为在 PWM 的两个边沿生成中断,频率为 200Hz。   在 85°C 时,MCU 有时会卡在某个 eMIOS 中断服务例程 (ISR) 中。ISR 无法退出,因为代码会通过读取 eMIOS 寄存器来检查中断标志,但该标志的值为 0(文件 Emios_Mcl_Ip_Irq.c)。 😞   如果( 0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].S) & (uint32) eMIOS_S_FLAG_MASK ))   调试后我们发现,当问题出现时,包含 eMIOS 基地址的变量( Emios_Ip_paxBase)为 NULL 。而当应用程序正常运行时,该指针有效,并且 eMIOS 寄存器也能被正确读取。 似乎在某些情况下,对 eMIOS 外设的引用在 ISR 执行期间会被损坏或清除。   您是否有任何关于可能存在的已知问题或根本原因的线索,例如堆栈溢出、内存损坏、并发访问、中断服务例程处理或温度相关行为?   顺祝商祺! 西蒙 Re: S32K358 eMIOS ISR stuck at 85°C 嗨,范恩 我目前使用的是 RTD 7.0.0 版本。 Re: S32K358 eMIOS ISR stuck at 85°C 嗨@simon98 你使用的是哪个版本的RTD?任何其他信息都将不胜感激。 此外,在 6.0.0 之前的 RTD 版本中,存在一个与函数作用域内静态变量的内存映射不正确相关的已知问题 (ARTD-159985)。 此问题描述了在 Emios_Mcl_Ip.c 中定义的变量 Emios_Ip_paxBase 存在的问题。Emios_Mcl_Ip_Irq.c 被赋予了不一致的初始化特性。更多详情请参阅软件版本说明。 BR,VaneB Re: S32K358 eMIOS ISR stuck at 85°C 嗨@simon98 能否提供一个能够重现所观察到的现象的简单应用程序?另外,能否确认一下您使用的是定制电路板还是评估电路板? 另外,能否分享一下测试是如何进行的,以确认该问题是否在 85°C 时出现? Re: S32K358 eMIOS ISR stuck at 85°C 嗨@VaneB , 目前我正在使用一块带有 S32K358 的定制板,其中我使用以下 eMIOS_1 通道生成 200 Hz 的 PWM:ch3、ch9、ch11、ch12、ch13、ch19。代码是使用 Simulink 生成的。 我将定制电路板放入 85°C 的气候箱中一段时间后,观察到了卡顿现象。 我在使用 S32DS (3.6.7) 进行调试时我发现它卡在了 ISR(EMIOS1_1_IRQ) 中,所以我在入口/出口函数附近以及 Emios_Pwm_IrqHandler 和 Emios_Pwm_Ip_IrqHandler 函数中都添加了一些自定义计数器,以便检测代码的哪些部分正在执行。 经过一些测试,我发现,当它卡住时,内部…… static void Emios_Pwm_IrqHandler(const uint8 Instance, const uint8 Channel) { /* 检查 Emios 通道上是否发生了事件 */ 如果 (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].S) & (uint32)eMIOS_S_FLAG_MASK)) { /* 检查 EMIOS 通道上是否发生了事件 */ 如果 (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].C) & ((uint32)(eMIOS_C_DMA_MASK | eMIOS_C_FEN_MASK)))) { Emios_Pwm_Ip_IrqHandler(实例, 通道); } 别的 { /* 什么也不做 - 如果遇到虚假中断,立即返回 */ } } } if 条件: 如果 (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].S) & (uint32)eMIOS_S_FLAG_MASK)) 始终为 0,因为由于某种原因,Emios_Ip_paxBase[Instance] 指向 0。这意味着没有人清除中断标志,因此它进入了一个无法逃脱的循环。 以下是我用来检测此问题的代码: static void Emios_Pwm_IrqHandler(const uint8 Instance, const uint8 Channel) { // uint32_t s; // uint32_t c; // uint32_t s_flag; // uint32_t s_ovr; dbg_pwm_last_instance = 实例; dbg_pwm_last_channel = Channel; dbg_pwm_last_base_addr = (uint32_t)Emios_Ip_paxBase[Instance]; dbg_pwm_last_c_addr = (uint32_t)&Emios_Ip_paxBase[Instance]->CH.UC[Channel].C; dbg_pwm_last_s_addr = (uint32_t)&Emios_Ip_paxBase[Instance]->CH.UC[Channel].S; dbg_emiosipirq_static_state1++; /* 如果 (实例 == 1) { 切换(通道) { 案例16: dbg_emiosipirq_static_cnt_ch16++; 休息; 案例17: dbg_emiosipirq_static_cnt_ch17++; 休息; 案例18: dbg_emiosipirq_static_cnt_ch18++; 休息; 案例19: dbg_emiosipirq_static_cnt_ch19++; 休息; 默认: dbg_emiosipirq_static_cnt_oth1++; 休息; } } 别的 { dbg_emiosipirq_static_cnt_oth2++; } */ /* Lettura reale dei registri vista dal codice */ /* s = Emios_Ip_paxBase[Instance]->CH.UC[Channel].S; c = Emios_Ip_paxBase[Instance]->CH.UC[Channel].C; s_flag = s & (uint32)eMIOS_S_FLAG_MASK; s_ovr = s & (uint32)eMIOS_S_OVR_MASK; dbg_pwm_last_s = s; dbg_pwm_last_c = c; dbg_pwm_flag_mask = (uint32)eMIOS_S_FLAG_MASK; dbg_pwm_ovr_mask = (uint32)eMIOS_S_OVR_MASK; dbg_pwm_last_s_and_flag = s_flag; dbg_pwm_last_s_and_ovr = s_ovr; 如果 (s_flag != 0U) { dbg_pwm_s_flag_yes++; } 别的 { dbg_pwm_s_flag_no++; } 如果 (s_ovr != 0U) { dbg_pwm_s_ovr_yes++; } 别的 { dbg_pwm_s_ovr_no++; } 如果 ((s_flag == 0U) && (s_ovr != 0U)) { dbg_pwm_flag0_ovr1_count++; } 否则如果 ((s_flag != 0U) && (s_ovr != 0U)) { dbg_pwm_flag1_ovr1_count++; } 否则如果 ((s_flag != 0U) && (s_ovr == 0U)) { dbg_pwm_flag1_ovr0_count++; } 别的 { dbg_pwm_flag0_ovr0_count++; } */ /* 检查 EMIOS 通道上是否发生了事件 */ 如果 (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].S) & (uint32)eMIOS_S_FLAG_MASK)) { dbg_emiosipirq_static_state2++; /* 检查 EMIOS 通道上是否发生了事件 */ 如果 (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].C) & ((uint32)(eMIOS_C_DMA_MASK | eMIOS_C_FEN_MASK)))) { dbg_emiosipirq_static_state3++; Emios_Pwm_Ip_IrqHandler(实例, 通道); } 别的 { dbg_emiosipirq_static_state4++; /* 什么也不做 - 如果遇到虚假中断,立即返回 */ } } 别的 { dbg_emiosipirq_static_state5++; //Emios_Pwm_Ip_IrqHandler(Instance, Channel); //Emios_Pwm_Ip_IrqHandler(1, 19); } } 以下是我存储 Emios_Ip_paxBase 应指向的地址的全局变量: dbg_pwm_last_base_addr = (uint32_t)Emios_Ip_paxBase[Instance]; dbg_pwm_last_c_addr = (uint32_t)&Emios_Ip_paxBase[Instance]->CH.UC[Channel].C; dbg_pwm_last_s_addr = (uint32_t)&Emios_Ip_paxBase[Instance]->CH.UC[Channel].S; 我还添加了一些自定义代码,用于在运行时读取 NVIC 寄存器:附件中包含线程、通用寄存器、NVIC 寄存器和变量表达式、EMIOS 寄存器等文件,以及我进行的 6 次测试。 另外,我会在私信中提供我用来测试此行为的 S32DS 项目。 希望这些信息对大家有所帮助。如有任何其他疑问,请随时联系我。 BR, 西蒙 Re: S32K358 eMIOS ISR stuck at 85°C 嗨@simon98 非常感谢您提供这些信息。 由于代码似乎卡在了 EMIOS1_1_IRQ 中,根据您的配置,它对应于 eMIOS 1 通道 19,让我们尝试将分析范围缩小到这一特定部分。 为了简化调试并排除其他模块的任何干扰,请创建一个仅包含此 eMIOS 配置的最小测试项目。这将有助于我们找出问题所在,并更好地了解其根本原因。如需指导,您可以查看S32M27x/S32K3 – eMIOS 使用主题中提供的示例。 同样的行为是否仍然存在?另外,如果您有评估板,最好能在上面测试一下相同的代码。 Re: S32K358 eMIOS ISR stuck at 85°C 嗨,范恩 我本周会尝试给你一个简单的项目来复现这种行为。 Re: S32K358 eMIOS ISR stuck at 85°C 嗨@simon98 我们的评估板主要设计用于室温环境,尚未经过极低或极高温度的测试或认证。 您仍然可以在室温范围之外使用评估板,但我们无法保证它们在这些条件下的性能。 Re: S32K358 eMIOS ISR stuck at 85°C 嗨@VaneB , 我用简化的配置在我的定制板上测试了这个问题,该配置只包括六个 eMIOS1 通道。遗憾的是,在这种配置下我无法重现该错误。应用程序运行正常,不会卡在 EMIOS_1_IRQ 中。 目前,我正在研究将为我们定制板开发的完整项目加载到 EVB 上是否可行。在继续之前,我还想了解一下定制板和 EVB 之间的硬件差异是否可能导致任何意外行为,甚至损坏 EVB。 BR, 西蒙 Re: S32K358 eMIOS ISR stuck at 85°C 嗨@VaneB , 经过多次尝试,我终于创建了一个 EVB 项目,该项目尽可能地重现了在我的定制板上运行的应用程序。具体来说,我将所有引脚的配置方式都与我的自定义项目中的配置方式相同。 然后我在 85°C 的条件下用我的定制板测试了这个项目,eMIOS ISR 问题仍然存在:应用程序继续卡住。 之后,我在相同的温度条件下,甚至在 90°C 以上,对 EVB 进行了完全相同的项目测试,但我无法重现该问题——EVB 继续正常运行,没有出现卡顿。 此时,您会建议采取哪些后续步骤来确定问题的根本原因并找到可能的解决方案? 如果您需要我提供任何其他信息、测量数据或调试数据,请告诉我。 我附上了一个 ZIP 文件,其中包含完整的 EVB 项目以及我的定制板和 EVB 上的 K358 图片。 感谢您的支持。 BR 西蒙娜 Re: S32K358 eMIOS ISR stuck at 85°C 嗨@simon98 由于该问题仅在您的定制板上出现,而未在 EVB 上出现,因此值得调查根本原因是否与硬件有关。 我建议您将您的硬件设计与 EVB 原理图进行比较,并查看 S32K3 硬件设计指南,以验证所有相关建议是否已正确实施。 Re: S32K358 eMIOS ISR stuck at 85°C 嗨@VaneB ,   我们已对硬件设计进行了审查,未发现明显的硬件问题。此外,由于硬件设计和运行条件不同,该电路板与 NXP EVB 不具有直接可比性。   如果客户发现定制板存在温度相关问题,如何才能从恩智浦半导体获得一对一的支持?   BR, 西蒙 Re: S32K358 eMIOS ISR stuck at 85°C 嗨@VaneB 我想就此话题稍作跟进,因为我们仍在调查此事,希望得到您的反馈。 具体来说,如果根本原因与 RAM 损坏有关(例如,越界写入或堆栈覆盖),您会建议在 S32K358 上检查哪些寄存器或诊断信息? 是否有任何特定的故障状态寄存器、ECC/错误报告寄存器、MPU相关寄存器、堆栈监控功能或其他调试寄存器可以帮助识别在eMIOS ISR卡住之前是否发生了内存损坏? 非常感谢您能就调试过程中最需要检查的寄存器提供一些指导。 感谢您的支持。 顺祝商祺! 西蒙 Re: S32K358 eMIOS ISR stuck at 85°C 嗨@simon98 由于这似乎是您主板特有的硬件相关问题,而且我们无法重现该问题,因此很难通过此支持渠道准确诊断根本原因。我们建议您联系您的代理商或当地的恩智浦代表以获取更多帮助。
查看全文
S32K358 eMIOS ISR stuck at 85°C Dear NXP Support Team, we are facing an issue on S32K358 during temperature tests at around 85°C.   In our application we use 6 eMIOS channels, each one configured to generate interrupts on both PWM edges with a frequency of 200Hz.   At 85°C, the MCU sometimes gets stuck inside one eMIOS ISR. The ISR does not exit because the code checks the interrupt flag by reading the eMIOS registers, but the flag is 0 (file Emios_Mcl_Ip_Irq.c 😞   if (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].S) & (uint32)eMIOS_S_FLAG_MASK))    After debugging, we noticed that when the issue occurs, the variable containing the eMIOS base address is NULL (Emios_Ip_paxBase). When the application works correctly, the same pointer is valid and the eMIOS registers are read properly. It seems that, in some conditions, the reference to the eMIOS peripheral is corrupted or cleared during ISR execution.   Do you have any indication about possible known issues or root causes, such as stack overflow, memory corruption, concurrent accesses, ISR handling, or temperature-related behavior?   Best regards, Simon Re: S32K358 eMIOS ISR stuck at 85°C Hi vane, I'm currently using RTD 7.0.0 Re: S32K358 eMIOS ISR stuck at 85°C Hi @simon98  Which RTD version are you working with? Any additional information would be helpful. Also, in RTD versions prior to 6.0.0, there was a known issue related to the incorrect memory mapping of static variables within function scope (ARTD-159985). This issue describes a problem where the variable Emios_Ip_paxBase, defined in both Emios_Mcl_Ip.c and Emios_Mcl_Ip_Irq.c, is assigned inconsistent initialization characteristics. Further details are provided in the Software Release Notes. BR, VaneB Re: S32K358 eMIOS ISR stuck at 85°C Hi @simon98  Could you please provide a simple application that reproduces the observed behavior? Also, could you confirm whether you are working with a custom board or an evaluation board? Additionally, could you share how the testing is being performed to confirm that the issue occurs at 85 °C? Re: S32K358 eMIOS ISR stuck at 85°C Hi @VaneB , Currently i'm working with a custom board with S32K358 where i use these eMIOS_1 channels to generate PWM of 200 Hz: ch3, ch9,  ch11, ch12, ch13, ch19. Code is generated using SImulink  Putting my custom board into a climatic cell at 85°C i've observed the stucking behaviour after some time. While i was debugging with S32DS (3.6.7) I've found out that it stuck into the ISR(EMIOS1_1_IRQ) so i've put into it some custom counter near entry/exit function, and also into Emios_Pwm_IrqHandler and Emios_Pwm_Ip_IrqHandler functions, in order to detect what parts of the code are executed.  After some tests i've found out that, when it stucks, inside static void Emios_Pwm_IrqHandler(const uint8 Instance, const uint8 Channel) {     /* Check that an event occurred on Emios channel */     if (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].S) & (uint32)eMIOS_S_FLAG_MASK))     {         /* Check that an event occurred on EMIOS channel */         if (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].C) & ((uint32)(eMIOS_C_DMA_MASK | eMIOS_C_FEN_MASK))))         {             Emios_Pwm_Ip_IrqHandler(Instance, Channel);         }         else         {             /* Do nothing - in case of spurious interrupts, return immediately */         }     } }   the if condition: if (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].S) & (uint32)eMIOS_S_FLAG_MASK))   is always 0 because, for some reason, Emios_Ip_paxBase[Instance] points to 0. This means that nobody is clearing the interrupt flag so it enters in a loop where it cannot escape.   here's the code i've used to detect this probelm: static void Emios_Pwm_IrqHandler(const uint8 Instance, const uint8 Channel) {     // uint32_t s;     // uint32_t c;     // uint32_t s_flag;     // uint32_t s_ovr;     dbg_pwm_last_instance = Instance;     dbg_pwm_last_channel = Channel;     dbg_pwm_last_base_addr = (uint32_t)Emios_Ip_paxBase[Instance];     dbg_pwm_last_c_addr = (uint32_t)&Emios_Ip_paxBase[Instance]->CH.UC[Channel].C;     dbg_pwm_last_s_addr = (uint32_t)&Emios_Ip_paxBase[Instance]->CH.UC[Channel].S;         dbg_emiosipirq_static_state1++;     /* if (Instance == 1)     {         switch (Channel)         {             case 16:                 dbg_emiosipirq_static_cnt_ch16++;                 break;             case 17:                 dbg_emiosipirq_static_cnt_ch17++;                 break;             case 18:                 dbg_emiosipirq_static_cnt_ch18++;                 break;             case 19:                 dbg_emiosipirq_static_cnt_ch19++;                 break;             default:                 dbg_emiosipirq_static_cnt_oth1++;                 break;         }     }     else     {         dbg_emiosipirq_static_cnt_oth2++;     } */     /* Lettura reale dei registri vista dal codice */    /*  s = Emios_Ip_paxBase[Instance]->CH.UC[Channel].S;     c = Emios_Ip_paxBase[Instance]->CH.UC[Channel].C;     s_flag = s & (uint32)eMIOS_S_FLAG_MASK;     s_ovr  = s & (uint32)eMIOS_S_OVR_MASK;     dbg_pwm_last_s = s;     dbg_pwm_last_c = c;     dbg_pwm_flag_mask = (uint32)eMIOS_S_FLAG_MASK;     dbg_pwm_ovr_mask = (uint32)eMIOS_S_OVR_MASK;     dbg_pwm_last_s_and_flag = s_flag;     dbg_pwm_last_s_and_ovr = s_ovr;     if (s_flag != 0U)     {         dbg_pwm_s_flag_yes++;     }     else     {         dbg_pwm_s_flag_no++;     }     if (s_ovr != 0U)     {         dbg_pwm_s_ovr_yes++;     }     else     {         dbg_pwm_s_ovr_no++;     }     if ((s_flag == 0U) && (s_ovr != 0U))     {         dbg_pwm_flag0_ovr1_count++;     }     else if ((s_flag != 0U) && (s_ovr != 0U))     {         dbg_pwm_flag1_ovr1_count++;     }     else if ((s_flag != 0U) && (s_ovr == 0U))     {         dbg_pwm_flag1_ovr0_count++;     }     else     {         dbg_pwm_flag0_ovr0_count++;     } */     /* Check that an event occurred on EMIOS channel */     if (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].S) & (uint32)eMIOS_S_FLAG_MASK))     {         dbg_emiosipirq_static_state2++;         /* Check that an event occurred on EMIOS channel */         if (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].C) & ((uint32)(eMIOS_C_DMA_MASK | eMIOS_C_FEN_MASK))))         {             dbg_emiosipirq_static_state3++;             Emios_Pwm_Ip_IrqHandler(Instance, Channel);         }         else         {             dbg_emiosipirq_static_state4++;             /* Do nothing - in case of spurious interrupts, return immediately */         }     }     else     {         dbg_emiosipirq_static_state5++;         //Emios_Pwm_Ip_IrqHandler(Instance, Channel);         //Emios_Pwm_Ip_IrqHandler(1, 19);     } } These are the global vars in which i've stored the addresses which Emios_Ip_paxBase should point to: dbg_pwm_last_base_addr = (uint32_t)Emios_Ip_paxBase[Instance]; dbg_pwm_last_c_addr = (uint32_t)&Emios_Ip_paxBase[Instance]->CH.UC[Channel].C; dbg_pwm_last_s_addr = (uint32_t)&Emios_Ip_paxBase[Instance]->CH.UC[Channel].S; I've put also some custom code to read NVIC registers run time: attached you can find the file with Thread, general registers, NVIC registers and variables expressions, EMIOS registers, for 6 tests i made. Also i will provide you the S32DS project i used to test this behaviour in a private message. I hope all these information could be usefull. I remain at your disposal for any further information. BR, SImon Re: S32K358 eMIOS ISR stuck at 85°C Hi @simon98  Thank you very much for providing this information. Since the code appears to be getting stuck in EMIOS1_1_IRQ, which corresponds to eMIOS 1 Channel 19 based on your configuration, let’s try to narrow the analysis to this specific part. To simplify the debugging and rule out any interference from other modules, please create a minimal test project that only includes this eMIOS configuration. This will help us isolate the behavior and better understand the root cause. For guidance, you can review the examples provided in the thread S32M27x/S32K3 – eMIOS Usage. Does the same behavior still occur? Also, if you have an evaluation board, it would be great if you could try the same code there. Re: S32K358 eMIOS ISR stuck at 85°C Hi vane, I'll try this week to give you a simple project that replicate the behaviour Re: S32K358 eMIOS ISR stuck at 85°C Hi @VaneB , I tested the issue on my custom board using a simplified configuration that only includes the six eMIOS1 channels. Unfortunately, in this setup I am not able to reproduce the error. The application runs correctly and does not get stuck in EMIOS_1_IRQ. At the moment, I am looking into whether it is feasible to load the complete project developed for our custom board onto the EVB. Before proceeding, I would also like to understand if the hardware differences between the custom board and the EVB could potentially lead to any unexpected behavior or even damage to the EVB. BR, Simon Re: S32K358 eMIOS ISR stuck at 85°C Hi @simon98  Our evaluation boards are designed mainly for use at room temperature and have not been tested or qualified for very low or very high temperatures. You may still use the evaluation boards outside the room-temperature range, but we cannot guarantee their performance under those conditions. Re: S32K358 eMIOS ISR stuck at 85°C Hi @VaneB , After several attempts, I managed to create an EVB project that reproduces the application running on my custom board as closely as possible. In particular, I configured all the pins in the same way as in my custom project. I then tested this project on my custom board under 85°C conditions, and the eMIOS ISR issue still occurred: the application continued to get stuck. After that, I tested exactly the same project on the EVB under the same temperature conditions and over (90°C), but I was not able to reproduce the issue—the EVB continued to operate correctly without getting stuck. At this point, what would you recommend as the next steps to identify the root cause of the problem and find a possible solution? Please let me know if you need any additional information, measurements, or debugging data from my side. I have attached a ZIP file containing the complete EVB project and the pictures of the K358 on my custom board and on the EVB. Thank you for your support. BR Simone Re: S32K358 eMIOS ISR stuck at 85°C Hi @simon98  As the issue is observed on your custom board but not on the EVB, it would be worthwhile to investigate whether the root cause could be hardware-related. I recommend comparing your hardware design against the EVB schematic and reviewing the S32K3 Hardware Design Guideline to verify that all relevant recommendations have been properly implemented. Re: S32K358 eMIOS ISR stuck at 85°C Hi @VaneB,   the HW design has been reviewed on our side and no evident hardware issue has been found. Also, the board is not directly comparable with the NXP EVB due to different hardware design and operating conditions.   If a customer observes temperature-related issues on a custom board, how could it be possible to obtain one-to-one support from NXP?   BR, Simon Re: S32K358 eMIOS ISR stuck at 85°C Hi @VaneB  I would like to gently follow up on this topic, as we are still investigating the issue on our side and would appreciate your feedback. In particular, if the root cause were related to RAM corruption (for example, an out-of-bounds write or stack overwrite), which registers or diagnostic information would you recommend checking on the S32K358? Are there any specific fault status registers, ECC/error reporting registers, MPU-related registers, stack monitoring features, or other debug registers that could help identify whether memory corruption has occurred before the eMIOS ISR gets stuck? Any guidance on the most useful registers to inspect during debugging would be greatly appreciated. Thank you for your support. Best regards, Simon Re: S32K358 eMIOS ISR stuck at 85°C Hi @simon98  Since this appears to be a hardware-related issue specific to your board and we can not reproduce it, it is difficult to accurately diagnose the root cause through this support channel. We recommend contacting your distributor or local NXP representative for further assistance,
查看全文
Reference & Guide Docs for i.MX Linux Release Rev.LF5.15.71_2.2.2 Hello, staff. I'm currently working on i.MX yocto project LF5.15.71_2.2.2 with imx8mp MPU.  I need to access the corresponding User Guide, Reference Manual,  etc for this specific version. However, when searching on the NXP design center, I can only find and download the documentation for the latest 6.x kernel versions. Could anyone please point me in the right direction or provide a direct link to the archived documentation for LF5.15.71_2.2.2? Thanks! Evaluation Board
查看全文
S32K358 eMIOS ISRが85℃で停止 親愛なるNXPサポートチームへ、 S32K358において、約85℃の温度試験中に問題が発生しています。   私たちのアプリケーションでは6つのeMIOSチャネルを使用し、それぞれが200Hzの周波数で両方のPWMエッジで割り込みを生成するように設定されています。   85°Cでは、MCUが時々1つのeMIOS ISR内に閉じ込められることがあります。ISRは終了しません。コードがeMIOSレジスタを読み取り割り込みフラグを確認するためですが、フラグは0(ファイルEmios_Mcl_Ip_Irq.c)です 😞   もし (0U != ((Emios_Ip_paxBase[インスタンス]->CH.UC[チャネル]。S) & (uint32)eMIOS_S_FLAG_MASK))   デバッグの結果、問題が発生するとeMIOSのベースアドレスを含む変数がNULL(Emios_Ip_paxBase)であることに気づきました。アプリケーションが正しく動作すれば、同じポインタが有効で、eMIOSレジスタも正しく読み込まれます。 ある条件下では、ISR実行中にeMIOSペリフェラルへの参照が破損またはクリアされているようです。   スタックオーバーフロー、メモリ破損、同時アクセス、ISR処理、温度関連の挙動など、既知の問題や根本原因について何か兆候はありますか?   よろしくお願いいたします。 サイモン Re: S32K358 eMIOS ISR stuck at 85°C こんにちは、ベインさん。 現在、RTD 7.0.0を使用しています。 Re: S32K358 eMIOS ISR stuck at 85°C こんにちは、 @simon98さん どのRTDバージョンを使用していますか?追加情報があれば助かります。 また、RTD バージョン 6.0.0 より前のバージョンでは、関数スコープ内の静的変数のメモリ マッピングが正しくないことに関連する既知の問題がありました (ARTD-159985)。 この問題は、Emios_Mcl_Ip.c で定義されている変数 Emios_Ip_paxBase に関する問題です。また、Emios_Mcl_Ip_Irq.c には、一貫性のない初期化特性が割り当てられています。詳細はソフトウェアリリースノートに記載されています。 BR、VaneB Re: S32K358 eMIOS ISR stuck at 85°C こんにちは、 @simon98さん 観察された挙動を再現できる簡単なアプリケーションを教えていただけますか?また、カスタムボードを使っているのか評価ボードなのか確認してもらえますか? さらに、問題が85°Cで発生していることを確認するための検査方法について教えていただけますか? Re: S32K358 eMIOS ISR stuck at 85°C こんにちは、 @simon98さん この情報を提供していただき、誠にありがとうございます。 コードがEMIOS1_1_IRQで詰まっているようで、あなたの設定からeMIOS 1チャンネル19に対応しているため、この特定の部分に分析を絞り込んでみます。 デバッグを簡素化し、他のモジュールからの干渉を排除するために、このeMIOS構成のみを含む最小限のテストプロジェクトを作成してください。これにより、問題の動作を特定し、根本原因をより深く理解するのに役立ちます。参考までに、スレッド S32M27x/S32K3 – eMIOSの利用法で示されている例を確認できます。 同じ現象は依然として発生しますか?また、評価ボードがあるなら、同じコードをそこで試せたら素晴らしいです。 Re: S32K358 eMIOS ISR stuck at 85°C こんにちは、 @VaneB さん。 現在、カスタムボードでS32K358を使ってこれらのeMIOS_1チャンネルを使って200HzのPWMを生成しています:ch3、ch9、ch11、ch12、ch13、ch19。コードはSIMulinkを使用して生成されます 自作の基板を85℃の恒温恒湿槽に入れたところ、しばらくすると動作が停止する現象が見られました。 S32DS (3.6.7) でデバッグしていたときISR(EMIOS1_1_IRQ)に組み込まれていることが分かり、エントリ/エグジット近くのカスタムカウンターやEmios_Pwm_IrqHandler・Emios_Pwm_Ip_IrqHandler関数にも組み込み、どのコード部分が実行されているかを検出しました。 いくつかのテストの結果、内部で詰まったときに static void Emios_Pwm_IrqHandler(const uint8 Instance, const uint8 Channel) { /* エミオスチャネルでイベントが発生しているか確認してください */ もし(0U != ((Emios_Ip_paxBase[インスタンス]->CH.UC[チャネル]。S) & (uint32)eMIOS_S_FLAG_MASK)) { /* EMIOSチャネルでイベントが発生しているか確認してください */ もし(0U != ((Emios_Ip_paxBase[インスタンス]->CH.UC[チャネル]。C) & ((uint32)(eMIOS_C_DMA_MASK | eMIOS_C_FEN_MASK))) { Emios_Pwm_Ip_IrqHandler(インスタンス、チャネル); } そうでなければ { /* 何もしない - 偽の中断があった場合は直ちに戻ってください */ } } }   if条件: もし(0U != ((Emios_Ip_paxBase[インスタンス]->CH.UC[チャネル]。S) & (uint32)eMIOS_S_FLAG_MASK))   なぜなら、何らかの理由でEmios_Ip_paxBase[インスタンス]が0を指すため、常に0です。つまり、誰も割り込みフラグをクリアしていないため、割り込みフラグは脱出できないループに入ってしまいます。   この問題を検出するために使用したコードは以下のとおりです。 static void Emios_Pwm_IrqHandler(const uint8 Instance, const uint8 Channel) { uint32_t s; uint32_t c; uint32_t s_flag; uint32_t s_ovr; dbg_pwm_last_instance = インスタンス; dbg_pwm_last_channel = チャネル; dbg_pwm_last_base_addr = (uint32_t)Emios_Ip_paxBase[インスタンス]; dbg_pwm_last_c_addr = (uint32_t)&Emios_Ip_paxBase[インスタンス]->CH。UC[チャネル]。C; dbg_pwm_last_s_addr = (uint32_t)&Emios_Ip_paxBase[インスタンス]->CH。UC[チャネル]。S;     dbg_emiosipirq_static_state1++; /* もし (インスタンス == 1) { スイッチ(チャネル) { CASE 16: dbg_emiosipirq_static_cnt_ch16++; 休憩;             CASE 17:                 dbg_emiosipirq_static_cnt_ch17++;                 休憩; ケース18: dbg_emiosipirq_static_cnt_ch18++; 休憩;             case 19:                 dbg_emiosipirq_static_cnt_ch19++;                 休憩; デフォルト: dbg_emiosipirq_static_cnt_oth1++; 壊す; } } それ以外 ヤージュ dbg_emiosipirq_static_cnt_oth2++; } */ /* Lettura reale dei registri vista dal codice */ /* s = Emios_Ip_paxBase[インスタンス]->CH。UC[チャネル]。S; c = Emios_Ip_paxBase[インスタンス]->CH。UC[チャネル]。C; s_flag = s & (uint32)eMIOS_S_FLAG_MASK; s_ovr = s & (uint32)eMIOS_S_OVR_MASK; dbg_pwm_last_s = s; dbg_pwm_last_c = c; dbg_pwm_flag_mask = (uint32)eMIOS_S_FLAG_MASK; dbg_pwm_ovr_mask = (uint32)eMIOS_S_OVR_MASK; dbg_pwm_last_s_and_flag = s_flag; dbg_pwm_last_s_and_ovr = s_ovr; if (s_flag != 0U) ヤージュ dbg_pwm_s_flag_yes++; } それ以外 ヤージュ dbg_pwm_s_flag_no++; } if (s_ovr != 0U) ヤージュ dbg_pwm_s_ovr_yes++; } それ以外 ヤージュ dbg_pwm_s_ovr_no++; } if ((s_flag == 0U) && (s_ovr != 0U)) ヤージュ dbg_pwm_flag0_ovr1_count++; } そうでなければ、((s_flag != 0U) && (s_ovr != 0U)) ヤージュ dbg_pwm_flag1_ovr1_count++; } else if ((s_flag != 0U) && (s_ovr == 0U)) ヤージュ dbg_pwm_flag1_ovr0_count++; } それ以外 ヤージュ dbg_pwm_flag0_ovr0_count++; } */ /* EMIOSチャネルでイベントが発生しているか確認してください */ もし(0U != ((Emios_Ip_paxBase[インスタンス]->CH.UC[チャネル]。S) & (uint32)eMIOS_S_FLAG_MASK)) { dbg_emiosipirq_static_state2++; /* EMIOSチャネルでイベントが発生しているか確認してください */ もし(0U != ((Emios_Ip_paxBase[インスタンス]->CH.UC[チャネル]。C) & ((uint32)(eMIOS_C_DMA_MASK | eMIOS_C_FEN_MASK))) { dbg_emiosipirq_static_state3++; Emios_Pwm_Ip_IrqHandler(インスタンス、チャネル); } そうでなければ { dbg_emiosipirq_static_state4++; /* 何もしない - 偽の中断があった場合は直ちに戻ってください */ } } そうでなければ { dbg_emiosipirq_static_state5++; Emios_Pwm_Ip_IrqHandler(インスタンス、チャネル); Emios_Pwm_Ip_IrqHandler(1, 19); } } Emios_Ip_paxBaseが指すべきアドレスを格納したグローバル変数は以下のとおりです。 dbg_pwm_last_base_addr = (uint32_t)Emios_Ip_paxBase[インスタンス]; dbg_pwm_last_c_addr = (uint32_t)&Emios_Ip_paxBase[インスタンス]->CH。UC[チャネル]。C; dbg_pwm_last_s_addr = (uint32_t)&Emios_Ip_paxBase[インスタンス]->CH。UC[チャネル]。S; また、NVICレジスタの実行時を読み取るカスタムコードも入れました。添付すると、Thread、ジェネラルレジスタ、NVICレジスタと変数式、EMIOSレジスタ、6つのテスト用レジスタが入ったファイルがあります。 また、この動作をテストするために使用したS32DSプロジェクトをプライベートメッセージでお送りします。 これらの情報が役に立てば幸いです。何かご不明な点がございましたら、いつでもお気軽にお問い合わせください。 BR、 サイモン Re: S32K358 eMIOS ISR stuck at 85°C こんにちは、ベインさん。 今週中に、その動作を再現する簡単なプロジェクトを用意してみます。 Re: S32K358 eMIOS ISR stuck at 85°C こんにちは、 @VaneB さん。 カスタムボードで、eMIOS1チャネル6チャネルのみを含む簡易設定で問題をテストしました。残念ながら、この設定ではエラーを再現できません。アプリケーションは正しく動作し、EMIOS_1_IRQで詰まることはありません。 現在、カスタムボード用に開発したプロジェクト全体をEVBにロードすることが可能かどうかを検討しています。進める前に、カスタムボードとEVBのハードウェアの違いが、予期せぬ挙動やEVBの損傷を引き起こす可能性があるかどうかも知りたいです。 BR、 サイモン Re: S32K358 eMIOS ISR stuck at 85°C こんにちは、 @simon98さん 当社の評価ボードは主に室温での使用を想定しており、非常に低温または非常に高温での試験や認証はされていません。 評価ボードは室温範囲外でも使用できますが、その条件下での性能を保証することはできません。 Re: S32K358 eMIOS ISR stuck at 85°C こんにちは、 @VaneB さん。 何度か試みた結果、カスタムボード上で動作するアプリケーションをできるだけ忠実に再現するEVBプロジェクトを作成することができました。特に、すべてのピンを自分のカスタムプロジェクトと同じように設定しました。 このプロジェクトをカスタムボードで85°Cの条件下でテストしましたが、eMIOS ISRの問題は依然として発生し、アプリケーションが固着し続けました。 その後、全く同じプロジェクトをEVB上で同じ温度条件(90℃以上)でテストしましたが、問題は再現できませんでした。EVBはフリーズすることなく正常に動作し続けました。 この時点で、問題の根本原因を特定し、解決策を見つけるために、次にどのような手順を踏むことをお勧めしますか? 追加の情報、測定値、またはデバッグデータが必要な場合は、お知らせください。 完全なEVBプロジェクトと、カスタムボードおよびEVB上のK358の写真を含むZIPファイルを添付しました。 再開まで今しばらくお待ちください。 BR シモーネ Re: S32K358 eMIOS ISR stuck at 85°C こんにちは、 @simon98さん この問題はカスタムボードで観察されていますがEVBでは見られません。根本原因がハードウェアに関連している可能性を調べる価値があります。 ハードウェア設計をEVBの回路図と比較し、S32K3ハードウェア設計ガイドラインを確認して、関連する推奨事項が適切に実装されているか確認することをお勧めします。 Re: S32K358 eMIOS ISR stuck at 85°C こんにちは、 @VaneB さん。   ハードウェア設計は我々側でレビュー済みで、明らかなハードウェア問題は見つかりませんでした。また、ハードウェア設計や動作条件が異なるため、NXP EVBとは直接比較できません。   お客様がカスタムボードで温度に関する問題を観察した場合、NXPから一対一のサポートをどう受けることができるのでしょうか?   BR、 サイモン Re: S32K358 eMIOS ISR stuck at 85°C こんにちは、 @VaneBさん この件について、私たち自身も調査中なので、皆様のご意見をいただきたいと思います。 特に、根本原因がRAMの破損(例えば、境界外書き込みやスタックの上書き)に関係している場合、S32K358ではどのレジスタまたは診断情報を確認することをお勧めしますか? eMIOS ISRが詰まる前にメモリ破損が発生していないかを特定するのに役立つ、特定のフォールト状態レジスタ、ECC/エラー報告レジスタ、MPU関連レジスタ、スタック監視機能、その他のデバッグレジスタはありますか? デバッグ時に検査すべき最も有用なレジスタについて、何かご助言いただければ大変ありがたいです。 再開まで今しばらくお待ちください。 よろしくお願いいたします。 サイモン Re: S32K358 eMIOS ISR stuck at 85°C こんにちは、 @simon98さん これはあなたのボードに特有のハードウェア関連の問題のようで、再現できないため、このサポートチャネルからは正確な根本原因の診断が難しいです。さらなるサポートは、代理店または地元のNXP担当者にご連絡することをおすすめします。
查看全文
LS1028A 支持 IEEE1588 协议,并带有物理层时间戳 您好,我有一个关于LS1028A上IEEE1588支持的问题。我浏览了现有的资料,但没有找到答案,具体来说,Felix交换机驱动程序或MAC驱动程序(我不确定是哪个)是否支持IEEE1588,并且时间戳由以太网PHY层而不是MAC层执行?我之所以这么想,是因为理论上使用物理时间戳应该可以实现更高的精度,因为它更接近直线。至少理论上是这样。它在这个SoC上是如何工作的? Re: LS1028A IEEE1588 support with Phy timestamping 你好, 不——在 LS1028A 上,IEEE 1588/PTP 时间戳的记录显示,它是通过 SoC 的内部以太网硬件(ENETC MAC 或 Felix 交换机 MAC/PTP 模块)完成的,而不是通过外部以太网 PHY 完成的。IEEE 1588 时间戳由 ENETC/Felix MAC 侧 PTP 硬件和单独的 PHC 模块在内部处理,而不是由外部基于 PHY 的数据包时间戳处理。 此致
查看全文
LS1028A IEEE1588 support with Phy timestamping Hello, I have a question regarding IEEE1588 support on LS1028A, I browsed through the available materials but did not find the answer for my question, namely -does Felix switch driver or MAC driver (I'm not sure which one) support IEEE1588 with timetamping being preformed by Ethernet Phy instead of MAC layer? I'm wondering because in theory using Phy timestamping should allow to achieve better precision since it's closed to the line. At least in theory. How does it work on this SoC? Re: LS1028A IEEE1588 support with Phy timestamping Hello, No — on LS1028A, IEEE 1588/PTP timestamping is documented as being done by the SoC’s internal Ethernet hardware (ENETC MAC or Felix switch MAC/PTP block), not by the external Ethernet PHY.  IEEE 1588 timestamping is handled internally by the ENETC/Felix MAC-side PTP hardware and separate PHC blocks, not by external PHY-based packet timestamping. Regards
查看全文
FRDM-KW36のダイレクトテストモードまたは無線テストモードを実行する方法は? こんにちは、 私は、FRDM-KW36をコントローラーとして使っているアプリケーションハードウェアボード上でDTM(ダイレクトテストモード)またはRFテストを実施したいと考えています。どなたかこのテストの実施方法を教えていただけませんか?また、必要なツールのリストや使用するべきファームウェアを教えていただけませんか? FRDM-KW36 Re: How To Do FRDM-KW36 Direct Test Mode or Radio Test Mode? こんにちは、ソフィアさん。 このテストは開発ボードではなくアプリケーション固有のハードウェア上で行おうとしておりhci_bb、例コードはKW36ファミリではなくKW38/40の例として記載されています。ですので、どうやってやるのか、そしてどのようなつながりがあるのか教えていただけますか;;必要なツール(Test Tool12のようなソフトウェアなど)として? すでにハードウェアにhci_bb例コードをアップロードし、UARTケーブルでTest Tool12に接続しようとしましたが、Test Tool12では検出されなかったので、この問題の解決を手伝ってもらえませんか? (注:UARTポートがdevice_managerで検出されているか確認済みです。) Re: How To Do FRDM-KW36 Direct Test Mode or Radio Test Mode? こんにちは、お元気でお過ごしでしょうか!   参照可能なのは、 Bluetooth LEアプリケーション向けのFRDM-KW36 RFシステム評価報告書AN12076。Bluetooth LEアプリケーション向けのFRDM-KW36のRF評価テスト結果、テストセットアップの説明、そして自分でテストを実施できるために必要なツールも提供しています。 テストで使用されるバイナリコードは、Connectivity Software Package(GenFSKプロトコル)およびHCI_blackbox例に基づいており、KW36 MCUと通信するためにTera Term端末エミュレータを使用しています。   さらに、HCI Blackboxのサンプルを使用してKWデバイスでDTMを実行する方法を説明した以下のガイドも役立つかもしれません。 Kinetisファミリー製品でHCI_bbを使い、DTMモードにアクセスする方法 Bluetooth LE HCI ブラックボックス クイックスタートガイド   よろしくお願いします、 アナ・ソフィア。 Re: How To Do FRDM-KW36 Direct Test Mode or Radio Test Mode? mcuxpressoを通じて例コード「hci_bb_bm」をアップロードして実行しようとしましたが、UARTインターフェース(UART-TTL)でボードをTest Tool12に接続しようとしたところ、Test Tool12がCOMポートを検出できません。どなたかこの問題の解決や修正を教えていただけませんか? Re: How To Do FRDM-KW36 Direct Test Mode or Radio Test Mode? こんにちは、 MCUXpresso IDEを使っていますか?どのSDKバージョンを使っていて、バイナリはどのようにフラッシュしていますか?「アプリケーション固有のハードウェア」とはカスタムボードのことを指していますか?』 自作のボードで何かサンプルを実行できましたか?例えば、例を読み込んでボードをリセットした際に、ターミナル(例えばTera Term)に出力が見えるかどうか確認できますか?可能であれば、まずFRDM-KW36ボード上で同じサンプルファームウェアを使用して設定を検証し、その後カスタムハードウェアに移行すると良いでしょう。 ちなみに、ガイドに含まれる情報はKWファミリ全体にも適用可能ですが、KW38デバイスでデモされますが、KW36にも同様のアプローチが適用されます。DTMテストに必要な手順はこのガイドに記載されていますが、DTMの設定に進む前に、まずUARTの設定が正しく機能していることを確認することをお勧めします。 よろしくお願いします、 ソフィア。
查看全文
EasyEVSE信号ボードの互換性と入手可能性 EasyEVSEの開発システムを構築しているのですが、いくつか質問があります。 コードの改訂履歴(および 2026 年 5 月 6 日と2025年12月版CCEVCPGSUG.pdf)のバージョンは、ソフトウェアバージョン5.1.2のようですEVSE-SIG-BRD2Xのサポートは削除され、EVSE側は代わりにSIGBRD-HPGPを使用する見込みです。 これは正しいですか? ソフトウェアのバージョン5.1.2のようですSIGBRD-HPGPのサポートが大きく追加されましたが、以前のバージョン(v5.0.8)でもEVSE-SIG-BRD2Xはサポートされていますか? SIGBRD-HPGPは利用可能ですか?MouserやDigi-Key、NXPのストアでは見かけません。 私はEVSE-SIG-BRD2Xを2つ持っていますが、SIGBRD-HPGPは現時点では選択肢にならないようなので、先に進みたいと思っています。 ご意見をいただければ幸いです。 よろしくお願いいたします。 クリス Re: EasyEVSE signal board compatibility and availability こんにちは、 @chrisedwards さん、 ご指摘の通り、アップデートされたEVSEプラットフォームはEVSE側でSIGBRD-HPGPを活用するよう設計されています。現在、EV側はEVSE-SIG-BRD2Xをサポートしていますが、SIGBRD-HPGPを用いた実装も可能です。 しかし、既にEVSE-SIG-BRD2Xを両方お持ちであること、そしてSIGBRD-HPGPはまだ認証プロセス中で(一般公開までにはもう少し時間がかかると思われます)、この設定を維持し、今回の最新の変更前の以前のソフトウェアバージョンを使用することを検討することをお勧めします。v5.0.8はEVSE-SIG-BRD2Xの2つのセットアップでサポートできるはずです。 BR、 エドウィン。 Re: EasyEVSE signal board compatibility and availability こんにちは、エドウィンさん。 ご回答ありがとうございます。作業を再開しましたが、Gitから入手したEVSEコードv5.0.8が動作せず困っています。ビルドは問題なく、GUIも表示しますが、デバッグインターフェースを使ってバージョン情報を要求しようとすると、1060コードの5.0.8は正しい応答が出てきます。一方、sigbrd2xのバージョンはhw: v 255、sw: v255.255.0と表示されます。確か、1060ボードのLCDディスプレイに通信上の競合問題が発生しているという記事を読んだ記憶がある。sigbrd2xとstepコードのプログラミングはできるので、その側は確実に実行されているとかなり自信があります。ArduinoヘッダーではなくEVSE-RT106X-CBLを使っています。主な症状は、上記のバージョンが疑わしいと思われることと、EVSE LCDの「ファームウェアダウンロード」状態を突破できず、1060のEVSEコードがsigbrd2xを電源を入れると起動しないことです(別々に電源を入れています)。コミュニケーションの問題のように感じられる。この問題に対するパッチや回避策はありますか?もしそうなら、解決方法のドキュメントを教えてもらえますか? よろしくお願いいたします。 クリス・エドワーズ
查看全文
GPIO_EMC_B2_18をFLEXSPI1_A_DQSとして設定し、クロック周波数を133 MHzに設定するにはどうすればいいですか? こんにちは、 i.MX RT1175のGPIO_EMC_B2_18をFLEXSPI1_A_DQSとして設定し、クロック周波数を133MHzに設定したい。 GPIO_EMC_B2_18起動時にFLEXSPI1_A_DQSに設定できないことは理解しています。 そのため、起動時に60MHzで動作させて、アプリケーション内で133MHzに変更しようとしていますが、うまくいきません。 私はevkbmimxrt1170_flexspi_nor_polling_transferプロジェクトを使用しており、`flexspi_nor_flash_ops.c`内の`flexspi_nor_flash_init()`の関連セクションを変更しました。 「`」 IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_18_FLEXSPI1_A_DQS, 1U); IOMUXC_SetPinConfig(IOMUXC_GPIO_EMC_B2_18_FLEXSPI1_A_DQS, 0x0AU); CLOCK_SetRootClockDiv(kCLOCK_Root_Flexspi1, 4); CLOCK_SetRootClockMux(kCLOCK_Root_Flexspi1, 5); config.rxSampleClock= kFLEXSPI_ReadSampleClkLoopbackFromDqsPad; 「`」 クロック周波数を133MHzに設定すると、システムがフリーズします。 「`」 CLOCK_SetRootClockDiv(kCLOCK_Root_Flexspi1, 5); CLOCK_SetRootClockMux(kCLOCK_Root_Flexspi1, 5); 「`」 クロック周波数を105MHzに設定すると動作します。 GPIO_EMC_B2_18をFLEXSPI1_A_DQSに設定し、クロック周波数を133 MHzに設定するにはどうすればいいですか? Re: How can I configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz? こんにちは、@mayliu1 さん。 ご返信ありがとうございます。 セカンダリpingグループは100MHzでしか動作しないかもしれませんが、私はプライマリpingグループを使い、DQSだけをGPIO_EMC_B2_18に変更する予定です。理由は、USDHC2_CMD に GPIO_SD_B2_05 を使用しているためです。 ピン構成 FLEXSPI1_A_SS0_B GPIO_SD_B2_06 FLEXSPI1_A_SCLK GPIO_SD_B2_07 FLEXSPI1_A_DATA0 GPIO_SD_B2_08 FLEXSPI1_A_DATA1 GPIO_SD_B2_09 FLEXSPI1_A_DATA2 GPIO_SD_B2_10 FLEXSPI1_A_DATA3 GPIO_SD_B2_11 FLEXSPI1_A_DQS GPIO_SD_B2_05(ブーツ) アプリケーションでは、FLEXSPI1_A_DQSのみがGPIO_EMC_B2_18に変更されます。 FLEXSPI1_A_DQS GPIO_EMC_B2_18 テストとして、EVKのクロック周波数を60MHz(ブート時)から133MHzに変更しましたが、FLEXSPI1_A_DQSは変更せず、GPIO_SD_B2_05に設定したままにしました。すると、同じようにハングアップしました。 xip 設定が .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackInternally に設定されているため、それをkFlexSPIReadSampleClk_LoopbackFromDqsPadに変更したところ、133MHzで動作させることができました。 次に、DQSをGPIO_EMC_B2_18に変更してみたところ、133MHzで動作させることができました。 このやり方は受け入れられるだろうか? また、起動時にはGPIO_SD_B2_05はフローティング状態ではありません。`kFlexSPIReadSampleClk_LoopbackFromDqsPad`に設定して60MHzで実行しても問題ありませんか? Re: How can I configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz? こんにちは@Shuhei_Dさん 私たちの製品にご関心を寄せ、コミュニティをご利用いただき、本当にありがとうございます。 詳細については、以下の記事をご参照ください。 https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT-1176-FlexSPI-RW-frequency-DQS/mp/1871808 RT1170リファレンスマニュアルによると、セカンダリピングループを使用した場合、FlexSPIフラッシュの最大対応周波数は100 MHzです。 プロジェクトの構成を確認し、上記のリンクで説明されているシナリオに合致しているか確認していただけますか? お役に立てれば幸いです。 よろしくお願いいたします。 5月 Re: How can I configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz? お返事ありがとうございます。 回路図を確認したところ、GPIO_EMC_B2_18がフローティング状態になっていることがわかりました。 Re: How can I configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz? NORフラッシュの外付けを駆動するために、SPIのクロック周波数を60MHzから133MHzに変えたいようですね。しかし105MHzなら問題なさそうなので、SPI高周波数で信号の整合性をレイアウト側で確認する必要があるかもしれません。回路図を確認しますか? Re: How can I configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz? こんにちは@Shuhei_Dさん ご辛抱いただきありがとうございます。 ご質問内容を再度確認しました。 プライマリDQS PINを使用し、セカンダリDQSオプションは使用しないでください。 mayliu1_0-1782368272303.png あなたの場合、もし主DQSピンがすでに別の機能に使われている場合、以下の構成を適用できます。ただし、この設定は最大60MHzまでしかサポートされていないことにご注意ください。 mayliu1_1-1782368409020.png お役に立てれば幸いです。 よろしくお願いいたします。 5月
查看全文
IMX219 (RPi Cam v2) はプローブしますが、標準の imx93-11x11-frdm-imx219 を使用した FRDM-IMX93 上でストリーミングしません 環境 - ボード:FRDM-IMX93(i.MX93 11x11) - BSP:Yocto Scarthgap、linux-imx-6.6.36-2.1.0(カーネルコミット 20d9F5efABDD), MACHINE=imx93frdm, DISTRO=fsl-imx-xwayland - センサ:Raspberry Pi カメラモジュールv2(Sony IMX219)、P6 MIPI-CSIコネクタに搭載 - デバイスツリー:純正のarch/arm64/boot/dts/freescale/imx93-11x11-frdm-imx219.dtso 概要 BSPはこのボード用にIMX219デバイスツリーオーバーレイとセンサを同梱しています 電源が入り、I2Cで正しく検出されます(チップIDは0x10読み0x0219)。しかし、 V4L2キャプチャパイプラインはフレームを一切出力しません。たどってみると、どうやら 下流のステージングカメラドライバーには3つの独立した問題があります。本線 ソニーのIMX219ドライバーは現代のV4L2サブ開発モデルに従っていますが、NXPのステージングは CSI/ISIスタックは依然として古いov5640スタイルモデルを前提としています。 問題1 — メディアグラフの分解(「センサーレジスタが失敗」)。 drivers/staging/media/imx/imx8-media-dev.c: mxc_md_create_links()呼び出し media_entity_call(センサ、link_setupなど)。メインラインのIMX219ドライバーは対応していません 実装.link_setup、したがって、呼び出しは-ENOIOCTLCMD (-515)を返し、次のように扱われます 致命的だ。センサー>CSIリンクは一度も作成されず、メディア機器全体が解体されます: mx8-img-md: 登録センサーサブデバイス: imx219 2-0010 (1) mx8-img-md: created link [mxc_isi.0]=> [mxc_isi.0.capture] mx8-img-md: リンク [mxc-mipi-csi2.0] を作成しました=> [mxc_isi.0] mx8-img-md: subdev_notifier_complete エラー終了 mxc-md 42800000.bus:camera:センサーレジスタが故障しました MXC-MD:42800000のプローブ。バス:カメラエラー -515 で失敗しました (ov5640 は ov5640.c のおかげで動作します)(何もしない.link_setupを提供します。) 問題2 — streamonが中止(「サブ開発者に失敗s_power呼べ!」) ドライバ/ステージング/プレスリリース、製品ニュース/IMX/IMX8-ISI-cap.C: mxc_isi_cap_streamon() が呼び出します v4l2_subdev_call(src_sd, core, s_power, 1) は、失敗を致命的として扱います。imx219は ランタイム PM であり、非推奨の .s_power を実装していません。そうするとコールが戻ってきます -ENOIOCTLCMDとストリーミング中止: mxc_isi.0:サブデバイスs_powerの呼び出しに失敗しました! (ov5640 は ov5640.c のおかげで動作します).s_power を提供します。 問題3 — CSIがYUV422にハードコードされているが、RAW10を解析できない(リンクはあるがフレームは0) ドライバ/staging/media/imx/dwc-mipi-csi2.c は実質的に YUV422 専用です: - dwc_csi2h_formats[]はSBGGRのバイヤーコードのみを記載しており、SRGGBは含まれていません(IMX219はSRGGB10です)。 したがってfind_csi2h_format()は失敗し、フォーマットは静かにYUYVに戻ります。 - dwc_mipi_csi2_set_fmt() は CSI2H-> フォーマットを保存しないため、disp_mix_gasket_config() デフォルトのYUYVコードが表示されます。 - dwc_mipi_csi2_param_init() ハードコード ipi_cfg->data_type = DT_YUV422_8。 CSI は誤ったデータタイプを報告し、すべてのフレームがキャプチャされるにもかかわらず、フレームはキャプチャされません。 リンクが有効で、VIDIOC_STREAMONが0を返します。 mxc-mipi-csi2.0: フォーマット: 0x2008 <- YUYV; 期待値: 0x300f (SRGGB10) 私たちが成功した理由(ご検証のため) (a) imx8-media-dev / imx8-isi-cap に欠落したオプション操作を処理した後 (-ENOIOCTLCMD、link_setup / s_power)非致死的であり、(b)教えること dwc-mipi-csi2 について SRGGB8/10/12(交渉されたフォーマットを保存し、IPIを設定する) data_typeから)パイプラインは正しく表示されます:- MXC-mipi-csi2.0:フォーマット: 0x300f imx219 -> mxc-mipi-csi2.0 -> mxc_isi.0-> /dev/video0 約27fps、ライブフレームをキャプチャ。 修正(a)はセンサーに依存しず、このスタック上の現代的なメインラインセンサーにも役立ちます。 修正(b)はCSIにRAWバイヤーサポートを追加します。 副次的な注意点 — モジュールのロードオーダー 新規起動時にも、imx8_media_dev が実行されることによりグラフの登録に失敗します。 imx219モジュールがロードされる前に非同期通知器がロードされます。ビデオノードが登録され、 その後、登録が解除された。マニュアル「modprobe -r imx8_media_dev imx219; modprobe imx219;」 「modprobe imx8_media_dev」を実行すると、それが再構築されます。ソフト依存関係/ロード順序のヒントがあれば、 既成概念にとらわれずに仕事をする。 質問 1.IMX219 はこの BSP の FRDM-IMX93 で公式にサポート/検証されたカメラですか、 意図された/検証済みのパスは、AP1302 ISPモジュールですか?出荷されたimx219.dtso bare-IMX219は動作するはずだと示唆している。 2. 上記の3つの動作は、修正を受け入れるバグとみなされますか、それとも 推奨される構成や、動作確認済みの構成で、私たちが見落としているものはありますか? 3.もしお役に立てるようでしたら、パッチをクリーンなコミットとして共有させていただきます。 ありがとう! FRDM-i.MX93 #IMX219 RPI-CAM-MIPI Yocto Project Re: IMX219 (RPi Cam v2) probes but does not stream on FRDM-IMX93 with stock imx93-11x11-frdm-imx219 こんにちは、 ご連絡ありがとうございます。ソフトウェアチームに確認し、後のBSPで修正があるか再度確認します。できるだけ早く更新します。 よろしくお願いいたします。 アルド。 Re: IMX219 (RPi Cam v2) probes but does not stream on FRDM-IMX93 with stock imx93-11x11-frdm-imx219 こんにちは、 残念ながら、i.MX93 FRDM BSPは、後になってこの問題を調査していた際に、当社のBSPで正式にサポートされるまでサポートされていませんでした。そのため、このイメージは、同じBSPのベータ版である可能性があります。 FRDMボードは6.12.34から2.1.0までサポートしていますそして後のリリースについては、あなたの発見に感謝しますし、ボードに含まれるデフォルト画像を使って検証する方にとって役立つはずです。ソフトウェアチームで追跡します。 よろしくお願いいたします。 アルド。
查看全文
IMX219(RPi Cam v2)在 FRDM-IMX93 上使用原装 imx93-11x11-frdm-imx219 芯片时,可以探测但无法传输数据流。 环境 - 电路板:FRDM-IMX93 (i.MX93 11x11) - 电路板支持包:Yocto Scarthgap,linux-imx-6.6.36-2.1.0(内核提交 20d9f5efabdd), MACHINE=imx93frdm,DISTRO=fsl-imx-xwayland - 传感器:树莓派摄像头模块 v2(索尼 IMX219),位于 P6 MIPI-CSI 连接器上 - 设备树:stock arch/arm64/boot/dts/freescale/imx93-11x11-frdm-imx219.dtso 概括 该电路板支持包。包含一个适用于此板的IMX219设备树覆盖层,以及传感器。 上电后,I2C 检测到芯片 ID 为 0x10 的芯片 ID 读取为 0x0219。然而, V4L2 捕获管道从未交付过帧。追溯下去,似乎有 下游分阶段摄像机驱动程序中存在三个独立问题。主线 sony,imx219 驱动程序遵循现代 V4L2 子设备模型,而 NXP staging CSI/ISI 协议栈仍然采用较旧的 ov5640 型模型。 问题 1 — 媒体图拆卸(“传感器注册失败”) drivers/staging/media/imx/imx8-media-dev.c: mxc_md_create_links() 调用 media_entity_call(sensor, link_setup, ...).主线 imx219 驱动程序不 实现 .link_setup,因此,该调用返回 -ENOIOCTLCMD (-515) 并被视为 致命的。传感器到CSI的连接从未建立,整个媒体设备被拆除: mx8-img-md:已注册传感器子设备:imx219 2-0010 (1) mx8-img-md:创建链接 [mxc_isi.0]=> [mxc_isi.0.捕获] mx8-img-md:创建链接 [mxc-mipi-csi2.0]=> [mxc_isi.0] mx8-img-md:子设备通知器完成错误退出 mxc-md 42800000.总线:camera:传感器注册失败 mxc-md:探测 42800000.总线:camera失败,错误代码 -515 (ov5640 之所以有效,是因为 ov5640.c提供空操作 .link_setup。) 问题 2 — streamon 中止(“调用子设备 s_power 失败!”) drivers/staging/media/imx/imx8-isi-cap.c: mxc_isi_cap_streamon() 调用 v4l2_subdev_call(src_sd, core, s_power, 1) 并将失败视为致命错误。imx219 使用 运行时 PM,并且未实现已弃用的 .s_power,所以呼叫返回 -ENOIOCTLCMD 和流式传输中止: mxc_isi.0:调用子设备 s_power 失败! (ov5640 之所以有效,是因为 ov5640.c提供 .s_power。) 问题 3 — CSI 硬编码为 YUV422,无法解析 RAW10(链接已建立,但帧数为 0) drivers/staging/media/imx/dwc-mipi-csi2.c 实际上仅支持 YUV422: - dwc_csi2h_formats[] 仅列出 SBGGR Bayer 代码,不列出 SRGGB(IMX219 为 SRGGB10)。 因此 find_csi2h_format() 失败,格式默默地恢复为 YUYV。 - dwc_mipi_csi2_set_fmt() 永远不会存储 csi2h->format,因此 disp_mix_gasket_config() 看到默认的 YUYV 代码。 - dwc_mipi_csi2_param_init() 硬编码 ipi_cfg->data_type = DT_YUV422_8。 CSI随后报告了错误的数据类型,即使所有帧都已捕获,也未捕获到任何帧。 链接已启用,VIDIOC_STREAMON 返回 0: mxc-mipi-csi2.0:格式:0x2008 <- YUYV;预期为 0x300f (SRGGB10) 是什么让它对我们有效(供您验证) 在 (a) 使 imx8-media-dev / imx8-isi-cap 处理缺失的可选操作之后 (-ENOIOCTLCMD 来自 link_setup / s_power)作为非致命错误,以及(b)教学 dwc-mipi-csi2 关于 SRGGB8/10/12(存储协商格式并设置 IPI) 从中获取数据类型),管道启动正常:- mxc-mipi-csi2.0:格式:0x300f imx219 -> mxc-mipi-csi2.0 -> mxc_isi.0-> /dev/video0 约27帧/秒,实时帧捕获。 修复(a)与传感器无关,有助于此堆栈上的任何现代主线传感器; 修复 (b) 为 CSI 添加了 RAW Bayer 支持。 次要说明——模块加载顺序 在全新启动后,由于 imx8_media_dev 运行,图形也无法注册。 在 imx219 模块加载之前,异步通知器会注册视频节点。 然后注销。手册“modprobe -r imx8_media_dev imx219; modprobe imx219; modprobe imx8_media_dev”会重建它。软装卸/装载顺序提示可以实现这一点。 无需任何额外操作即可使用。 问题 1.在这个BSP中,IMX219是否是FRDM-IMX93上官方支持/验证的摄像头? 预期/已验证的路径是 AP1302 ISP 模块吗?已发货的 imx219.dtso 这表明裸露的 IMX219 应该可以正常工作。 2. 以上三种行为是否属于您会接受修复的漏洞,还是 是否存在我们遗漏的推荐/已知良好的配置? 3.如果需要,我很乐意将这些补丁作为干净的提交分享出来。 谢谢! FRDM-i.MX93 #IMX219 RPI-CAM-MIPI Yocto Project Re: IMX219 (RPi Cam v2) probes but does not stream on FRDM-IMX93 with stock imx93-11x11-frdm-imx219 你好, 感谢您的联系,我会与软件团队核实,并再次确认后续的 BSP 版本中是否有针对此问题的修复,如有更新,我会尽快通知您。 此致敬礼/Saludos, 阿尔多。 Re: IMX219 (RPi Cam v2) probes but does not stream on FRDM-IMX93 with stock imx93-11x11-frdm-imx219 你好, 遗憾的是,i.MX93 FRDM 电路板支持包 直到后来才在我们的 电路板支持包 中得到正式支持。在我调查这个问题时,该图像可能是该 电路板支持包 的 beta 版本。 我们支持 FRDM 开发板 6.12.34-2.1.0 版本。对于后续版本,我非常感谢您的发现,这对任何使用板载默认镜像进行验证的人都应该很有用,我会与软件团队跟踪此事。 此致敬礼/Saludos, 阿尔多。
查看全文
How can I configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz? Hello, I want to configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz on the i.MX RT1175. I understand that GPIO_EMC_B2_18 cannot be set to FLEXSPI1_A_DQS during boot. Therefore, I’m trying to run it at 60 MHz during boot and change it to 133 MHz in the application, but it doesn’t work. I am using the evkbmimxrt1170_flexspi_nor_polling_transfer project and have modified the relevant section of `flexspi_nor_flash_init()` in `flexspi_nor_flash_ops.c`. ``` IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_18_FLEXSPI1_A_DQS, 1U); IOMUXC_SetPinConfig(IOMUXC_GPIO_EMC_B2_18_FLEXSPI1_A_DQS, 0x0AU); CLOCK_SetRootClockDiv(kCLOCK_Root_Flexspi1, 4); CLOCK_SetRootClockMux(kCLOCK_Root_Flexspi1, 5); config.rxSampleClock = kFLEXSPI_ReadSampleClkLoopbackFromDqsPad; ``` The system hangs when the clock frequency is set to 133MHz. ``` CLOCK_SetRootClockDiv(kCLOCK_Root_Flexspi1, 5); CLOCK_SetRootClockMux(kCLOCK_Root_Flexspi1, 5); ``` It works when the clock frequency is set to 105MHz. How can I configure GPIO_EMC_B2_18 to FLEXSPI1_A_DQS and set the clock frequency to 133 MHz? Re: How can I configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz? Hi @mayliu1, Thanks for your reply. It’s true that the secondary ping group may only operate at 100 MHz, but I’m planning to use the primary ping group and change only the DQS to GPIO_EMC_B2_18. The reason is that I’m using GPIO_SD_B2_05 for USDHC2_CMD. Pin Configuration FLEXSPI1_A_SS0_B GPIO_SD_B2_06 FLEXSPI1_A_SCLK GPIO_SD_B2_07 FLEXSPI1_A_DATA0 GPIO_SD_B2_08 FLEXSPI1_A_DATA1 GPIO_SD_B2_09 FLEXSPI1_A_DATA2 GPIO_SD_B2_10 FLEXSPI1_A_DATA3 GPIO_SD_B2_11 FLEXSPI1_A_DQS GPIO_SD_B2_05 (boot) In the application, only FLEXSPI1_A_DQS is changed to GPIO_EMC_B2_18. FLEXSPI1_A_DQS GPIO_EMC_B2_18 As a test, I changed the clock frequency from 60 MHz (boot) to 133 MHz on the EVK without changing FLEXSPI1_A_DQS—leaving it set to GPIO_SD_B2_05—and it hung up in the same way. Since the xip configuration was set to .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackInternally, I changed it to kFlexSPIReadSampleClk_LoopbackFromDqsPad, and was able to run it at 133 MHz. Next, I tried changing the DQS to GPIO_EMC_B2_18, and was able to run it at 133 MHz. Is this approach acceptable? Also, during boot, GPIO_SD_B2_05 is not floating. Is it okay to set it to `kFlexSPIReadSampleClk_LoopbackFromDqsPad` and run it at 60 MHz? Re: How can I configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz? Hi @Shuhei_D , Thank you so much for your interest in our products and for using our community. Please refer to the following post for more details: https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT-1176-FlexSPI-RW-frequency-DQS/m-p/1871808 According to the RT1170 Reference Manual, when using the secondary pin group, the maximum supported FlexSPI flash frequency is 100 MHz. Could you please check your project configuration and confirm whether it matches the scenario described in the link above? Wish it helps you Best Regards May Re: How can I configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz? Thank you for your reply. Upon checking the schematics, I see that GPIO_EMC_B2_18 is floating. Re: How can I configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz? It seems you want to switch the SPI clock freq from 60MHz to 133MHz to drive the NOR flash external. But 105MHz seems ok so you may need to check the layout side according to signal integrity with SPI high frequncey. Do you review the schematics? Re: How can I configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz? Hi @Shuhei_D , Thanks for your patience. I have double-checked your question. Please use the primary DQS pin and do not use the secondary DQS option. mayliu1_0-1782368272303.png For your case, if the primary DQS pin is already used for another function, you may apply the following configuration. However, please note that this setting is only supported up to 60 MHz: mayliu1_1-1782368409020.png Wish it helps you Best Regards May
查看全文
IMX219 (RPi Cam v2) probes but does not stream on FRDM-IMX93 with stock imx93-11x11-frdm-imx219 over Environment - Board: FRDM-IMX93 (i.MX93 11x11) - BSP: Yocto Scarthgap, linux-imx-6.6.36-2.1.0 (kernel commit 20d9f5efabdd), MACHINE=imx93frdm, DISTRO=fsl-imx-xwayland - Sensor: Raspberry Pi Camera Module v2 (Sony IMX219), on the P6 MIPI-CSI connector - Device tree: stock arch/arm64/boot/dts/freescale/imx93-11x11-frdm-imx219.dtso Summary The BSP ships an IMX219 device-tree overlay for this board, and with it the sensor powers up and is detected correctly on I2C (chip ID at 0x10 reads 0x0219). However, the V4L2 capture pipeline never delivers frames. Tracing it down, there appear to be three independent issues in the downstream staging camera drivers. The mainline sony,imx219 driver follows the modern V4L2 subdev model, whereas the NXP staging CSI/ISI stack still assumes the older ov5640-style model. Issue 1 — media graph teardown ("Sensor register failed") drivers/staging/media/imx/imx8-media-dev.c : mxc_md_create_links() calls media_entity_call(sensor, link_setup, ...). The mainline imx219 driver does not implement .link_setup, so the call returns -ENOIOCTLCMD (-515) and is treated as fatal. The sensor->CSI link is never created and the whole media device is torn down: mx8-img-md: Registered sensor subdevice: imx219 2-0010 (1) mx8-img-md: created link [mxc_isi.0] => [mxc_isi.0.capture] mx8-img-md: created link [mxc-mipi-csi2.0] => [mxc_isi.0] mx8-img-md: subdev_notifier_complete error exit mxc-md 42800000.bus:camera: Sensor register failed mxc-md: probe of 42800000.bus:camera failed with error -515 (ov5640 works because ov5640.c provides a no-op .link_setup.) Issue 2 — streamon aborts ("Call subdev s_power fail!") drivers/staging/media/imx/imx8-isi-cap.c : mxc_isi_cap_streamon() calls v4l2_subdev_call(src_sd, core, s_power, 1) and treats failure as fatal. imx219 uses runtime PM and does not implement the deprecated .s_power, so the call returns -ENOIOCTLCMD and streaming aborts: mxc_isi.0: Call subdev s_power fail! (ov5640 works because ov5640.c provides .s_power.) Issue 3 — CSI hardcoded to YUV422, cannot parse RAW10 (links up but 0 frames) drivers/staging/media/imx/dwc-mipi-csi2.c is effectively YUV422-only: - dwc_csi2h_formats[] lists only SBGGR Bayer codes, not SRGGB (IMX219 is SRGGB10). find_csi2h_format() therefore fails and the format silently reverts to YUYV. - dwc_mipi_csi2_set_fmt() never stores csi2h->format, so disp_mix_gasket_config() sees the default YUYV code. - dwc_mipi_csi2_param_init() hardcodes ipi_cfg->data_type = DT_YUV422_8. The CSI then reports the wrong datatype and no frames are captured even though all links are ENABLED and VIDIOC_STREAMON returns 0: mxc-mipi-csi2.0: format: 0x2008 <- YUYV; expected 0x300f (SRGGB10) What made it work for us (for your validation) After (a) making imx8-media-dev / imx8-isi-cap treat a missing optional op (-ENOIOCTLCMD from link_setup / s_power) as non-fatal, and (b) teaching dwc-mipi-csi2 about SRGGB8/10/12 (store the negotiated format and set the IPI data_type from it), the pipeline comes up correctly:- mxc-mipi-csi2.0: format: 0x300f imx219 -> mxc-mipi-csi2.0 -> mxc_isi.0 -> /dev/video0 ~27 fps, live frames captured. Fix (a) is sensor-agnostic and would help any modern mainline sensor on this stack; fix (b) adds RAW Bayer support to the CSI. Secondary note — module load ordering On a fresh boot the graph also fails to register because imx8_media_dev runs its async notifier before the imx219 module is loaded; the video node registers and is then unregistered. A manual "modprobe -r imx8_media_dev imx219; modprobe imx219; modprobe imx8_media_dev" rebuilds it. A softdep / load-order hint would make this work out of the box. Questions 1. Is IMX219 an officially supported/validated camera on FRDM-IMX93 in this BSP, or is the intended/validated path the AP1302 ISP module? The shipped imx219.dtso suggests bare-IMX219 is meant to work. 2. Are the three behaviors above considered bugs you would accept fixes for, or is there a recommended/known-good configuration we are missing? 3. If useful, I am happy to share the patches as clean commits. Thanks! FRDM-i.MX93 #IMX219 RPI-CAM-MIPI  Yocto Project Re: IMX219 (RPi Cam v2) probes but does not stream on FRDM-IMX93 with stock imx93-11x11-frdm-imx219 Hello, Thank you for reaching out, I will check with software team and will double check if there is some fix in later BSP about this, will update as soon as possible. Best regards/Saludos, Aldo. Re: IMX219 (RPi Cam v2) probes but does not stream on FRDM-IMX93 with stock imx93-11x11-frdm-imx219 Hello, Unfortunately the i.MX93 FRDM BSP was not oficially supported in our BSP until later on, as I was investigating this issue, the image may be a beta BSP for the same. We have support for the FRDM boards from 6.12.34-2.1.0 and later releases, I apreciate your finding and it should be useful for anyone validating using the default image included in the board, I will track it with software team. Best regards/Saludos, Aldo.
查看全文
远程HiTag的部署条件是什么? 请问如何实现长期解决方案?读者端是否有任何要求或特殊设计?例如功率密度或天线的尺寸/直径? 我公司正在寻找牲畜管理解决方案,要求包括:1.远距离:植入标签与读取器之间的距离超过35厘米。2. 阅读器的尺寸(直径约 5 厘米)和重量都很小巧轻便。 在线身份验证 Re: what are the deployment conditions of long range HiTag? 你好@kevin9611 关于您提出的阅读距离大于 35 厘米且使用小型阅读器(直径约 5 厘米)的要求: 低频(LF,125/134 kHz,例如 HITAG / ISO11784/11785)技术基于感应耦合。由于物理上的根本限制,一般来说,要实现如此长的读取距离是不可行的,尤其是在天线尺寸较小的情况下。 实际上,低频植入式标签通常在短距离内工作(几厘米,在优化条件下使用大型天线可达约 20-30 厘米)。因此,您的要求(>35 厘米,~5 厘米的阅读器)无法通过低频技术满足。 为了实现更远的读取距离,我们建议考虑使用 UHF RFID(860–960 MHz),即使使用紧凑型读取器天线,也能轻松支持几米的读取距离。 然而,需要注意的是: 由于信号在动物组织中衰减严重,UHF RFID 不适用于植入式应用。 UHF 解决方案通常与耳标或项圈一起使用,而不是植入式应答器。 结论: 如果植入式标签是强制性的 → 必须使用 LF 技术(HITAG / ISO11784/85),但读取器设计需要较大(例如,棒状读取器或门天线),而不是紧凑型。 如果必须满足长读取距离和紧凑读取器尺寸的要求 → 只有基于 UHF 耳标的解决方案才是可行的。
查看全文