我从恩智浦的官方网站上下载了名为 UJA116xA SBC AUTOSAR R21-11 Version 的 MCAL 代码包,并将其用作我的 UJA1169 的驱动程序。不过,使用该代码时偶尔会出现初始化失败。
这是正常初始化过程中的部分波形。第一个波形来自Sbc_43_uja116xa_SetOpMode 中的Sbc_ uja116xa_ TransferDataForDriverInit,这是 SBC 初始化的第一步。
但是,当我反复对 SBC 进行电源循环(在连接 PLS 调试器时反复关闭和打开电源)时,偶尔会出现初始化失败。以下是初始化失败时的前几个波形。可以看出,MISO 线路上没有来自 SBC 的反馈,导致初始化失败。
虽然初始化失败,但一段时间后,SPI 通信恢复正常运行,可以从 MISO 线路正常读取数据。如下图所示。
造成这一问题的可能原因是什么?我注意到在初始化之前有一个名为 Tm_BusyWait1us16bit(10) 的延迟函数。这种延迟的目的是什么,是否与问题有关?
我想知道 UJA1169 上电时 VCC1 和 VEXT 的顺序。
我可以要求提供波形图还是只提供问题描述?
非常、非常、非常感谢!![玫瑰][玫瑰]
嗨,小白、
请参阅下面 SW 工程师的回答。
此处添加了 Tm_BusyWait1us16bit 功能,以便在 UJA1169 退出 RESET 模式并允许再次进行 SPI 通信之前执行所需的延迟时间。
摘自 UJA1169 数据手册第 7.1.1.4 节:
能否请您提供一些有关 SBC 电源周期计时的补充信息?也许这就是你遇到通信问题的原因,因为SBC没有足够的时间退出 RESET 模式并恢复正常的SPI操作。
BRs, Tomas