969313_zh-CN

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

969313_zh-CN

969313_zh-CN

MPC5744P ADC 在现场停止工作<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

您好,

我希望有人能紧急帮助我解决这个问题。

我们现场有一款产品,ADC 突然停止工作,ADC 值被冻结。这个问题只在现场出现,我们无法在测试实验室复制。我查阅了处理器手册,但没有找到任何可以在没有任何警告的情况下停止 ADC 转换的源代码。在 CPU 硬 RESET 后,ADC 开始正常工作。

我们还对 CPU 内部温度进行了监控,结果显示了同样的情况。

请解释一下造成这种现象的原因。是否可以在不重新启动 ADC 模块的情况下重新启动 ADC 模块?

谢谢!

此致,

阿里-梅拉伊

概述Re: MPC5744P ADC stop working in the field你好,我们也遇到了类似的问题。我们的芯片是 MPC5675K,使用 ADC 收集三个通道的数据。然而,不知从什么时候开始,数据不再同时工作了。我们已经在实验室测试了我们的设备是否有电子转账,但一直无法重现这个问题。对于 ADC 的突然冻结,我们目前束手无策。您有什么新的解决方案吗?Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,彼得、

对不起,我想说我们不能重新启动。

我们进行了一些高分辨率示波器测量,发现当 HV 接通时,ADC 输入电压会在几微秒内超过 5V,然后才重新稳定下来。我们正在实验室密切关注这一问题,电子团队正在努力缓解这一问题。

我同意你的所有观点。

一旦我从实验室得到了一些范围图,我将向你们提供最新信息,并可能向你们提供更多有关我们发现的信息。

非常感谢彼得。

此致,

阿里-梅拉伊

Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

您好,

问题在于我们可以 RESET 微型,因为这些 ADC 故障不会影响控制,但会限制产品功能。

你能还是不能?因为只有一种方法可以 RESET ADC模块和PBRIDGE(寄存器所在的位置),那就是系统 RESET。这也是我与设计部门讨论的结果。

此外,如果微波干扰与 EMI(900V 开关),我认为这对微波的整体概念也至关重要。

如何在如此严重的干扰下保证功能安全,从而使ADC模块停止工作。

其他模块也可能受到影响,如 FCCU、STCU 或类似模块,这些模块在 micro 运行期间并不一直在使用。

你看到的只是 ADC 问题,因为它一直在运行。

如果在微处理器处理 IVOR 或 FCCU 例程时开启高压,会对系统造成严重影响。

以上只是我的一些假设。

此致,

Peter

Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,彼得、

感谢您的测试。

问题在于我们可以 RESET 微型,因为这些 ADC 故障不会影响控制,但会限制产品功能。

产品已经交付给客户,我们可以对其进行任何修改,但我们正在进行内部调查,研究如何将 EMI 对 Mirco 的影响降至最低,以便对产品进行修改。临时解决办法是在现有产品出现故障时,以某种方式重新启动 ADC,使其重新联机。

所以我想你是在建议唯一的解决方案是 RESET Mirco 但没有其他方法可以让 ADC 恢复活力?

你是否建议先让 ADC 掉电,然后禁用时钟,然后重新启动时钟,然后重启 ADC 你认为这会再次重启 ADC 转换吗?

非常感谢彼得的帮助。

此致,

阿里-梅拉伊

Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

您好,

PCTLx 将切断 ADC 的时钟。

pastedImage_9.png

请参阅参考手册:

59.3.52 ADC_0 外围设备控制寄存器(MC_ME_PCTL237)

但我刚刚进行了测试,它不会擦除 ADC 寄存器。(它们位于 PBRIDGE 上),因此在恢复 ADC 的时钟后,寄存器的值是相同的。

我想重置ADC寄存器的唯一方法是触发微型RESET。

如果你用子卡保护 ECU 免受 EMI 影响会发生什么?问题仍然存在吗?

此致,

Peter

Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,彼得、

我通过将掉电位设置为 1 来关闭 ADC 的电源,然后等到 ADC 状态更改为掉电然后重启它。我附上了 ADC 重新启动的代码。

pastedImage_1.png

我使用 SCAN 模式进行正常转换,而不是 CTU 模式。

因此,在代码启动时,通过将 NSTART 位设置为 1 来启动 ADC 一次,然后直接从 CDATA 读取数据

我附上了 ADC 配置和 ADC 每 1ms 读取一次的代码

pastedImage_2.png

pastedImage_3.png

希望这能解释 ADC 的设置方法。

为什么要停止转换?这是一个随机问题,因为它主要发生在接通高压(800V)电源时。这个问题与 EMI 有关,但它锁定了 CDATA 注册。我怎么能再次触发转换,因为我认为在扫描模式下不需要触发信号。

从 CDR 数据中提取数据时,有效位应该清零,但 CPU 处于该状态时,有效位不会清零。

您提到 PCTL 寄存器,请提供更多关于使用 PCTL 寄存器重启 ADC 的信息。

如果您需要更多信息,请告诉我。

此致,

阿里-梅拉伊

Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

您好,

重启 ADC 模块并没有解决问题,因为即使尝试重启 ADC 模块,ADC 值仍然被冻结。

您是如何重启 ADC 模块的?您是否在 PCTL 寄存器中将其关闭,然后将模式转换到 RUNx 再返回?

能否请您帮助我了解 CDR 注册锁定的原因?

看来 ADC 转换已经完成,新的转换尚未启动。

(因此,ADC 不会卡住,而是处于定义状态并等待新的转换触发信号,无论是 SW 还是 CTU)

这我就不知道了,因为我对 ADC 的使用方法了解有限。

此致,

Peter

注:如果在 ADC 转换卡住后通过调试器手动启动 ADC 转换,会发生什么情况?它会继续转换吗?

Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,彼得、

