- 积分
- 306
贡献1474
飞刀579 FD
注册时间2015-12-21
在线时间51 小时

扫一扫,手机访问本帖 
|
全志A40i或者T3的CPU中无CAN控制器,而在实际使用过程中,会用到CAN,通常会采用SPI转CAN的方式。
2 U) X: o7 W( G( D; y# Z# j. x! D- S& E9 l
在OKA40i-C底板上,有一路SPI,但由于电压与mcp2515的电压不匹配,所以会采用串口2的这组复用为SPI外接mcp2515模块。 , q' }% p" p- T. \" p. V* C! O5 `1 x
根据CPU手册第三章描述,可以将PI17-19复用为SPI1,采用PH08作为中断。 9 f6 H. T' C; @) i5 U% n
% k% c, s2 k; l4 V# a9 W, sA40i/T3采用sys_config.fex或者dts 配置引脚复用功能,下面我们采用dts 进行配置。 , M V9 P6 h% T7 f# V
6 U7 p3 [4 d; Q- {% O! S
01-打开SPI1 修改sys_config.fex,将uart2的配置去掉,打开SPI1的配置。 - _. K2 V+ p3 k3 @3 s
; ?* P$ \+ b& }! z
( I. [( X" v* n7 J
同时将PH08注释掉:
: M, {; U7 R9 B+ w# F0 l
1 e8 v0 I! I+ P3 C 同时修改设备树: 0 ]0 A! w7 _/ I& D
( M# x& n; b4 A6 \. l! C
+ u# v: z6 m& Y4 Q% P# b' w8 H8 J' p
02-修改defconfig 采用通过其他平台验证,且适配设备树的驱动mcp251x.c, : X* O" f* X" ?/ G
修改defconfig 配置文件: # C, Q8 r; S6 A& E: b' x
Networking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers选中。 + k2 L' V" j0 i6 u( s
同时选中SPI配置,默认已支持,此处不再说明。 6 t5 z0 x0 \4 a" K
1 q0 l5 O2 J; q) Q. M" ]% R
03-配置iproute 文件系统:
- ?5 A" ?/ E$ ~$ M# u7 ybuildroot-201611/configs/sun8iw11p1_hf_defconfig ! z/ n% R" J* q) _& N x; j( E6 V0 R
需要配置上BR2_PACKAGE_IPROUTE2=y.
) U2 t6 |/ m7 S' |$ O+ Y' Y重新编译,并打包镜像,烧录。
+ Q7 ]1 C1 e. t* W& Y5 `1 p4 X! a6 ^+ x4 ?, P7 B1 H
04-测试can0节点 启动之后,ifconfig 查看出现can0节点。使用以下命令进行测试:
6 ?/ I S/ \4 Z3 Z" D! c$ uifconfig can0 down / V e2 T7 F/ d% R2 E0 V
ip link set can0 up type can bitrate 125000 triple-sampling on
j; a9 b2 B$ P6 S" q ifconfig can0 up ! f: s1 a' I% [1 P
cansend can0 123#12345678 / p0 y, q4 n2 b5 p
candump can0 7 O# H+ S) I/ R5 N8 w" X/ }6 ^
如果有必要请联系飞凌技术服务人员,提供patch文件。 $ c! G# O0 |" n5 o. C! |' k
+ E3 X2 |; N( `7 J0 `& E 注意事项 在设备树中,用作中断时,因A40i/T3只能使用PH组的引脚复用为中断,在设备树中设置中断时的如下:
- i$ h6 ?/ L$ i3 d4 Hinterrupt-parent = <&pio>;
1 ?7 o, n0 U2 j2 @$ X interrupts = <8 0>;
: H- n! p4 `: E6 |+ B. |另外,需要注意驱动中的中断触发方式。
1 i0 ]/ @/ ~- W8 y
/ G0 }! U/ q3 X; N
% z! [ |, e! i" ]相关产品:
4 {4 G. Z9 T2 c9 P3 H0 Q; X, ^ v, f. h
3 L& K4 d4 k9 M2 d+ E9 k+ b9 C
|
|