mcp25625 CAN控制囂

現在 的主流MCU都內置的CAN了,但是一些特殊的條件下還有可能需要獨立CAN控制囂,mcp25625就是我公司常用的一個獨立CAN控制囂。

這個片子有中文PDF,用起來應該不是問題。下面重點說下它的寄存器

左邊是控制寄存器,中間是發送寄存器,右邊是接收寄存器,排列的還是有規律的。由於這個片子是SPI接口的,不能輕意的尋址到任意寄存器,(相對並口接口FMC來說),好在這個片子提供了常用的幾個指令,和burst訪問模式,才使得可以很方便的控制片子。常用指令集如下:

我的發送流程如下:

1.RRX STATUS 讀狀態,找到那個空的TX緩衝區,

2. LOAD TX BUFFER 加載數據到那個空的TX緩衝區。

3.RTS  啓動發送。

接收CAN數據包類型。

需要注意一點的是,有時候你會這麼操作,發送數在主程序中,接收數據在中斷程序中,但是就一條SPI控制總線,如果正在發送數據時來中斷了, 在中斷中又去接收CAN,那麼就會中斷SPI接口的發送時序,就會有問題。

我的解決辦法是發送CAN數據的時候禁止接收中斷,簡單粗暴、簡單有效的解決了這個非常隱蔽的問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章