STM32 CAN 波特率設置及采樣點設置


一、CAN波特率

STM32 位時間定義:

● 同步段(SYNC_SEG):通常期望位的變化發生在該時間段內。其值固定為1
個時間單元(1 x tCAN)。
● 時間段1(BS1):定義采樣點的位置。它包含CAN 標准里的 PROP_SEG 和
PHASE_SEG1。其值可以編程為1 到16 個時間單元,但也可以被自動延
長,以補償因為網絡中不同節點的頻率差異所造成的相位的正向漂移。
● 時間段2(BS2) : 定義發送點的位置。它代表CAN 標准里的
PHASE_SEG2。其值可以編程為1 到8 個時間單元,但也可以被自動縮短
以補償相位的負向漂移

BRP[9:0]: 波特率分頻器

PCLK1 = 36M

bps = 36M/(BRP[9:0]*(BS1+BS2+SYNC_SEG))

其中SYNC_SEG固定為1個時間單元所以 bps = 36M/(BRP[9:0]*(BS1+BS2+1)),此時注意跟同步跳轉寬度SJW沒關系,盡管他也一直設置為1.

二、CAN采樣點

采樣點位於時間段1和時間段2之間。根據CIA推薦采樣點,最好設置在85%~90%。

在網上查了好多,基本上都是這么計算 (BS1+1)/(1+BS1+BS2),得出的結果就是BS1比較大而BS2比較小基本上為1.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM