TMS320F28335 CAN模組程式設計

2021-10-02 04:35:56 字數 877 閱讀 9139

最近在做的專案,dsp通過can匯流排與上位機通訊。

can(controller area network)特點:所有單元可以同時傳送訊息,傳送高優先順序id訊息的單元。can匯流排最大的優點是其高效性和可靠性,理論上匯流排可掛載的單元總數是沒有限制的,實際上可連線的單元數受匯流排上的時間延遲及電氣負載的限制。

dsp中內建了can協議核心cpk,有32個可配置為接收或傳送的郵箱。ecan模式下,郵箱31具有最高的優先順序。

簡單解釋一下ti提供的例程:

1. ecanashadow的作用:ecanaregs不支援位操作,ti的例程中將ecanaregs賦給ecanashadow,對影子暫存器進行位操作,提高**的可讀性。

2.ecanaregs.cantrs置位後開始傳送資料,傳送成功後對應的ecanaregs.cantan會置位,向其寫1進行復位,繼續傳送。

3.ti的例程ecana_to_b中只配置了傳送郵箱,要想實現cana傳送,canb接收需要配置乙個接收郵箱。id與傳送郵箱相同,注意在ecan.c中選擇自己板子上對應的can引腳。

4.ecan接收can_usb傳送器的資訊,通過ecanasshadow.canrmp.bit.rmpn的值來判斷是否接收到訊息。當rmpn為1時接收到訊息,將其寫1復位後繼續接收。

5.ecan接收中斷的配置:ecanashadow.cangim.bit.i0en=1、ecanashadow.canmim.bit.mimn=1。在中斷函式裡對rmpn寫1復位,清除pieack的中斷標誌位。

總結:ti官方提供的ecan.c中已經將ecana和ecanb都配置好了,我們只需要在接收和傳送時對相應的rmpn(接收)和tan(傳送)進行軟體復位即可連續接收傳送。

ps:與can_usb轉換器聯調時,要注意接線正確,轉換器的波特率要與程式配置的一致。

TMS320F28335的時鐘介紹

tms320f28335的時鐘介紹 tms320f28335上有乙個基於pll電路的片上時鐘模組,為cpu及外設提供時鐘有兩種方式 一種是用外部的時鐘源,將其連線到x1引腳上或者xclkin引腳上,x2接地 另一種是使用振盪器產生時鐘,用30mhz的晶體和兩個20pf的電容組成的電路分別連線到x1和...

TMS320F28335的時鐘介紹

tms320f28335的時鐘介紹 tms320f28335上有乙個基於pll電路的片上時鐘模組,為cpu及外設提供時鐘有兩種方式 一種是用外部的時鐘源,將其連線到x1引腳上或者xclkin引腳上,x2接地 另一種是使用振盪器產生時鐘,用30mhz的晶體和兩個20pf的電容組成的電路分別連線到x1和...

TMS320F28335的時鐘介紹

tms320f28335的時鐘介紹 tms320f28335上有乙個基於pll電路的片上時鐘模組,為cpu及外設提供時鐘有兩種方式 一種是用外部的時鐘源,將其連線到x1引腳上或者xclkin引腳上,x2接地 另一種是使用振盪器產生時鐘,用30mhz的晶體和兩個20pf的電容組成的電路分別連線到x1和...