你好
我有一块带有 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)。
然而,现在
您能帮忙找出根本原因吗?
你好@wael_b、
感谢您联系我们并详细描述了您的问题。就我所见,您打算配置以下内容:
在 BOOT_CFG1 中:
alejandro_e_0-1767828044759.png
alejandro_e_1-1767828048217.png
在 BOOT_CGF2 中,FUSE_SEL 位,因此 RCON 值取自熔丝,而不是从芯片外部的串行/并行值中获取。请告诉我是否正确理解了您的配置。
当您尝试以串行模式连接(用于闪存和调试)时,是否使用了这种配置?请注意,BOOT_MOD1 和 BOOT_MOD2 的值与 FUSE_SEL 为 0 时的效果不同。
alejandro_e_2-1767828939324.png
请告诉我您使用的 BOOT_MOD 1 和 2 的值。
谢谢!
你好,感谢您的答复!
我确认使用了正确的 BootMod,FUSE_SEL = 1!
经过检查,我们发现 BOOT_CFG1 的位 15(这是 启动 excel 中的 " 不在乎 " 字段)正在配置 XOSC 模式(在配置熔丝后,我们丢失了 MCU 的 XTAL 和 EXTAL 引脚上的 XOSC 时钟信号)
因此,在我们当前的熔丝配置中,由于位 15 为零,我们处于显然不支持的 XOSC 差分旁路模式(查看随附的屏幕截图)) 你确认在我们的例子中 Bit 15 不
应该为零吗?
请支持我们进行第二次配置,因为我们还有一块没有配置熔丝的工作板!
谢谢。
你好@wael_b、
问题在于,S32G_Bootconfigwords_EVB.xlsx 中显示的配置是针对 EVB/RDB 板的,而且,它本应在 RCON 位中进行配置,这些位是可重新配置的。正如你在 excel 表单底部看到的那样,对于不在乎的部分,最好查看参考手册:
alejandro_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.png
对于你没有熔断 S32G3 熔丝的板,我建议使用 RCON 启动来测试适合你设计的配置,正如你从 fuse map 表中看到的那样,确切的配置将取决于 QSPI 内存的类型以及振荡器的配置方式。
如果您需要更多支持,请告诉我。
你好 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.png
同样不可能使用 RCON,我们只能用熔丝启动它。所以我希望你能向我们建议如何使用熔丝启动我们的板(它基于 evk 同一个闪光灯的水晶)。
您好@alejandro_e,
感谢您的支持!根据您建议的配置,我们有两种情况:
你可以在这里查看参考手册中关于 GM_SEL 的屏幕截图!
你好,@haythemLtifi和@wael_b、
很抱歉这么晚才回复,我终于收到了内部团队的信息,他们与我分享了以下内容:
”
S32G3 不支持差分模式。我们建议客户使用晶体模式。
配置 Crystal 模式有两种方法:
我们建议使用第二种配置,因为它能提供更高的稳定性。
“
XOSC 配置的有效性由 BOOT_CFG2[0]决定。
我还需要确认你的主板是否可以恢复。
你好@wael_b、
下面是我的回答:
对于案例 1,你提到从串行启动是有效的,我假设在那个设置中 FXOSC 确实有输出信号,对吗?
在 QSPI 启动时,您在应用程序中使用的是 RTD 吗?还是你在使用完全自定义的软件?
谢谢!
您好,@haythemLtifi、
关于测试,我可以做,但现在不行,我下周再做。
我会让你们知道我从振荡器上看到了什么。
谢谢
你好,@haythemLtifi、
您可以使用 S32DS 中的时钟视图修改该值:
alejandro_e_0-1768510249934.png
alejandro_e_1-1768510288170.png
更新代码后,更改应在以下文件中生效:
alejandro_e_2-1768510756606.png
如《SW 启用指南》所述,在以该结构为参数运行 Clock_Ip_Init() 时,该更改将生效。
如果有帮助,请告诉我
你好 、
很显然,我们相差 7 个小时,所以我想问你几个问题,明天 Wael 会重新回答你的其他问题:
- 您提到的代码中的 gm 值是 0b1100 ,如何更改?是在时钟启动功能中吗?
或者我可以使用图形界面进行更改?我想将其设置为 0b1111 ,如何操作?
现在,当我测量 exTal 引脚上的晶体时,我看到的直流电压几乎在 800mv 左右,不知道晶体是否无法正常工作或者因为我没有使用有源探头,你能否在 EVK 上使用普通探头测量波形然后告诉我开启板后会看到什么?运行代码时
对于串行运行的板,当我们使用启动模式 0 和 1 选择串行时,我们会看到 Extal 的直流电压为 800 mv 差不多(它不是真正的信号波,但会振荡)
你好 @alejandro_e,
回复这个问题:" 在 QSPI 启动时,在你的应用程序中,你在使用 RTD 吗?还是你在使用完全自定义的软件?" = > 是的,我使用的是 RTD 示例,而不是自定义软件。
我有一些问题!
-你能帮我理解启动过程文档中的这一部分吗?(参见随附的屏幕截图)
-另外,是否有专用的.bin 可以下载到 或非 Flash 或 SD 卡启动中?
- 我从 IVT 生成的 Siul_Dio_ToggleLed 应用程序大小为 5.3Mb,这有问题吗?
你好,@haythemLtifi、
感谢您提供的信息。说白了,在这个问题上,你不需要我再提供任何支持了,对吗?
你好、
我们发现了或非的问题,默认 bootROM 时钟为 30Mhz,在超时(500 毫秒)之前下载 S32G339A 的内存是不够的,我们取消了添加 QSPI 配置以将 bootROM 时钟提高到 200Mh 的选项,这就解决了问题。
感谢你的支持
你好@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 解析。
你好,@haythemLtifi、
太好了,谢谢你告诉我。
如果您今后遇到任何问题,请创建一个新的帖子,我们将很乐意为您提供帮助。
顺祝商祺!