BeagleBone Black 打开CAN总线

原创 2013年12月06日 01:15:27

SD卡版本:

     下载SD版本的系统,如Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.12-beaglebone-2013.07.31.img
     烧写到SD上,把SD卡查到电脑上面,修改uEnv.txt文件,在后面添加上 capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN,从而禁用HDMI(因为该接口某些脚和和CAN冲突了),修改后的配置可能是optargs=quiet drm.debug=7 capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN。
     将SD卡查到BBB上面,从SD启动BBB;
     先用ifconfig -a 查看有没有can0接口,没有的话需要配置;
     为了查看是否已经识别CAN-Cape,可以使用dmesg | grep -i cape 查看cape的挂接情况,主要留意CAN总线的信息,可能会有failed to load firmware 'BB-BONE-SERL-01-00A2.dtbo',这说明已经识别CAN-Cape了,但是加载BB-BONE-SERL-01-00A2.dtbo(和CAN相关)失败
     如果加载失败的话,使用echo BB-BONE-SERL-01:00A2 >/sys/devices/bone_capemgr.*/slots强制加载上去,估计会出现not such file,说明/lib/firmware下面没有BB-BONE-SERL-01-00A2.dtbo。
     没有BB-BONE-SERL-01-00A2.dtbo的话,到/lib/firmware下面把BB-BONE-SERL-01-00A1.dts复制一份为BB-BONE-SERL-01-00A2.dts
          cp BB-BONE-SERL-01-00A1.dts BB-BONE-SERL-01-00A2.dts
     编译BB-BONE-SERL-01-00A2.dts为BB-BONE-SERL-01-00A2.dtbo:
          dtc -O dtb -@ BB-BONE-SERL-01-00A2.dts > BB-BONE-SERL-01-00A2.dtbo
     重启BBB。
     重启完成之后在使用ifconfig -a检查接口,如果看到can0的话那么说明已经能够使用CAN了。
     设置CAN总线属性:     
          ip link set can0 type can bitrate 125000 triple-sampling on
     开启回环(如果你们没有其他CAN设备的话就只能用回环大致测试一下了,如果你有CAN设备连接上BBB的话就不用回环了)
          ip link set can0 type can loopback on
     启动CAN总线
          ifconfig can0 up
     显示所有CAN上的通信数据
          candump can0
     重新打开一个进程测试CAN发送
          cansend can0 1 2 3 4 5 6 7 8
     到dump的进程看看有没有结果


     PS:
     有的时候发送会出错,可能是发送缓冲区不够的原因,下面的命令设置发送缓冲区长度为1000
          echo 1000 > /sys/class/net/can0/tx_queue_len
     

在eMMC系统上面开启CAN:
     最好用新的镜像(亲测BBB-eMMC-flasher-2013.08.21.img可以,更旧的系统不保证可以)更新系统(先写到sd卡上,在用sd卡升级emmc,具体升级emmc过程请看其它教程)。
     将emmc的第一分区挂载:mount /dev/mmcblk0p1 /media/mmc1/
     切到挂载点:cd /media/mmc1/
     修改uEnv.txt(也是加上禁用HDMI):vi uEnv.txt
     修改后的可能是这样的:optargs=quiet drm.debug=7 capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN
     后面的步骤和上面SD卡的方式差不多,不过为了保险起见,我的做法是先把SD的方式配置好了,然后直接把SD卡的/lib/firmware完全复制到emmc系统上的/lib/firmware了。
     直接在emmc系统上编译dts的方式我没试过。

BeagleBone Black CAN总线读写数据操作

进入BBB之后可以通过ifconfig -a来查看是否打开CAN总线了: [plain] view plaincopyprint? root@BBB-C...
  • coder9999
  • coder9999
  • 2014年07月06日 17:58
  • 596

BeagleBone Black的can通讯实现(一)

硬件版本:RC1 软件版本:Debian 8.7 2017-03-19 4GB SD LXQT(kernel 4.4.54-ti-r93) 在网上找了很多说是修改Device-Tree,禁用HDMI...
  • zdc1122
  • zdc1122
  • 2017年08月03日 10:05
  • 487

BeagleBone Black CAN总线读写数据操作

进入BBB之后可以通过ifconfig -a来查看是否打开CAN总线了: root@BBB-CAN:~# ifconfig -a can0 Link encap:UNSPEC HWadd...
  • trbbadboy
  • trbbadboy
  • 2013年12月16日 11:00
  • 5088

BeagleBone Black——AM335X——启动流程

一:概括 AM335x的启动过程
  • yuanlai2010
  • yuanlai2010
  • 2014年06月10日 16:49
  • 1835

聊聊Beaglebone Black的cape和device tree overlay和dtc命令

我们知道beagleboard官网上有一些官方的硬件外设,比如lcd显示屏之类的,他们管这些外设叫做cape。其实这里是我理解狭隘了,应该说只要是修改了芯片引脚功能,或占用了空闲的引脚的东西,都可以叫...
  • wytalfred
  • wytalfred
  • 2013年11月20日 16:30
  • 5336

使用Beaglebone Black的串口UART

Beaglebone Black上有UART1-UART5共5个可用的uart串口,UART0供调试使用。我们进入/lib/firmware目录中可以看到系统自带了一些与uart有关的device t...
  • wytalfred
  • wytalfred
  • 2013年11月20日 16:23
  • 9221

Chipsee BeagleBone Black完整启动日志

Xshell for Xmanager Enterprise 5 (Build 0436) Copyright (c) 2002-2014 NetSarang Computer, Inc. All ...
  • Ccode11
  • Ccode11
  • 2015年09月10日 15:32
  • 1109

BeagleBoneBlack学习之串口通信

有关Beaglebone的资料请参考官网:BeagleBone资源简介 它的串口资源如下: 一共四个半串口,其中一个串口的rx被系统使用了没引出来,留给用户的还是4个。下面例程以UART1即P...
  • tjd10061
  • tjd10061
  • 2016年04月20日 15:31
  • 2590

fflush(stdin)和fflush(stdout)

fflush(stdin)比较容易理解,即清理标准输入流,把多余的仍未被保存的数据丢掉。 比如,下面这个小程序: void main() {         int a;         c...
  • YEYUANGEN
  • YEYUANGEN
  • 2011年09月02日 16:09
  • 21584

BeagleBone Black板第九课:测试读取ADC数据

BBB板第九课:测试读取ADC数据 之前我们初步学习了GPIO的使用方法,接下来认识下BBB板上ADC数据的读取操作,因为用BBB板做外部控制,接收外部传感器的一些模拟数据,模数转换ADC是需要用到的...
  • luyejie8888
  • luyejie8888
  • 2014年08月16日 13:14
  • 5903
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:BeagleBone Black 打开CAN总线
举报原因:
原因补充:

(最多只允许输入30个字)