CAN通訊波特率配置

? ? /* Bps = 250Kbps */

//? ? CAN_Mode_Init(CAN_SJW_1tq, CAN_BS2_5tq, CAN_BS1_6tq, 12, CAN_Mode_Normal);

? ? /* Bps = 5Kbps */

? ? CAN_Mode_Init(CAN_SJW_1tq, CAN_BS2_8tq, CAN_BS1_16tq, 300, CAN_Mode_Normal);

老師們好,250kbps是例程的,測(cè)試是可以收到數(shù)據(jù)的,

但我現(xiàn)在需要配置成5kbps,但是測(cè)試是收不到數(shù)據(jù),can的分頻系數(shù)應(yīng)該是1-1024,配置成300應(yīng)該是可以的,但實(shí)測(cè)確實(shí)收不到,調(diào)整成50可以。請(qǐng)老師指點(diǎn)是哪里出了問(wèn)題,應(yīng)該怎么來(lái)配置這個(gè)參數(shù)。

您好,配置5kbps代碼參數(shù)如下:微信圖片_20221027142831.jpg





can分析儀發(fā)送數(shù)據(jù)測(cè)試如下:

1666852237114788.jpg

1666852237192920.jpg

1666852237703561.jpg



你好,系統(tǒng)時(shí)鐘不是72MHz嗎,一個(gè)tq有12個(gè)周期那就是(1/6)us,BS1+BS2+SJW = 12,也就是一個(gè)位的長(zhǎng)度是2us,算回來(lái)不應(yīng)該是500Kbps嗎,這個(gè)我一直沒(méi)有搞懂,芯片是CH32V203,可以解惑一下嗎



您好,CAN外設(shè)一般是掛在APB1總線上的,APB1總線的時(shí)鐘一般有系統(tǒng)主頻2分頻得到(具體看程序配置,也可配置1分頻),當(dāng)系統(tǒng)主頻配置為144MHz時(shí),若2分頻,則APB1時(shí)鐘就是72MHz,因此CAN外設(shè)的時(shí)鐘不是固定的,要看程序的配置。關(guān)于CAN波特率的計(jì)算,可參考下帖,有講CAN波特率的計(jì)算方式。
https://www.cnblogs.com/wchmcu/p/17546797.html


我們來(lái)算一下,按照例程,tpclk1 = 36m

can_hw_init(CAN_SJW_1tq/* 一般固定為1tq */, CAN_BS2_5tq, CAN_BS1_6tq, 12, CAN_Mode_Normal );

那么bs1=6,bs2=5,brp=12-1=11

bps = 36m/((6+5+3)*11)=0.233 mbps,比250差的比較多

上面計(jì)算對(duì)嗎?


您好,不好意思,上述計(jì)算公式有問(wèn)題,應(yīng)該是乘以BRP[9:0]+1,可參考下帖對(duì)CAN波特率計(jì)算的介紹:

https://www.cnblogs.com/wchmcu/p/17546797.html

?




只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频