打印
[CAN-bus/DeviceNet]

SJA1000电路的几个问题

[复制链接]
4659|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hxiaon|  楼主 | 2007-1-8 14:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
boboyusun| | 2007-1-8 17:34 | 只看该作者

回复

有一电压范围

使用特权

评论回复
板凳
张学勇| | 2007-1-9 08:54 | 只看该作者

是啊,我也是把RX1直接接地的,这样不可以吗?

使用特权

评论回复
地板
BitFu| | 2007-1-10 15:12 | 只看该作者

SJA1000的RX1不一定要接2.5v

当寄存器中设置不和rx1比较接收的话就不用接2。5V了

使用特权

评论回复
5
wxj1952| | 2007-1-10 19:07 | 只看该作者

RX1到底应该接哪?

           RX1到底应该接哪?
SJA1000的TX0/TX1,RX0/RX1在不使用外接驱动器的情况下是设计直接接CAN总线CANH/CANL的,这时,把TX0和RX0短接,TX1和RX1短接后分别挂到CANH、CANL即可。要注意的是,SJA1000内部发送驱动器TP/TN场效应管不知有无过流保护电路,为可靠起见,最好将电源经过限流电阻再接到VDD2/VDD3管脚。(或者采用限流电源100MA)。VDD2/VSS2V对应TX0发送驱动器的供电,DD3/VSS3对应TX1发送驱动器的供电电源。VDD1/VSS1是芯片电源。

显然我们一般是用外接CAN总线驱动器82C250一类的。其输入TX、输出RX,是单极性。这时用SJA1000的TX0/TX1或者RX0/RX1管脚应该是一样的,但由于TX1和RX1内部电路设计赋予了其他功能,所以只用TX0和RX0与82C250驱动器相接。下面入正题:

RX0和RX1是SJA1000内部差分接收比较器A的两个输入端,不用外接总线驱动器时对应接CANH、CANL,现在是单极性输入到RX0,那么RX1应该接到CAN电平(比较器电平)中点,即2.5V。这就是总线驱动器一般都供给参考电压2.5V的原因。这时要注意的前题是:CDR寄存器中的CBP位必须设置为“0”。

CBP位控制芯片内部差分比较器A附加的一个电子开关B,B像一个接在比较器A(-)输入端的单刀双掷开关,(比较器A(+)输入端接了RX0。)一掷接RX1,另一掷接比较器输出端;这样,通过电子开关B的切换,差分比较器A要么是比较器,要么是跟随器。当CBP=1时,它是跟随器(整形电路)。RX1管脚这时悬空,接哪里或者不接按道理都行。由于它引入到芯片内部,悬空可能引入噪声,所以手册建议将RX1接一固定电平,VDD/VSS/2.5V均可。另:跟随器减少了比较器的延时,这就是手册上说的CBP=1时,可以减少信号延时,放宽总线距离的原因。

结论:如果不清楚电子线路(运算放大器、比较器、跟随器、N/P沟道场效应管等等电路),只要将SJA1000的RX1管脚接到总线驱动器82C250一类的参考电压输出端Vref即可,这时无论CBP位设置1/0,通信都能正常进行。

这只是原理上解释为什么有些书上的RX1接地,有些书又接Vref。
电子开关B也许是接在比较器A的下一级的输入上,然后一掷接比较器A输出,一掷接RX0输入,当CBP=0时,开关连接A输出,断开RX0。
    当CBP=1时,开关连接RX0,断开A输出,这样真正跨越了比较器A的延时。(这时RX1接什么已经无所谓了)。
跟随器叙述好像不严格。不过原理是这样。

 
 

使用特权

评论回复
6
hxiaon|  楼主 | 2007-2-2 11:15 | 只看该作者

谢谢

请问:我用两个SJA000控制器,用了一个12M的晶振,其中一个利用内部振荡源,另一个由这个产生输出作为外部振荡源,利用外部振荡源时另一个振荡脚应该开路还是接地啊?我的现象是好象用外部振荡源的那个不能接收数据,不能读;

使用特权

评论回复
7
lifespace| | 2007-2-2 15:28 | 只看该作者

wxj1952 说的好啊

wxj1952 说的好啊

真的高手~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

36

帖子

0

粉丝