我們希望用到的CAN波特率有5K、10K、50K、500K、1000K等”。CAN波特率設置不正確將導致CAN無法通信.
如果在CAN總線上產(chǎn)生了錯誤,則開啟僅聽模式(在僅聽模式中SJA1000不能發(fā)送信息也不能產(chǎn)生錯誤幀),軟件會嘗試下一個波特率,直到能夠正常接收數(shù)據(jù),即產(chǎn)生接收中斷,此時把波特率設定的值BTR0、BTR1寫入到EEPROM,重新設定工作模式到正常模式。下次上電首先讀取EEPROM的波特率,如果總線錯誤再自動檢測波特率。
需要特別注意的是,我一開始調(diào)試的時候,1M的波特率始終不能鎖定,但是其他波特率都正常,發(fā)現(xiàn)檢測到1M波特率的時候,會產(chǎn)生總線錯誤中斷和接收中斷,為什會總線錯誤呢?答案不在軟件上!我使用的是PCA82C250的CAN收發(fā)器,在高速模式工作下,要使8腳(Rs)接地,我之前是接了47k電阻到地的,工做在斜率控制模式,取下電阻,直接把8腳接地,問題解決。
- PC官方版
- 安卓官方手機版
- IOS官方手機版