EasyARM-iMX257如何配置出低速率CAN

在EasyARM-iMX257 Linux开发指南 V1.02.01“5.6 socket CAN编程socket CAN编程”中提到如何配置CAN总线,其计算公式为:

CAN速率
= 66500000
/ (br_presdiv
* (
br_propseg
+ br_pseg1+
br_pseg2+ 1)

其中br_pseg2为8,是不可以修改的固定值。

可以修改的是br_presdiv、br_propseg、br_pseg1。

所以在当决定CAN总线的速率前,需要计算在指定的速率下,br_presdiv、br_propseg、br_pseg1是什么值。

典型的速率值为:
500k: br_presdiv:7 br_propseg:5 br_pseg1:5 br_pseg2:8

1000k: br_presdiv:3 br_propseg:7 br_pseg1:6 br_pseg2:8

手册说明:br_presdiv是一个8位的寄存器,也就是说最大为255;

br_propseg、br_pseg1是一个3位的寄存器,也就是说最大为8;

在这种情况下,根据计算公式配置出:250Kbsp和125Kbsp还是可以的,但是想要配制出5Kbsp、10Kbsp就是不可能的事!

但是当需要5Kbsp、10Kbsp总线频率的时候怎么办?

看完IMX25RM原厂手册,就会豁然开朗!

FlexCAN有两个时钟源,一个是66.5Mhz另一个是24.576 MHz,通过CTRL控制寄存器中的CLK_SRC来控制选择时钟源!系统默认是高速的FlexCAN时钟即66.5Mhz,所以上面的计算公式为66500000!而当选择24.576
MHz时,计算公司修改为24576000,就可以很容易配置出5Kbsp和10Kbsp;

典型的速率值为:
5k: br_presdiv:255 br_propseg:5 br_pseg1:5 br_pseg2:8

10k: br_presdiv:128br_propseg:5 br_pseg1:5 br_pseg2:8

如何修改底层驱动选择24.576 MHz时钟?

修改/linux-2.6.31/drivers/net/can/flexcan/drv.c 70-73行代码为以下四行即可(可用CLK定位):

if (flexcan->br_clksrc)

reg &= ~__CTRL_CLK_SRC;

else

reg |= __CTRL_CLK_SRC;

修改之后,编译烧写内核,按照文档中描述的方法,按照给出的5K和10K的典型值,配置出5Kbsp和10Kbsp就可以了!

至此,低速率CAN配置搞定!!

EasyARM-iMX257如何配置出低速率CAN的更多相关文章

  1. MOD_EXPIRES安装和配置 提高网站速率

    MOD_EXPIRES安装和配置 提高网站速率   实施这一方法将节省你难以置信数额的带宽,极大地加快你的网站为你的网站访客.基本上,对于图片,CSS , JavaScript以及其他文件可以通过优化 ...

  2. win8防火墙配置出站规则禁止QQ访问

    我们知道Windows自带防火墙可以自定义入站出站规则,那么今天我们就通过配置出站规则禁止QQ访问,在2015年少登QQ,多忙工作,登上人生巅峰,赢娶白富美,哈哈 首先,通过控制面板打开防火墙,可以看 ...

  3. [Android Studio 权威教程]配置出“NB”的Android Studio

    前几篇博客我们已经安装好了As,并且创建了我们的第一个HelloWrod ,这片blog我们继续配置出一个NB的Android Studio 假设你是一个才開始接触到AS或者想从Eclipse转型到A ...

  4. ASP.NET Aries 入门开发教程2:配置出一个简单的列表页面

    前言: 朋友们都期待我稳定地工作,但创业公司若要躺下,也非意念可控. 若人生注定了风雨飘摇,那就雨中前行了. 最机开始看聊新的工作机会,欢迎推荐,创业公司也可! 同时,趁着自由时间,抓紧把这系列教程给 ...

  5. CentOS7安装nagios并配置出图详解

    目录 开始之前 系统环境 监控内容 所需软件包 台机器,全都按照CentOS7最小化模式安装系统 系统版本号 [root@localhost ~]# cat  /etc/redhat-release ...

  6. 如何在低速率网络中测试 Web 应用

    大家看到标题后的第一个问题可能是:“我们需要这样做吗?” 如果我们开发的是局域网 Web 应用的话,可能没有必要这样做.但如果我们的 Web 应用面向的是互联网上的成千上万的用户,这样做就很必要了.因 ...

  7. sharepoint 2013安装--没安装成功--机器配置太低了

    油管上的sharepoint2013安装教程 https://www.youtube.com/watch?v=3lQVMGWJQho 下载脚本的网址 http://gallery.technet.mi ...

  8. 配置node低版本支持ES7

    由于node的版本为6.*,不升级情况下,能使用ES7的 async await 特性, 在目录下 添加 start.js package.json里添加依赖配置 重新npm install 下载依赖 ...

  9. jeecms 配置可以低级别用户流程

    使用管理员admin登录后台,进入用户—>管理员(本站)à添加,填写用户名.密码等信息,如下图: 需要注意几个权限控制的问题: 1,  等级,值越大等级越高,等级高的管理员可以审核等级低的管理员 ...

随机推荐

  1. 浅析Block闭包

    浅析Block闭包 简单来说,block就是将函数及其上下文封装起来的对象,从功能上可以把它看作是C++中的匿名函数,也可称之为块. Block类型写法: 返回值+(^块名)+(参数)= ^(参数){ ...

  2. 类linux 系统上端口被占用

    好几次遇到这问题,明明Ctrl+C退出了node,但是下次启动的时候总是会报错: listen EADDRINUSE :::80 之类的. 这时候可能是被占用,也可能是上次进程没有真的退出. ps - ...

  3. Django之templates模板

    模板渲染: 官方文档:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#std:templatetag-for 模板渲染两种 ...

  4. sql 判断 表 视图 存储过程 存在 然后 删除

    sql 判断 函数 存储过程是否存在的方法 (2010-12-03 10:08:57) 转载▼     下面为您介绍sql下用了判断各种资源是否存在的代码,需要的朋友可以参考下,希望对您学习sql的函 ...

  5. UIStackView上手教程

    https://www.jianshu.com/p/19fbf3ee2840 https://www.cnblogs.com/bokeyuanlibin/p/5693575.html https:// ...

  6. MySQL(4)— 数据查询

    四.数据查询(DQL) 4-1.查询指定字段 select 完整 语法: select [distinct] 字段名1 [as] [别名],字段名2 [as] [别名] from 表1 [ left ...

  7. Node.js躬行记(1)——Buffer、流和EventEmitter

    一.Buffer Buffer是一种Node的内置类型,不需要通过require()函数额外引入.它能读取和写入二进制数据,常用于解析网络数据流.文件等. 1)创建 通过new关键字初始化Buffer ...

  8. 简说Spring中的资源加载

    声明: 本文若有 任何纰漏.错误,请不吝指正!谢谢! 问题描述 遇到一个关于资源加载的问题,因此简单的记录一下,对Spring资源加载也做一个记录. 问题起因是使用了@PropertySource来进 ...

  9. MOS管的栅极和源极之间的电阻

    MOS管的栅极和源极之间的电阻: 一是为场效应管提供偏置电压:二是起到泻放电阻的作用:保护栅极G-源极S: 保护栅极G-源极S: 场效应管的G-S极间的电阻值是很大的,这样只要有少量的静电就能使他的G ...

  10. Android_存储访问框架SAF

    概念 存储访问框架---Storage Access Framework (SAF),这是在Android4.4(API level 19)之后引入的. 借助 SAF,用户可轻松在其所有首选文档存储提 ...