查看: 3935|回复: 4

RioTboard can总线测试

[复制链接]
  • TA的每日心情
    奋斗
    2015-10-8 09:49
  • 签到天数: 430 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2014-7-28 08:29:10 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 bruce_helen 于 2014-7-28 08:39 编辑

    这几天由于工作需要一直在看i.MX6 linux启动流程,头都搞大了。RioTboard CAN测试上上周就弄好了,一直没空写出来。
    在这里首先要感谢xinxin,帮我跟英蓓特沟通,让我也有机会继续搞RioTboard开发。还要感谢英蓓特,谢谢你们,我会继续努力。

    RioTboard官方没有引出CAN总线,但是i.MX6solo芯片是支持CANBUS的,利用i.MX6引脚复用,我发现可以在SD卡上跳线引出CAN总线,下面记录操作过程。

    1. i.mx6 CAN接口
    1.png
    从上图可以看出,CAN1和CAN2的引脚复用情况,RioTboard没有单独引出CAN接口,通过上表和RioTboard的电路图,我们发现可以使用SD3_DAT1作为CAN2的RX引脚,SD3_DAT0作为CAN2的TX引脚。
    2.png

    下图为最终跳线图,R149处为CAN_TX引脚,R150处为CAN_RX引脚。
    3.png


    2. 驱动修改
    修改引脚配置,将/* USDHC3 */的引脚功能去除。
    修改arch/arm/mach-mx6/board_mx6dl_RIoTboard.h如下所示:
    4.png
    在arch/arm/mach-mx6/board_mx6solo_RIoTboard.c mx6_RIoTboard_board_init函数中添加can驱动,我添加的代码如下:
    5.png
    上面sd3初始化的代码被屏蔽。
    6.png
    在1178行添加can初始化函数。编译完成,下载到RioTboard中后会在启动log多了CAN启动相关信息。
    7.png

    3. 相关软件编译
    我们使用网上现有的测试软件来测试linux环境下的canbus。后面我们可以参考下面的开源代码,实现自己的应用程序。
    1)首先编译libsocketcan
    下面的canutils需要这个库。
    修改Makefile文件CC=arm-linux-gcc
    ./configure --prefix=/usr/local/arm/libsocketcan --host=arm-linux --build=i386
    make
    make install
    编译成功,在 <安装路径>/lib/pkgconfig/下有个libsocketcan.pc文件,将其拷贝到PC的/usr/lib/pkgconfig/目录下。

    2)编译canutils-4.0.6
    ./configure --host=arm-linux --prefix=/usr/local/arm/canutils libsocketcan_LIBS=
    -lsocketcan LDFLAGS=-L/usr/local/arm/libsocketcan/lib CPPFLAGS=
    -I/usr/local/arm/libsocketcan/include
    (其中--host是指定交叉工具链,--prefix是指定库的生成位置,libsocketcan_LIBS是指定canconfig需要链接的库,LDFLAGS是指定外部库的路径,CPPFLAGS是指定外部头文件的路径)
    make
    make install
    将canutils安装目录下bin/和sbin/的程序拷贝到文件系统相应的目录下。

    4. 使用方法
    配置can0接口波特率为1MHz
    canconfig can0 bitrate 1000000
    打开can0
    ifconfig can0 up
    发送数据测试
    cansend can0 -i0x100 11 22 33 44
    接收数据
    canecho can0 –v &(后台运行)

    5. 测试架构及测试结果
    使用了一块STM32F207的板子,这块板子上自带VP230 CANBUS收发器。我们在RioTboard上另接了一个VP230的模块。
    8.png
    9.png
    下面的小模块为VP230 CAN总线收发模块。
    10.png
    STM32F207 VP230芯片
    11.png
    STM32F207和VP230芯片特写。
    测试界面,左边的为STM32F207的调试信息,右边为RioTboard调试信息。两版通信正常。
    12.png
    用到的源代码
    canbus.7z (480.1 KB, 下载次数: 14)
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2013-9-2 09:06
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2014-7-28 09:46:02 | 显示全部楼层
    支持下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-5-8 17:17
  • 签到天数: 710 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2014-7-28 11:48:45 | 显示全部楼层
    赞!                                             
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-9-23 05:09
  • 签到天数: 113 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2014-7-28 13:09:31 | 显示全部楼层
    了不起的贡献
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-7-11 10:39
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2014-7-31 16:34:32 | 显示全部楼层
    楼主牛,,,
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-26 04:40 , Processed in 0.150585 second(s), 24 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.