查看: 2556|回复: 2

[原创] i2C-6ULX 开发板上使用CAN总线

[复制链接]
  • TA的每日心情
    开心
    2018-5-31 10:17
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2018-5-20 11:46:11 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 bloong 于 2018-5-20 11:47 编辑

    后面打算做个小demo,想用下CAN总线,工业现场中CAN总线应用还是比较多,尤其是远距离通讯。i2C-6UBY2核心板有两路CAN总线。i2C-6ULX-B底板也有引出相应的信号,但是没有CAN收发器。这个从网上买两个就可以了。

    底板上的扩展座己经引出信号,FLEXCAN1是J3.12和J3.14,FLEXCAN2是J3.21和J3.23。直接和CAN收发器的TX,RX脚相连就可以了。两个收发器出来的CAN_H和CAN_L也对应相连,这样CAN总线搭建好了。记得给CAN收发器模块接电源3.3v和GND。

    厂商提供的Linux系统中己经移植好了CAN驱动,直接配置dts文件就可以使用了。

    1. &flexcan1 {
    2. pinctrl-names = "default";
    3. pinctrl-0 = <&pinctrl_flexcan1>;
    4. status = "disabled";
    5. };

    6. &flexcan2 {
    7. pinctrl-names = "default";
    8. pinctrl-0 = <&pinctrl_flexcan2>;
    9. status = "disabled";
    10. };
    复制代码
    更新dts文件到开发板后,Linux重启就可以看到can0和can1设备了。

    为了方便使用,可以在串口上使用can0,再开个ssh使用can1。串口操作如下:
    1. # ip link set can0 up type can bitrate 50000
    2. # ifconfig can0 up
    复制代码
    ssh上操作如下:
    1. # ip link set can1 up type can bitrate 50000
    2. # ifconfig can1 up
    3. # candump can1
    复制代码


    然后在串口上执行发送程序,就可以在ssh的窗口上看到对应的CAN Frame。
    1. # cansend can0 100#01.02.03.04.05.06.07.08
    复制代码
    最后上效果图
    20180520_113050.jpg

    左面是串口,右边是ssh连接到开发板。
    Screen Shot 2018-05-20 at 11.43.49.png



    回复

    使用道具 举报

  • TA的每日心情
    难过
    2021-2-27 22:16
  • 签到天数: 1568 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2018-5-27 22:46:04 | 显示全部楼层
    关注了看看
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2019-6-26 20:59
  • 签到天数: 235 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2018-5-28 09:42:45 | 显示全部楼层
    收藏下后面学习
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-4-26 16:00 , Processed in 0.141497 second(s), 20 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.