• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于dsPIC33FJ128MC506的CAN通信(07-100)

    基于dsPIC33FJ128MC506的CAN通信(07-100)

    ——
    作者:山東省科學(xué)院自動化研究所 張?jiān)?李明強(qiáng) 莊汝科 時間:2009-03-04 來源:電子產(chǎn)品世界 收藏

      波特率的設(shè)置

    本文引用地址:http://www.czjhyjcfj.com/article/92042.htm

      正確設(shè)置通信波特率必須配置以下幾個參數(shù):同步跳轉(zhuǎn)寬度、波特率預(yù)分頻比、相位段1和相位段2的長度、采樣次數(shù)及傳播時間段的長度。設(shè)置程序語句如下:

      void ecan1ClkInit(void)

      {

      /*指定 通信時鐘利用系統(tǒng)的指令周期,在此為20MHz,即Fcan=20MHz*/

      C1CTRL1bits.CKS = 1;

      /*規(guī)定一個位包含16個TQ,分配如下:*/

      C1CFG1bits.SJW = 3; //同步段 = 1TQ

      C1CFG2bits.SEG1PH=3; //相位傳輸段1 = 4TQ

      C1CFG2bits.SEG2PHTS = 1; //相位傳輸段2長度可編程設(shè)定

      C1CFG2bits.SEG2PH = 3; //相位傳輸段2 = 4TQ

      C1CFG2bits.PRSEG = 6; //傳播時間段 = 7TQ

      C1CFG2bits.SAM = 0; //采樣次數(shù)為1次

      /*根據(jù)上面設(shè)置,算出波特率的分頻比。這里要注意的是,因?yàn)镃1CFG1bits.BRP只能填入整數(shù),那么在系統(tǒng)時鐘、通訊速率和時間份額三者之間要合理選擇,否則通信不會成功。例如:如果系統(tǒng)時鐘選用其內(nèi)部FRC,標(biāo)稱值為7.37M,倍頻后的系統(tǒng)時鐘為36.85M,采用16個TQ為一個CAN位,假設(shè)CAN的通信速率為125K的話,那么根據(jù)公式BRP=Fcan/(2*16*125K)-1,計(jì)算得出的值為3.6,因?yàn)椴荒苷杂肋h(yuǎn)不能得到125K的通信速率。 在此我們?nèi)?0M的時鐘,指令周期為20M,一個CAN位為16個TQ,經(jīng)計(jì)算可得BRP的值為4。*/

      C1CFG1bits.BRP =4;

      }



    關(guān)鍵詞: CAN TJA1054 dsPIC33FJ128MC506

    評論


    相關(guān)推薦

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

    關(guān)閉
    主站蜘蛛池模板: 保德县| 巩义市| 菏泽市| 安平县| 突泉县| 古田县| 达日县| 富锦市| 洞头县| 虞城县| 南江县| 朝阳县| 海阳市| 雷州市| 邵武市| 井陉县| 英吉沙县| 阳城县| 镇平县| 凤阳县| 洛扎县| 汝阳县| 浪卡子县| 茂名市| 九龙坡区| 和平区| 合阳县| 怀仁县| 叶城县| 青神县| 利辛县| 祥云县| 嘉鱼县| 巨鹿县| 双鸭山市| 隆尧县| 衡东县| 甘孜县| 重庆市| 闸北区| 巴彦县|