[Kinetis] 【经验分享】KE06 MSCAN波特率相关寄存器的设置讲解

[复制链接]
2866|12
 楼主| FSL_TICS_ZJJ 发表于 2015-5-22 14:54 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_ZJJ 于 2015-5-22 14:56 编辑

     本经验分享主要讲解如何设置KE06 MSCAN模块波特率相关的寄存器, MSCAN波特率相关的寄存器有MSCAN_CANBTR0,MSCAN_BTR1,具体控制的位有:
    同步跳转宽度SJW,波特率分频系数BPR,采样配置SAMP,时间段1 TSEG1,时间段2 TSEG2。
本文分别使用外部晶振8MHZ以及bus时钟20Mhz作为MSCAN的时钟源,讲解如何配置相关寄存器的值,从而生成100Khz波特率。

具体内容请查看附件文档:
【经验分享】KE06 MSCAN波特率相关寄存器的设置讲解.pdf (417.18 KB, 下载次数: 268)

 楼主| FSL_TICS_ZJJ 发表于 2015-5-22 14:57 | 显示全部楼层
不足之处,欢迎指正,同时也欢迎大家分享自己的经验。
FSL_TICS_Jeremy 发表于 2015-5-25 08:33 | 显示全部楼层
很好的资料,不围观一下可惜啊!
Luis德华 发表于 2015-5-26 20:01 | 显示全部楼层
讲解如何设置KE06 MSCAN模块,谢谢楼主
小猫爱吃鱼 发表于 2015-5-27 08:21 | 显示全部楼层
KE06 的MSCAN功能还是挺强的,好好学习
春风的暖暖 发表于 2015-5-27 09:42 | 显示全部楼层
KE06 MSCAN模块的配置,非常细致,谢谢楼主
跟屁虫 发表于 2015-5-28 09:40 | 显示全部楼层
这个文档主要讲解了讲解如何设置KE06 MSCAN模块波特率相关的寄存器
luole700 发表于 2015-8-24 15:19 | 显示全部楼层
问一下楼主 飞思卡尔FRDM-KE06的CAN NODE1范例应该也是100k的频率吧 怎么我检测不到呢

#define BAUD_RATE_SJW                     SJW_3TQ        /*!< 1 set Synchronization Jump Width. */
#define BAUD_RATE_BRP                                0                /*!< 1 Baud Rate Prescaler */       
#define BAUD_RATE_SAMP                                0                /*!< 0-One sample per bit, 1-three sample per bit. */       
#define BAUD_RATE_TSEG1                                TSEG_10  /*!< Time Segment 1*/
#define BAUD_RATE_TSEG2                                TSEG_7  /*!< Time Segment 2*/
#define BAUD_RATE_CLOCK                                8000000L/*!< clock source for MSCAN*/
#define Baud_RATE                                        BAUD_RATE_CLOCK/(BAUD_RATE_BRP+1)/\
                                                                        (BAUD_RATE_SJW+1)/(3 + BAUD_RATE_TSEG1+\
                                                                        BAUD_RATE_TSEG2)
 楼主| FSL_TICS_ZJJ 发表于 2015-8-24 17:36 | 显示全部楼层
luole700 发表于 2015-8-24 15:19
问一下楼主 飞思卡尔FRDM-KE06的CAN NODE1范例应该也是100k的频率吧 怎么我检测不到呢

#define BAUD_RATE_ ...

看这个链接:https://bbs.21ic.com/icview-948570-1-1.html
里面代码我修改过了,官方的例程有些问题。
我已经把修改后的代码上次到如上链接了。
luole700 发表于 2015-8-25 15:37 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-8-24 17:36
看这个链接:https://bbs.21ic.com/icview-948570-1-1.html
里面代码我修改过了,官方的例程有些问题。
我 ...

哈哈 用了你的例子可以接收到扩展帧的信号了,你是不是就改了BRP 19
 楼主| FSL_TICS_ZJJ 发表于 2015-8-31 12:32 | 显示全部楼层
luole700 发表于 2015-8-25 15:37
哈哈 用了你的例子可以接收到扩展帧的信号了,你是不是就改了BRP 19

嗯呢,其实就是波特率的问题。
gcs.net 发表于 2017-1-16 20:41 | 显示全部楼层
请问楼主,怎么发送多条CAN报文
lcptw 发表于 2017-2-26 22:49 | 显示全部楼层
如何配置500K的波特率呢?配置了一个也不知道是否正确?

// 500Kbps, clksource need set to extern 8MHz (*sSetting.bCLKSRC = 0)
// MSCAN_CANBTR0 = 0x80, MSCAN_CANBTR1 = 0x3A
#define BAUD_RATE_SJW                     SJW_1TQ        /*!< 1 set Synchronization Jump Width. */
#define BAUD_RATE_BRP                                0                /*!< 1 Baud Rate Prescaler */       
#define BAUD_RATE_SAMP                                0                /*!< 0-One sample per bit, 1-three sample per bit. */       
#define BAUD_RATE_TSEG1                                TSEG_11  /*!< Time Segment 1*/
#define BAUD_RATE_TSEG2                                TSEG_4  /*!< Time Segment 2*/

#define BAUD_RATE_CLOCK                                8000000L/*!< clock source for MSCAN*/
#define Baud_RATE                                        BAUD_RATE_CLOCK/(BAUD_RATE_BRP+1)/\
                                                                        (BAUD_RATE_SJW+1)/(3 + BAUD_RATE_TSEG1+\
                                                                        BAUD_RATE_TSEG2)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

165

主题

5069

帖子

88

粉丝
快速回复 在线客服 返回列表 返回顶部