希望你一切顺利。

我有一个更新

重启 ADC 模块并没有解决问题,因为即使尝试重启 ADC 模块,ADC 值仍然被冻结。

我有注册快照,可以更深入地了解这个问题。

出现此问题时,ADC 模块工作正常,ADC 状态在状态 4 和 6 之间切换,但 CDATA 注册被冻结为固定值

pastedImage_1.png

CDR 寄存器

pastedImage_2.png

pastedImage_3.png

因此,它们都锁定为十进制 1171(十六进制 0x493)的相同值,有效位保持高电平

pastedImage_4.png

CPU 和 BandGap 显示了相同的行为。

能否请您帮助我了解 CDR 注册锁定的原因?

谢谢!

此致,

阿里-梅拉伊

Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

好的,彼得,谢谢。我会记录 ADC 的状态,如果有更新,我会给您回复。

谢谢您,

阿里

Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

很难说、

我从没试过这样做。

但是,如果时钟丢失,就无法从 PBRIDGE 上的寄存器中读取任何信息,而 ADC 也在该寄存器中。

但由于您能读取结果,我怀疑 ADC 转换未处于扫描模式,而是处于 IDLE 状态。

Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,彼得、

发生故障时,我会尝试将 ADC 状态保存在闪存中。

如果是时钟问题,那么你认为让 ADC 掉电并重启会恢复时钟吗?

此致,

阿里

Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

最重要的是查看 ADC 是否仍在转换,但结果寄存器没有更新。

当 ADC 转换卡住时,测试 SW 应检查 ADC 状态并将其存储。

由于是扫描模式,我想只有时钟丢失才会导致这种情况。

但首先让我们看看出现问题时 ADC 是否仍在转换。

此致,

Peter

Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,彼得、

主要问题是我无法在 LAB 中复制故障,因此不确定 ADC 状态寄存器在现场的状态如何。

我已经准备了一个测试软件,可以在ADC值停滞时执行ADC RESET,所以我希望这能解决这个问题。

我尝试过将ADC电源置于3.3V以下,但随后MCU RESET,因此这不是导致问题的原因,因为我们在现场看不到CPU RESET。我还尝试改变 ADC 的参考电压,但这并不能阻止 ADC 模块工作。

是否有办法强制解决 ADC 硬件上的任何特定问题,使其卡住,例如您提到的 ADC 校准丢失?

如果出现电压问题,我将检查 FCCU 的故障反应,我认为该问题未配置为执行 RESET。

谢谢!

阿里

Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

好吧,这些都是假设。

如果 ADC 功率下降或突破低压检测/HVD 阈值,则设备将执行通知并在启用后 RESET。

它可能导致ADC电容失准,或停滞在逻辑电平上,或许多其他原因。

如何启用和禁用 ADC?

ADC 卡住时的状态是什么?

pastedImage_1.png

此致,

Peter

Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,彼得、

当发生这种情况时,计数被冻结在 1373 个计数上,再也无法恢复,因此我们必须执行电源循环。主要发生在高压电源启动时,但有时是随机的,在功能运行时也会发生。

我们已经在HV实验室测试了这些板,发现HV开启时ADC_HV和ADC_Ref出现峰值,但是ADC不会停止工作,它只发生在我假设电磁干扰水平很高的现场。HV 接通后,ADC_HV 和 ADC_ref 电压很快就会稳定下来。

您知道 ADC 在断电或出现噪音时会自动进入什么特定状态吗?重启 ADC 会有帮助吗?

此致,

阿里

Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

好吧,因为只有在接通 900V 时才会出现这种情况,所以我怀疑可能是电磁干扰问题。

出现这种情况时,ADC 电压测量值是多少?ADC ref 或 ADC_HV 是否存在尖峰?

测量的线路电压如何?

此致,

Peter

Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,彼得、

谢谢您的答复。

我使用的是 SCAN(扫描)模式,时钟频率为 80Mhz。

我在启动任务中启动转换,该任务只执行一次。

只要应用程序需要,我就会从 CDATA Reg 中收集转换后的数据。

我们有自己的控制板用于测试。

当开启高压电源(即 900 伏直流)时,会出现此问题。因此可能与电磁干扰有关,但 ADC 始终无法恢复,并不断报告 1373 计数。这种情况只发生在现场,因为我们无法在高压实验室复制这个问题。

以下是 ADC 设置和读取的代码

谢谢!

阿里

ADC_0.MCR.B.OWREN = 1U; /* 启用结果覆盖 */
ADC_0.MCR.B.CTUEN = 0U; /* CTU 模式未启用 */
ADC_0.MCR.B.模式 =cdd_adc_continious_scan_conversion;
ADC_0.MCR.B.ADCLKSEL = 1U; /* 80 Mhz 模式 */
ADC_0.MCR.B.PWDN = 0U; /* 启用 ADC0(将其从掉电模式中释放) */

/*
NSTART 应该是设置的最后一个寄存器位
*/
ADC_0.MCR.B.NSTART = 1; /* 启动正常模式 */
读取 ADC 转换后的数据
pastedImage_1.png                                                                      
Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

嗨,阿里、

从你提供的非常简短的描述来看,它可以是任何东西,从处理顶级任务到总线权限,再到未服务的 ADC 触发信号或时钟故障。

如果能告诉我们您如何使用 ADC(CTu 或 CPU 模式?)

如何触发转化

如何提供转换后的数据

因为它看起来真的像你的 SW 设计中没有服务的角落案例。

您的软件在恩智浦 EVB 上运行正常吗?

此致,

Peter

Re: MPC5744P ADC stop working in the field<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

您好,

谁能帮我解决这个问题?

此致,

阿里

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎11-21-2025 11:56 PM
更新者: