打印
[Kinetis]

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

[复制链接]
2355|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)

相关帖子

沙发
FSL_TICS_ZJJ|  楼主 | 2015-5-22 14:57 | 只看该作者
不足之处,欢迎指正,同时也欢迎大家分享自己的经验。

使用特权

评论回复
板凳
FSL_TICS_Jeremy| | 2015-5-25 08:33 | 只看该作者
很好的资料,不围观一下可惜啊!

使用特权

评论回复
地板
Luis德华| | 2015-5-26 20:01 | 只看该作者
讲解如何设置KE06 MSCAN模块,谢谢楼主

使用特权

评论回复
5
小猫爱吃鱼| | 2015-5-27 08:21 | 只看该作者
KE06 的MSCAN功能还是挺强的,好好学习

使用特权

评论回复
6
春风的暖暖| | 2015-5-27 09:42 | 只看该作者
KE06 MSCAN模块的配置,非常细致,谢谢楼主

使用特权

评论回复
7
跟屁虫| | 2015-5-28 09:40 | 只看该作者
这个文档主要讲解了讲解如何设置KE06 MSCAN模块波特率相关的寄存器

使用特权

评论回复
8
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)

使用特权

评论回复
9
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
里面代码我修改过了,官方的例程有些问题。
我已经把修改后的代码上次到如上链接了。

使用特权

评论回复
10
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

使用特权

评论回复
11
FSL_TICS_ZJJ|  楼主 | 2015-8-31 12:32 | 只看该作者
luole700 发表于 2015-8-25 15:37
哈哈 用了你的例子可以接收到扩展帧的信号了,你是不是就改了BRP 19

嗯呢,其实就是波特率的问题。

使用特权

评论回复
12
gcs.net| | 2017-1-16 20:41 | 只看该作者
请问楼主,怎么发送多条CAN报文

使用特权

评论回复
13
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

粉丝