Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
Minimum-System Design Guide for MIMXRT1176DVMAB Dear NXP Support Team, I am designing a custom PCB based on the MIMXRT1176DVMAB for a networking product built around the Quectel RG255CGL00AB-4M2-SGASA_A modem. Our first version is working well, and we are now developing the next version with the i.MX RT1176. The MCU will sit between the Mac and the Quectel modem, providing the Mac-facing USB network interface and forwarding internet traffic. It will also handle modem startup and recovery, device identity, traffic throttling and usage accounting, diagnostics, secure firmware updates, and remote fleet management, without requiring a companion app. Could you please provide or direct me to: A concise minimum-system hardware design guide covering power supplies, clocks, boot configuration, reset, external flash, and programming/debug interfaces for this exact part. The schematic symbol and PCB footprint CAD files, preferably in KiCad-compatible format. Any relevant reference schematics or application notes for implementing the MCU on a custom PCB. The EVKB schematics include many peripherals that are unnecessary for our initial design, so a focused reference for the essential circuitry would be particularly helpful. Thank you for your time and assistance. Re: Minimum-System Design Guide for MIMXRT1176DVMAB Hi @Onyeka, I would recommend starting with the Hardware Development Guide for the MIMXRT1160/1170 Processor, as it provides information about board layout recommendations and design checklists. Additionally, if some pins will be unused, the guide includes a section with recommendations for handling unused pins. Regarding CAD models, you can find them on the i.MX RT1170 product page by searching for the specific part number in the Buy/Parametrics section. Best Regards Pablo
View full article
EasyEVSE EVerest MPU 构建 — SE05x 中间件版本说明 使用 i.MX93 服务处理板设置 NXP EasyEVSE 平台。 我正在按照 EasyEVSE EVerest MPU 的说明操作,并使用以下清单文件: 分支:版本/everest-mpu-2.0 清单文件:imx-6.12.20-2.0.0_everest.xml 目标图像:imx-image-everest meta-nxp-everest-mpu README 指定 EdgeLock SE05x Plug & Trust 中间件版本为 04.07.01 (se05x_mw_v04.07.01.zip),但我目前只能在 NXP 下载网站上找到版本 04.08.01 (se05x_mw_v04.08.01.zip)。 版本/everest-mpu-2.0 是否支持中间件 04.08.01清单 和 imx-6.12.20-2.0.0_everest.xml? 具体应该更新哪个配方或配置文件?需要做哪些更改? 如果需要,中间件 04.07.01 是否仍然可以通过官方下载链接获取? Re: EasyEVSE EVerest MPU build — SE05x middleware version clarification 嗨@ChargeMeMaybe README 文件仅将 04.07.01 列为先决条件;04.x 系列版本之间没有重大的架构变化。您需要修改 bb 文件以使用 04.08.01 版本。 此致, 志明
View full article
T1014- Error measuring IR length Hello experts of NXP: The link of original issue is : https://community.nxp.com/t5/T-Series/T1014-the-jtag-chain-does-not-contain-any-debuggable-cores/m-p/2424033#M5509 And I add an additional info is that when enabled the jtag Diagnostics, the log reported Error measuring IR length:  Please kindly help to find the root cause of the issue, thanks. Re: T1014- Error measuring IR length Support you in the  https://community.nxp.com/t5/T-Series/T1014-the-jtag-chain-does-not-contain-any-debuggable-cores/m-p/2424033#M5509
View full article
S32K312 FlexCAN – 启用 AEN 和总线关闭恢复时,使用 RTD 7.0.1 实现发送消息缓冲区中止 您好,NXP团队, 我正在使用NXP S32K312评估板和S32K3 RTD 7.0.1(AUTOSAR 4.9.0)。我正在使用RTD API FlexCAN_Ip_Send()和FlexCAN_Ip_AbortTransfer()测试FlexCAN发送消息缓冲区中止功能。 我的测试表明,中止功能没有按预期运行。我已附上项目文件、MEX 配置和测试代码供您参考。 我希望您能就以下三个问题提供指导。 1. 中止多个发送消息缓冲区 在我的第一次测试中,我使用多个消息缓冲区传输消息,然后对所有这些缓冲区发出中止请求。测试代码如下所示。 /* Transmit messages using MB0 to MB39. */ for (uint8_t lMb_u8 = 0U; lMb_u8 < 40U; lMb_u8++) { FlexCAN_Ip_Send( INST_FLEXCAN_0, lMb_u8, &tx_info, 0x123U, &dummyData[0] ); } /* Request abort for MB0 to MB39. */ for (uint8_t lMb_u8 = 0U; lMb_u8 < 40U; lMb_u8++) { FlexCAN_Ip_AbortTransfer( INST_FLEXCAN_0, lMb_u8 ); } 所有传输请求都使用相同的 CAN ID,即0x123 ,而消息缓冲区索引从 0 到 39 不等。 MCR [AEN]位设置为 1,启用了中止机制。但是,即使我发出中止消息缓冲区的请求,所有消息仍然可以在 PCAN-View 中看到。 我的预期是,仍在等待传输的消息应该被中止,而已经完成传输的消息则不能被中止。 请问您能否澄清以下问题? 对于在多个消息缓冲区上进行传输,然后中止所有待处理的传输,是否有推荐的顺序? 2. 使用单个消息缓冲区中止传输 为了找出问题所在,我创建了第二个测试,该测试仅使用消息缓冲区 8。 序列如下: 为 MB8调用FlexCAN_Ip_Send() 。 使用FlexCAN_Ip_GetTransferStatus()检查传输状态。 如果发送成功且传输状态为FLEXCAN_STATUS_BUSY ,则对 MB8调用FlexCAN_Ip_AbortTransfer() 。 再次读取传输状态并检查硬件寄存器。 发送 API 返回FLEXCAN_STATUS_SUCCESS ,中止前的状态检查报告FLEXCAN_STATUS_BUSY 。但是,中止 API 返回FLEXCAN_STATUS_NO_TRANSFER_IN_PROGRESS ( 0x5 )。 在调试 RTD 实现时,我发现返回状态源自FlexCAN_AbortTxTransfer() 函数内部的以下条件: FlexcanMbConfig = *FlexcanMb; /* Check if the MBs have been safely inactivated */ if ((uint32)FLEXCAN_TX_INACTIVE == ((FlexcanMbConfig & FLEXCAN_IP_CS_CODE_MASK) >> FLEXCAN_IP_CS_CODE_SHIFT)) { /* Transmission has occurred */ Result = FLEXCAN_STATUS_NO_TRANSFER_IN_PROGRESS; } 在我的当前配置中,消息缓冲区位于内存浏览器中的0x40304100地址。中止请求发出后, CODE字段显示为0x8 ,这对应于非活动/已发送状态,而不是预期的中止代码0x9 。 我还为FlexCAN_AbortTxTransfer()函数中的以下语句设置了一个断点: TimeStart = OsIf_GetCounter( FLEXCAN_IP_SERVICE_TIMEOUT_TYPE ); 此时, IFLAG1[8]已设置。 在当前的RTD实现中,中止序列会将FLEXCAN_TX_ABORT ( 0x9 )写入消息缓冲区的CODE字段,然后轮询相应的消息缓冲区中断标志。中止辅助函数返回后, FlexCAN_Ip_AbortTransfer()中的FlexCAN_ClearMsgBuffIntStatusFlag()函数会清除该标志。 我担心的是,在发出中止请求之前,中断标志可能已经因已完成的传输而被设置。如果真是这样,轮询循环就可以立即退出,而无需等待新的中止完成事件。但是,我尚未确认这是否是我的问题的原因。 3. 总线关闭恢复(自动恢复功能已禁用) 在另一项测试中,我禁用了自动总线关闭恢复功能,并尝试通过应用程序处理恢复。 当总线断开时,我目前的做法是先取消初始化 FlexCAN 驱动程序,然后再重新初始化。但是,在此之后,后续对FlexCAN_Ip_Send()的调用无法成功发送消息。 当自动总线断开恢复功能被禁用时,请问推荐的恢复步骤是什么? 具体来说: 取消初始化和重新初始化是否足以使 FlexCAN 控制器从总线关闭状态恢复? 在反初始化之前,是否应该中止或显式清除所有未处理的 TX 消息缓冲区? 重新初始化后,消息缓冲区在传输前是否必须重新配置或初始化? 在控制器能够再次发送数据之前,是否需要执行与ESR1状态、 MCR 、 CTRL1[BOFFREC] 、中断标志或 RTD 内部传输状态相关的任何步骤? 从总线关闭状态恢复的推荐顺序是什么?同时要确保没有过期的 TX 传输或邮箱状态阻止后续传输。 我已附上测试项目、MEX 配置和相关源代码,以便审查配置和 API 使用情况。 Re: S32K312 FlexCAN – TX Message Buffer Abort with AEN Enabled and Bus-Off Recovery Using RTD 7.0.1 嗨@Yogs 我已将您提出的三个问题的答案总结如下: (内容较多,格式有点混乱。) Q1. 关于“Flexcan 中止”问题。 首先,您需要了解 FlexCAN 中止机制仅对仍处于挂起状态的 TX 消息缓冲区 (MB) 有效。 关于你的第一次测试: 首先激活MB0; FlexCAN 开始扫描并继续传输 MB0 的内容; 同时,CPU继续配置MB1、MB2、…、MB39; 当 CPU 最终到达第二个循环时,最初的一组 MB 可能已经传输完毕。 在总线负载低、成功接收到 ACK 以及经典 CAN 典型的 8 字节有效载荷等条件下, 40帧的传输可以很快完成。 同样的情况也适用于第二个测试,如果总线处于空闲状态,FlexCAN 很可能已经完成传输。 在 CPU 执行中止命令之前。 因此,你的两个测试都不能证明任何事情。 要正确验证中止操作,需要特意创建一个明确的“待处理”窗口,而不是依赖 CPU 的执行速度。 例如: 配置另一个 CAN 节点,使其使用更高优先级的 ID 持续占用总线,从而使目标消息缓冲区 (MB) 保持处于挂起状态,然后触发中止。 Q2:为什么单 MB 测试最初返回 BUSY,但在中止请求时返回 NO_TRANSFER_IN_PROGRESS? 两者之间可能会出现短暂的状态不匹配: `FlexCAN_Ip_Send()` 将 RTD(运行时驱动程序)状态设置为 `BUSY`。 硬件开始传输。 帧传输完成;硬件将 MB(消息缓冲区)代码更新为 `0x8` 并设置 `IFLAG`。 如果 TX IRQ 处理程序尚未执行,或者在断点调试期间系统暂停,则 RTD 状态结构可能仍保持为“BUSY”。 此时会调用“中止”操作。 在内部,`Abort` 函数读取 MB CODE 并发现它已经是 `0x8`。 它返回 `FLEXCAN_STATUS_NO_TRANSFER_IN_PROGRESS`。 因此:`GetTransferStatus() = BUSY` 且 `FlexCAN_Ip_AbortTransfer() = NO_TRANSFER_IN_PROGRESS` 并非一定相互矛盾。 前者可能反映软件记账,而后者则确认实际的硬件代码。 Q3. 总线停驶恢复 完全可以通过重新初始化 CAN 模块来从“总线关闭”状态恢复。 要手动执行“总线关闭”恢复,应用层必须首先停止数据传输,并取消或丢弃所有待处理的发送 (TX) 请求(中止)。 随后,控制器必须进行完全反初始化,然后再进行重新初始化。 随后,应重新配置应用层接收(RX)消息缓冲区(MB),并清除任何过时的消息缓冲区标志、错误标志和软件传输状态。 在恢复传输之前,应用层应验证控制器是否已退出“冻结”或“未就绪”状态,并确保发送消息缓冲区(TX MB)和“准备传输”(RTD)状态均未处于“忙碌”状态。 既然你提到你的测试失败了,那么你很可能忽略了上面提到的步骤。我在附件中没有找到任何关于总线断开恢复程序的信息;如果您对此仍有疑问,请随时与我分享您的测试项目,我可以查看并帮助您检查。 Re: S32K312 FlexCAN – TX Message Buffer Abort with AEN Enabled and Bus-Off Recovery Using RTD 7.0.1 关于问题1,我想澄清一下我的测试条件。 我使用的 CAN 波特率为 500 kbps ,一个具有 8 字节有效载荷的经典 CAN 帧 在总线上传输 大约需要 300 µs 。 在我的测试中,我首先通过相应的TX消息缓冲区提交消息,然后立即执行中止函数。中止函数会遍历相应的消息缓冲区,并对每个缓冲区调用FlexCAN_AbortTxTransfer()函数。 因此,中止请求是在传输请求发出后立即针对相应的消息缓冲区发出的,而不是故意延迟发出的。 我明白,在中止循环到达之前,前几条消息可能已经传输完毕。但是,考虑到大致的传输持续时间和提交的消息数量,我预计在发出中止请求时,一些较晚的消息缓冲区仍然会有待处理的传输。 您能否帮我了解一下,是否存在其他硬件条件或时序因素会导致这些待处理消息无法中止? Re: S32K312 FlexCAN – TX Message Buffer Abort with AEN Enabled and Bus-Off Recovery Using RTD 7.0.1 嗨@Yogs 这是你的代码中“中止 MB”的默认序列; for(uint8_t lMb_u8 = 0; lMb_u8 < 40; lMb_u8++) { FlexCAN_Ip_AbortTransfer(INST_FLEXCAN_0,lMb_u8); } 我已将其修改为“40 - 1Mb_u8”。 for(uint8_t lMb_u8 = 0; lMb_u8 < 40; lMb_u8++) { FlexCAN_Ip_AbortTransfer(INST_FLEXCAN_0,40 - lMb_u8); } 以下是我的测试结果。 我只收到了两帧数据;其他所有 MB 的数据都已成功中止。 此次验证的结果足以证实我之前的假设:在你执行中止 MB 操作之前,当前的 MB 已经成功发送。 Re: S32K312 FlexCAN – TX Message Buffer Abort with AEN Enabled and Bus-Off Recovery Using RTD 7.0.1 您好, 谢谢你的解释。我理解了您的建议,并测试了反向中止序列。正如您所说,这种方法效果更好:我只在总线上收到两个帧,而其余消息都成功中止了。 但是,我对这种行为有一些疑问。 1. 为什么需要逆向堕胎? 这两个循环本质上不都是在执行相同的操作吗,只是执行顺序不同? 能否解释一下为什么从最高的邮箱索引开始中止操作会产生如此显著的影响?这是否与 FlexCAN 内部扫描或选择 TX 消息缓冲区的顺序有关? 反向顺序中止是硬件要求,还是仅仅是一种提高中止待处理消息概率的推荐方法? 2. 如果要中止单个消息缓冲区呢? 我还测试了仅使用一个消息缓冲区时的中止功能: FlexCAN_Ip_Send( INST_FLEXCAN_0, 0U, &tx_info, 0x123U, &dummyData[0] ); FlexCAN_Ip_AbortTransfer(INST_FLEXCAN_0, 0U); 我测试了执行 FlexCAN_Ip_Send() 和调用 FlexCAN_Ip_AbortTransfer() 之间的时间。大约需要 10.3 微秒。 然而,即使间隔时间很短,消息仍然会在 CAN 总线上传输。 我还使用 PCAN-View 中的高优先级消息保持了合理的总线负载,但单消息中止仍然不成功。 作为对比,当我使用多个消息缓冲区进行传输,然后按相反的顺序中止它们时,测得的序列持续时间约为 9.3 毫秒,总线上只接收到两个帧,其余消息都被中止。 这就引出了另一个问题:为什么即使在发送 API 返回后大约 10.3 µs 发出中止请求,单消息中止仍然会失败,而多邮箱反向顺序方法却能成功中止大多数消息? 在发出中止请求之前,该单条消息是否可能已经传输到内部 TX 串行消息缓冲区 (TX SMB)? 我希望您能解释一下硬件是如何处理这种情况的,以及如何可靠地测试单个消息缓冲区的中止机制。 Re: S32K312 FlexCAN – TX Message Buffer Abort with AEN Enabled and Bus-Off Recovery Using RTD 7.0.1 嗨@Yogs 为什么需要以相反的顺序中止操作? 我并非暗示这是必要的。 通过这些对比测试结果,我解释道,中止操作可能会失败,因为您尝试中止的特定消息缓冲区 (MBn) 实际上已经成功传输。 当您按顺序填充消息缓冲区(从 MB0、MB1、…,直到 MB39)并从 MB0 开始执行中止操作时,目标 MB 可能已经成功发送。 考虑另一种方法:如果我们从 MB39 开始发起中止操作呢?这样可以确保优先处理索引较高的消息缓冲区以进行中止操作。
View full article
T1014 - JTAG 链不包含任何可调试内核 恩智浦的各位专家,您好: 我在自研的 T1014rdb 板上设置 Code Warrior TAP 时遇到了“jtag 链不包含任何可调试内核”和“JTAG 链配置失败”的问题。 通过分析,我们确认可以通过使用 ccs 命令测试访问 JTAG 链,但是无论是否重置电路板,都无法通过“get_children”命令获取调试核心: 我们发现的另一个现象是,在 ccs 中无法找到 t1014 芯片类型,只能找到 t10xx 系列,但可以找到 t1040 系列: 目前 RCW 加载方式是通过 SPI Flash,我们可以通过 MISO 获取 0xaa55aa55,并且 HRESET 已成功提升至 1.8V: 目前我们没有其他方法可以解决这个问题,仍然无法通过Code Warrior TAP调试T1014板。 请帮忙提供解决此问题的建议,问题是出在电路板启动还是IDE配置上?谢谢。 Re: T1014 - the jtag chain does not contain any debuggable cores 你好@BowenLi1991 , 请您尝试一下 “ccs::config_chain t1040” 而不是 “ccs::config_chain t1014” 请在 CCS 中以硬编码模式尝试以下命令。 (bin)2% 全部删除 (bin)3% 配置 cc cwtap (bin)4% 显示 cc 0:CodeWarrior TAP (cwtap) CC 软件版本。{0.0} (二进制)5% ccs::config_chain t1040 (bin) 6 % 显示 ::ccs::get_config_chain 链条位置 0:T1040 (bin) 7% ccs::reset_to_debug 如果命令运行正常,请将 T1014 设置为闪存启动模式,然后再次运行该命令。 如果所有命令都能正常运行。 请按照 T1024RM 的图 4-1 检查 PORESET_B、HRESET_B、RESET_REQ_B 和 ASLEEP 的波形。上电复位序列 谢谢! 六月
View full article
PCA9431HK datasheet and AN12639 access for NFC charging listener design The PCA9431 datasheet and AN12639 (referenced in the CRN120 datasheet) are not visible on the product page, even when logged in. Could you share them or tell us how to request access? Questions: 1. Is the PCA9431 output regulated to a fixed 5 V, and what output current is available at about 0.7 W? 2. Is there a reference schematic or eval kit for the CRN120 plus PCA9431 listener, and the matching CTN730 or CTN530 transmitter? 3. Recommended listener coil size and inductance for a coil of about 10 to 15 mm? Where can I d/l the **bleep** datasheet and docs? Re: PCA9431HK datasheet and AN12639 access for NFC charging listener design Hello, The datasheet and app notes required NDA. Please go to this web page: Secure Access Rights | NXP Semiconductors   Please follow the Step 2 for signing the NDA first. After you got the NDA number, follow the Step 3 to click the "submitting your request".   Then please request the highest access rights of the NFC Changing products.   Please type your project details and the NDA number in the "Reason" for requesting the access rights. 
View full article
主题:HyperLynx 和 IBIS 中的 i.MX 8M Plus 封装延迟 你好, 我正在使用 NXP i.MX 8M Plus (MIMX8ML8CVNKZAB) 和imx8mp_15x15_v2.ibs模型在 HyperLynx 2604 中进行信号完整性和建立/保持时间分析。 该设备的芯片到焊球延迟列于i.MX 8M Plus 硬件开发人员指南的表 23 中。我想知道这些延迟是否包含在 IBIS 模型中,以及 HyperLynx 在计算建立时间和保持时间时是否使用了这些延迟。 请问有人能确认一下,在使用 IBIS 模型时,这些封装延迟是否会自动包含在 HyperLynx 的建立/保持时间计算中吗?我的测量位置已设置 为 i.MX 8M Plus 的 芯片 。 谢谢! 布迪卡 Re: Subject: i.MX 8M Plus Package Delay in HyperLynx and IBIS 您可以参考主题“已解决:iMX8MP IBIS 型号与 Hyperlynx 一起使用 - NXP 社区” ,如果仍然需要帮助,请随时与我们联系。
View full article
Subject: i.MX 8M Plus Package Delay in HyperLynx and IBIS Hello, I am using the NXP i.MX 8M Plus (MIMX8ML8CVNKZAB) and the imx8mp_15x15_v2.ibs model for signal integrity and setup/hold timing analysis in HyperLynx 2604. The die-to-ball delays for the device are listed in Table 23 of the i.MX 8M Plus Hardware Developer’s Guide. I wonder whether these delays are included in the IBIS model and used by HyperLynx when it calculates setup and hold times. Can anyone confirm whether these package delays are automatically included in HyperLynx setup/hold timing calculations when using the IBIS model? I have the measurement location set to Die for the i.MX 8M Plus. Thank you. Buddika Re: Subject: i.MX 8M Plus Package Delay in HyperLynx and IBIS You can refer to the thread Solved: iMX8MP IBIS model to be used with Hyperlynx - NXP Community, if still need help contact us freely.
View full article
件名:HyperLynxおよびIBISでの i.MX 8M以上のパッケージ遅延 こんにちは、 私はNXP i.MX 8M Plus(MIMX8ML8CVNKZAB)とimx8mp_15x15_v2.ibsモデルを使って、HyperLynx 2604で信号の整合性やセットアップ・ホールドタイミング解析を行っています。 デバイスのダイ・ツー・ボール遅延時間は、 i.MX 8M Plusハードウェア開発者ガイドの表23に記載されています。これらの遅延はIBISモデルに含まれていて、HyperLynxがセットアップやホールド時間を計算する際に使っているのかもしれません。 IBISモデルを使う場合、これらのパッケージ遅延がHyperLynxのセットアップ/ホールドタイミング計算に自動的に含まれるかどうか、誰か確認できますか?i.MX 8M Plusの 測定位置は Die に設定しています。 よろしくお願いします。 ブッディカ Re: Subject: i.MX 8M Plus Package Delay in HyperLynx and IBIS Hyperlynx - NXPコミュニティで使用する場合は「解決済み:iMX8MP IBISモデル」Threadを参照してください。まだ助けが必要な場合は自由にお問い合わせください。
View full article
T1014 - 赤外線長さ測定の誤差 NXPの専門家の皆様、こんにちは。 元の記事へのリンクはこちらです: https://community.nxp.com/t5/T-Series/T1014-the-jtag-chain-does-not-contain-any-debuggable-cores/mp/2424033#M5509 さらに、jtag Diagnostics を有効にすると、ログに「IR の長さの測定エラー」と表示されるという情報も追加しておきます。 問題の根本原因の特定にご協力いただければ幸いです。よろしくお願いいたします。 Re: T1014- Error measuring IR length あなたをサポート  https://community.nxp.com/t5/T-Series/T1014-the-jtag-chain-does-not-contain-any-debuggable-cores/m-p/2424033#M5509
View full article
T1014 - the jtag chain does not contain any debuggable cores Hello experts of NXP: I suffered a problem "the jtag chain does not contain any debuggable cores" and "Failed to correctly configure the JTAG chain" when setting the Code Warrior TAP on a self developping T1014rdb board. Through the analysis, we confirmed that the JTAG chain is accessible by testing using ccs cmd, but can't get the debug core by the cmd "get_children" no matter reset the board or not: And another phenomenon we found is that we can't get the t1014 chip type in ccs, we can only get the t10xx, but we can get t1040: Currently the RCW loading method is by SPI Flash, we can get 0xaa55aa55 through MISO and the HRESET has successfully raised to 1.8V: Currently we don't have any further method to solve the issue and we still can't debug the T1014 board through Code Warrior TAP.  Please help to give suggestion to solve this issue, is the issue due to board bring up or IDE configuration, thanks. Re: T1014 - the jtag chain does not contain any debuggable cores  Hi @BowenLi1991 , Please kindly try the "ccs::config_chain t1040" instead of "ccs::config_chain t1014" Please try the commands below in the CCS with hard coded mode. (bin) 2 % delete all (bin) 3 % config cc cwtap (bin) 4 % show cc 0: CodeWarrior TAP (cwtap) CC software ver. {0.0} (bin) 5 % ccs::config_chain t1040 (bin) 6 % display ::ccs::get_config_chain Chain Position 0: T1040 (bin) 7 % ccs::reset_to_debug If the commands work well, please set the T1014 to your flash boot mode and run the command again. If all the commands work well. Please check the waveform of the PORESET_B, HRESET_B, RESET_REQ_B and ASLEEP follow the T1024RM, Figure 4-1. Power-on reset sequence Thanks June
View full article
S32K312 FlexCAN – TX Message Buffer Abort with AEN Enabled and Bus-Off Recovery Using RTD 7.0.1 Hello NXP Team, I am working with the NXP S32K312 evaluation board using S32K3 RTD 7.0.1 (AUTOSAR 4.9.0). I am testing the FlexCAN transmit message-buffer abort functionality using the RTD APIs FlexCAN_Ip_Send() and FlexCAN_Ip_AbortTransfer(). The abort functionality is not behaving as expected in my tests. I have attached the project, MEX configuration, and test code for your reference. I would appreciate your guidance on the following three issues. 1. Aborting Multiple Transmit Message Buffers In my first test, I transmit messages using multiple message buffers and then issue abort requests for all those buffers. The test code is shown below. /* Transmit messages using MB0 to MB39. */ for (uint8_t lMb_u8 = 0U; lMb_u8 < 40U; lMb_u8++) { FlexCAN_Ip_Send( INST_FLEXCAN_0, lMb_u8, &tx_info, 0x123U, &dummyData[0] ); } /* Request abort for MB0 to MB39. */ for (uint8_t lMb_u8 = 0U; lMb_u8 < 40U; lMb_u8++) { FlexCAN_Ip_AbortTransfer( INST_FLEXCAN_0, lMb_u8 ); } All transmit requests use the same CAN ID, 0x123, while the message-buffer index varies from 0 to 39. The MCR[AEN] bit is set to 1, enabling the abort mechanism. However, all the messages are observed in PCAN-View, even though I issue abort requests for the message buffers. My expectation is that messages still pending transmission should be aborted, while messages that have already completed transmission cannot be aborted. Could you please clarify the following? Is there a recommended sequence for transmitting on multiple message buffers and then aborting all pending transmissions? 2. Aborting a Transmission using a single Message Buffer To isolate the issue, I created a second test that uses only message buffer 8. The sequence is: Call FlexCAN_Ip_Send() for MB8. Check the transfer status using FlexCAN_Ip_GetTransferStatus(). If the send is successful and the transfer status is FLEXCAN_STATUS_BUSY, call FlexCAN_Ip_AbortTransfer() for MB8. Read the transfer status again and inspect the hardware registers. The send API returns FLEXCAN_STATUS_SUCCESS, and the status check before the abort reports FLEXCAN_STATUS_BUSY. However, the abort API returns FLEXCAN_STATUS_NO_TRANSFER_IN_PROGRESS (0x5). While debugging the RTD implementation, I found that the return status originates from the following condition inside FlexCAN_AbortTxTransfer(): FlexcanMbConfig = *FlexcanMb; /* Check if the MBs have been safely inactivated */ if ((uint32)FLEXCAN_TX_INACTIVE == ((FlexcanMbConfig & FLEXCAN_IP_CS_CODE_MASK) >> FLEXCAN_IP_CS_CODE_SHIFT)) { /* Transmission has occurred */ Result = FLEXCAN_STATUS_NO_TRANSFER_IN_PROGRESS; } The message buffer is located at 0x40304100 in the memory browser for my current configuration. After the abort request, the CODE field reads 0x8, which corresponds to the inactive/transmitted state, instead of the expected abort code 0x9. I also placed a breakpoint at the following statement in FlexCAN_AbortTxTransfer(): TimeStart = OsIf_GetCounter( FLEXCAN_IP_SERVICE_TIMEOUT_TYPE ); At this point, IFLAG1[8] is set. In the current RTD implementation, the abort sequence writes FLEXCAN_TX_ABORT (0x9) to the message-buffer CODE field, then polls the corresponding message-buffer interrupt flag. The flag is cleared by FlexCAN_ClearMsgBuffIntStatusFlag() in FlexCAN_Ip_AbortTransfer() after the abort helper returns. My concern is that the interrupt flag may already be set from a completed transmission before the abort request is issued. If so, the polling loop could exit immediately without waiting for a new abort-completion event. However, I have not yet confirmed whether this is the cause of my issue. 3. Bus Off recovery with Automatic Recovery Disabled In a separate test, I am disabling automatic bus-off recovery and attempting to handle recovery through the application. When a bus-off condition occurs, my current approach is to deinitialize and then reinitialize the FlexCAN driver. However, after this sequence, subsequent calls to FlexCAN_Ip_Send() do not successfully transmit messages. Could you please advise on the recommended recovery procedure when automatic bus-off recovery is disabled? Specifically: Is deinitialization and reinitialization sufficient to recover the FlexCAN controller from bus-off? Should all outstanding TX message buffers be aborted or explicitly cleared before deinitialization? After reinitialization, must the message buffers be configured or initialized again before transmission? Are there any required steps involving the ESR1 status, MCR, CTRL1[BOFFREC], interrupt flags, or RTD internal transfer states before the controller can transmit again? What is the recommended sequence for recovering from bus-off while ensuring that no stale TX transfers or mailbox states prevent subsequent transmissions? I have attached the test project, MEX configuration, and relevant source code so that the configuration and API usage can be reviewed. Re: S32K312 FlexCAN – TX Message Buffer Abort with AEN Enabled and Bus-Off Recovery Using RTD 7.0.1 Hi@Yogs I have summarized the answers to your three questions as follows: (There’s quite a lot of content, and the formatting is a bit messy.) Q1. Regarding "Flexcan Abort" question. First, you need to understand that the FlexCAN Abort mechanism is only effective for TX message buffers (MBs) that are still in a pending state. Regarding your first test: MB0 is activated first; FlexCAN begins scanning and proceeds to transmit the contents of MB0; Meanwhile, the CPU continues configuring MB1, MB2, ..., MB39; By the time the CPU finally reaches the second loop, the initial set of MBs has likely already finished transmitting. Under conditions such as low bus load, successful ACK reception, and the 8-byte payload typical of Classical CAN, the transmission of 40 frames can be completed very quickly. The same applies to the second test, if the bus is idle, FlexCAN may well have already completed the transmission before the CPU executes the abort command. Therefore, neither of your two tests proves anything. To properly verify an abort operation, you need to deliberately create a definitive "pending" window, rather than relying on the CPU's execution speed. For example: Configure another CAN node to continuously occupy the bus using a higher-priority ID—thereby keeping the target Message Buffer (MB) in a pending state—and then trigger the abort. Q2:Why does a single-MB test return BUSY initially, yet return NO_TRANSFER_IN_PROGRESS upon an abort request? A brief state mismatch can occur between the two: `FlexCAN_Ip_Send()` sets the RTD (Run-Time Driver) state to `BUSY`. The hardware begins transmission. The frame transmission completes; the hardware updates the MB (Message Buffer) CODE to `0x8` and sets the `IFLAG`. If the TX IRQ handler has not yet executed—or if the system is paused during breakpoint debugging—the RTD state structure may still remain as `BUSY`. An `Abort` operation is called at this point. Internally, the `Abort` function reads the MB CODE and finds it is already `0x8`. It returns `FLEXCAN_STATUS_NO_TRANSFER_IN_PROGRESS`. Therefore:`GetTransferStatus() = BUSY`and`FlexCAN_Ip_AbortTransfer() = NO_TRANSFER_IN_PROGRESS` are not necessarily contradictory. The former may reflect software bookkeeping, while the latter confirms the actual hardware CODE. Q3.Bus-off recovery  It is entirely feasible to recover from a "bus-off" state by reinitializing the CAN module. To manually perform a "bus-off" recovery, the application layer must first cease data transmission and cancel or discard all pending transmit (TX) requests(Abort). Subsequently, the controller must undergo a complete deinitialization followed by a reinitialization. Following this, the application-layer receive (RX) message buffers (MBs) should be reconfigured, and any stale message buffer flags, error flags, and software transmission states must be cleared. Before resuming transmission, the application layer should verify that the controller has exited the "freeze" or "not-ready" state, and ensure that neither the transmit message buffers (TX MBs) nor the "ready-to-transmit" (RTD) status remain in a "busy" state. Since you mentioned that your test failed, you likely overlooked the sequence mentioned above. I couldn't find any information regarding the bus-off recovery procedure in the attached files; if you still have questions about this, feel free to share your test project with me, and I can take a look to help you check it. Re: S32K312 FlexCAN – TX Message Buffer Abort with AEN Enabled and Bus-Off Recovery Using RTD 7.0.1 Regarding Q1, I would like to clarify my test conditions. I am using a CAN baud rate of 500 kbps, and a Classical CAN frame with an 8-byte payload takes approximately 300 µs for transmission on the bus. In my test, I first submit the messages through the respective TX message buffers and then immediately execute the abort function. The abort function iterates through the corresponding message buffers and calls FlexCAN_AbortTxTransfer() for each one. So, the abort requests are being issued for the respective message buffers immediately after the transmission requests, rather than being delayed intentionally. I understand that the first few messages might have completed transmission before the abort loop reaches them. However, considering the approximate transmission duration and the number of messages submitted, I would expect some of the later message buffers to still have pending transmissions when their abort requests are issued. Could you help me understand whether there is another hardware condition or timing factor that would prevent those pending messages from being aborted? Re: S32K312 FlexCAN – TX Message Buffer Abort with AEN Enabled and Bus-Off Recovery Using RTD 7.0.1 Hi@Yogs This is your default sequence for "abort MB" in your code; for(uint8_t lMb_u8 = 0; lMb_u8 < 40; lMb_u8++) { FlexCAN_Ip_AbortTransfer(INST_FLEXCAN_0,lMb_u8); } I have modified it to "40 - 1Mb_u8".  for(uint8_t lMb_u8 = 0; lMb_u8 < 40; lMb_u8++) { FlexCAN_Ip_AbortTransfer(INST_FLEXCAN_0,40 - lMb_u8); } Below are the results of my testing. I only received two frames of data; all other MBs were successfully aborted. The results of this verification are sufficient to confirm my earlier hypothesis: the current MB had already been successfully sent before you executed the Abort MB operation. Re: S32K312 FlexCAN – TX Message Buffer Abort with AEN Enabled and Bus-Off Recovery Using RTD 7.0.1 Hi, Thank you for the explanation. I understood your recommendation and tested the reverse-order abort sequence. As you mentioned, this approach works better: I receive only two frames on the bus, while the remaining messages are successfully aborted. However, I have a few questions regarding the behaviour. 1. Why is reverse-order abortion necessary? Aren't the two loops essentially performing the same operation, with only the order of execution being different? Could you explain why starting the abort from the highest mailbox index makes such a significant difference? Is this related to the order in which FlexCAN scans or selects TX message buffers internally? Is reverse-order abortion a hardware requirement, or is it simply a recommended approach to increase the probability of aborting pending messages? 2. What about aborting a single message buffer? I also tested the abort functionality using only one message buffer: FlexCAN_Ip_Send( INST_FLEXCAN_0, 0U, &tx_info, 0x123U, &dummyData[0] ); FlexCAN_Ip_AbortTransfer(INST_FLEXCAN_0, 0U); I benchmarked the time between the execution of FlexCAN_Ip_Send() and the invocation of FlexCAN_Ip_AbortTransfer(). It takes approximately 10.3 µs. However, even with this short interval, the message is still transmitted on the CAN bus. I have also maintained a reasonable amount of bus load using higher-priority messages from PCAN-View, but the single-message abort is still unsuccessful. For comparison, when I use multiple message buffers for transmission and subsequently abort them in reverse order, the measured duration for the sequence is approximately 9.3 ms, and only two frames are received on the bus while the remaining messages are aborted. This raises another question: why does the single-message abort fail even when the abort request is issued approximately 10.3 µs after the send API returns, whereas the multi-mailbox reverse-order approach successfully aborts most of the messages? Could the single message already have been transferred to the internal TX Serial Message Buffer (TX SMB) before the abort request is issued? I would appreciate your clarification on how the hardware handles this scenario and how to reliably test the abort mechanism for a single message buffer. Re: S32K312 FlexCAN – TX Message Buffer Abort with AEN Enabled and Bus-Off Recovery Using RTD 7.0.1 Hi@Yogs Why is an abort operation in reverse order necessary? I didn’t mean to imply that it is necessary. Through these comparative test results, I am explaining that an abort might fail because the specific message buffer (MBn) you are attempting to abort has, in fact, already been successfully transmitted. When you populate the message buffers sequentially—from MB0, MB1, ..., up to MB39—and then perform abort operations starting from MB0, it is possible that the target MB has already been successfully sent. Consider a different approach: what if we initiate the aborts starting from MB39? This would ensure that the message buffers with higher indices are addressed for abortion first.
View full article
EasyEVSE EVerest MPU build — SE05x middleware version clarification Setting up the NXP EasyEVSE platform using the i.MX93 service processing board. I'm following the EasyEVSE EVerest MPU instructions with this manifest: Branch: release/everest-mpu-2.0 Manifest: imx-6.12.20-2.0.0_everest.xml Target image: imx-image-everest The meta-nxp-everest-mpu README specifies EdgeLock SE05x Plug & Trust Middleware version 04.07.01 (se05x_mw_v04.07.01.zip), but I can only currently find version 04.08.01 (se05x_mw_v04.08.01.zip) on the NXP download site. Is middleware 04.08.01 supported with the release/everest-mpu-2.0 manifest and imx-6.12.20-2.0.0_everest.xml? Which exact recipe or configuration file should be updated, and what changes are required? Is middleware 04.07.01 still available through an official download link if it is required? Re: EasyEVSE EVerest MPU build — SE05x middleware version clarification Hi @ChargeMeMaybe  The README lists only 04.07.01 as a prerequisite; there are no major architectural changes between versions in the 04.x series. You will need to modify the bb file to use 04.08.01. Best Regards, Zhiming
View full article
T1014 - JTAGチェーンにデバッグ可能なコアが含まれていません NXPの専門家の皆様、こんにちは。 自作のT1014rdbボードでCode Warrior TAPをセットアップした際に、「JTAGチェーンにデバッグ可能なコアが含まれていません」および「JTAGチェーンを正しく構成できませんでした」という問題が発生しました。 解析の結果、ccs cmdでテストすればJTAGチェーンにアクセスできるものの、ボードをリセットしてもいなくてもcmd「get_children」でデバッグコアを取得できないことが確認されました: そして、もう一つ発見した現象は、t1014チップタイプはccsで入手できず、t10xxしか入手できませんが、t1040は入手可能だということです。 現在、RCWのローディング方法はSPI Flashによるもので、MISOを通0xaa55aa55でき、HRESETは1.8Vまで正常に上げられました: 現時点では問題を解決するためのさらなる方法がなく、Code Warrior TAP経由でT1014ボードのデバッグもまだできません。 この問題を解決するための提案をいただけると助かります。問題は基板の起動によるものなのか、IDEsの設定によるのか、ありがとうございます。 Re: T1014 - the jtag chain does not contain any debuggable cores こんにちは、 @BowenLi1991 さん。 どうぞお試しください 「ccs::config_chain t1014」の代わりに「ccs::config_chain t1040」を使用します。 ハードコードモードのCCSで、以下のコマンドを試してみてください。 (bin) 2%すべて削除 (bin) 3 % config cc cwtap (bin) 4% ccを表示 0: CodeWarrior TAP (cwtap) CC ソフトウェアバージョン{0.0} (bin) 5% ccs::config_chain t1040 (bin) 6 % display ::ccs::get_config_chain 鎖位置0:T1040 (bin) 7 % ccs::reset_to_debug コマンドが正常に動作した場合は、T1014をフラッシュブートモードに設定し、再度コマンドを実行してください。 すべてのコマンドが正常に動作した場合。 PORESET_B、HRESET_B、RESET_REQ_B、ASLEEPの波形がT1024RMの図4-1に従っていることを確認してください。電源投入リセットシーケンス よろしくお願いします。 6月
View full article
T1014-测量红外长度的误差 恩智浦的各位专家,您好: 原问题的链接是: https://community.nxp.com/t5/T-Series/T1014-the-jtag-chain-does-not-contain-any-debuggable-cores/mp/2424033#M5509 另外补充一点信息是,启用 JTAG 诊断功能后,日志报告称测量红外长度时出错: 请帮忙找出问题的根本原因,谢谢。 Re: T1014- Error measuring IR length 支持你 https://community.nxp.com/t5/T-Series/T1014-the-jtag-chain-does-not-contain-any-debuggable-cores/m-p/2424033#M5509
View full article
EasyEVSE EVerest MPUビルド — SE05xミドルウェアバージョンの明確化 i.MX93サービスプロセッシングボードを使ってNXP EasyEVSEプラットフォームをセットアップしています。 私は以下のマニフェストを使用して、EasyEVSE EVerest MPUの手順に従っています。 ブランチ: release/everest-mpu-2.0 マニフェスト: imx-6.12.20-2.0.0_everest.xml 対象画像: imx-image-everest meta-nxp-everest-mpu READMEにはEdgeLock SE05x Plug & Trust Middleware バージョン 04.07.01(se05x_mw_v04.07.01.zip)が指定されていますが、現在NXPのダウンロードサイトで見つかるのはバージョン04.08.01(se05x_mw_v04.08.01.zip)だけです。 ミドルウェア04.08.01はリリース/everest-mpu-2.0でサポートされていますか?マニフェストとimx-6.12.20-2.0.0_everest.xml? 具体的にどのレシピファイルまたは設定ファイルを更新すべきか、またどのような変更が必要か? ミドルウェア04.07.01は、必要であれば公式ダウンロードリンクからまだ入手可能ですか? Re: EasyEVSE EVerest MPU build — SE05x middleware version clarification こんにちは、 @ChargeMeMaybe READMEには前提条件として04.07.01のみが記載されており、04.xシリーズのバージョン間には大きなアーキテクチャ上の変更はありません。04.08.01を使用するようにbbファイルを変更する必要があります。 よろしくお願いします、 志明
View full article
S32K312 FlexCAN – AEN有効化時のTXメッセージバッファアボートとRTD 7.0.1を使用したバスオフリカバリ NXPチームの皆様、こんにちは。 私はS32K3 RTD 7.0.1(AUTOSAR 4.9.0)を用いてNXP S32K312評価ボードを操作しています。RTD API FlexCAN_Ip_Send()およびFlexCAN_Ip_AbortTransfer()を使ってFlexCANのメッセージバッファ中止送信機能をテストしています 。 私のテストでは、中止機能が期待どおりに動作していません。参考資料として、プロジェクトファイル、MEX設定ファイル、およびテストコードを添付しました。 以下の3点について、ご指導いただければ幸いです。 1. 複数の送信メッセージバッファの中止 最初のテストでは、複数のメッセージバッファを使用してメッセージを送信し、その後、それらすべてのバッファに対して中止要求を発行します。テストコードは以下のとおりです。 /* Transmit messages using MB0 to MB39. */ for (uint8_t lMb_u8 = 0U; lMb_u8 < 40U; lMb_u8++) { FlexCAN_Ip_Send( INST_FLEXCAN_0, lMb_u8, &tx_info, 0x123U, &dummyData[0] ); } /* Request abort for MB0 to MB39. */ for (uint8_t lMb_u8 = 0U; lMb_u8 < 40U; lMb_u8++) { FlexCAN_Ip_AbortTransfer( INST_FLEXCAN_0, lMb_u8 ); } すべての送信要求は同じCAN ID 0x123を使用しますが、メッセージバッファのインデックスは0から39まで変動します。 MCR [AEN]ビットは1に設定されており、アボートメカニズムが有効になっています。しかし、メッセージバッファに対してアボート要求を発行しているにもかかわらず、PCAN-Viewにはすべてのメッセージが表示されてしまいます。 私の予想では、送信がまだ保留中のメッセージは中止されるべきであり、すでに送信が完了したメッセージは中止できないはずです。 以下の点を明確にしていただけますか? 複数のメッセージバッファで送信を行い、その後保留中の送信をすべて中止する場合、推奨される手順はありますか? 2. 単一のメッセージバッファを使用して送信を中止する 問題を切り分けるために、メッセージバッファ8のみを使用する2つ目のテストを作成しました。 順序は次のとおりです。 MB8の場合はFlexCAN_Ip_Send()を呼び出してください。 FlexCAN_Ip_GetTransferStatus()を使用して転送ステータスを確認します。 送信が成功し、転送ステータスがFLEXCAN_STATUS_BUSYの場合は、 MB8 に対してFlexCAN_Ip_AbortTransfer()を呼び出します。 転送ステータスを再度読み取り、ハードウェアレジスタを検査してください。 送信APIはFLEXCAN_STATUS_SUCCESSを返し、中止前のステータスチェックではFLEXCAN_STATUS_BUSYが報告されます。しかし、中止APIはFLEXCAN_STATUS_NO_TRANSFER_IN_PROGRESS ( 0x5 )を返します。 RTD実装のデバッグ中に、戻りステータスがFlexCAN_AbortTxTransfer()内の以下の条件から発生していることがわかりました。 FlexcanMbConfig = *FlexcanMb; /* Check if the MBs have been safely inactivated */ if ((uint32)FLEXCAN_TX_INACTIVE == ((FlexcanMbConfig & FLEXCAN_IP_CS_CODE_MASK) >> FLEXCAN_IP_CS_CODE_SHIFT)) { /* Transmission has occurred */ Result = FLEXCAN_STATUS_NO_TRANSFER_IN_PROGRESS; } 現在の構成では、メッセージバッファはメモリブラウザーの0x40304100にあります。中止要求後、 CODEフィールドには、期待される中止コード0x9ではなく、非アクティブ/送信済み状態に対応する0x8が表示されます。 また、 FlexCAN_AbortTxTransfer()内の次のステートメントにブレークポイントを設定しました。 TimeStart = OsIf_GetCounter( FLEXCAN_IP_SERVICE_TIMEOUT_TYPE ); この時点で、 IFLAG1[8]が設定されます。 現在のRTD実装では、アボートシーケンスはメッセージバッファのCODEフィールドにFLEXCAN_TX_ABORT ( 0x9 )を書き込み、対応するメッセージバッファの割り込みフラグをポーリングします。フラグは、アボートヘルパーが戻った後、FlexCAN_Ip_AbortTransfer()内のFlexCAN_ClearMsgBuffIntStatusFlag( )によってクリアされます。 私が懸念しているのは、中止要求が発行される前に、既に完了した送信によって割り込みフラグが設定されている可能性があることです。もしそうであれば、ポーリングループは新たな中止完了イベントを待つことなく即座に終了できます。しかし、これが私の問題の原因であるかどうかはまだ確認できていません。 3. 自動復旧が無効になっている場合のバスオフ復旧 別のテストでは、自動バスオフリカバリーを無効にし、アプリケーションでリカバリーを処理しようとしています。 バスオフ条件が発生した場合、現在の方法はFlexCANドライバを初期化解除し再初期化することです。しかし、このシーケンスの後、その後のFlexCAN_Ip_Send()呼び出しはメッセージを送信できません。 自動バスオフ回復が無効化された場合の推奨回収手順についてアドバイスいただけますか? 具体的には: 初期化解除と再初期化だけで、FlexCANコントローラをバスオフから復元できますか? 初期化解除前に、未処理のTXメッセージバッファをすべて中止または明示的にクリアする必要がありますか? 再初期化後、送信前にメッセージバッファを再度設定または初期化する必要がありますか? コントローラが再び送信する前に、ESR1ステータス、MCR、CTRL1[BOFFREC]、割り込みフラグ、またはRTD内部転送状態に関わる必要な手順はありますか? バスオフ状態からの復旧において、古いTX転送やメールボックスの状態が後続の送信を妨げないようにするための推奨手順は何ですか? テストプロジェクト、MEXの設定、関連するソースコードを添付して、設定やAPIの使用状況を確認しています。 Re: S32K312 FlexCAN – TX Message Buffer Abort with AEN Enabled and Bus-Off Recovery Using RTD 7.0.1 こんにちは@Yogs あなたの3つの質問に対する回答を以下にまとめました。 (内容がかなり多く、フォーマットも少し乱雑です。) Q1。「フレックスカン・アボート」に関する質問について。 まず、FlexCANのアボートメカニズムは、保留状態にあるTXメッセージバッファ(MB)に対してのみ有効であることを理解する必要があります。 最初のテストについて: MB0が最初に起動されます。 FlexCANはスキャンを開始し、MB0の内容を送信します。 一方、CPUはMB1、MB2、…、MB39の構成を続行します。 CPUが最終的に2回目のループに到達する頃には、最初のMB群はすでに送信を完了している可能性が高い。 低バス負荷、ACK受信の成功、そしてクラシックCAN特有の8バイトペイロードなどの条件下では、 40フレームの送信は非常に速く完了できます。 2回目のテストについても同様で、バスがアイドル状態であれば、FlexCANはすでに送信を完了している可能性があります。 CPUが中止コマンドを実行する前に。 したがって、あなたの2つのテストはいずれも何も証明していません。 中止操作を適切に検証するには、CPUの実行速度に頼るのではなく、意図的に明確な「保留」期間を作成する必要があります。 例: 別のCANノードに、より優先度の高いIDでバスを継続的に占有するように設定し、ターゲットメッセージバッファ(MB)を保留状態に保ち、その後アボートをトリガーします。 Q2: なぜシングルMBテストは最初はBUSYで返却されるのに、中止リクエスト時にNO_TRANSFER_IN_PROGRESS戻るのでしょうか? 両者の間で短時間の状態不一致が生じることがあります: 「FlexCAN_Ip_Send()」はRTD(ランタイムドライバー)の状態を「BUSY」に設定します。 ハードウェアが送信を開始します。 フレームの送信が完了すると、ハードウェアはMB(メッセージバッファ)CODEを`0x8`に更新し、`IFLAG`を設定します。 TX IRQ ハンドラがまだ実行されていない場合、またはブレークポイント デバッグ中にシステムが一時停止されている場合、RTD 状態構造は `BUSY` のままになる可能性があります。 この時点で「中止」操作が呼び出されます。 内部的には、`Abort`関数はMB CODEを読み取り、それが既に`0x8`であることを確認します。 `FLEXCAN_STATUS_NO_TRANSFER_IN_PROGRESS` を返します。 したがって、`GetTransferStatus() = BUSY` かつ `FlexCAN_Ip_AbortTransfer() = NO_TRANSFER_IN_PROGRESS` となります。 それらは必ずしも矛盾するものではない。 前者はソフトウェアの簿記を反映している場合があり、後者は実際のハードウェアコードを確認するものです。 Q3。バス離脱回収 CANモジュールを再初期化することで「バスオフ」状態から回復することは十分に可能です。 手動で「バスオフ」復旧を行うには、アプリケーション層がまずデータ伝送を停止し、保留中の送信(TX)リクエストをすべてキャンセルまたは破棄しなければなりません(中止)。 その後、コントローラは完全な初期化解除と再初期化を受けなければなりません。 その後、アプリケーション層受信(RX)メッセージバッファ(MB)を再構成し、古いメッセージバッファフラグ、エラーフラグ、ソフトウェア伝送状態をクリアする必要があります。 送信を再開する前に、アプリケーション層はコントローラが「フリーズ」または「準備不足」状態を解除したことを確認し、送信メッセージバッファ(TX MB)や「送信準備完了」(RTD)の状態が「混雑」状態に残っていないことを確認する必要があります。 テストが失敗したとおっしゃっていたので、おそらく上記の手順を見落としていたのでしょう。添付ファイルにはバス離脱の復旧手順に関する情報は見つかりませんでした。まだ疑問があれば、テストプロジェクトを私に共有してください。確認のために確認します。 Re: S32K312 FlexCAN – TX Message Buffer Abort with AEN Enabled and Bus-Off Recovery Using RTD 7.0.1 Q1について、私の試験条件を明確にしたいと思います。 CANボーレート は 500 kbps で 、8バイトのペイロードを持つクラシックCANフレームはバス 上で約 300μs の送信時間を要します。 私のテストでは、まずそれぞれのTXメッセージバッファを通してメッセージを送信し、その後すぐに中止関数を実行します。中止関数は対応するメッセージバッファを順に処理し、それぞれのバッファに対してFlexCAN_AbortTxTransfer()を呼び出します。 したがって、アボート要求は送信リクエストの直後にそれぞれのメッセージバッファに対して発行されており、意図的に遅延しているわけではありません。 最初の数通のメッセージは、中止ループが到達する前に送信が完了している可能性があることを理解しています。しかし、おおよその送信時間と送信されたメッセージ数を考慮すると、後続のメッセージバッファの一部は、中止要求が発行された時点でまだ送信待ちの状態になっていると予想されます。 保留中のメッセージが中止されるのを防ぐ他のハードウェア条件やタイミング要因があるのか、教えていただけますか? Re: S32K312 FlexCAN – TX Message Buffer Abort with AEN Enabled and Bus-Off Recovery Using RTD 7.0.1 こんにちは@Yogs これは、コード内の「abort MB」のデフォルトのシーケンスです。 for(uint8_t lMb_u8 = 0; lMb_u8 < 40; lMb_u8++) { FlexCAN_Ip_AbortTransfer(INST_FLEXCAN_0,lMb_u8); } 「40 - 1Mb_u8」に変更しました。 for(uint8_t lMb_u8 = 0; lMb_u8 < 40; lMb_u8++) { FlexCAN_Ip_AbortTransfer(INST_FLEXCAN_0,40 - lMb_u8); } 以下は私のテスト結果です。 受信したデータは2フレームのみで、その他のMBはすべて正常に中断されました。 この検証結果は、私が以前立てた仮説を裏付けるのに十分です。つまり、あなたが「MBの中止」操作を実行する前に、現在のMBは既に正常に送信されていたということです。 Re: S32K312 FlexCAN – TX Message Buffer Abort with AEN Enabled and Bus-Off Recovery Using RTD 7.0.1 こんにちは、 ご説明ありがとうございます。ご指摘の内容を理解し、逆順の中止シーケンスをテストしました。ご指摘のとおり、この方法の方がうまくいきます。バス上で受信するフレームは2つだけで、残りのメッセージは正常に破棄されます。 しかし、その行動に関していくつか疑問があります。 1. なぜ逆順中絶が必要なのですか? この2つのループは、実行順序が異なるだけで、本質的には同じ操作を実行しているのではないでしょうか? なぜ最も高い郵便受けインデックスから中止を開始することがこれほど大きな違いを生むのか説明してもらえますか?これは、FlexCANが内部的にTXメッセージバッファをスキャンまたは選択する順序に関係していますか? 逆順の中止処理はハードウェア要件ですか、それとも保留中のメッセージを中止する確率を高めるための推奨手法に過ぎませんか? 2. 単一のメッセージバッファを中止する場合はどうでしょうか? また、メッセージバッファを1つだけ使用して、中止機能のテストも行いました。 FlexCAN_Ip_Send( INST_FLEXCAN_0、 0U、 &tx_info、 0x123U、 &dummyData[0] ); FlexCAN_Ip_AbortTransfer(INST_FLEXCAN_0, 0U); FlexCAN_Ip_Send() の実行から FlexCAN_Ip_AbortTransfer() の呼び出しまでの時間をベンチマークしました。所要時間は約10.3マイクロ秒です。 しかし、この短い間隔でもメッセージはCANバス上で送信されます。 PCAN-Viewからの優先度の高いメッセージを使用してバス負荷を適度に維持しましたが、単一メッセージによるアボートは依然として成功しません。 比較のために、複数のメッセージバッファを使用して送信し、その後逆順にそれらを中止した場合、シーケンスの測定時間は約9.3ミリ秒であり、残りのメッセージは中止される一方で、バス上で受信されるフレームは2つだけです。 これは別の疑問を提起します。送信APIが応答を返してから約10.3マイクロ秒後に中止要求が発行された場合でも、単一メッセージの中止は失敗するのに対し、複数メールボックスの逆順アプローチではほとんどのメッセージが正常に中止されるのはなぜでしょうか? アボートリクエストが発行される前に、単一のメッセージがすでに内部のTXシリアルメッセージバッファ(TX SMB)に転送されている可能性はありますか? ハードウェアがこのシナリオをどのように処理するのか、また、単一メッセージバッファのアボートメカニズムを確実にテストする方法について、ご説明いただけると幸いです。 Re: S32K312 FlexCAN – TX Message Buffer Abort with AEN Enabled and Bus-Off Recovery Using RTD 7.0.1 こんにちは@Yogs なぜ逆順での中止操作が必要なのですか? それが必須だと言いたかったわけではありません。 これらの比較テスト結果を通して、中止しようとしている特定のメッセージバッファ(MBn)が、実際には既に正常に送信されているため、中止が失敗する可能性があることを説明します。 メッセージバッファをMB0、MB1、…、MB39まで順にデータで埋め、その後MB0から中止操作を実行すると、対象のMBが既に正常に送信されている可能性があります。 別のアプローチを考えてみましょう。MB39からアボートを開始したらどうなるでしょうか?これにより、インデックス番号が大きいメッセージバッファが優先的に処理中止されることが保証されます。
View full article
PCA9431HK 数据手册和 AN12639 可用于 NFC 充电监听器设计 即使登录后,产品页面上也看不到 PCA9431 数据表和 AN12639(CRN120 数据表中引用的)。您能否分享一下这些信息,或者告诉我们如何申请访问权限? 问题: 1.PCA9431 的输出是否稳定在 5V?在约 0.7W 的功率下,可提供的输出电流是多少? 2. 是否有 CRN120 加 PCA9431 监听器以及配套的 CTN730 或 CTN530 发射器的参考原理图或评估套件? 3. 对于直径约为 10 至 15 毫米的线圈,推荐的监听线圈尺寸和电感值是多少? 哪里可以下载**哔——**数据手册和文档? Re: PCA9431HK datasheet and AN12639 access for NFC charging listener design 你好, 数据手册和应用说明需要签署保密协议。 请访问以下网页: 安全访问权限 | 恩智浦半导体   请先按照步骤 2 签署保密协议。 获得 NDA 编号后,请按照步骤 3点击“提交您的请求”。   那么请申请NFC换位产品的最高访问权限。   请在“申请访问权限的原因”一栏中填写您的项目详情和保密协议编号。
View full article
PCA9431HKデータシートおよびNFC充電リスナー設計のAN12639アクセス PCA9431のデータシートとCRN120データシートに参照されたAN12639は、ログインしても製品ページには表示されません。それらを共有したり、アクセス申請の方法を教えてもらえますか? 質問: 1.PCA9431出力は固定5Vに調整されているのか、また約0.7Wで利用可能な出力電流はどれくらいですか? 2. CRN120プラスPCA9431リスナーと対応するCTN730またはCTN530トランスミッタの参考回路図や評価キットはありますか? 3. 約10〜15mmのコイルに推奨されるリスナーコイルのサイズとインダクタンスは? **ピー音**のデータシートとドキュメントはどこで切り出せますか? Re: PCA9431HK datasheet and AN12639 access for NFC charging listener design こんにちは、 データシートとアプリケーションノートにはNDAが必要でした。 こちらのウェブページにアクセスしてください。 セキュアアクセス権 |NXP Semiconductors   まず、手順2に従ってNDAに署名してください。 NDA番号を取得したら、ステップ3に従って「リクエストを送信する」をクリックしてください。   ぜひNFCチェンジ製品の最高アクセス権を申請してください。   アクセス権を申請する理由欄に、プロジェクトの詳細とNDA番号を入力してください。
View full article
为什么 imx7d 依赖于 imx6q 最近,我在尝试减小版本中的内核大小时发现,`busfreq-imx.c` 依赖于 `platsmp.c`。文件用于定义 `scu_base` 和 `imx_smp_ops`。 但不知何故,imx7d 对编译 `platsmp` 的支持已被提交移除。 ``` 撤销“ARM:imx:为imx7d添加smp支持” 这将撤销提交 e34645f45805d8308866de7b69f117f554605bb6。 NXP 供应商树中未使用此功能。 签字人:董爱生 ``` 下面的提交添加了厂商特定的总线频率实现,但它没有在 Makefile 中选择 platsmp。 ``` Arm:imx:添加 i.MX7D 电源管理单元支持 此补丁增加了对 i.MX7D 电源管理单元的支持,包括 低功耗待机,FastMix 关闭时进入睡眠状态,A7-M4 AMP 电源 管理单元支持。 签字人:Anson Huang [爱生:删除重复的 imx7d_init_late 定义] 签字人:董艾生 [ Leo:已更新以符合 a2faac398 的要求(“使用 .arch 指令而不是汇编器命令行标志” ] 签字人:李阳 ``` 是我遗漏了什么,还是电路板支持包中存在某种隐藏的bug? 我使用的是 6.18.37-2.1.x 版本。我的版本中使用了电路板支持包。   i.MX7 双核 疑似软件缺陷 Re: why imx7d depends on imx6q 你好, 这似乎是源代码中的一个漏洞。 您能否使用之前的配置作为临时解决方案,看看是否能解决问题? 顺祝商祺! Re: why imx7d depends on imx6q 是的,目前我要么需要在 defconfig 中选择一个 imx6 设备,要么应用下面的补丁; ``` diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile 索引 2f22af122c6e..cdc66bdaba1c 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile @@ -44,7 +44,7 @@ obj-$(CONFIG_HAVE_IMX_MMDC) += mmdc.o obj-$(CONFIG_HAVE_IMX_SRC) += src.o obj-$(CONFIG_HAVE_IMX_DDRC) += ddrc.o obj-$(CONFIG_HAVE_IMX_MU) += mu.o -ifneq ($(CONFIG_SOC_IMX6)$(CONFIG_SOC_LS1021A),) +ifneq ($(CONFIG_SOC_IMX6)$(CONFIG_SOC_LS1021A)$(CONFIG_SOC_IMX7D_CA7),) obj-$(CONFIG_SMP) += headsmp.o platsmp.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o endif ``` 如果能在下一个 电路板支持包。 版本中修复这个问题就太好了。
View full article