2289663_zh-CN

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

2289663_zh-CN

2289663_zh-CN

S32G399A 自定义板在吹掉 BOOT_CFG1 和 FUSE_SEL 后被砖块砸了

你好

我有一块带有 QSPI NOR 闪存的自定义 S32G399A 板(标准连接,类似于 RDB3 原理图)。

我想强制从 QSPI NOR 启动,所以我按照 E VB 上 QSPI_BOOT_CFG AN13456(S32G3 启动流程)所附的 Excel 表中的建议值和参考手册中的fuse map,将 Ocotp_Ip_Example_S32G399A_M7 (来自 RTD)改编为 熔断启动熔丝 。这篇文章附有代码片段和我参考的文档!

每次写入 BOOT_CFG 后,我都立即使用 Ocotp_Ip_ReadEFuse()验证是否成功,结果发现值被正确更新(0x2000000C 和 0x00000010)。

然而,现在

  • 主板无法从 NOR 启动。
  • 串行下载模式不再响应(" 无法在 S32 Flash Tool 上与目标设备建立通信 ")。
  • JTAG 调试器 (PE Micro) 报告"GDB 服务器无法与目标处理器建立连接" 。

您能帮忙找出根本原因吗?

Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL

你好@wael_b

感谢您联系我们并详细描述了您的问题。就我所见,您打算配置以下内容:

在 BOOT_CFG1 中:

alejandro_e_0-1767828044759.pngalejandro_e_0-1767828044759.pngalejandro_e_1-1767828048217.pngalejandro_e_1-1767828048217.png

在 BOOT_CGF2 中,FUSE_SEL 位,因此 RCON 值取自熔丝,而不是从芯片外部的串行/并行值中获取。请告诉我是否正确理解了您的配置。


当您尝试以串行模式连接(用于闪存和调试)时,是否使用了这种配置?请注意,BOOT_MOD1 和 BOOT_MOD2 的值与 FUSE_SEL 为 0 时的效果不同。

alejandro_e_2-1767828939324.pngalejandro_e_2-1767828939324.png

请告诉我您使用的 BOOT_MOD 1 和 2 的值。


谢谢!






Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL

你好,感谢您的答复!
我确认使用了正确的 BootMod,FUSE_SEL = 1!

经过检查,我们发现 BOOT_CFG1 的位 15(这是 启动 excel 中的 " 不在乎 " 字段)正在配置 XOSC 模式(在配置熔丝后,我们丢失了 MCU 的 XTAL 和 EXTAL 引脚上的 XOSC 时钟信号)
因此,在我们当前的熔丝配置中,由于位 15 为零,我们处于显然不支持的 XOSC 差分旁路模式(查看随附的屏幕截图)) 你确认在我们的例子中 Bit 15 不
应该为零吗?

请支持我们进行第二次配置,因为我们还有一块没有配置熔丝的工作板!
谢谢。

Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL

你好@wael_b

问题在于,S32G_Bootconfigwords_EVB.xlsx 中显示的配置是针对 EVB/RDB 板的,而且,它本应在 RCON 位中进行配置,这些位是可重新配置的。正如你在 excel 表单底部看到的那样,对于不在乎的部分,最好查看参考手册:

alejandro_e_0-1767908953800.pngalejandro_e_0-1767908953800.png

例如,如果你检查 SD_BOOT_CFG,你会看到很多 " 不在乎 " 位,但是 " 不起作用 " 特别针对 EVB/RDB 板中的 SD 配置,并不是这些位本身没有任何影响。

关于 AN13456 中提到的不支持的配置,我需要内部检查以了解更多细节。

作为参考,我在内部文档中找到了以下内容:

BOOT_CFG1 的 XOSC BYPASS MODE 位用于选择 FXOSC 模块的外部时钟源模式。FXOSC 模块可从三种时钟源模式中选择一种作为输入。三种时钟源模式分别是晶体(元器件)模式、(外部)差分(时钟源输入)模式和(外部单端时钟源)旁路模式。当客户使用无源晶体(工作于晶体模式)或有源差分时钟振荡器(工作于差分模式)作为 FXOSC 输入时,应将 XOSC BYPASS MODE 设置为 0。 在这种情况下,如果没有其他进一步设置,FXOSC 默认将输入视为工作于晶体模式。

否则,如果客户使用单端数字时钟源(在 BYPASS 模式下工作)作为 FXOSC 输入,则应设置 XOSC BYPASS MODE 1。

因此,BOOT_CFG1:15 的值取决于设计的配置方式。例如,使用 0 需要像在 RDB3 板中一样使用外部振荡器:

