注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

学习笔记

正确的方法如同学习书法,开始的时候要临摹,临摹好了然后创造自己的风格。

 
 
 

日志

 
 

[元器件]MCP2510 CAN波特率设置  

2011-06-11 18:38:00|  分类: 元器件资料 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

转自:http://freakrobot.blogbus.com/logs/86264434.html

在计算时钟波特率预分频BRP的时候,

     BRP只能是BRP[5-0] 5位,数值为0-63之间的值。对时间段变成要满足一下要求:
*传播段+相位缓冲段1 >= 相位缓冲段2
*传播段+相位缓冲段1 >= Tdelay
*相位缓冲段2 > 同步跳转宽度
     Tq根据要的位时间长度来算,假设我的位时间1+7+4+4 = 16Tq,选用波特率10Kbps。
BRP = (1/16) * 10^(-4) * Fosc * 10^6 / 2 - 1
问题就变成Fosc是多少。

点击查看原始尺寸

 

点击查看原始尺寸

    CLKPRE1-0就是设置这两个值就是设置CLKOUT管脚,用于设置输出预分频的,跟波特率无关。
晶振率由OSC1-2两处提供,也就是CAN这块芯片的波特率跟系统时钟PCLK FCLK没有关系,他是由PCLK是提供SCK的,不是CAN总线上的波特率。由上图2可以看到,外部提供了12M的晶振。
    因此BRP设置的值:
BRP = (1 x 10^(-4)) / 16 x 12 x 10^2 / 2 - 1 = 0x37
    原来样例用的是16MHz,无法收发到,由示波器观察发现USBCAN和板子发出的波形,宽度不一致,这次再测试就收发正确了。
补:
    当前使用125Kbps的波特率,因此再次做出修正
BRP = (1 / 125^(3)) / 16 x 12 x 10^2 / 2 - 1 = 0x02

  评论这张
 
阅读(962)| 评论(2)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018