MCP2515在Hi3521D上的调试

goodman 2018-10-31 14:12:11 3789

近期要在板子上要用到SPI接口的mcp2515,hi3521d采用了linux3.18.20的内核,使用了设备树的方式加载驱动。不算复杂,调了2天搞完了。

内核修改

1.注意RESET脚控制,为海思的控制方法
2.注意MCP2515使用的晶振,内核里面配置对应的时序
3.中断方式采用海思的控制方式
4.开启内核can支持及SPI的mcp2515驱动,mcp2515里面本身有个bug也一并修正了
5.修改驱动适配3521D,采用动态加载的方式
其核心初始化代码如下:

static __init int mcp251x_spi_init(void)
{
    char spi_name[16];
    struct spi_master *master;
    struct device*      dev;
    struct spi_device *spi;

    master = spi_busnum_to_master(0);
    if (!master) {
        printk("spi_busnum_to_master failed\n");
        return -ENODEV;
    }
    snprintf(spi_name, sizeof(spi_name), "%s.%u", dev_name(&master->dev), 1);
    dev = bus_find_device_by_name(&spi_bus_type, NULL, spi_name);
    if (dev == NULL) {
        dev_err(NULL, "chipselect %d has not been used\n", 1);
        return  -ENXIO;
    }

    spi = to_spi_device(dev);
    if (spi == NULL) {
        dev_err(dev, "to_spi_device() error!\n");
        return -ENXIO;

    }
    mcp251x_device = spi;
    put_device(dev);
    return mcp251x_can_probe(spi);

}

static __exit void mcp251x_spi_exit(void)
{   
    if(mcp251x_device!=NULL)
        mcp251x_can_remove(mcp251x_device);
}

can测试

由于hi3521d内置的busybox里面没有带ip命令,并且config里面也没有配置所以需要移植一个iproute2,我这里选择的版本是3.18.0随后交叉编译一份canutils.

回环测试指令如下:

ip link set can0 down
ip link set can0 type can bitrate 50000 loopback on
ip link set can0 up
candump can0 &
cansend can0 123#11223344556677 

正式测试(PC上接个USB的can模拟器)

ip link set can0 down
ip link set can0 type can bitrate 125000 
ip link set can0 up
candump can0 &
cansend can0 123#11223344556677 
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
goodman
红包 点赞 收藏 评论 打赏
评论
1个
内容存在敏感词
手气红包
  • goodman 2020-06-15 19:09:09
    回复

    测试下评论,可以使用Markdown

相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
goodman
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区