Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
MCXN547 SC Timer0 SDK driver Issue I am using MCXN547VKL MCU and SDK version 26.06.00.  Context: I am using SCT timer0  to generate two different PWM waveform using the COUNTER in split mode, CONFIG[UNIFY] = 0; i.e COUNT_L for one PWM generator and COUNT_H for another PWM generator. The issue: When I load the COUNTER_H with the driver API "SCTIMER_SetCOUNTValue(SCT0,kSCTIMER_Counter_H,0U);" , Bus Fault occurs.  I traced the issue to SDK driver code. The driver code uses 32 bit write to write both COUNT_H and COUNT_L instead of 16 bit write to COUNT_H alone. While the COUNT_H is being written COUNT_L was running and this caused bus fault. I modified the SDK driver code to use 16 bit write and the bus fault did not occur. I have attached the driver code and marked with colours, the code line which was causing the problem and the fix. If this is really the problem, the SDK driver can be updated. - Thanks /*! * @brief Set the value of counter. * * The function is to set the value of Count register, Writing to the COUNT_L, COUNT_H, or unified register * is only allowed when the corresponding counter is halted (HALT bits are set to 1 in the CTRL register). * * @param base SCTimer peripheral base address * @param whichCounter SCTimer counter to use. In 16-bit mode, we can select Counter_L and Counter_H, * In 32-bit mode, we can select Counter_U. * @param value the counter value update to the COUNT register. */ static inline void SCTIMER_SetCOUNTValue(SCT_Type *base, sctimer_counter_t whichCounter, uint32_t value) { SCTIMER_StopTimer(base, (uint32_t)whichCounter); switch (whichCounter) { case kSCTIMER_Counter_L: assert(value <= 0xFFFFU); assert(0U == (base->CONFIG & SCT_CONFIG_UNIFY_MASK)); /* Use Counter_L bits when user wants to setup the Low counter */ base->COUNT_ACCESS16BIT.COUNTL = (uint16_t)value; break; case kSCTIMER_Counter_H: assert(value <= 0xFFFFU); assert(0U == (base->CONFIG & SCT_CONFIG_UNIFY_MASK)); /* Use Counter_H bits when user wants to setup the High counter */ // base->COUNT = (uint32_t)base->COUNT_ACCESS16BIT.COUNTL | SCT_COUNT_CTR_H(value); base->COUNT_ACCESS16BIT.COUNTH = (uint16_t)value; //the fix break; case kSCTIMER_Counter_U: assert(1U == (base->CONFIG & SCT_CONFIG_UNIFY_MASK)); /* Use both Counter_L/Counter_H bits when counter is operating in 32-bit mode (unify counter). */ base->COUNT = value; break; default: /* Fix the MISRA C-2012 issue rule 16.4. */ break; } SCTIMER_StartTimer(base, (uint32_t)whichCounter); } Clock|Timers Re: MCXN547 SC Timer0 SDK driver Issue Hi @JawaharA  Thank you for your feedback. Your analysis of the cause of the Bus Fault is correct: updating COUNT_H uses a 32-bit write to the COUNT register, but the current function halts only the H counter. If the L counter is still running, this write access triggers an SCT bus error. However, changing the access to a 16-bit write to COUNTH is not compliant with the SCT hardware access requirements, because COUNT_H must be written as a word together with COUNT_L . The correct software solution is to halt both the L and H counters before performing the 32-bit write to COUNT , and then restore their previous running states afterward. We recommend reviewing and updating the SDK accordingly rather than using a separate 16-bit write to COUNT_H . BR Harry Re: MCXN547 SC Timer0 SDK driver Issue Hi Harry, Thanks for your quick response. As per the manual page you referenced in your response, if CONFIG[UNIFY] = 0, then both COUNT_L and COUNT_H registers can be read or written individually while the respective counters are not running. The SDK does use 16 bit write for COUNT_L register. COUNT_H register should be written using 32bit write irrespective of CONFIG[UNIFY] - is this an undocumented condition? Thanks - Jawahar
查看全文
MPXV7002DP compatibility with LPG and Propane Hello, i am a student in my final year. i am currently working on a project where i have to measure the pressure difference in household LPG line. the normal pressure in the line is around 2.30 kPa to 3.60 kPa . i checked the data sheet of it but there is nothing clear about LPG compatibility. So if anyone tried this in past or any technical official can tell me about it . thanks . Re: MPXV7002DP compatibility with LPG and Propane Hello, As of February 2, 2026, the NXP MEMS Sensor products have been transferred to STMicroelectronics. Please reach out to STMicroelectronics for further information and support.
查看全文
LS1046A 定制板:从 eMMC、SD 和 QSPI 冷启动失败;CodeWarrior RCW 应用启用 U-Boot 你好, 我们正在开发一款基于 LS1046ARDB 设计的定制 LS1046A 板。自主冷启动失败,但 CodeWarrior/QCVS 干预允许处理器到达 BL2、BL31 和 U-Boot 控制台。我们发现 eMMC、SD 卡和 QSPI 或非 存在冷启动失败的情况,因此我们希望得到有关隔离常见 RESET/时钟/PBL 路径的指导。 平台及与LS1046ARDB的区别 项目自定义板配置 处理器 LS1046AE Rev. 1.0;U-Boot 报告 SVR 0x87070010 电源/RESET 控制 无CPLD。STM32 BMC、PCA9539 I/O 扩展器、电平转换器和分立 RESET 电路实现了时序控制和 SD/eMMC 选择。 DDR 4 GiB,单列,64 位非 ECC DDR4,已初始化 1600吨/秒。这与我们 RDB 对比中使用的 8 GiB ECC 配置不同。DDR 初始化在辅助启动后成功;完整的内存裕度鉴定仍在进行中。 时钟 100 MHz 主参考;工作辅助配置采用单端 SYSCLK 选择。DDR 使用差分参考路径。U-Boot 报告 CPU 频率为 1800 MHz,平台频率为 600 MHz,FMan 频率为 700 MHz。 eMMC 宏碁 MX52LM08A11XVI,与 RDB 设备不同。U-Boot 识别制造商 0xc2,名称 M08A11,MMC 5.1,用户容量约为 7.3 GiB。 SD/eMMC接口 BMC 控制选择和 EVDD:eMMC 为 1.8 V,SD 为 3.3 V。 QSPI 或非 S25FS512S,每个设备 64 MiB。该电路板上的 或非 检测成功。 其他外围设备 自定义以太网/PHY路由和SerDes配置;未使用PCIe设备。 软件 基于 TF-A v2.12.0 的 A1 特定板/设备树更改 lf-6.12.49-2.2.0,U-Boot 2025.04。U-Boot 启动时禁用监视程序。 在本次调查中,复位网络也进行了重新设计:隔离了竞争的处理器-POR 驱动程序分支,断开了直接的 BMC 到 TRST 驱动程序,并安装了硬件 POR/TRST 耦合路径。BMC 的 HRESET 传感功能保持连接。 最新的原生冷启动观察 我们发现并纠正了 BMC 序列中一个意外的早期 SoC RESET。在随后的示波器捕获中,我们从一个完全关机、没有任何 CodeWarrior 或 QCVS 操作的启动状态开始: - 当 BMC 释放处理器复位时,PORESET_B 上升。 - eMMC CLK 和 CMD 活动在该边沿之后开始。 - 没有正常的 BL2/U-Boot 控制台输出。早期的一些尝试只产生了乱码 UART 字符。 - 标记为 HRESET_B 的轨迹保持高电平,大约 1.8 V;在捕获的 eMMC 活动之前或期间,我们没有观察到低电平断言。BMC HRESET 输入端也反复读取高电平。 CodeWarrior/QCVS行为 在冷启动停滞期间,CodeWarrior Inspect 可以报告在 JTAG 链上找不到“CortexA72#0”,并建议检查 RCW 或启用 RCW 覆盖。 但是,启用 RCW 应用后点击调试,或者通过 QCVS 应用 RCW,就可以启动。有时 UART 连接到 U-Boot 时,Debug 会报告“核心未处于调试模式”。在其他尝试中,目标程序会停止运行,而 `continue` 命令允许启动完成。 我们将初始化脚本简化为: from cw.dbg import ta def run_init_file(): target = ta.create() target.rcw.set_source(0x40) target.rcw.set_data({13:0x00004504}) target.rcw.apply() 物理绑带设置为 SD/eMMC 源“0x40”。提供的字 13 与 eMMC 中已存储的值相同。这个简化的脚本还启用了辅助启动功能。使用相同的单词“set_source(0x9E)”进行的单独测试也成功了。 在这个精简的脚本中,没有显式的 DDR 初始化、BRR、PC、SCTLR 或恢复操作。我们认识到“rcw.apply()”和调试器启动框架仍然可以执行内部重置/运行控制操作;这不是被动附加。 经过协助,所有 16 个 RCWSR 单词都与预期的媒体 RCW 相符。BL2 存在于 OCRAM 中,并且检测启动链完成了 DDR 初始化、eMMC/FIP 加载、BL31 和 U-Boot。干预后“RSTRQPBLSR”读数为零,但我们并不认为这些读数捕获了原始的冷失效状态。 已进行的测试 测试观察 从 eMMC 启动 无法自主启动控制台;需要通过调试器辅助恢复才能到达 U-Boot。 从 SD 卡启动本机模式 尽管 BMC 检测到/选择了 SD 卡,但仍然出现类似的冷启动失败;可以进行辅助启动。 从 QSPI NOR 接口启动 最新测试也显示冷启动失败。我们尚未确定这三种媒体都止步于同一内部阶段。 独立组网 (SA) 硬编码源带 0x9E 和 0x9F 后续测试未能获得预期的独立组网 (SA) RESET 进程。我们明白,仅靠硬编码的 RCW 并不能构成完整的 U-Boot 启动映像。 启用安全 RCW 的库存 RDB 初始化 允许恢复,但也会修改 DDR、CPU 状态和外围设备,因此这不是一个孤立的测试。 以上是最简应用脚本 即使第 13 个字等于存储的值,也可以使用源请求进行恢复。 0x9E 和 0x40。 QCVS RCW 测试/回读 测试通过,干预后读取结果与预期配置相符。原生获取功能仍未经验证。 移除了三个继承的 PCIe PBI 访问 原生冷启动性能没有改进。 禁用 SerDes2 后,两个 SerDes 模块都会被阻塞。 没有改善。辅助 U-Boot 日志证实了修改后的 RCW 字样。 DDR诊断 在协助下,SPD 读取和 4 GiB 初始化以 1600 MT/s 的速度成功;这不是完整的裕量测试。 新增 BL2/BL31/U-Boot 里程碑日志记录 辅助启动完成所有阶段。原生故障不会给出第一个 BL2 里程碑;这些日志无法追踪硬件 PBL 本身。 eMMC RCW 和图像放置 启用 SerDes 的 eMMC 基线为: 0c100012 0e000000 00000000 00000000 13335a06 40400012 60040000 c1000000 00000000 00000000 00000000 0001c83e 00004504 24001002 00000096 00000001 在同时禁用SerDes的实验中,只有以下几个词发生了变化: RCW05 = 00000000 RCW06 = 00f00012 在 eMMC 用户区,扇区大小为 512 字节: 组件起始 LBA 字节偏移量 RCW + PBI + BL2 容器 (bl2_emmc.pbl) 0x8 0x1000 包含 BL31 和 U-Boot 的 FIP 0x800 0x100000 FMan 微码 0x4800 0x900000 读取写入的 PBL/BL2 和 FIP 区域,发现它们的 安全散列算法(SHA)-256 值与这些测试中传输的文件相匹配。PBI 流已解码并进行了 CRC 校验。它设置 OCRAM 启动位置,执行继承的 NXP 互连/USB 准备和 PBL 同步操作,并将 BL2 复制到 OCRAM 中。移除 PCIe 寄存器访问并没有解决卡顿问题。DDR 初始化稍后由 BL2 执行。 我们还读取了 eMMC `EXT_CSD[162] = 0x00` 和 `EXT_CSD[179] = 0x00`;我们没有对这些设置进行不可逆转的更改。 请求指导 1. HRESET 时序:相对于 PORESET_B、有效参考时钟和初始 eMMC 事务,LS1046A 应该在哪个点将 HRESET_B 置低?如果处理器端探测确认没有低电平有效,我们应该首先检查哪个 RESET、时钟、电源域、跳线或测试模式条件? 2. 捕获前干预:是否有受支持的 CodeWarrior/CCS 系统访问端口程序,可以在 A72 内核被发现之前读取停滞的 PBL/DCFG/eSDHC 状态,而无需 RESET 或 RCW 覆盖?请提供所需的访问上下文、命令和最有用的状态/错误寄存器。 3. RCW 应用语义:`rcw.apply()` 究竟执行什么操作?如何处理源“0x40”或“0x9E”以及仅提供一个单词的情况?执行哪些 RESET/调试控制?如何获得未指定的 RCW 字?我们想要确定当提供的单词不会改变生成的 RCW 时,允许恢复的操作。 4. RCW/PBI 审查:上述 eMMC RCW 和位置是否揭示了任何问题?对于这种自定义配置,是否存在额外的强制性 PBI 操作或相关的芯片勘误? 5. 下一个决定性测量:鉴于 eMMC、SD 和 QSPI 的症状,哪种测量或非侵入式寄存器捕获能够最好地区分 RESET/时钟/跳线问题与启动介质初始化、RCW 获取或后续 PBI 执行? Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo @Hiran_E_H 波形中未钳位 HRESET_B,这不符合预期。 请参阅AN12081中的第 5.1 节(使用 SD 卡启动过程)。虽然该文档描述了 SPL/U-Boot 流程,但当前的 BL2/BL31 流程遵循非常相似的硬件启动顺序。请将您的波形与图 3 进行比较。 根据目前的观察结果,怀疑是与 RESET 相关部件有关的硬件问题。将您的 RESET 设计与 FRWY-LS1046A 进行比较也可能有所帮助,因为 FRWY-LS1046A 不使用 CPLD。 此外,请检查 ASLEEP 信号,因为它是启动过程中的一个重要信号。 谢谢。 Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo 测试期间的序列捕获   Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo @Hiran_E_H 请参阅LS1046A 参考手册,4.4.1 节“上电复位顺序” 步骤 5 和步骤 15 之间可能存在问题。 由于无法明确识别 HRESET_B 的起始点,因此还应检查步骤 1 至 4。 谢谢! Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo ASLEEP 始终处于高电平,因为连接的 LED 始终处于开启状态。 我们取了第二块板,没有进行任何硬件改造,尝试从 SD 卡启动,RCW 相同,只是电压选择有所改变,结果发现 HRESET_B 在 PORESET_B 从低电平变为高电平之前就已经变为低电平。 我们预期的 HRESET_B 尖峰是由于 PMIC PG 和 SoC 开始将 HRESET_B 拉低后,1.8v 上拉所致。 目前我们正在探测 emmc/SD CMD、DATA 和 CLK,以查看是否有任何事务正在发生。请问SoC释放HRESET_B需要满足哪些条件? 出于好奇,我们将同一张 SD 卡插入 ls1046a_rdb 板,并尝试开机,结果成功进入了 uboot 控制台。 Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo 你好, 感谢您指出 LS1046A 参考手册第 4.4.1 节。我们正在检查步骤 1-4 以及步骤 5-15,并将我们的测量结果与 AN12081 第 5.1 节/图 3-4 进行比较。 以下是我们 9 月 29 日测试的最新结果,以及 9 月 30 日对 QCVS 生成的 SD 候选方案的后续跟进。我们将附上 PORESET_B、HRESET_B、SD CMD 和 RESET_REQ_B 的示波器捕获以供查看。   更新的HRESET观测 在第二块 A1 定制板上,最初测试时没有对之前的板进行 RESET 修改,我们可以观察到 HRESET_B 在 PORESET_B 释放之前变为低电平。这与之前的捕获结果不同,之前的捕获结果中 HRESET_B 一直处于高电平状态。我们不认为之前的波形能够代表这块电路板的波形。 针对当前的差分时钟 SD 测试: 在独立组网 \(SA\) 冷启动期间,HRESET_B 在 PORESET_B 上升之前为低电平,之后保持低电平。BL2控制台未显示任何输出。 应用 CodeWarrior Debug/RCW 后,HRESET_B 变为高电平。 调试器最初在 PC=0 处停止。点击“继续”后,BL2 → BL31 → U-Boot 将开始运行。 请帮助我们根据预期序列解读附件中的捕获结果,包括 SD CMD 和 RESET_REQ_B 活动。 下图所示——我们没有插入 SD 卡——因此我们可以看到 RESET 请求变为低电平。 (注:部分图片中误将 emmc 命令写成了 SD 命令) 插入 SD 卡后捕获 - 切换至 eMMC/SD 卡模式。 Captured with with poreset_b, hreset_b, reset_request, vcc1v8 with SD card insertedCaptured with with poreset_b, hreset_b, reset_request, vcc1v8 with SD card insertedCaptured with with poreset_b, hreset_b, reset_request, vcc1v8 with SD card inserted使用 poreset_b、hreset_b、reset_request 和 vcc1v8 捕获,并插入 SD 卡。 Captured with with poreset_b, hreset_b, reset_request, sd_cmdCaptured with with poreset_b, hreset_b, reset_request, sd_cmdCaptured with with poreset_b, hreset_b, reset_request, sd_cmd使用 poreset_b、hreset_b、reset_request、sd_cmd 捕获 Captured with with poreset_b, hreset_b, sd_cmd, trst_b(jtag reset)Captured with with poreset_b, hreset_b, sd_cmd, trst_b(jtag reset)Captured with with poreset_b, hreset_b, sd_cmd, trst_b(jtag reset)使用 poreset_b、hreset_b、sd_cmd、trst_b(jtag 重置)捕获 Captured after entering debug mode after cold start stallCaptured after entering debug mode after cold start stallCaptured after entering debug mode after cold start stall冷启动停滞后进入调试模式时捕获 新的 SD RCW 测试 我们保持外部 SD/MMC 启动选项 (cfg_rcw_src=0x40),并生成了一个新的 SD 映像,其中两个 SerDes 块均已禁用。我们选择了 100 MHz 差分主参考频率,并采用了硬编码中的有效时钟比率。 0x9F 例如,同时保留 A1 引脚复用和 SD 启动/PBI 配置。 这是 非硬编码启动:仍需从 SD 卡获取完整的 RCW 和 PBI。我们并没有绕过媒体采集或PLL锁定。 设置值 主要参考 DIFF_SYSCLK/B,标称 100 MHz; cfg_eng_use0=0 A1 开关位置 SW5 极点 2 开启(差分时钟选择);SW8 极点 1–8 0010 0000 (1=开启)(启动源开关带) SYS_PLL_RAT 4 → 平台 400 MHz CGA_PLL1_RAT 13 → CPU 1300 MHz CGA_PLL2_RAT 10 → PLL2 1000 MHz;FMan 500 MHz MEM_PLL_RAT 16 → DDR 1600 MT/s DDR_REFCLK_SEL / DDR_FDBK_MULT 1/2;差分DDR参考 SRDS_PRTCL_S1 / SRDS_PRTCL_S2 0 / 0 SRDS_PLL_PD_S1 / SRDS_PLL_PD_S2 3/3;每个SerDes模块中的两个PLL均已关闭 PBI_SRC / BOOT_HO 6/0 EVDD_VSEL 2、SD 3.3V 配置 DIMM 4 GiB,单列,64 位非 ECC DDR4;训练种子未经过裕量限定   经调试器干预后,此测试镜像中使用的完整 RCW 为: RCW01–04: 0810000d 0a000000 00000000 00000000 RCW05–08: 00000000 00f00012 60040000 c1000000 RCW09–12: 00000000 00000000 00000000 0001c83e RCW13–16: 00004504 24001102 00000096 00000001 结果: 本地冷启动停滞仍然存在。在调试器的帮助下,U-Boot 报告 CPU 频率为 1300 MHz,平台频率为 400 MHz,DDR 内存频率为 1600 MT/s,FMan 内存频率为 500 MHz,与预期比例相符。SD初始化和FIP加载成功。  精确的调试器干预和结果状态 初始化回调函数仅调用以下 RCW API 操作: from cw.dbg import ta def run_init_file(): target = ta.create() target.rcw.set_source(0x40) target.rcw.set_data({13: 0x00004504}) target.rcw.apply() 第 13 个单词与 SD 卡上已存储的值相同。该脚本没有显式的 DDR 初始化、BRR/PC 写入或 Continue 命令。我们认识到 申请() 调试器启动时可能会在内部改变复位/调试状态。 在“调试”之后,“继续”之前,我们读到: PC = 00000000 PORSR1 @ 01ee0000 = 205b7fff RSTRQPBLSR @ 01ee00b4 = 00000000 RSTRQMR1 @ 01ee00c0 = 00004000 RSTRQSR1 @ 01ee00c8 = 00000000 BRR @ 01ee00e4 = 00000000 SCFG_SCRATCHRW0/1 = 00000000 / 10000000 DDR SDRAM_CFG = 07000000 (MEM_EN clear) 所有 16 个 RCWSR 字都与测试的 SD 图像匹配。OCRAM 的前 64 个字节 0x10000000 与其 BL2 入口代码匹配。因此,PC=0 时 UART 输出的缺失并不意味着硬件 PBL 没有取得进展。仅使用 Continue 就足以运行 BL2/BL31/U-Boot;本次运行未使用手动 BRR 写入。 这些都是 干预后读数,未保留原生停滞状态。我们并没有使用它们的零误差值来得出结论,即最初的冷启动尝试没有 PBL/时钟/RESET 错误。 图像放置和精确的 PBI 设置 我们的 SD 和 eMMC 存储卡都使用 512 字节扇区: RCW/PBI/BL2 .pbl:LBA 0x8,字节偏移量 0x1000。 fip_uboot.bin 包含 BL31 和 U-Boot:LBA 0x800,字节偏移量 0x100000。 对于 eMMC 而言,这些是用户区域的偏移量,而不是 boot0/boot1 的偏移量。已在这些偏移量处逐字节检查了 SD 整个磁盘映像;早期的 eMMC 写入也通过了回读 安全散列算法 (SHA)-256 验证。 下面就是测试的 SD PBL 中的确切设置流程。每一行都是 按流顺序序列化的 PBI 命令字及其数据字;这些不是调试器内存写入命令: 09570600 00000000 09570604 10000000 09570178 0000e010 09180000 00000008 09570418 0000009e 0957041c 0000009e 09570420 0000009e 09570158 00001000 09610000 00000000 096100c0 000fffff 09570604 10000000 09570158 00001000 096100c0 000fffff 这包括暂存启动指针、继承互连/USB 设置、刷新和同步操作。重复操作将被保留。没有 PCIe 设置写入操作。然后,该流包含 844 次 ACS64 传输到 OCRAM:53,953 字节的 BL2 加上 63 个零填充字节。测试的PBL以……结束 08610040 6d8bdebf (END/CRC),其总大小为 57,576 字节。 今天我们也独立地使用QCVS生成了PBL。解析和 CRC 验证发现其 PBI 操作和 BL2 有效载荷与被测图像相同。我们特意将 RCW12 从 0001c83e 到 0001a8fe (睡眠=0, RTC=1, IRQ_BASE=63);只有该字和 CRC 不同。其 SHA-256 值为: 2d3389fce4ead088957caf6251022b5526be8565e812a8aab8fce21bd8923277 9月30日更新: 我们测试了较新的 QCVS 生成的 SD 候选版本,再次遇到了原生冷启动停滞的问题。因此,用实际的 QCVS 导出文件替换 PBL 文件并没有解决该问题。其 PBI 和 BL2 有效载荷与前一个映像相同,因此这并不能排除共享配置问题,也不能证明原因是硬件问题。 上述详细的 HRESET/寄存器读数和已确认的辅助成功序列指的是之前的 RCW12=0001c83e 跑步。最新RCW12=0001a8fe的调试器恢复结果和详细波形 本次更新尚未添加运行功能。 请求指导 在 POR 释放之前 HRESET_B 置位,但之后保持低电平的情况下,哪些测量方法能够最好地区分步骤 11-14 中的 RCW 取指/验证失败与 PLL 锁定或平台时钟切换?我们还将继续在步骤 1-4 中检查早期电源/时钟/表带状况。 由于步骤 15 会释放 SoC 的 HRESET 驱动程序,而步骤 17 会执行 PBI,那么在排除外部 HRESET 驱动程序或短暂的释放/重新断言操作的情况下,优先执行前面的步骤是否合理?另请检查上述 RCW 和 PBI,查看是否存在任何缺失或错误的配置。 当 HRESET 保持 LOW 状态,而没有应用 RCW 或进行其他 RESET 时,CCS/SAP 能否访问本地 RESET/PBL 状态或已记录的 PLL 锁定状态?请提供确切的访问上下文、命令和寄存器/位定义。普通检查之前未能在此状态下找到 CortexA72#0。 究竟是什么? 设置源(0x40) 加上匹配的 word-13 覆盖和 申请() 如何重置、TRST 和调试控件?我们希望找到允许启动而不改变最终 RCW 内容的操作。 我们可以提供生成的 PBL、完整的 UART/调试器日志和额外的示波器捕获数据。自主冷启动时无法启动,因此非常感谢您能提供关于下一个鉴别测试的指导。 另外,有人告诉我,作为自测,如果我们不插入 SD 卡或空白 eMMC 就给 0x9e 或 0x9f 上施加电压,当 POREST_B 从 0 释放到 1 时,我们将能够看到 HRESET_B 从低变为高。我们尝试在 RDB 板上捕获此信息,并观察到了这一点。那么,如果我们在自定义电路板上进行同样的操作,是否也会观察到相同的行为? 谢谢! Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo 嗨@Hiran_E_H 1.根据目前的信息,很难明确区分RCW加载问题和PLL锁定问题。但是,如果CCS能够成功访问设备,并且PLL相关的波形看起来正常,则PLL问题的可能性较低。 我建议比较独立冷启动和 CCS 辅助启动时的 SD 命令波形。尤其要比较波形的持续时间和顺序,以确定 RCW 加载过程中是否存在任何异常。 您还可以参考参考手册中的表 4-8“RCW 状态时序”,以检查 SD 卡时钟在启动过程中是否反映了预期的频率转换。请注意,这些转换取决于 RCW 是否成功加载以及 PLL 是否正确锁定。 2.是的,我同意你的做法。根据现有信息,首先集中精力处理步骤 1 到 15 是合理的,特别是早期与电源、时钟、RESET 和启动源相关的阶段。 3.您可以尝试以下 CCS 命令来验证 LS1046A 在此状态下是否可以访问。例如,您可以尝试读取 RCWSR 寄存器: (bin)1% 全部删除 (bin)2% 配置 cc cwtap (bin)3% 显示 cc (bin)4% ccs::config_chain {ls1043a dap sap2} (bin)5% 显示 ::ccs::get_config_chain (二进制)6% ccs::display_mem 32 0x01ee0000 4 0 100 显示更多行 4.您还可以参考参考手册表 4-8“RCW 状态时序”,并观察 SD 卡时钟是否反映了 RCW 处理期间预期的频率变化。 我建议在启动过程中验证相关的波形。 实际上,我在初始调试期间通常使用硬编码模式。作为额外的检查,您可以将电路板配置为使用硬编码的 RCW,并验证观察到的波形是否遵循图 4-1“上电复位序列”中描述的顺序。如果波形符合预期行为,则与 RESET 相关的硬件设计通常可能正常工作。 我将外出超过一周,因此在此期间我不会发布任何更新。 如果问题紧急,请另开新帖,以便其他团队成员可以为您提供帮助。 谢谢! Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo 你好, 我尝试从 ccs cconsole 读取数据,但在冷启动过程中出现以下响应 (二进制)7% ccs::display_mem 2 0x01ee0000 4 0 1 扫描超时 我们尝试捕获 ASLEEP 信号,并发现了以下现象: SD时钟频率从约200kHz降至约20kHz(怀疑是回退机制) 在 200kHz 期间以及时钟频率降至 20kHz 之前的一些事务中,SD DATA0 始终为高电平。
查看全文
LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Boot Hello, We are bringing up a custom LS1046A board based on the LS1046ARDB design. Autonomous cold boot is failing, but CodeWarrior/QCVS intervention allows the processor to reach BL2, BL31 and the U-Boot console. We have observed the cold-boot failure with eMMC, SD card and QSPI NOR, so we would appreciate guidance on isolating the common reset/clock/PBL path. Platform and differences from LS1046ARDB Item Custom-board configuration Processor LS1046AE Rev. 1.0; U-Boot reports SVR 0x87070010 Power/reset control No CPLD. An STM32 BMC, PCA9539 I/O expander, level translators and discrete reset circuitry implement sequencing and SD/eMMC selection. DDR 4 GiB, single-rank, 64-bit non-ECC DDR4, initialized at 1600 MT/s. This differs from the 8 GiB ECC configuration used in our RDB comparison. DDR initialization succeeds after assisted boot; full memory-margin qualification is still pending. Clocks 100 MHz primary reference; the working assisted configuration uses the single-ended SYSCLK selection. DDR uses the differential reference path. U-Boot reports CPU 1800 MHz, platform 600 MHz and FMan 700 MHz. eMMC Macronix MX52LM08A11XVI, different from the RDB device. U-Boot identifies manufacturer 0xc2, name M08A11, MMC 5.1 and approximately 7.3 GiB user capacity. SD/eMMC interface BMC-controlled selection and EVDD: 1.8 V for eMMC and 3.3 V for SD. QSPI NOR S25FS512S, 64 MiB per device. NOR detection has succeeded on this board. Other peripherals Custom Ethernet/PHY routing and SerDes configuration; no PCIe devices are used. Software A1-specific board/device-tree changes, TF-A v2.12.0 based on lf-6.12.49-2.2.0, U-Boot 2025.04. U-Boot watchdog is disabled for bring-up. The reset network has also been reworked during this investigation: a competing processor-POR driver branch was isolated, the direct BMC-to-TRST drive was disconnected, and a hardware POR/TRST coupling path was fitted. HRESET sensing by the BMC remains connected. Latest native cold-boot observation We found and corrected an unintended earlier SoC reset in the BMC sequence. In the subsequent scope capture, taken from a fully powered-off start without any CodeWarrior or QCVS action: - PORESET_B rises when the BMC releases processor reset. - eMMC CLK and CMD activity starts after that edge. - No normal BL2/U-Boot console output follows. Some earlier attempts produced only a junk UART character. - The trace labelled HRESET_B stays HIGH, approximately 1.8 V; we do not observe a LOW assertion before or during the captured eMMC activity. The BMC HRESET input also repeatedly reads HIGH. CodeWarrior/QCVS behavior During the cold-boot stall, CodeWarrior Inspect can report that 'CortexA72#0' is not found on the JTAG chain and suggest checking the RCW or enabling RCW override. However, clicking Debug with RCW apply enabled, or applying the RCW through QCVS, allows boot to progress. Sometimes Debug reports “core not in debug mode” while the UART reaches U-Boot. In other attempts the target is halted and `continue` allows boot to finish. We reduced the initialization script to: from cw.dbg import ta def run_init_file(): target = ta.create() target.rcw.set_source(0x40) target.rcw.set_data({13: 0x00004504}) target.rcw.apply() The physical straps were set for SD/eMMC source '0x40'. The supplied word 13 is identical to the value already stored in eMMC. This reduced script also enabled assisted boot. Separate tests using 'set_source(0x9E)' with the same word succeeded as well. There are no explicit DDR initialization, BRR, PC, SCTLR or resume operations in this reduced script. We recognize that 'rcw.apply()' and the debugger launch framework can still perform internal reset/run-control operations; this is not a passive attach. After assistance, all 16 RCWSR words matched the intended media RCW. BL2 was present in OCRAM and the instrumented boot chain completed DDR initialization, eMMC/FIP loading, BL31 and U-Boot. Post-intervention 'RSTRQPBLSR' reads were zero, but we do not regard those as a capture of the original cold-failure state. Tests already performed Test Observation Native boot from eMMC No autonomous console boot; debugger-assisted recovery reaches U-Boot. Native boot from SD Similar cold-boot failure despite BMC detecting/selecting SD; assisted boot was possible. Native boot from QSPI NOR Latest testing also shows the cold-boot failure. We have not established that all three media stop at the same internal stage. Standalone hard-coded source straps 0x9E and 0x9F Later tests did not obtain the expected standalone reset progression. We understand that a hard-coded RCW alone is not a complete U-Boot image. Stock RDB initialization with safe RCW enabled Allowed recovery, but also modifies DDR, CPU state and peripherals, so this was not an isolated test. Minimal apply-only script above Recovery possible even with word 13 equal to the stored value, using source requests 0x9E and 0x40. QCVS RCW test/readback Test passed and readback matched the intended configuration after intervention. Native fetch remains unverified. Removed three inherited PCIe PBI accesses No improvement in native cold boot. Disabled SerDes2, then both SerDes blocks No improvement. Assisted U-Boot logs confirmed the modified RCW words. DDR diagnostic SPD read and 4 GiB initialization at 1600 MT/s succeeded after assistance; not a full margin test. Added BL2/BL31/U-Boot milestone logging Assisted boot completes all stages. Native failure gives no first BL2 milestone; these logs cannot trace the hardware PBL itself. eMMC RCW and image placement The eMMC baseline with both SerDes enabled is: 0c100012 0e000000 00000000 00000000 13335a06 40400012 60040000 c1000000 00000000 00000000 00000000 0001c83e 00004504 24001002 00000096 00000001 For the both-SerDes-disabled experiment, only these words changed: RCW05 = 00000000 RCW06 = 00f00012 In the eMMC user area, with 512-byte sectors: Component Start LBA Byte offset RCW + PBI + BL2 container (bl2_emmc.pbl) 0x8 0x1000 FIP containing BL31 and U-Boot 0x800 0x100000 FMan microcode 0x4800 0x900000 The written PBL/BL2 and FIP regions were read back and their SHA-256 values matched the files transferred for those tests. The PBI stream was decoded and its CRC checked. It sets the OCRAM boot location, performs inherited NXP interconnect/USB preparation and PBL synchronization operations, and copies BL2 into OCRAM. Removing the PCIe-register accesses did not resolve the stall. DDR initialization is performed later by BL2. We also read eMMC `EXT_CSD[162] = 0x00` and `EXT_CSD[179] = 0x00`; we have not made irreversible changes to those settings. Guidance requested 1. HRESET timing: At exactly which point should LS1046A assert HRESET_B LOW relative to PORESET_B, valid reference clocks and initial eMMC transactions? If processor-side probing confirms no LOW assertion, which reset, clock, power-domain, strap or test-mode conditions should we check first? 2. Capture before intervention: Is there a supported CodeWarrior/CCS System Access Port procedure to read the stalled PBL/DCFG/eSDHC state before the A72 core is discoverable, without reset or RCW override? Please provide the required access context, commands and most useful status/error registers. 3. RCW apply semantics: What precisely does `rcw.apply()` do with source `0x40` or `0x9E` and only one supplied word? Which reset/debug controls are exercised, and how are unspecified RCW words obtained? We want to identify the action that permits recovery when the supplied word does not change the resulting RCW. 4. RCW/PBI review: Do the eMMC RCW and placement above reveal any issue? Are there additional mandatory PBI operations or relevant silicon errata for this custom configuration? 5. Next decisive measurement: Given the symptom across eMMC, SD and QSPI, what measurement or non-invasive register capture would best separate a reset/clock/strap problem from boot-medium initialization, RCW acquisition or later PBI execution? Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo @Hiran_E_H  HRESET_B is not being asserted in the waveform, which is not expected. Please refer to Section 5.1 (Bring-up Process Using SD Card) in AN12081. Although the document describes the SPL/U-Boot flow, the current BL2/BL31 flow follows a very similar hardware boot sequence. Please compare your waveform with Figure 3. Based on the current observations, suspect a hardware issue related to reset related part. It may also be helpful to compare your reset design against the FRWY-LS1046A, which does not use a CPLD. In addition, please verify the ASLEEP signal, as it is an important signal during the boot process. Thanks. Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo sequence capture during testing   Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo Hello, Thank you for pointing us to LS1046A Reference Manual section 4.4.1. We are checking steps 1–4 as well as steps 5–15, and comparing our measurements with AN12081 section 5.1 / Figures 3–4. Below is an update from our 29 September tests, with a 30 September follow-up on the QCVS-generated SD candidate. We will attach oscilloscope captures of PORESET_B, HRESET_B, SD CMD and RESET_REQ_B for review.   Updated HRESET observation On a second A1 custom board, initially tested without the earlier board's reset reworks, we can observe HRESET_B going LOW before PORESET_B is released. This differs from the earlier capture where HRESET_B appeared continuously HIGH. We are not treating that earlier waveform as representative of this board. For the current differential-clock SD test: During standalone cold startup, HRESET_B is LOW before PORESET_B rises and remains LOW afterward. No BL2 console output appears. After CodeWarrior Debug/RCW apply, HRESET_B goes HIGH. The debugger initially stops at PC=0. Clicking Continue then allows BL2 → BL31 → U-Boot to run. Please help us interpret the attached captures, including SD CMD and RESET_REQ_B activity, against the expected sequence. In below picture - we did not insert SD card - so we were able to see reset request going low. (Note in some pictures emmc cmd is mentioned by mistake instead of sd cmd) Captured with SD inserted - switch strapped to emmc/sd card mode. Captured with with poreset_b, hreset_b, reset_request, vcc1v8 with SD card insertedCaptured with with poreset_b, hreset_b, reset_request, vcc1v8 with SD card insertedCaptured with with poreset_b, hreset_b, reset_request, vcc1v8 with SD card insertedCaptured with with poreset_b, hreset_b, reset_request, vcc1v8 with SD card insertedCaptured with with poreset_b, hreset_b, reset_request, vcc1v8 with SD card insertedCaptured with with poreset_b, hreset_b, reset_request, vcc1v8 with SD card inserted Captured with with poreset_b, hreset_b, reset_request, sd_cmdCaptured with with poreset_b, hreset_b, reset_request, sd_cmdCaptured with with poreset_b, hreset_b, reset_request, sd_cmdCaptured with with poreset_b, hreset_b, reset_request, sd_cmdCaptured with with poreset_b, hreset_b, reset_request, sd_cmdCaptured with with poreset_b, hreset_b, reset_request, sd_cmd Captured with with poreset_b, hreset_b, sd_cmd, trst_b(jtag reset)Captured with with poreset_b, hreset_b, sd_cmd, trst_b(jtag reset)Captured with with poreset_b, hreset_b, sd_cmd, trst_b(jtag reset)Captured with with poreset_b, hreset_b, sd_cmd, trst_b(jtag reset)Captured with with poreset_b, hreset_b, sd_cmd, trst_b(jtag reset)Captured with with poreset_b, hreset_b, sd_cmd, trst_b(jtag reset) Captured after entering debug mode after cold start stallCaptured after entering debug mode after cold start stallCaptured after entering debug mode after cold start stallCaptured after entering debug mode after cold start stallCaptured after entering debug mode after cold start stallCaptured after entering debug mode after cold start stall New SD RCW test We kept external SD/MMC boot selected (cfg_rcw_src=0x40) and generated a new SD image with both SerDes blocks disabled. We selected the 100 MHz differential primary reference and adopted the active clock ratios from the hard-coded 0x9F example, while retaining the A1 pinmux and SD boot/PBI configuration. This is not hard-coded boot: the full RCW and PBI must still be fetched from SD. We are not bypassing media acquisition or PLL locking. Setting Value Primary reference DIFF_SYSCLK/B, nominal 100 MHz; cfg_eng_use0=0 A1 switch positions SW5 pole2 ON(differential clock selection ); SW8 poles1–8 0010 0000 (1=ON)(boot source switch strap) SYS_PLL_RAT 4 → platform 400 MHz CGA_PLL1_RAT 13 → CPU 1300 MHz CGA_PLL2_RAT 10 → PLL2 1000 MHz; FMan 500 MHz MEM_PLL_RAT 16 → DDR 1600 MT/s DDR_REFCLK_SEL / DDR_FDBK_MULT 1 / 2; differential DDR reference SRDS_PRTCL_S1 / SRDS_PRTCL_S2 0 / 0 SRDS_PLL_PD_S1 / SRDS_PLL_PD_S2 3 / 3; both PLLs down in each SerDes block PBI_SRC / BOOT_HO 6 / 0 EVDD_VSEL 2, SD 3.3 V configuration DIMM 4 GiB, single-rank, 64-bit non-ECC DDR4; training seed not margin-qualified   The full RCW used in this tested image, also confirmed after debugger intervention, is: RCW01–04: 0810000d 0a000000 00000000 00000000 RCW05–08: 00000000 00f00012 60040000 c1000000 RCW09–12: 00000000 00000000 00000000 0001c83e RCW13–16: 00004504 24001102 00000096 00000001 Result: the native cold-boot stall remained. After debugger assistance, U-Boot reported CPU 1300 MHz, platform 400 MHz, DDR 1600 MT/s and FMan 500 MHz, matching the intended ratios. SD initialization and FIP loading succeeded.  Exact debugger intervention and resulting state The initialization callback only calls the following RCW API operations: from cw.dbg import ta def run_init_file(): target = ta.create() target.rcw.set_source(0x40) target.rcw.set_data({13: 0x00004504}) target.rcw.apply() Word 13 is identical to the value already stored on SD. The script has no explicit DDR initialization, BRR/PC writes or Continue command. We recognize that apply() and debugger startup can internally change reset/debug state. After Debug, before Continue, we read: PC = 00000000 PORSR1 @ 01ee0000 = 205b7fff RSTRQPBLSR @ 01ee00b4 = 00000000 RSTRQMR1 @ 01ee00c0 = 00004000 RSTRQSR1 @ 01ee00c8 = 00000000 BRR @ 01ee00e4 = 00000000 SCFG_SCRATCHRW0/1 = 00000000 / 10000000 DDR SDRAM_CFG = 07000000 (MEM_EN clear) All 16 RCWSR words matched the tested SD image. The first 64 bytes at OCRAM 0x10000000 matched its BL2 entry code. Thus the lack of UART output at PC=0 did not mean that hardware PBL had not progressed. Continue alone was enough to run BL2/BL31/U-Boot; no manual BRR write was used in this run. These are post-intervention readings, not preserved native-stall status. We are not using their zero error values to conclude that the original cold attempt had no PBL/clock/reset error. Image placement and exact PBI setup Both our SD and eMMC packages use 512-byte sectors: RCW/PBI/BL2 .pbl: LBA 0x8, byte offset 0x1000. fip_uboot.bin containing BL31 and U-Boot: LBA 0x800, byte offset 0x100000. For eMMC these are offsets in the user area, not boot0/boot1. The SD whole-disk image has been checked byte-for-byte at these offsets; the earlier eMMC writes also passed readback SHA-256 verification. The exact setup stream in the tested SD PBL is below. Each row is the serialized PBI command word followed by its data word, in stream order; these are not debugger memory-write commands: 09570600 00000000 09570604 10000000 09570178 0000e010 09180000 00000008 09570418 0000009e 0957041c 0000009e 09570420 0000009e 09570158 00001000 09610000 00000000 096100c0 000fffff 09570604 10000000 09570158 00001000 096100c0 000fffff This includes the scratch boot pointer, inherited interconnect/USB setup, flush and synchronization operations. Repeated operations are preserved. There are no PCIe setup writes. The stream then contains 844 ACS64 transfers to OCRAM: the 53,953-byte BL2 plus 63 zero-padding bytes. The tested PBL ends with 08610040 6d8bdebf (END/CRC), and its total size is 57,576 bytes. We also independently generated a PBL using QCVS today. Parsing and CRC verification found its PBI operations and BL2 payload identical to the tested image. We deliberately changed RCW12 from 0001c83e to 0001a8fe (ASLEEP=0, RTC=1, IRQ_BASE=63); only that word and the CRC differ. Its SHA-256 is: 2d3389fce4ead088957caf6251022b5526be8565e812a8aab8fce21bd8923277 30 September update: we tested the newer QCVS-generated SD candidate and again encountered a native cold-boot stall. Replacing the PBL with the actual QCVS export therefore did not resolve the symptom. Its PBI and BL2 payload remain identical to the previous image, so this does not exclude a shared configuration issue or prove that the cause is hardware. The detailed HRESET/register readings and confirmed assisted-success sequence above refer to the earlier RCW12=0001c83e run. The debugger-recovery result and detailed waveforms for this latest RCW12=0001a8fe run have not yet been added to this update. Guidance requested With HRESET_B asserted before POR release but remaining LOW afterward, which measurements best separate an RCW-fetch/validation failure from PLL locking or the platform-clock switchover in steps 11–14? We will also continue checking the early power/clock/strap conditions in steps 1–4. Since step 15 releases the SoC's HRESET drive and step 17 executes PBI, is it reasonable to prioritize the earlier stages, provided we exclude an external HRESET driver or a brief release/reassertion? Please also review the RCW and PBI above for any missing or incorrect configuration. Can CCS/SAP access native reset/PBL status or documented PLL-lock status while HRESET remains LOW, without RCW apply or another reset? Please provide the exact access context, commands and register/bit definitions. Ordinary Inspect has previously failed to find CortexA72#0 in this state. What precisely does set_source(0x40) plus a matching word-13 override and apply() do to reset, TRST and debug controls? We would like to isolate the action that allows boot without changing the final RCW contents. We can provide the generated PBL, complete UART/debugger logs and additional scope captures. Bring-up is blocked on autonomous cold boot, so guidance on the next discriminating test would be greatly appreciated. Also I was told as  a self-test , if we strap 0x9e or 0x9f without SD card or blank emmc - we will be able to see HRESET_B going low to high when POREST_B is released from 0 to 1. We tried capturing this in RDB board and was able to observe this . So on our custom board if we do the same - same behaviour is to be observed? Thank you. Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo @Hiran_E_H  Please refer to LS1046A Reference Manual, 4.4.1 Power-on reset sequence There may be an issue between steps 5 and 15. Since the starting point of HRESET_B cannot be clearly identified, steps 1 to 4 should also be checked. Thanks Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo ASLEEP is always high as LED connected is always ON. We took a second board without any hardware rework and tried to boot from SD card with same RCW except change in voltage selection and is observing HRESET_B is being low before PORESET_B is released from low to high.  The spike in HRESET_B - we are expecting is due to 1.8v pull up after PMIC PG and SoC starts driving the HRESET_B low. Currenltly we are probing to see emmc/SD CMD, DATA and CLK to see if there is any transaction is occuring. May I know what conditions to be obeyed for SoC to release HRESET_B.   Out of Curiosity we put the same SD card in the a ls1046a_rdb board and tried powering ON which reached upto uboot console.  Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo Hi @Hiran_E_H  1.It is difficult to clearly distinguish between an RCW loading issue and a PLL lock issue based on the current information. However, if CCS can successfully access the device and the PLL-related waveforms appear normal, the likelihood of a PLL issue may be lower. I would recommend comparing the SD command waveforms between a standalone cold boot and a CCS-assisted boot. In particular, compare the waveform duration and sequence to determine whether there are any abnormalities during RCW loading. You may also refer to the Reference Manual, Table 4-8 "RCW State Timing", to check whether the SD card clock reflects the expected frequency transitions during the boot process. Please note that these transitions depend on both successful RCW loading and proper PLL lock. 2.Yes, I agree with your approach. Based on the information available, it is reasonable to focus on steps 1 through 15 first, especially the early power, clock, reset, and boot-source related stages. 3.You may try the CCS commands below to verify whether the LS1046A can be accessed while the device remains in this state. For example, you can attempt to read the RCWSR registers: (bin) 1 % delete all (bin) 2 % config cc cwtap (bin) 3 % show cc (bin) 4 % ccs::config_chain {ls1043a dap sap2} (bin) 5 % display ::ccs::get_config_chain (bin) 6 % ccs::display_mem 32 0x01ee0000 4 0 100 Show more lines 4.You may also refer to the Reference Manual, Table 4-8 "RCW State Timing", and observe whether the SD card clock reflects the expected frequency changes during RCW processing. I would recommend verifying the associated waveforms during the boot sequence. In practice, I typically use the HARD-CODED mode during initial debugging. As an additional check, you could configure the board to use a hard-coded RCW and verify whether the observed waveforms follow the sequence described in Figure 4-1 "Power-on Reset Sequence". If the waveforms match the expected behavior, the reset-related hardware design is generally likely to be functioning correctly. I will be OoO for more than one week, so there will be no updates from my side during this period. If this issue is urgent, please create a new thread so that another team member can assist you. Thank you. Re: LS1046A custom board: cold boot fails from eMMC, SD and QSPI; CodeWarrior RCW apply enables U-Bo Hi, I tried to read from ccs cconsole but during cold boot stall i am getting below response (bin) 7 % ccs::display_mem 2 0x01ee0000 4 0 1 Scan timeout We tried capturing with respect to ASLEEP signal and founf below observation: SD CLK drops from ~200kHz to ~20kHz (suspecting fallback) SD DATA0 always high during 200kHz and some transaction just before clock drop to 20kHz.
查看全文
有没有比较简单易用的8位微控制器/汇编语言? 我正在寻找一款可以查看实际十六进制/二进制代码的 8 位微控制器。我在大学学习 8051 汇编语言,我非常喜欢看到和理解内存中的每一条指令和值。但是这些微控制器已经过时,需要大量的“破解”才能兼容。至少每次我把代码放到真正的硬件上运行时,都会有这种感觉。那么,有没有一种简单的8位汇编语言,可以配合实际的芯片,让我能够编写简单的电子项目程序呢? Re: Is there a simple 8 bit microcontroller/assembly language that is nice to work with? 你好; 如果您正在学习汇编语言,S08PT 设备可能是一个不错的起点; S08PT|8 位 5V 全功能 MCU,带 EEPROM 和 TSI | NXP 半导体 。 使用该软件工具是CodeWarrior for MCUs (Eclipse IDE) v11.1,适用于 Windows 10/11;该工具可以使用汇编代码进行测试,因为它具有汇编调试工具视图,并且可以查看内存以了解代码的功能。 本设备配有评估板 S08PT60-EVK [MC9S08PT60],如果您感兴趣,请参阅 [ S08PT60-EVK 产品信息],其中包含各种外设,供您在实际硬件上测试代码的不同配置。 板载接口包括 RGB LED、6 轴数字加速度计和磁力计、环境温度传感器、两个电容式触摸板、电位器、两个用户按钮和红外收发器。同时兼容 Arduino 扩展板的引脚布局。 您可以在主页上阅读更多关于这些功能的信息: S08P MCU 评估套件 | 恩智浦半导体 此致敬礼,路易斯
查看全文
LWIP TCP/IPサーバー・クライアント実践演習 こんにちは。S32K358 用の TCP クライアントハンドシェイクのサンプルはありますか?以前のスレッドに投稿したように、いくつか問題が発生しています。以前、S32K148 の問題解決に関する投稿(LWIP TCP/IP Server-Client Hands-On - NXP Community)を見ましたが、それが役に立つかもしれません。 もしお持ちでしたら、コピーを送っていただけないでしょうか。私のメールアドレスは[email protected]です。よろしくお願いいたします! Re: LWIP TCP/IP Server-Client Hands-On こんにちは、@sunshine88 さん。 S32K358には、lwip_s32k148_HandsOnワークショップのような参考プロジェクトはありません。lwip_s32k148_HandsOn_Server と lwip_s32k148_HandsOn_Client の両方をプライベートメッセージでお送りしました。 よろしくお願いします、 ジュリアン
查看全文
S32K358 MBDT/Simulink – 将 SoC 存储在非易失性存储器中 您好,NXP团队, 我正在使用 RD-BESSK358BMU 板(S32K358 MCU)以及 MATLAB/Simulink 和 NXP MBDT。 我的板上运行着一个 EKF SOC 估算器。我需要定期将计算出的 SOC 保存到非易失性存储器中,以便在完全断电/开机后,可以读取最后存储的 SOC 并将其用作 EKF 的初始 SOC。 在 Simulink/MBDT 中,对于 S32K358,推荐的实现方式是什么? 我可以在 S32 配置工具中看到 Fee、MemAcc 和 Mem_43_InFls。这些模块是否适用于此目的? 您能否分享一些关于S32K358 Simulink/MBDT非易失性读/写的示例? 我找到了一些使用 EEPROM/FEE 的较早的 S32K 示例,但我特别想找到适用于 Simulink/MBDT 的 S32K358 的推荐解决方案。 谢谢。
查看全文
画面の最上位レイヤーにおけるイベントコールバック関数名の生成が正しく行われないことに関連するバグ。 私が使用している GUI Guider のバージョンは 2.0.0 です。Top で作業しているときに...レイヤーにイベントを追加する際、生成されるgg_event_layer_top.cファイル内のトップレイヤーのイベントコールバック関数名が異常です。現在、イベントコールバック関数名の途中に括弧が挿入されており、例:「static void lv_layer_top () _event_handler ( lv_event_t * e )」のようになっています。実際、ボトムレイヤーでも同様の問題が発生しますが、スクリーンでは同様の問題は発生しません。このバグが早急に修正されることを願っています。よろしくお願いいたします。 回复: 关于屏幕顶层(Top Layer)的事件回调函数名生成异常的bug こんにちは@UENGさん フィードバックありがとうございます。この問題はバージョン2.0.1で修正されました。GUI Guiderをダウンロードしてインストールしてください。 よろしくお願いします、 ウェンビン
查看全文
The TCP client in S32K358 is not receiving the handshake packet. I've created a TCP client thread. When the handshake function is executed, I can see the messages sent by the client to the server and the messages sent by the server to the client using Wireshark. However, in the final step, the TCP client doesn't return a frame. I've been monitoring the GMAC receive interrupt and found it's stuck in a loop. The MCU TCP client hasn't received the final acknowledgment frame, so it hasn't sent the final handshake acknowledgment frame. What could be the reason? Re: S32K358 中TCP 客户端握手包接收不到 Hello @sunshine88, Are you using the lwip example provided inside the RTD package? If yes, could you share your RTD version?  Can you also share which status is being returned to RxStatus?  As requested on your other community post (LWIP TCP/IP Server-Client Hands-On), I've sent you a private message with the Lwip_HandsOn project for S32K148. Best regards, Julián
查看全文
Is there a simple 8 bit microcontroller/assembly language that is nice to work with? I'm searching for an 8 bit microcontroller where I can look at the actual hex/binary code. I've been learning 8051 assembly in university and I absolutely love seeing and understand every single instruction and value in the memory. But those microcontrollers are antiquated and need a bunch of "hacks" for compatibility. At least that's what it feels like everytime I put my code onto real hardware. So is there a simple 8 bit assembly language with actual chips I can program simple electronics projects with ? Re: Is there a simple 8 bit microcontroller/assembly language that is nice to work with? Hello; If you are learning assembly a good start point could be the S08PT device; S08PT|8-bit 5V Full-featured MCU with EEPROM and TSI | NXP Semiconductors. The software tool to use it is CodeWarrior for MCUs (Eclipse IDE) v11.1 available for windows 10/11.; in this tool you can test with assembly code as it have the tools view for debug in assembly and review the memory to understand the functionality of your code. This device have an evaluation board S08PT60-EVK, [MC9S08PT60] if you are interested, [S08PT60-EVK Product Information] with various peripherals, for you to test different configurations from your code onto real hardware. The onboard interfaces include an RGB LED, a 6-axis digital accelerometer and magnetometer, an ambient temperature sensor, two capacitive touch pads, a potentiometer, two user push-buttons, and IRDA transceiver. Also is compatible with the Arduino pin layout for expansions boards. You can read more about the features in the main page: S08P MCUs Evaluation Kit | NXP Semiconductors Best Regards, Luis
查看全文
S32K358 MBDT/Simulink – Store SOC in Non-Volatile Memory Hello NXP Team, I am using the RD-BESSK358BMU board (S32K358 MCU) with MATLAB/Simulink and NXP MBDT. I have an EKF SOC estimator running on the board. I need to periodically save the calculated SOC in non-volatile memory, so after a complete power OFF/ON, the last stored SOC can be read and used as the initial SOC of the EKF. What is the recommended way to implement this in Simulink/MBDT for S32K358? I can see Fee, MemAcc, and Mem_43_InFls in the S32 Configuration Tool. Should these modules be used for this purpose? Is there any S32K358 Simulink/MBDT example for non-volatile Read/Write that you can share? I found older S32K examples using EEPROM/FEE, but I am specifically looking for the recommended solution for S32K358 with Simulink/MBDT. Thank you.
查看全文
S32K358のTCPクライアントはハンドシェイクパケットを受信していません。 TCPクライアントスレッドを作成しました。ハンドシェイク関数が実行されると、Wiresharkを使用してクライアントからサーバーに送信されたメッセージとサーバーからクライアントに送信されたメッセージを確認できます。しかし、最終ステップでTCPクライアントはフレームを返しません。GMAC受信割り込みを監視していたところ、ループに陥っていることがわかりました。MCU TCPクライアントは最終確認フレームを受信していないため、最終ハンドシェイク確認フレームを送信していません。原因は何でしょうか? Re: S32K358 中TCP 客户端握手包接收不到 こんにちは、@sunshine88 さん。 RTDパッケージ内のlwip例を使っていますか?もしそうなら、RTDのバージョンを教えていただけますか? RxStatusに返却されるステータスも教えてもらえますか? 他のコミュニティ投稿(LWIP TCP/IP サーバー・クライアント・実践形式)でのご要望通り、Lwip_HandsOnプロジェクトのプライベートメッセージを送りました。S32K148。 よろしくお願いします、 ジュリアン
查看全文
S32K358 MBDT/Simulink – SOCを不揮発性メモリに保存する こんにちは、NXPチームの皆さん。 RD-BESSK358BMUボード(S32K358 MCU)をMATLAB/SimulinkとNXP MBDTで使っています。 ボード上でEKF SOC推定器を動作させています。計算されたSOCを定期的に不揮発性メモリに保存する必要があるため、完全な電源オフ/オン後、最後に保存されたSOCを読み取り、EKFの初期SOCとして使用できるようにします。 Simulink/MBDTでS32K358を実装する際の推奨される方法は何ですか? S32設定ツールでFee、MemAcc、Mem_43_InFlsが見えます。これらのモジュールをこの目的に使用すべきでしょうか? S32K358、不揮発性の読み書き(Read/Write)に関するSimulink/MBDTの例があれば教えてもらえますか? EEPROM/FEEを使用した古いS32Kのサンプルは見つかりましたが、Simulink/MBDTを使用したS32K358向けの推奨ソリューションを具体的に探しています。 ありがとう。
查看全文
S32K358 中TCP 客户端握手包接收不到 现在我建立了一个TCP 客户端线程,当执行到握手端函数时,通过wireshark 能够看到客户端发给服务器得报文,也能看到服务器给客户端得报文,但是最后一步TCp客户端没有返回帧。我一直监控GMAC接收中断,发现一直卡死在循环中。MCU TCP客户端一直没有接收到最后的确认返回帧,所以没有发出去最后一帧的确认握手协议。是什么原因那? Re: S32K358 中TCP 客户端握手包接收不到 你好@sunshine88 , 你使用的是RTD包中提供的lwip示例吗?如果可以,能否分享一下您的即饮版本? 您能否也分享一下RxStatus 返回的是哪个状态? 根据您在另一篇社区帖子( LWIP TCP/IP 服务器客户端实践)中的要求,我已经向您发送了一条包含 S32K148 的 Lwip_HandsOn 项目的私信。 此致, 朱利安
查看全文
使いやすい8ビットのマイクロコントローラやアセンブリ言語はありますか? 実際の16進/バイナリコードが見られる8ビットのマイクロコントローラを探しています。大学で8051アセンブリ言語を学んでいるのですが、メモリ内の命令や値の一つ一つを見て理解できることが本当に大好きです。しかし、それらのマイクロコントローラは時代遅れで互換性のために多くの「ハック」が必要です。少なくとも、自分のコードを実際のハードウェアに書き込むたびに、そんな風に感じるんです。では、シンプルな8ビットアセンブリ言語で実際のチップを使った簡単な電子工学プロジェクトをプログラムできるものはありますか? Re: Is there a simple 8 bit microcontroller/assembly language that is nice to work with? こんにちは; アセンブリを学ぶなら、良い出発点はS08PTデバイスです。 S08PT|8ビット5V EEPROMとTSIを備えたフル機能MCU |NXP Semiconductors。 使用可能なソフトウェアツールは、Windows 10/11向けに利用可能な CodeWarrior for MCUS (Eclipse IDE) v11.1 です。このツールではアセンブリコードでテストできます。アセンブリ内のデバッグビューが表示され、メモリを確認してコードの機能を理解することができます。 このデバイスには評価ボードS08PT60-EVK、[MC9S08PT60]、[興味があれば]、[S08PT60-EVK製品情報]と様々な周辺機器が搭載されており、コードから実際のハードウェアへの異なる構成をテストできます。 オンボードインターフェースにはRGB LED、6軸デジタル加速度計と磁力計、周囲温度センサ、2つの静電容量式タッチパッド、ポテンショメーター、2つのユーザープッシュボタン、IRDAトランシーバが含まれます。また、拡張ボード用のArduinoピン配列にも対応しています。 詳細はメインページでご覧いただけます: S08P MCUs 評価キット | NXP Semiconductors 敬具、ルイス
查看全文
关于屏幕顶层(Top Layer)的事件回调函数名生成异常的bug 我使用的GUI Guider版本是2.0.0。当我为Top Layer添加事件时,生成的gg_event_layer_top.c中关于Top Layer的事件回调函数名会异常,目前的情况是,事件回调函数名的中间会被插入一对括号,就像这样“ static void lv_layer_top () _event_handler ( lv_event_t * e )”。事实上,对于Bottom Layer也存在相同的问题,而Screens则未出现类似的问题。希望能尽快修复bug。谢谢! 回复: 关于屏幕顶层(Top Layer)的事件回调函数名生成异常的bug Hi @UENG , 感谢您的反馈,该问题已经在V2.0.1中修复,请下载安装该版本:GUI Guider Best Regards, Wenbin
查看全文
A bug related to the incorrect generation of event callback function names for the top layer of the screen. The GUI Guider version I'm using is 2.0.0. When I'm working on Top...When adding events to a Layer, the event callback function names for the Top Layer in the generated gg_event_layer_top.c file are abnormal. Currently, a pair of parentheses is inserted in the middle of the event callback function name, like this: "static void lv_layer_top () _event_handler ( lv_event_t * e )". In fact, the same issue exists for the Bottom Layer, while Screens does not exhibit a similar problem. Hopefully, this bug can be fixed soon. Thank you! 回复: 关于屏幕顶层(Top Layer)的事件回调函数名生成异常的bug Hi @UENG , Thank you for your feedback. This issue has been fixed in version 2.0.1. Please download and install this version: GUI Guider Best Regards, Wenbin
查看全文
LWIP TCP/IP Server-Client Hands-On       你好,我们有没有关于S32K358 的TCP 客户端握手例程,我现在遇到了一些问题,我在上一篇帖子中发出了这个问题。我看到之前有一篇帖子是关于S32K148相关问题的已解决: LWIP TCP/IP Server-Client Hands-On - NXP Community,不知道是否能够帮我我!       如果有,麻烦您发一份,我的邮箱是[email protected].。万分感谢!  Re: LWIP TCP/IP Server-Client Hands-On 你好@sunshine88 , S32K358 没有像 lwip_s32k148_HandsOn 工作坊那样的参考项目。我已向您发送了包含 lwip_s32k148_HandsOn_Server 和 lwip_s32k148_HandsOn_Client 的私信。 此致, 朱利安
查看全文
ZeroWattic Power Saver Reviews 2026 - Is Everything Really As Promised? ZeroWattic Power Saver Review 2026: Does This Device Really Help Reduce Electricity Waste? Rising electricity costs have made energy efficiency a priority for households and businesses. Many people are looking for simple ways to manage power consumption without replacing every appliance or making expensive electrical upgrades. This is where devices such as the ZeroWattic Power Saver have attracted attention. Presented as a compact power-saving solution, ZeroWattic is designed around the idea of improving the way electricity is used inside a home. The product packaging shown describes it as a device intended to address “dirty, chaotic current” and improve the flow of electricity through household wiring. But what exactly is ZeroWattic Power Saver, how is it supposed to work, and what should consumers know before purchasing one? In this detailed guide, we look at the product concept, potential benefits, installation considerations, limitations, and important questions buyers should ask before making a decision. Important: Product claims about electricity savings should be independently verified before relying on them for financial savings. Actual results can vary depending on the electrical system, appliances, usage patterns, tariffs, and other factors. Discover ZeroWattic Power Saver and Explore a Smarter Approach to Household Energy Management What Is ZeroWattic Power Saver? ZeroWattic Power Saver is marketed as a household electricity-management device. From the packaging, the product focuses on the quality and characteristics of electrical current flowing through a home's wiring. The basic concept is that certain electrical loads—particularly appliances containing motors, transformers, compressors, or switching electronics—can create electrical characteristics that are not always converted into useful work. Power-management products often attempt to address these characteristics through electrical components designed for power conditioning or power-factor correction. The ZeroWattic packaging specifically promotes the idea of reducing undesirable electrical effects and improving the flow of electricity through household wiring. For consumers, the key point is that power quality and actual electricity consumption are not necessarily the same thing. A device may affect certain electrical characteristics without automatically producing a large reduction in the kilowatt-hours recorded on a residential electricity meter. Therefore, buyers should look at the product's technical specifications and independently measurable results rather than relying only on broad marketing language. 🔌 Ready to Take Control of Your Electricity Usage? Learn More About ZeroWattic Today
查看全文
ZeroWattic 节能器评测 2026 - 真的像宣传的那样好吗? ZeroWattic 节能器 2026 年评测:这款设备真的有助于减少电力浪费吗? 不断上涨的电费使得提高能源效率成为家庭和企业的首要任务。许多人都在寻找简单的方法来管理电力消耗,而无需更换所有电器或进行昂贵的电气升级。正因如此,像ZeroWattic 节能器这样的设备才引起了人们的关注。 ZeroWattic 是一款紧凑型节能解决方案,其设计理念是改善家庭用电方式。产品包装上显示,该产品是一种旨在解决“脏乱电流”并改善家用线路电流的设备。 但 ZeroWattic Power Saver 究竟是什么?它的工作原理是什么?消费者在购买前应该了解哪些信息? 在本详细指南中,我们将探讨产品概念、潜在优势、安装注意事项、局限性以及买家在做出决定前应该提出的重要问题。 重要提示:有关节电的产品声明在用于节省开支之前,应进行独立核实。实际结果可能因电力系统、电器、使用模式、电价和其他因素而异。了解 ZeroWattic 节能器,探索更智能的家庭能源管理方式 什么是 ZeroWattic 节能器? ZeroWattic Power Saver 是一款家用电力管理设备。从包装上看,该产品侧重于流经家庭线路的电流量的质量和特性。 基本概念是,某些电气负载(特别是含有电机、变压器、压缩机或开关电子元件的电器)会产生一些电气特性,而这些特性并不总是能转化为有用的功。电源管理单元产品通常试图通过专为电源调节或功率因数校正而设计的电气元件来解决这些特性。 ZeroWattic 包装专门宣传减少不良电气效应和改善家用线路电流流动的理念。 对于消费者而言,关键在于电能质量和实际用电量并不一定是一回事。设备可能会影响某些电气特性,但不会立即导致居民用电表记录的千瓦时数大幅减少。 因此,买家应该查看产品的技术规格和独立可衡量的结果,而不是仅仅依赖于宽泛的营销语言。 🔌 准备好掌控您的用电量了吗?立即了解更多关于 ZeroWattic 的信息
查看全文