嗨,托马斯,谢谢你的回答。我理解你的“数据表阅读规则”,非常有用。我将向你解释我的问题:我有一个CAN通信(通过SPI),如上所述,使用MCP2515-E/ST CAN控制器。我还使用ADUM1201ARZ-RL7作为隔离器(双通道数字隔离器),我的CAN收发机是TJA1050T/VM,118(不幸的是我不能上传我的电气方案威廉希尔官方网站
的图像)。为了处理来自CAN总线的CAN消息,我对寄存器CANTIMF进行了轮询(地址0x2C)。当收到一条消息时,设置标志RX0IF(CANINTF[0])。因此,检测到这个标志,我可以继续读取数据。在一段时间内,一切都运行得很好,但是在几个小时的操作之后,我无法从CAN总线接收任何消息。尽管Micro仍然发送读取CANINTF的命令,但是这个寄存器似乎总是0x00,即使消息来自CAN总线(因为我也嗅到了RXCAN引脚,所以可以看到这一点)。我检查了MCP状态,它似乎处于正常运行模式,因为它应该(读取CANSTAT寄存器)。我虽然可能是一个温度问题,也许经过长时间的运行后,MCP升温过高并超过+85°C温度,因此,3.3V的供应电压变得不足。这只是一个想法,你怎么看待这个行为?亲切的问候,弗朗西斯科。
嗨,托马斯,谢谢你的回答。我理解你的“数据表阅读规则”,非常有用。我将向你解释我的问题:我有一个CAN通信(通过SPI),如上所述,使用MCP2515-E/ST CAN控制器。我还使用ADUM1201ARZ-RL7作为隔离器(双通道数字隔离器),我的CAN收发机是TJA1050T/VM,118(不幸的是我不能上传我的电气方案威廉希尔官方网站
的图像)。为了处理来自CAN总线的CAN消息,我对寄存器CANTIMF进行了轮询(地址0x2C)。当收到一条消息时,设置标志RX0IF(CANINTF[0])。因此,检测到这个标志,我可以继续读取数据。在一段时间内,一切都运行得很好,但是在几个小时的操作之后,我无法从CAN总线接收任何消息。尽管Micro仍然发送读取CANINTF的命令,但是这个寄存器似乎总是0x00,即使消息来自CAN总线(因为我也嗅到了RXCAN引脚,所以可以看到这一点)。我检查了MCP状态,它似乎处于正常运行模式,因为它应该(读取CANSTAT寄存器)。我虽然可能是一个温度问题,也许经过长时间的运行后,MCP升温过高并超过+85°C温度,因此,3.3V的供应电压变得不足。这只是一个想法,你怎么看待这个行为?亲切的问候,弗朗西斯科。
举报