打印
[嵌入式Linux]

AT91 SPI总线挂接MCP2515 CAN控制器---驱动移植

[复制链接]
2375|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
CPU芯片:AT91SAM9G25,
CAN控制器:MCP2515,
内核版本:Linux2.6.39,
在9G25的SPI1总线上挂接了3个mcp2515,想用socketcan协议来控制,参照了网上相关贴子,改了相关配置。内核启动后,查看目录相应目录:

然后用ifconfig -a命令查看,却没有显示can0、can1、can2等设备。然后又在网上看到一篇贴子:http://bbs.csdn.net/topics/390169208
在/etc/network/interfaces文件中加上
auto can0
  iface can0 inet manual
  pre-up ip link set $IFACE type can bitrate 125000 triple-sampling on
  up /sbin/ifconfig $IFACE up
  down /sbin/ifconfig $IFACE down

重新启动内核,仍然提示:Cannot find device "can0"

无果,发帖,望做过此类的高手指点一二,非常感谢。




相关帖子

沙发
阿南| | 2015-11-20 09:30 | 只看该作者
硬件应该没有通,就是说SPI1总线上挂接的3个mcp2515都没正常工作。另外spi上如何挂3个从设备的

使用特权

评论回复
板凳
阿南| | 2015-11-20 09:31 | 只看该作者
先把spi上的3个设备改成1个,先试一下,成功一个了再加。如果一个都没成功,3个肯定是不行的

使用特权

评论回复
地板
wb_926| | 2015-11-20 10:14 | 只看该作者
只需要修改AT91的board.c增添相应设置,配置好中断号即可,刚做完这个加QT

使用特权

评论回复
5
boyie| | 2015-11-20 13:06 | 只看该作者
把9G25换成9X35或9X25 不是更好 ?

使用特权

评论回复
6
天意无罪|  楼主 | 2015-11-20 13:48 | 只看该作者
结贴:已解决。
原因是之前参考的贴子为华清老师宋宝华写的一篇贴子,在结构体spi_board_info中,成员modalias="mcp251x"。

将此值改为“mcp2515”就可以了。如果用的是mcp2510的片子,这里就要写mcp2510。

附:
static struct spi_board_info cm_spi1_devices[] = {
{
.modalias    = "mcp2515",
.irq = AT91_PIN_PC14,
.platform_data = &mcp251x_info,
.chip_select    = 0,
.max_speed_hz    = 8 * 1000 * 1000,
.bus_num    = 0,
.mode = SPI_MODE_0,
},
};

使用特权

评论回复
7
mini1986| | 2015-12-15 09:22 | 只看该作者
学习一下......

使用特权

评论回复
8
Mt623| | 2017-5-9 10:21 | 只看该作者
感谢楼主分享。可以学到很多东西

使用特权

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

本版积分规则

61

主题

2988

帖子

12

粉丝