您好,
我正在使用具有ESP32 MCU的3.3V sn65hvd230。 我已将MCU编程为连续传输帧。 一开始一切都还可以,但一天之后,CAN总线就会停机。 CANL,CANH的电压为 2.25V和2.25 V。
。
注:MCU没有挂起,我用蓝牙验证了它
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,
我正在使用具有ESP32 MCU的3.3V sn65hvd230。 我已将MCU编程为连续传输帧。 一开始一切都还可以,但一天之后,CAN总线就会停机。 CANL,CANH的电压为 2.25V和2.25 V。
。
注:MCU没有挂起,我用蓝牙验证了它
您好,Mounish,
要验证收发器的行为,您能否捕获TXD引脚和CAN总线(CANH,CANL)的示波器快照? 通过这种方式,我们可以看到收发器是否已停止从MCU发送传入信号,或者MCU是否已停止尝试通过TXD线路发送数据。
如果后者为真,则可能是由于CAN控制器侧(MCU)出现一些错误。 如果是这种情况,您可以从CAN控制器读取相关的中断寄存器,以确定可能导致总线关闭状况和传输停止的问题源。 如果您需要帮助确定某种错误的含义以及它对收发器本身的影响,请告诉我。
此致,
Eric Schott
您好,Mounish,
通常,BUSOFF状态仅在传输期间传输CAN节点收到足够的错误时发生。 这通常不包括ACK错误(没有其他节点响应消息),但固件可能会以不同的方式处理这种情况。 如果没有接收器,则可能会出现其他错误,因为发送节点也充当接收器,以验证总线上发送的数据(但不会确认)。 因此,如果在传输过程中出现位错误,则在累积足够多的错误后,单独节点可能仍会移至BUSOFF状态。
可以将固件设置为启动BUSOFF恢复序列,以便在达到BUSOFF状态后控制器返回到运行模式。 序列的其余部分将自动执行,只是等待检测到空闲总线的足够实例。 这将需要固件识别CAN控制器何时达到此BUSOFF状态并将其清除,以便控制器可以开始恢复序列。
调试CAN收发器本身时,查看TXD信号和CAN总线会很有帮助。 这将让我们验证传输是否因收发器停止响应而停止。 但是,这种行为很可能源于CAN控制器,因此您可能需要集中精力调试该区域。 与我们共享CAN波形还可以让我们评论传输看起来是否可能在没有接收器的情况下导致传输错误。
此致,
Eric Schott