新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于dsPIC33FJ128MC506的CAN通信(07-100)

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

        ——
        作者:山東省科學院自動化研究所 張云 李明強 莊汝科 時間:2009-03-04 來源:電子產品世界 收藏

          波特率的設置

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

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

          void ecan1ClkInit(void)

          {

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

          C1CTRL1bits.CKS = 1;

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

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

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

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

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

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

          C1CFG2bits.SAM = 0; //采樣次數為1次

          /*根據上面設置,算出波特率的分頻比。這里要注意的是,因為C1CFG1bits.BRP只能填入整數,那么在系統時鐘、通訊速率和時間份額三者之間要合理選擇,否則通信不會成功。例如:如果系統時鐘選用其內部FRC,標稱值為7.37M,倍頻后的系統時鐘為36.85M,采用16個TQ為一個CAN位,假設CAN的通信速率為125K的話,那么根據公式BRP=Fcan/(2*16*125K)-1,計算得出的值為3.6,因為不能整除,所以永遠不能得到125K的通信速率。 在此我們取40M的時鐘,指令周期為20M,一個CAN位為16個TQ,經計算可得BRP的值為4。*/

          C1CFG1bits.BRP =4;

          }



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 平利县| 邯郸市| 师宗县| 黎城县| 凌海市| 宁蒗| 华容县| 栖霞市| 桃园市| 枣强县| 资中县| 吐鲁番市| 长岛县| 栖霞市| 诏安县| 儋州市| 金塔县| 尖扎县| 潮安县| 洪江市| 万宁市| 金溪县| 乌拉特前旗| 兰考县| 栾川县| 都安| 扶沟县| 怀仁县| 钦州市| 大兴区| 盐亭县| 法库县| 简阳市| 营口市| 南漳县| 福贡县| 天镇县| 哈密市| 桦甸市| 新昌县| 泉州市|