EDA365电子论坛网

标题: 全志A40i/T3如何通过SPI转CAN [打印本页]

作者: ningmengzier    时间: 2022-5-31 11:39
标题: 全志A40i/T3如何通过SPI转CAN
​全志A40i或者T3的CPU中无CAN控制器,而在实际使用过程中,会用到CAN,通常会采用SPI转CAN的方式。
( T$ I. a2 i+ S- j6 c3 [  B) T本文基于飞凌嵌入式OKA40i-C开发板进行操作,其他品牌开发板可视情况参考。
0 o) X! _  l, c3 B1 h7 q+ J在OKA40i-C底板上,有一路SPI,但由于电压与mcp2515的电压不匹配,所以会采用串口2的这组复用为SPI外接mcp2515模块。
8 h( w) m; \$ X/ z6 ]: L根据CPU手册第三章描述,可以将PI17-19复用为SPI1,采用PH08作为中断。
' \/ @/ R6 o0 H. d4 M
编辑7 ~7 y% b/ }- S* |, f' s
A40i/T3采用sys_config.fex或者dts 配置引脚复用功能,下面我们采用dts 进行配置。" B' c+ m$ o$ ^& e: n* d
01-打开SPI1修改sys_config.fex,将uart2的配置去掉,打开SPI1的配置。( o- _- A. d/ B& z
编辑
+ i; h% O# E7 \: ~- a同时将PH08注释掉:
2 d0 G" w( e3 ~! s9 L( Q+ }
编辑2 Z5 w  ]2 B8 e$ s* b6 z: G
同时修改设备树:( T) s9 {" |; A# T1 d/ R
编辑
4 Q6 I- H; g+ I. S. r# E02-修改defconfig采用通过其他平台验证,且适配设备树的驱动mcp251x.c,8 t2 k, g' d" d; l0 n
修改defconfig 配置文件:
, t7 {8 ]0 K, G, v! h1 \Networking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers选中。
2 u/ c0 x$ i: ?/ K9 c1 s7 E同时选中SPI配置,默认已支持,此处不再说明。; [; v5 D# l$ \8 r6 H2 x. A4 R
03-配置iproute文件系统:1 n2 x2 y9 [& z, b+ r
buildroot-201611/configs/sun8iw11p1_hf_defconfig. V# u; k- p; L+ x# d
需要配置上BR2_PACKAGE_IPROUTE2=y.
7 X3 p7 F6 E' `1 U" S重新编译,并打包镜像,烧录。  J7 c% P  j6 c, Y4 C  G
04-测试can0节点启动之后,ifconfig 查看出现can0节点。使用以下命令进行测试:
9 g$ G' U5 ~+ T/ ~' U# cifconfig can0 downip link set can0 up type can bitrate 125000 triple-sampling onifconfig can0 upcansend can0 123#12345678candump can0如果有必要请联系飞凌技术服务人员,提供patch文件。
) u: S* O* y- q7 \: w注意事项在设备树中,用作中断时,因A40i/T3只能使用PH组的引脚复用为中断,在设备树中设置中断时的如下:
, G: s* v6 r* Tinterrupt-parent = <&pio>;interrupts = <8 0>;另外,需要注意驱动中的中断触发方式。4 r* D" ]7 u# ~4 d* v1 c

: ?7 w; S- ]/ I: J# m1 s
作者: oewqe    时间: 2022-5-31 15:09
很不错的,可以收藏一下
( j( o5 N4 w! E4 l8 h# |




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2