MX2000平臺接口雖然豐富,但其本身不具備CAN接口。如果在實際產品應用中,需要使用到CAN接口的時候那該怎么辦呢?本文將以新產品MX2000核心板為例講述如何解決該問題。
??概述
軟硬件準備
硬件設計和連接使用SPI轉CAN功能時,需要將CSM300(A)的MODE引腳接至高電平(3.3V)。MCU的SPI接口與CSM300(A)的SPI接口連接,同時MCU需要提供GPIO與RST、INT、CTL0、CTL1引腳連接,實現對CSM300(A)的有效監測與控制。若需要通過MCU對CSM300(A)進行配置,則需要額外的GPIO與CFG引腳連接。圖1是CSM300A的參考電路。不使用的模塊引腳只需懸空而不用連接,以免因電路連接不當從而造成模塊損壞。
軟件改動1. 修改設備樹在設備樹中增加如下節點:
??概述MX2000平臺上不具備CAN接口,但可通過我司CSM300(A)系列SPI(UART)轉CAN模塊進行拓展CAN接口。在實際產品應用場景中如果需要使用CAN接口,則可以參考本文進行拓展、測試、評估。
軟硬件準備
硬件設計和連接使用SPI轉CAN功能時,需要將CSM300(A)的MODE引腳接至高電平(3.3V)。MCU的SPI接口與CSM300(A)的SPI接口連接,同時MCU需要提供GPIO與RST、INT、CTL0、CTL1引腳連接,實現對CSM300(A)的有效監測與控制。若需要通過MCU對CSM300(A)進行配置,則需要額外的GPIO與CFG引腳連接。圖1是CSM300A的參考電路。不使用的模塊引腳只需懸空而不用連接,以免因電路連接不當從而造成模塊損壞。

| CSM-Eval引腳 | MX2000-EV-Board端引腳 | CSM-Eval引腳 | MX2000-EV-Board端引腳 |
| SSEL | SSI1_CE0 | CFG | PB27 |
| SCK | SSI1_SCK | INT | PC20 |
| MISO | SSI1_DI | CTL0 | PB24 |
| MOSI | SSI1_DO | CTL1 | PB25 |
| GND | GND | RST | PB26 |
| VCC | 3.3V |
軟件改動1. 修改設備樹在設備樹中增加如下節點:
&spi1 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&spi1_pe_normal>, <&spi1_pe_cs>;
spi-max-frequency = <2000000>;
num-cs = <1>;
cs-gpios = <0>;
ingenic,chnl = <0>;
ingenic,allow_cs_same = <1>;
ingenic,bus_num = <0>;
ingenic,has_dma_support = <0>;
ingenic,spi-src-clk = <1>;/*0.ext; 1.ssi*/
/delete-node/ spidev@0; // 刪除原有spidev節點
csm300@0 {
compatible = "zhiyuan,csm300";
status = "okay";
spi-max-frequency = <1000000>;
reg = <0>;
gpios = <&gpb 24 GPIO_ACTIVE_LOW INGENIC_GPIO_NOBIAS /* CTL0引腳 */
&gpb 25 GPIO_ACTIVE_LOW INGENIC_GPIO_NOBIAS /* CTL1引腳 */
&gpb 26 GPIO_ACTIVE_LOW INGENIC_GPIO_NOBIAS /* RST引腳 */
&gpb 27 GPIO_ACTIVE_LOW INGENIC_GPIO_NOBIAS /* CFG引腳 */
>;
interrupt-parent = <&gpc>;
interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
};
};
2. 增加驅動并修改內核配置
驅動文件請聯系FAE或者銷售工程師。將驅動文件csm300.c,放置于kernel/drivers/net/can/spi/文件夾下。并在該目錄的Makefile文件中加入以下內容:
obj-$(CONFIG_CAN_CSM3XX) += csm300.o/*添加至文件末尾*/
同時在該目錄下的Kconfig文件中加入以下內容:
config CAN_CSM3XX
tristate "CSM3XX SPI CAN controllers"
help
Driver for CSM3XX SPI CAN controllers.
最后在menuconfig菜單中或defconfig配置文件中,打開對應內核配置,重新編譯內核并燒錄到評估板中。成功加載并且硬件連接無誤的情況下,會出現如下log打印。
[]
[] csm300 check id response:
[] csm300 spi0.0: csm300 check id succeed
[] csm300 spi0.0 can0: csm300 successfully initialized.
如果硬件連接不正確,則會在初始化時候出現以下錯誤log打印。

性能測試
將CSM-Eval評估套件通過USB CAN卡USBCAN-4E-U和電腦連接,框圖如圖3所示。

