新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 高級外設(shè)CAN之波特率計算

        高級外設(shè)CAN之波特率計算

        作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
        在做技術(shù)支持的時候,經(jīng)常接到這樣的客戶電話,“在使用開發(fā)板上的CAN通信時,VPB時鐘為和光盤例程里的不一樣,CAN波特率怎么設(shè)置?我們希望用到的CAN波特率有5K、10K、50K、500K、1000K等”。CAN波特率設(shè)置不正確將導(dǎo)致CAN無法通信,于是,就波特率計算的方法我寫了這篇文章,以后再有客戶問這類問題,便可以直接把這篇文章發(fā)給客戶。

        CAN波特率的計算公式如下:

        本文引用地址:http://www.104case.com/article/201611/322217.htm

        其中tcan是CAN系統(tǒng)時鐘的一個周期,tbit是一個CAN位周期。

        以VPB時鐘Fpclk=24MHz,選擇采樣點位置在85%左右為佳,即使TESG1/(TESG1+TESG2)在85%左右,2

        BPS_1000K0x140002
        BPS_800K0x160002
        BPS_500K0x1C0002
        BPS_250K0x1C0005
        BPS_125K0x1C000B
        BPS_100K0x1C000E
        BPS_50K0x1C001D
        BPS_20K0x1C004A
        BPS_10K0x1C0095

        現(xiàn)在以500Kbps為例,首先得到(3 + TESG1 + TESG2) *(BRP+1)= 48, 滿足TESG1 /(TESG1 + TESG2)在85%左右,2

        第一組采樣點在88%左右,第二組采樣點在84%左右,所以我們?nèi)〉诙M,得到TESG1=11,TESG2=2,BRP=2,代入得到CANnBTR寄存器值為0x1C0002。
        對于另一個常用的Fpclk=11.0592MHz,同樣可以得出相應(yīng)CANnBTR寄存器值,在此給出部分值,您可以根據(jù)自己的需要計算對應(yīng)的值。
        500k0x170001
        250k0x170003
        125k0x170007
        100k0x170009
        50k0x1700013
        20k0x170031
        10k0x170064
        5k0x1700c8



        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 化州市| 墨脱县| 罗平县| 阿克苏市| 佛教| 太白县| 齐齐哈尔市| 综艺| 化德县| 老河口市| 五指山市| 永修县| 湖州市| 黑河市| 怀来县| 大洼县| 柯坪县| 同江市| 宜丰县| 固阳县| 扎囊县| 卓尼县| 资兴市| 蚌埠市| 大城县| 墨玉县| 永新县| 沿河| 宁都县| 屏东市| 盐城市| 温宿县| 阿巴嘎旗| 且末县| 临颍县| 博乐市| 东乡| 武强县| 澜沧| 汉沽区| 太保市|