alejandro_e_2-1767911418325.pngalejandro_e_2-1767911418325.png


对于你没有熔断 S32G3 熔丝的板,我建议使用 RCON 启动来测试适合你设计的配置,正如你从 fuse map 表中看到的那样,确切的配置将取决于 QSPI 内存的类型以及振荡器的配置方式。


如果您需要更多支持,请告诉我。



Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL

你好 alejandro_e

我正在和 @wael_b 在同一个板上工作,它说的是 excel 文件吗:

XOSC 旁路模式选择:如果 XOSC 配置熔丝未熔断,则选择 XOSC 模式。
0- 差分
1- 晶体或单旁路模式

因此,当 BOOT_CFG[15] =0 时,它处于差分模式、

但如果 =1,则要么是晶体模式,要么是单旁路模式

我想知道是哪份文件说 BOOT_CFG[15] =0 可以与晶体正常工作?

在板外我们有与 EVK 相同的晶体,在设置 BOOT_CFG [15] =0 之后,时钟源消失了,所以我相信 MCU 在等待这种差模晶体而不是驱动被动晶体。如果我说错了,请指正。

haythemLtifi_0-1767937954503.pnghaythemLtifi_0-1767937954503.png

同样不可能使用 RCON,我们只能用熔丝启动它。所以我希望你能向我们建议如何使用熔丝启动我们的板(它基于 evk 同一个闪光灯的水晶)。


Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL

您好@alejandro_e,
感谢您的支持!根据您建议的配置,我们有两种情况:

  • 情况 1:
    BOOT_CFG1 -> 0x2000800C
    第 29、15、3、2 位 = 1,其余为 0。
    BOOT_CFG2 -> 0x17
    位 4、2、1、0 = 1,其余为 0。
    在这种情况下,JTAG 可以正常工作(使用推荐的串行配置,FUSE_SEL = 1),但是当我们尝试在 S32FT 中上传目标和算法时,出现了一个错误:
    " 错误:无法与目标设备建立通信。"
    另外,XTAL 没有显示任何信号!
    这种行为是否与 " XOSC_GM_SEL:相关 XOSC 模式 " Bits 8 到 11 中的 GM Sel值 BOOT_CFG2 有关?

  • 案例 2:
    我们使用 BOOT_CFG1 在第二块板上进行了配置-> 0x2000800C
    还有 BOOT_CFG2-> 0x0 F:
    位 0,1,2,3 = 1 因为我们没有断开
    FUSE _SEL 熔丝你认为这个 案例可以恢复吗?
Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL

你可以在这里查看参考手册中关于 GM_SEL 的屏幕截图!

Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL

你好,@haythemLtifi@wael_b

很抱歉这么晚才回复,我终于收到了内部团队的信息,他们与我分享了以下内容:

S32G3 不支持差分模式。我们建议客户使用晶体模式。
配置 Crystal 模式有两种方法:

  1. XOSC 配置 无效时,将XOSC BYPASS MODE SELECTION(XOSC 旁路模式选择)设为1 - 晶体模式。
  2. XOSC 配置 有效时,将XOSC MODE设置为11 - 晶体模式

我们建议使用第二种配置,因为它能提供更高的稳定性。

XOSC 配置的有效性由 BOOT_CFG2[0]决定。

我还需要确认你的主板是否可以恢复。

Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL

你好@wael_b

下面是我的回答:

  • 案例 1.对于晶体模式,应根据以下公式配置 GM_SEL:
    • alejandro_e_0-1768496877959.pngalejandro_e_0-1768496877959.png,
      • 其中:
        • gm:最小跨导值
        • ESR:等效串联电阻
        • f:晶体频率
        • C0: 晶体的寄生电容
        • C1: 晶体的额定负载电容
    • 您还可以查看 S32G3 数据表 Rev4 中表 26 的一些示例:
      • alejandro_e_1-1768498294702.pngalejandro_e_1-1768498294702.png
    • 我还检查了我们提供的示例项目中的配置。在这些数据上,我们使用1100b - 0.631×
    • 鉴于跨导是时钟信号的一种放大,使用 0 会导致芯片无法工作是合理的。我没有亲自测试过,所以如果更改 GM_SEL 的值对您的设置有任何影响,请告诉我。
  • 对于案例 2。我的理解是,这将取决于 BOOT_CFG_LOCK 的值,如 fuse map 的 MISC 表所示:
    • alejandro_e_2-1768498657315.pngalejandro_e_2-1768498657315.png
  • 理论上,如果锁定位为 00 或 01,您应该可以覆盖这些值。不过,我没有亲自做过测试,因此对其效果并不完全了解。

