野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 42|回复: 1

STM32F103C8与CAN电平芯片疑似不兼容

[复制链接]
发表于 6 天前 | 显示全部楼层 |阅读模式
我手头有两块 STM32F103C8 的PCB 板,都是使用 CAN1 ,驱动也是照着火哥的写的,使用HAL库
板A使用CAN驱动芯片的型号为SN65HVD232DR

板B使用CAN驱动芯片的型号为TCAN332DCNR

现在有这样的现象:
同一软件工程驱动板A SN65HVD232DR 可以正常通信 ,驱动板B TCAN332DCNR 首先初始化不成功,会失败在
/* Check Sleep mode leave acknowledge */
  while ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U){}这个地方,

SLAK.jpg
经过查询官方手册SLAK是CAN MSR寄存器的bit1(大概意思:该位为硬件置位,需要收到11bit的一个隐形电平才能置0),
我个人推断这个11个隐形电平是CAN收发芯片发的
我排查的顺序:
1.确认ST 的 IC是正常的,我将板A和板B的芯片互换,问题依旧
2.确认不是硬件设计问题,我把板A和板B的CAN IC互换,由于封装不同,我点了红胶,走了非常短的跳线焊的,问题依旧
3.删除工程中所有程序仅保留CAN驱动部分,问题依旧
4.使用CubeMX生生成的工程测试,问题依旧
至此我有点怀疑STM32F103 TCAN332DCNR 不兼容了,但是要想个办法再验证一下
完后,我手头正好有 STM32F303C8 的芯片,仔细看了下与F103C8可以pin to pin 互换
板B上换了片STM32F303C8后改写程序和一点点HAL库的差异,测试:通信正常
至此,我个人怀疑STM32F103 TCAN332DCNR 不兼容了,有没有大佬也遇到这种问题的

回复

使用道具 举报

发表于 5 天前 | 显示全部楼层
帮顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|站点地图|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号-2 ) 大学生ARM嵌入式2群

GMT+8, 2020-10-22 20:27 , Processed in 0.348766 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表