MC33665+MC33774 的当前 DEMO 例程实现了 665 初始化、774 初始化以及电压和温度采集功能。实验台的布置如图所示。1.
当 S32K314 主控单元使用 JLINK 连接到 SWD 调试端口进行调试和仿真时,33774 和 33665 都能正常响应,返回回复帧并获取正确的单元电压和 GPIO 端口数据。台式上电顺序为“采样从板上电 -> MC33665A 上电 -> MCU 主板上电”。通信初始化请求读取寄存器消息显示为 MC33774_FIRST(其中 CAN 类型消息为 MC33665 回复帧)。2. 当仿真器断开连接且整个平台断电一段时间后,按“采样从板上电 -> MC33665A 上电 -> MCU 主板上电”的顺序再次上电时,MC33774 没有响应,只有 MC33665A 可以返回响应帧。通过开关机重新初始化MCU主板没有效果;只有在使用J-Link进行调试时才能与MC33774正常通信。消息如 MC33774_SECOND 所示。我想知道在排查故障时可以采取哪些步骤。
当前MC33665+MC33774的DEMO例程实现665初始化、774初始化以及电压温度采集功能,台架构成如图:
1.当S32K314主控部分使用JLINK链接SWD调试口进行调试仿真时,33774和33665均能正常响应返回应答帧并采集正确的适配器电压和GPIO端口数据。台架上电顺序为“采样从主板上电->MC33665A上电->MCU模块上电”。通讯初始化至请求读取读取报文如MC33774_FIRST所示(其中CAN报文类型为MC33665回复帧)
2.当断开仿真器并且将台架全部下电后等待一段时间,重新按照“采样从主板上电->MC33665A上电->MCU主板上电”顺序上电后,MC33774无响应,则MC33665A能返回响应帧。重新将MCU主板上下电进行初始化也无效,只有用JLINK调试时才正常与MC33774通讯。报文如MC33774_SECOND所示。
我想知道排查的方向有哪些?
亲爱的嵌入式新手:
最诚挚的问候,
约瑟夫
通过实验,我发现问题是由 MC33665 断电引起的。当我的 MC33774 保持通电状态,而 MC33665 断电重启,MCU 也断电重启时,尽管软件逻辑重新初始化了 MC33665,但它似乎处于无法转发 TPL 数据的状态。这是因为我的消息表明 MC33665 可以发送回复帧。因此,MC33665 一定处于某种状态,导致它无法转换 TPL 信号并将其发送到 33774。目前,我可以通过在软件逻辑中执行两次相同的 MC33665 初始化来避免这种现象。但是,我不清楚为什么 MC33665 会出现这种行为。你有什么想法吗?
我通过实验发现是由于MC33665下电导致的,当我的MC33774保持上电,MC33665下电重启,因为MCU也下电重启后,虽然软件逻辑上到MC33665重新初始化,但是此时MC33665似乎无法转发TPL数据的状态,我的报文中可以看出MC33665能够发出状态回复帧,所以MC33665应该有某种原因导致无法转换TPL信号不断出现33774。我当前在软件逻辑中进行两次相同的MC33665初始化就能够避免这种现象。但是我并并MC33665为什么会这样。请问您有什么办法吗?
亲爱的嵌入式新手:
这个问题很可能是由启动时序依赖性引起的。当使用 J-Link 调试系统时,MCU 执行会被延迟,从而给 MC33774 足够的时间完成其内部初始化。在正常上电情况下,MCU 会立即启动并在 MC33774 准备就绪之前发送通信请求,导致没有响应。
建议在第一次通信之前引入延迟(例如 50-200 毫秒),实施重试机制,并确保 MC33665 在寻址 MC33774 之前正确初始化并唤醒 TPL 通信链。此外,还应验证 MC33774 的 RESET 和电源斜坡条件。
最诚挚的问候,
约瑟夫