Firefly开源社区

[Linux] 如何引出3个CAN

83

积分

0

威望

0

贡献

技术小白

积分
83
发表于 2022-5-9 15:39:24     
  • 固件类型: 官方提供的固件
  • 固件文件名称: rk356x_linux_release_20211019
  • 固件下载地址: 百度网盘
  • Log日志: log.txt.zip
问题描述及复现步骤:
就是咱们硬件上用CAN1和CAN2引脚,但加载后,开发板可以查看到can0和can1
root@firefly:~# ip link set can0 down
root@firefly:~# ip link set can0 type can bitrate 250000
root@firefly:~# ip link set can0 up
root@firefly:~# ip link set can1 down
root@firefly:~# ip link set can1 type can bitrate 250000
root@firefly:~# ip link set can1 up
root@firefly:~# ifconfig
can0: flags=193<UP,RUNNING,NOARP>  mtu 16
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 10  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 60

can1: flags=193<UP,RUNNING,NOARP>  mtu 16
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 10  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 61


而且从实际使用上看,
can0设备对应CAN2引脚
can1设备对应CAN1引脚
请问这个是怎么回事?

另外,我的项目里想用3个can,那can0被占了可怎么办?

log.txt.zip

760 Bytes, 下载次数: 0, 下载积分: 灯泡 -1 , 经验 -1

回复

使用道具 举报

2077

积分

10

威望

12

贡献

中级创客

Rank: 4

积分
2077
发表于 2022-5-9 16:28:37     
1. 板子印刷错误导致编号对不上,不影响使用
2. can0 的接口被 i2c1 占用
3. 即使你关闭 i2c1 也用不了 can0,因为硬件上没做出接口
下载页面应该是有底板原理图的,可以查看有哪些硬件资源,原理图里搜不到的那就是没有,除非自己制作底板
回复

使用道具 举报

83

积分

0

威望

0

贡献

技术小白

积分
83
发表于 2022-5-10 09:12:06     
Liuth 发表于 2022-5-9 16:28
1. 板子印刷错误导致编号对不上,不影响使用
2. can0 的接口被 i2c1 占用
3. 即使你关闭 i2c1 也用不了 c ...

对对对大神,我就是要自己制作底板,需要引出3个CAN。
我的疑问就是硬件的CAN1和CAN2引脚,怎么创建出来的设备是can0、can1呢,那我硬件CAN0创建的设备可怎么命名呢?
如果要修改软件的命名,在哪个地方能够修改呢?
回复

使用道具 举报

797

积分

0

威望

0

贡献

技术大神

Rank: 3Rank: 3

积分
797
发表于 2022-5-10 09:15:46     
tieshou200 发表于 2022-5-10 09:12
对对对大神,我就是要自己制作底板,需要引出3个CAN。
我的疑问就是硬件的CAN1和CAN2引脚,怎么创建出来 ...

软件can0/1是看谁先被创建的,和硬件的can1、2没有关系
回复

使用道具 举报

2077

积分

10

威望

12

贡献

中级创客

Rank: 4

积分
2077
发表于 2022-5-10 09:17:16     
自己做底板那 i2c1 引脚就是 can0,在设备树里关闭 i2c1 ,开启 can0
驱动创建设备是按照0开始的,所以第一个创建的就是can0,无论硬件上具体是哪个
你把can0 1 2 都打开,就能对上了
回复

使用道具 举报

797

积分

0

威望

0

贡献

技术大神

Rank: 3Rank: 3

积分
797
发表于 2022-5-10 09:34:33     
tieshou200 发表于 2022-5-10 09:12
对对对大神,我就是要自己制作底板,需要引出3个CAN。
我的疑问就是硬件的CAN1和CAN2引脚,怎么创建出来 ...

网口名字在alloc_netdev_mqs函数里设置,can在alloc_candev_mqs设置
回复

使用道具 举报

83

积分

0

威望

0

贡献

技术小白

积分
83
发表于 2022-5-10 12:04:54     
dengkx 发表于 2022-5-10 09:34
网口名字在alloc_netdev_mqs函数里设置,can在alloc_candev_mqs设置

太感谢了
回复

使用道具 举报

83

积分

0

威望

0

贡献

技术小白

积分
83
发表于 2022-5-10 13:30:01     
Liuth 发表于 2022-5-10 09:17
自己做底板那 i2c1 引脚就是 can0,在设备树里关闭 i2c1 ,开启 can0
驱动创建设备是按照0开始的,所以第 ...

明白了,万分感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表