对于案例 1,你提到从串行启动是有效的,我假设在那个设置中 FXOSC 确实有输出信号,对吗?

在 QSPI 启动时,您在应用程序中使用的是 RTD 吗?还是你在使用完全自定义的软件?


谢谢!

Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL

您好,@haythemLtifi

关于测试,我可以做,但现在不行,我下周再做。

我会让你们知道我从振荡器上看到了什么。


谢谢 

Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL

你好,@haythemLtifi

您可以使用 S32DS 中的时钟视图修改该值:

alejandro_e_0-1768510249934.pngalejandro_e_0-1768510249934.png

alejandro_e_1-1768510288170.pngalejandro_e_1-1768510288170.png

更新代码后,更改应在以下文件中生效:

alejandro_e_2-1768510756606.pngalejandro_e_2-1768510756606.png


如《SW 启用指南》所述,在以该结构为参数运行 Clock_Ip_Init() 时,该更改将生效。


如果有帮助,请告诉我

Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL

你好 、

很显然,我们相差 7 个小时,所以我想问你几个问题,明天 Wael 会重新回答你的其他问题:

- 您提到的代码中的 gm 值是 0b1100 ,如何更改?是在时钟启动功能中吗?

或者我可以使用图形界面进行更改?我想将其设置为 0b1111 ,如何操作?


现在,当我测量 exTal 引脚上的晶体时,我看到的直流电压几乎在 800mv 左右,不知道晶体是否无法正常工作或者因为我没有使用有源探头,你能否在 EVK 上使用普通探头测量波形然后告诉我开启板后会看到什么?运行代码时

对于串行运行的板,当我们使用启动模式 0 和 1 选择串行时,我们会看到 Extal 的直流电压为 800 mv 差不多(它不是真正的信号波,但会振荡)



Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL

你好 @alejandro_e
回复这个问题:" 在 QSPI 启动时,在你的应用程序中,你在使用 RTD 吗?还是你在使用完全自定义的软件?" = > 是的,我使用的是 RTD 示例,而不是自定义软件

我有一些问题!
-你能帮我理解启动过程文档中的这一部分吗?(参见随附的屏幕截图)
-另外,是否有专用的.bin 可以下载到 或非 Flash 或 SD 卡启动中?
- 我从 IVT 生成的 Siul_Dio_ToggleLed 应用程序大小为 5.3Mb,这有问题吗?


Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL

你好,@haythemLtifi

感谢您提供的信息。说白了,在这个问题上,你不需要我再提供任何支持了,对吗?


Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL

你好、

我们发现了或非的问题,默认 bootROM 时钟为 30Mhz,在超时(500 毫秒)之前下载 S32G339A 的内存是不够的,我们取消了添加 QSPI 配置以将 bootROM 时钟提高到 200Mh 的选项,这就解决了问题。

感谢你的支持

Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL

你好@wael_b

感谢您提供的信息,并对迟复表示歉意。关于时钟测试,我会尽快进行,并与大家分享测试结果。

关于你最后的问题,没有专用的二进制文件可以下载到闪存或 SD 卡中,请记住,对于闪存,你需要在 0x0000 中对 IVT bin 进行编程,而对于 SD 卡,你需要在 0x1000 中对其进行编程。

关于二进制文件的大小,我刚刚用 S32G3 的 dio 示例做了一个快速的 IVT bin,它是 530M,大小应该不是问题。

也许我没有正确理解您的问题,如果我没有回答您的问题,请告诉我。

要测试二进制文件是否正确加载并由 bootROM 对其进行解析,你可以做的一件事是添加一个能开启板上的 LED 的 DCD,例如,请查看 S32G3 HSE 演示应用程序,任何版本都应该可以运行,例如在 0.2.51.0 版本中,你可以查看附录 11 部分。S32 DS — 生成 DCD 映像以开启 VDD_EFUSE 和系统 RAM 初始化,对于您的问题,相关部分是 VDD_EFUSE 步骤。如果你不熟悉,DCD 是一组非常简单的寄存器指令,你可以在程序开始执行之前添加,因此,如果你在添加 DCD 后看到板上的 LED 亮起,你可以确定你的二进制已正确加载并由 bootRoM 解析。

Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL

你好,@haythemLtifi

太好了,谢谢你告诉我。

如果您今后遇到任何问题,请创建一个新的帖子,我们将很乐意为您提供帮助。


顺祝商祺!

Re: S32G399A Custom Board Bricked After Blowing BOOT_CFG1 and FUSE_SEL你好 ,
是的,我们很好,谢谢。
Tags (1)
No ratings
Version history
Last update:
‎01-22-2026 02:29 AM
Updated by: