这个真没有。
原厂人员说用FIFO来判断,然后我给他解释FIFO存储的单位是帧,接收的过程中数据还
没有进入FIFO,所以没法用FIFO来判断。然后他就说不支持你要的这个功能,无法判断
CAN是否在接收数据。
通过这个事情,对GD原厂挺失望的,他们对待产品和技术的态度配不上目前的市场地位
,以后选型会多向其它厂家靠拢,雅特力和沁恒都比他们好得多。
以下是对话节选:
GD:我找人测了下,默认是处于接收状态,如果是发送数据时,会处于发送状态,发的
时候会变 0,其他都是1
ME:这种行为模式没有用处,因为实际需要的是硬件在接收数据才置1,而且其它厂家人家也是这么定义的
GD:设计就是这样,那就只能别这么用
ME:那应该如何判断CAN硬件在接收数据?有别的方法也行
GD:没有办法,就我跟你说的判断帧数量
ME:我说过了,没法根据帧判断,CAN总线在接受数据的时候,数据还没进FIFO,一帧接
收完了才会进FIFO
GD:我知道你意思,那就无解啦,无法识别正在接收状态
ME:好吧,只能尽量避免用这个芯片了,这个IP不知道是自研的还是外购的,STM32F10
3是没有这个问题的
GD:自研
ME:那别家应该没这个问题,你们可以对比下友商的产品
GD:知道,设计人员对这个理解与别人有偏差,这就跟485接口类似
ME:就是受了RS485的影响,485不支持多主,发送完数据要设置为接收,问题CAN是支持
多主的,没有这个问题,所以是芯片bug,不是特性
GD:485没有仲裁机制,CAN有仲裁机制,现在这个特性你认为是BUG那就是,他不影响正
常使用,只是你刚好想要用的点有点特殊,无法满足你的应用场景
ME:这个位相当于没有,是不是bug,你们要确认,涉及到新芯片是否会更新的问题。
GD:我回你了啊,我们设计是我跟你说的那样,这个你能理解为他是bug,也能理解为他
为设计特性
ME:我明白了,那就是以后新型号也不会更改。
【 在 ECUCoder (Engineer) 的大作中提到: 】
: 如果原厂技术认为这不是BUG的话说明应该还有其它手段来辅助判断是否正在接收数据,否则也太无赖了。
--
修改:spadger FROM 222.90.95.*
FROM 222.90.95.*