- 积分
- 282
贡献1454
飞刀433 FD
注册时间2015-12-21
在线时间52 小时
关注我
|
全志A40i或者T3的CPU中无CAN控制器,而在实际使用过程中,会用到CAN,通常会采用SPI转CAN的方式。
: O7 V1 @; \( b5 r8 P" T6 {, j$ ^: B% ?% g+ d. |
在OKA40i-C底板上,有一路SPI,但由于电压与mcp2515的电压不匹配,所以会采用串口2的这组复用为SPI外接mcp2515模块。 / P2 I, S1 E2 q1 G* F3 D5 k
根据CPU手册第三章描述,可以将PI17-19复用为SPI1,采用PH08作为中断。 9 D9 y: p: q* B( v
+ ~/ [: I3 r" F: {7 H$ Z$ Z7 J& c
A40i/T3采用sys_config.fex或者dts 配置引脚复用功能,下面我们采用dts 进行配置。 " n U+ ~$ R! M0 q8 x
' T% Q: \' B1 r" y
01-打开SPI1 修改sys_config.fex,将uart2的配置去掉,打开SPI1的配置。 ! t1 n6 [& O7 u* G8 X% S: V
7 d7 ], ~/ n8 J: } ! w Y6 Z' C- H) V
同时将PH08注释掉:
0 l4 h. b9 U" I0 P
+ @( J# `9 n5 a8 q 同时修改设备树: * ^/ o! g2 ~! J0 Q5 }. n
8 Y; k2 ^* R1 C5 \1 }$ x1 e
$ G+ F5 u* f( T3 J
. U$ W# D7 T7 F9 E+ M! p P/ i
02-修改defconfig 采用通过其他平台验证,且适配设备树的驱动mcp251x.c, $ W& L$ B" K1 U7 Q5 `6 L
修改defconfig 配置文件:
- b" \% J" d: x) \% V, vNetworking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers选中。
, G; F) ]+ R1 M4 i$ x/ v 同时选中SPI配置,默认已支持,此处不再说明。 $ @/ K* m* U. { [7 f
) [1 K+ Q, C9 d6 E6 g/ H7 g. |03-配置iproute 文件系统: / S; ~; w9 `1 C( o+ p0 k: {% r
buildroot-201611/configs/sun8iw11p1_hf_defconfig
5 {8 C% I$ y6 h, p! h/ F需要配置上BR2_PACKAGE_IPROUTE2=y. ) }3 `. g) Z2 Y/ G
重新编译,并打包镜像,烧录。
" _4 \! q2 k9 T7 L' z& o6 q. ]) ^
) J K! Q; h' D0 \! N/ E8 ^04-测试can0节点 启动之后,ifconfig 查看出现can0节点。使用以下命令进行测试: $ p. p, Z- M3 O. P$ ?
ifconfig can0 down
" j! M+ I0 U2 ^5 K H! Q3 N8 F: w ip link set can0 up type can bitrate 125000 triple-sampling on - A* [/ U2 {9 L: ?' b6 X, S# ^6 Z
ifconfig can0 up
* g7 @$ O6 |' y w& C cansend can0 123#12345678 $ {, {' {+ P9 D% o" a' W
candump can0
4 O. P E( i2 f2 a' w; {1 w如果有必要请联系飞凌技术服务人员,提供patch文件。 ) Q' Y ^) ]9 b; ^% X3 u
" m. l8 N! y0 n, N 注意事项 在设备树中,用作中断时,因A40i/T3只能使用PH组的引脚复用为中断,在设备树中设置中断时的如下:
B5 |! @0 r1 ]) }" x8 T$ d2 w. p4 ]$ yinterrupt-parent = <&pio>; 7 C. h7 C0 D7 B% R
interrupts = <8 0>; + a$ B0 Y3 K$ F) _- q! O: q
另外,需要注意驱动中的中断触发方式。
9 y# Y5 a l( T9 s" ]3 ^2 T6 E$ G& I
3 H% B I/ ]: Q; x相关产品: + u) [: k$ f& W5 b2 z* ^$ D
% j9 A1 A8 {) U6 x; y
: ]& x6 V9 h+ O, j5 _) \ |
|