全志A40i/T3如何透過SPI轉CAN

ningmengzier發表於2022-05-31

全志A40i或者T3的CPU中無CAN控制器,而在實際使用過程中,會用到CAN,通常會採用SPI轉CAN的方式。

本文基於飛凌嵌入式OKA40i-C開發板進行操作,其他品牌開發板可視情況參考。

在OKA40i-C底板上,有一路SPI,但由於電壓與mcp2515的電壓不匹配,所以會採用串列埠2的這組複用為SPI外接mcp2515模組。

根據CPU手冊第三章描述,可以將PI17-19複用為SPI1,採用PH08作為中斷。

全志A40i/T3如何透過SPI轉CAN

A40i/T3採用sys_config.fex或者dts 配置引腳複用功能,下面我們採用dts 進行配置。

01-開啟SPI1

修改sys_config.fex,將uart2的配置去掉,開啟SPI1的配置。

全志A40i/T3如何透過SPI轉CAN 全志A40i/T3如何透過SPI轉CAN

同時將PH08註釋掉:

全志A40i/T3如何透過SPI轉CAN

同時修改裝置樹:

全志A40i/T3如何透過SPI轉CAN 全志A40i/T3如何透過SPI轉CAN

02-修改defconfig

採用透過其他平臺驗證,且適配裝置樹的驅動mcp251x.c,

修改defconfig 配置檔案:

Networking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers選中。

同時選中SPI配置,預設已支援,此處不再說明。

03-配置iproute

檔案系統:

buildroot-201611/configs/sun8iw11p1_hf_defconfig

需要配置上BR2_PACKAGE_IPROUTE2=y.

重新編譯,並打包映象,燒錄。

04-測試can0節點

啟動之後,ifconfig 檢視出現can0節點。使用以下命令進行測試:

ifconfig can0 down ip link set can0 up type can bitrate 125000 triple-sampling on ifconfig can0 up cansend can0 123#12345678 candump can0

如果有必要請聯絡飛凌技術服務人員,提供patch 檔案。

注意事項

在裝置樹中,用作中斷時,因A40i/T3只能使用PH組的引腳複用為中斷,在裝置樹中設定中斷時的如下:

interrupt-parent = <&pio>; interrupts = <8 0>;

另外,需要注意驅動中的中斷觸發方式。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69989353/viewspace-2898110/,如需轉載,請註明出處,否則將追究法律責任。

相關文章