我的单片机型号是MC9S08DZ60,求助CAN通讯波特率计算

2019-03-26 08:00发布

我的单片机型号是MC9S08DZ60,所使用的晶振频率是4MHZ,谁能给我一个计算CAN通讯波特率的范例吗?谢谢你们啦!!!


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
shuilongwang200
1楼-- · 2019-03-26 13:06
我的单片机型号是MC9S08DZ60,所使用的晶振频率是4MHZ,谁能给我一个CAN通讯的范例吗?谢谢你们啦!!!主要是波特率不知道怎么计算呀,求求大家帮帮我
雪狼子
2楼-- · 2019-03-26 14:20
不是很清楚啊。。。。。。。。。
shuilongwang200
3楼-- · 2019-03-26 14:44
什么地方不清楚呀?我就是想要一个MC9S08DZ60单片机的CAN通讯范例,谢谢你回应,谢谢
xzz88
4楼-- · 2019-03-26 20:28
波特率啊,关键第一步是计算CAN的clock频率啊.看你是选择直接用外部晶振还是使用BusCLK(总线时钟,记得使用总线时钟时有个1/2的关系),然后再看你的CAN模块预分频数设置,这样就可以知道你最终提供给CAN发送接收模块的CANCLK了;比如是4MHZ,那么波特率就是1/4M  = 250kbps

第二步,是将上面设置好的一个时钟位,进行划分为几份的事了,也就是Tseg1,Tseg2的设置,还有什么SJW位宽度; CANCLK一样,位时钟划分不同,2个CAN之间也不能正常通信~~~原则上可以有任意种划分法,但是有个啥子国际标准哦~周立功的CAN手册上有个针对SJT1000的设置,那是符合标准的.

有了上面两步CAN通信就没问题了.....

谨记:DZ60的外部时钟与总线时钟有个1/2的关系~
quilt1120p
5楼-- · 2019-03-27 00:34
/******************************************************************************************
|MSCAN parameters:BaudRate                                                                 |
|Tq = CanParam.BRP/fcanclock;                                                              |
|Tbit = (1+(1+CanParam.TSEG1)+(1+CanParam.TSEG2))*Tq;                                      |
|1/(Tbit+CanParam.SJW*Tq) <= MSCAN_BaudRate <= 1/(Tbit-CanParam.SJW*Tq)                    |
|MSCAN_BaudRate:   (3+CanParam.TSEG1+CanParam.TSEG2)*CanParam.BRP=Fcanclk/nMbps;           |
|                   80kbps                                                                       |
*******************************************************************************************/
const Te_CanParam CanParam ={
  sjw_4Tq,         /*SJW*/
  3,               /*BRP*/
  FALSE,           /*SAMP*/
  tseg1_10Tq,      /*TSEG1  here the value is 9 */
  tseg2_7Tq,       /*TSEG2  here the value is 6 */
};
不知道这个例子你能不能看懂
xyb629
6楼-- · 2019-03-27 01:27
 精彩回答 2  元偷偷看……

一周热门 更多>