一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 1761|回复: 5

哪位坛友熟悉SJA1000的操作?请教个问题。。。

[复制链接]
发表于 2011-3-8 01:17 | 显示全部楼层 |阅读模式
cosine 淘了两块 “带P89C61X2及SJA1000T电路板”,想学习下CAN(现在看来CAN没学到,光学习芯片了,可芯片是基础,没办法),从网上搜罗了一些资料和程序,分别写了发送(主程序循环发送)和接收(中断接收),peliCAN模式,但是发现几个问题:
1、接收板一直在中断,也就是SJA1000的中断引脚一直是低电平;
2、可以读出接收缓冲器中的内容,是正确的;当然后续的几次中断读出的内容不正确,好像是下一次发送的头信息;可能和接收FIFO相关;
3、在接收函数中已经释放了接收缓冲器,按道理说中断应该就没有了,但是不知道为什么中断引脚一直是低电平;
4、按照datasheet中说的,这时候可能是接收缓冲器里面还有内容,可是明明发送的时候只发送了一次;
5、接收程序中的验收屏蔽寄存器全部是0xff,也就是不判断ID,是不是就应该有接收应答信号了?
6、尝试了只听模式,也是存在一样的问题;
7、发送的时候使用单次发送(同时置位CMR.0和CMR.1),还是一样的现象,郁了。。。

在此先谢了。。。
 楼主| 发表于 2011-3-9 21:24 | 显示全部楼层
没人玩儿这个啊
回复

使用道具 举报

 楼主| 发表于 2011-3-29 23:18 | 显示全部楼层
向大家汇报一下,这个问题已经解决了:释放缓冲器的数值写错了,应该是0x04,结果不知怎么写成了0x14!
可以正常收发,还用VC++写了个串口接收程序,顺带解码一下:)
回复

使用道具 举报

发表于 2015-2-1 14:42 | 显示全部楼层
efan 发表于 2011-3-29 23:18
向大家汇报一下,这个问题已经解决了:释放缓冲器的数值写错了,应该是0x04,结果不知怎么写成了0x14!
可 ...

方便共享例程吗?我也是51+SJA1000T
上星期一直在调,读写 测试寄存都正常,时钟寄存器写入后,clockout输出频率也会随之改变,按理说硬件上应该没问题了,但是状态寄存器总是有问题(接收、发送标识时钟为1)
回复

使用道具 举报

 楼主| 发表于 2015-2-1 14:55 | 显示全部楼层
banalsheep 发表于 2015-2-1 14:42
方便共享例程吗?我也是51+SJA1000T
上星期一直在调,读写 测试寄存都正常,时钟寄存器写入后,clockout ...

三四年前的事儿了,都不记得了啊。
找了下程序,已经没有了,抱歉啊
回复

使用道具 举报

发表于 2015-2-3 09:33 | 显示全部楼层
efan 发表于 2015-2-1 14:55
三四年前的事儿了,都不记得了啊。
找了下程序,已经没有了,抱歉啊

客气了,今天有了点小进展,但是还有调不通
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2026-4-1 23:59 , Processed in 0.035336 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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