0
点赞
收藏
分享

微信扫一扫

flexcan canfd 波特率设置

flexcan当用到canfd 的时候,要设置两种速率,一个是仲裁段,一个是数据段。

仲裁域发现最大支持1M的速率。  如果超过这个速率,那么是无法通信的。除去数据段,

其他的地方,还是采用can的速率。 can的速率一般是500k, 或者最大1M.


因此需要设置两个寄存器。

仲裁段,一个位时间= prog + ts1 + ts2 + 4 (公式1)

数据段,一个位时间= prog + ts1 +ts2 + 3 (公式2)

为什么是一个需要加4, 另外一个要加3?

主要是芯片设计的奇葩。  

公式1里面,寄存器的值要加上1才是,真正的时间值。

公式2里面,有一个寄存器的值不加1 ,是真正的时间值。 

举报

相关推荐

0 条评论