这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » wxj1952,SJA1000 请问一下大哥wxj1952,为什么我不能写SJA

共2条 1/1 1 跳转至

wxj1952,SJA1000 请问一下大哥wxj1952,为什么我不能写SJA1000的命令寄存器

院士
2006-09-17 18:14:16     打赏
wxj1952,SJA1000 请问一下大哥wxj1952,为什么我不能写SJA1000的命令寄存器



关键词: wxj1952     SJA1000     请问     一下     大哥         

院士
2006-12-22 22:43:00     打赏
2楼
问 我在做一个关于CAN总线的东西,用的是BASIC CAN模式。我用一个CAN发送装置向我的CAN节点发数据,然后我的SJA1000用的是查询模式接收数据,这个数据可以进入我的SJA1000的接收寄存器,但是,我通过DSP仿真器可以收回数据,但是,我向SJA1000的命令寄存器写0X04,试图清除接受寄存器,但是清除不了。所以,现在我的CAN总线只能接收一个数据。



而且,奇怪的是,在对方向我发数据之后,我在进入查询接收之前,读了一下我的状态寄存器,发现状态寄存器里面对应的RBS位是0,表示没有数据进入我的接收寄存器。这就很奇怪了,明明我能接收到一帧数据,但是状态寄存器的值却是0x0C。

SJA1000芯片是好的,因为将能正常工作的SJA1000芯片换到我的板子上。
会不会是因为SJA1000受到干扰,使得状态寄存器和命令寄存器不能正常工作?
因为我测过了,从SJA1000读出来的数据,有一个2.6MHZ的噪声

还请wxj1952大哥指点一下,小菜鸟我已经调这个调了很长时间了 1: 现象是对的既然没有查询到RBS/RI,那么所有接收缓存的数据都是无效的,无论它怎么“像”发送来的数据。
0x04是释放接收缓存命令,作用:1:移动接收缓冲器窗口;2、使释放掉的缓冲器可重用。“而原来的数据并不受影响,还在那里,一直在那里,直到被新的数据覆盖”。 2: SJA1000写不进数据,是不是电平转换芯片没用的缘故?今天再一看,发现SJA1000又写不进数据了,而且也读不出来数据
SJA1000是5V供电,我上一次做CAN总线模块的时候,在DSPSJA1000间的数据线是先经过一个3.3V转5V的电平转换芯片,因为当时我觉得DSP是3.3V的,所以要把数据上的信号电压拉升一下,以匹配我的SJA1000。上一次是做成功了。
而这一次,我将上一次做的CAN总线模块都照搬过来了,只是没用那个电平转换芯片LVTH16245A,我将DSP的数据以及控制线都丢入FPGA,然后由FPGA做成适合的SJA1000接口,将SJA1000的数据以及RD,WR,CS,ALE都由FPGA引出。
在FPGA烧写进程序后,我用示波器测量RD,WR,CS,ALE以及DATA脚,发现时序都是符合DATASHEET要求的,只是数据总是写不进SJA1000
因为我认为FPGA的驱动能力很强,而且我也测了RD,WR,CS,ALE和DATA上的电压,高电平有3.2V,这也满足SJA1000对输入信号电压的要求呀!
那是不是因为我没用这个电平转换芯片的缘故呢?

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]