ST意法半导体
直播中

陈韵瑄

7年用户 970经验值
私信 关注
[问答]

STM32F4-Discovery板和stm32f091cct6微控制器之间的CAN通信不工作怎么解决?

我正在使用两个不同的 STM23 微控制器,中间使用 2 个 MCP2551。但是,STM32F4-Discovery 板和 stm32f091cct6 微控制器之间的 CAN 通信不工作。
出于测试目的,我检查了两个 STM32F4 发现板之间的 CAN 通信,它工作正常。  
在搜索了大量调试问题解决方案后,例如 - APB1 外设时钟频率匹配(在我的例子中为 42MHz),两个 MCU 中 CAN 匹配的波特率(500kbps),两个板的公共接地。
我开始怀疑我们是否可以在两个不同的 F4 和 F0 系列 MCU 板之间进行通信?





回帖(1)

阮浙临

2023-1-6 11:08:26
CAN 总线接口独立于所使用的处理器。然而,为了解码总线信号电平,位时序必须非常接近。具有相同外部 HSE 振荡器和相同位时序配置的两块开发板将很有可能协同工作。添加不同的威廉希尔官方网站 板,不同的 HSE 振荡器(提示如果您使用 HSI,您刚刚在位时序中内置了一个显着的错误因素,请检查数据表以了解 HSI 容差)。在假设它是硬件问题之前,您最好计算出确切的位时序设置。
CAN 连接失败常常来自两个原因之一:位时序不兼容,或使用 RC 振荡器 (HSI) 引起的时序漂移;或者在真正的双绞线总线上至少有两个节点,每端都有终端电阻。我建议您在此处显示两个节点的位时序计算,以及如何为每个节点配置 HSE。如果您使用的是 HSI,那么您已经有了问题的答案。
并且一如既往地显示两个节点的错误和状态寄存器。这些读数中包含大量故障排除信息……这就是它们暴露的原因。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分