共2条
1/1 1 跳转至页
wxj1952,SJA1000 请问一下大哥wxj1952,为什么我不能写SJA1000的命令寄存器

问
我在做一个关于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总线模块的时候,在DSP和SJA1000间的数据线是先经过一个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对输入信号电压的要求呀!
那是不是因为我没用这个电平转换芯片的缘故呢?
而且,奇怪的是,在对方向我发数据之后,我在进入查询接收之前,读了一下我的状态寄存器,发现状态寄存器里面对应的RBS位是0,表示没有数据进入我的接收寄存器。这就很奇怪了,明明我能接收到一帧数据,但是状态寄存器的值却是0x0C。
SJA1000芯片是好的,因为将能正常工作的SJA1000芯片换到我的板子上。
会不会是因为SJA1000受到干扰,使得状态寄存器和命令寄存器不能正常工作?
因为我测过了,从SJA1000读出来的数据,有一个2.6MHZ的噪声
还请wxj1952大哥指点一下,小菜鸟我已经调这个调了很长时间了 答 1: 现象是对的既然没有查询到RBS/RI,那么所有接收缓存的数据都是无效的,无论它怎么“像”发送来的数据。
0x04是释放接收缓存命令,作用:1:移动接收缓冲器窗口;2、使释放掉的缓冲器可重用。“而原来的数据并不受影响,还在那里,一直在那里,直到被新的数据覆盖”。 答 2: SJA1000写不进数据,是不是电平转换芯片没用的缘故?今天再一看,发现SJA1000又写不进数据了,而且也读不出来数据
SJA1000是5V供电,我上一次做CAN总线模块的时候,在DSP和SJA1000间的数据线是先经过一个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 跳转至页
回复
打赏帖 | |
---|---|
分享一种检测按键状态的方法被打赏20分 | |
周末总结一下,STM32C0系列的开发经验被打赏50分 | |
【换取手持数字示波器】MicrochipMPLABHarmony框架下定时器配置被打赏20分 | |
【换取手持数字示波器】MicrochipMPLABHarmony框架下PWM配置被打赏20分 | |
【Cortex-M】Systick Timer使用被打赏10分 | |
分享汽车防盗系统的组成与分类(一)被打赏5分 | |
VOFA+波形显示+JYD-31蓝牙发送和解析不定长数据被打赏10分 | |
【换取手持数字示波器】-STM32F4PWM控制LED灯管亮度被打赏22分 | |
【换取手持数字示波器】STM32F4驱动RPR-0521RS照度、接近一体型传感器被打赏23分 | |
宏定义和const关键字定义被打赏5分 |