[]
[]
[] set bitrate is 1000000
[]
[] csm300 check id response:
[] 0xf7
[] 0xf8
[] 0x2
[] 0x13
[] 0x1e
[] csm300 setup response:
[] 0xf7
[] 0xf8
[] 0x1
[] 0x13
[] 0x1d
[] csm300 setup succeed
[]
MX2000端推薦使用以下命令進行測試。其中-g 后面所帶參數代表間隔時間(單位:s),經過測試會直接影響丟包率,最優為0.1。
[]
電腦端使用ZCANPRO專業軟件進行測試,得出結果在此幀率下丟包率為0%,如圖4所示。

技術交流群
長按識別如下二維碼可加入“工控板/核心板技術交流群”,與志同道合的朋友交流,并有專業技術人員為您答疑解惑,如有問題可以咨詢小致微信:zlgmcu-888。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
致遠電子
+關注
關注
13文章
422瀏覽量
32548
原文標題:【產品應用】MX2000上如何拓展CAN接口?
文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
探索TSC2000:PDA模擬接口電路的卓越之選
的特性與應用 特性亮點 TSC2000具有眾多令人矚目的特性,這些特性使其在同類產品中脫穎而出。 接口與轉換
基于蜂鳥E203的AES加解密NICE協處理單元設計
作品簡介
我們設計了基于NICE接口的AES加解密協處理單元,拓展了6條拓展指令,支持EBC、CBC、、CFB、OFB、CTR五種加密模式,和軟件相比,速度提高約2000倍。整體框
發表于 10-29 06:37
E203的F指令集拓展
《在手把手教你RISC-V CPU上》
3.F拓展的軟件實現
為實現對蜂鳥E203的F拓展,筆者未采用蜂鳥E203中遺存的FPU端口,選擇NICE接口完成蜂鳥E203浮點運算指令
發表于 10-20 09:23
嵌入式接口通識知識之CAN接口
1.1 基礎概念CAN的全稱是Controller Area Network,譯為控制器區域網絡,是一種用于車輛、電力系統、工業設備等嵌入式系統的半雙工異步串行通信協議和物理接口。CAN是一種
發表于 08-21 16:49
解鎖CAN接口開發高效路徑!五個核心要點一次講透
高效開發CAN接口,關鍵在于把握協議基礎、硬件適配、錯誤管理、性能優化與調試五大核心要點。下面將逐一剖析每個環節的技術細節與實踐方法,助力開發者快速突破難點,實現可靠通信。 在Air780EPM上
Analog Devices / Maxim Integrated MX31828和MX31829低功耗溫度開關特性/應用/框圖
Analog Devices MX31828和MX31829低功耗溫度開關在-40°C至+125°C(12位)溫度范圍內提供±1°C的精度。該開關具有I^2^C/SMBus接口,采用小型6焊球晶圓級
熱電偶溫度采集模塊,CAN接口
熱電偶溫度采集模塊結合CAN接口的應用,已成為工業自動化、汽車電子、能源管理等領域的關鍵技術。這種組合不僅實現了高精度溫度監測,還通過CAN總線的高可靠性和實時性,滿足了復雜環境下的數據傳輸需求
米爾NXP i.MX 91核心板發布,助力新一代入門級Linux應用開發
本帖最后由 blingbling111 于 2025-5-30 16:17 編輯
米爾電子基于與NXP長期合作的嵌入式處理器開發經驗,在i.MX 6和i.MX 8系列核心板領域已形成完整產品
發表于 05-30 11:20
關于隔離DCDC輔助電源解決方案與產品應用科普
隔離方案無任何優勢,因此,隔離電源的應用,多數是用在產品/功能有強制隔離需求的方案上。
一般集中在:
○ 電路板內有高干擾器件,隔離干擾;
○ 存在人體直接接觸的空間;
○ 遠程工業通信的供電
發表于 04-17 16:41
在i.MX93和i.MX8M Plus上都使用UART,遇到了RTS/CTS連接問題求解決
我在 i.MX93和 i.MX8M Plus 上都使用 UART,并遇到了 RTS/CTS 連接問題。
在 i.MX93 上,以下接線工作正
發表于 04-04 07:16
工程師在產品選型的時究竟是選CAN還是CANFD接口卡呢?
很多工程師在產品選型的時候會疑惑,究竟是選CAN接口卡還是CANFD接口卡呢?兩者之間有什么區別呢?影響選擇的關鍵因素又是什么?我們今天一個一個來拆解。1.波特率傳統的
CAN接口不足?CSM330A來幫忙!
導讀在新能源汽車、醫療設備和工業自動化等領域,CAN總線接口不足已成為工程師面臨的常見難題。本文將介紹一款高性能的國產芯片—CSM330A,為解決CAN接口不足問題提供了高效、可靠的方
【產品應用】MX2000上如何拓展CAN接口?
評論