- 积分
- 308
贡献1484
飞刀583 FD
注册时间2015-12-21
在线时间52 小时

扫一扫,手机访问本帖 
|
全志A40i或者T3的CPU中无CAN控制器,而在实际使用过程中,会用到CAN,通常会采用SPI转CAN的方式。 % T2 d6 M* I4 U) ~4 j. o
1 }6 q4 @ K% ]: _" H
在OKA40i-C底板上,有一路SPI,但由于电压与mcp2515的电压不匹配,所以会采用串口2的这组复用为SPI外接mcp2515模块。 7 F0 i+ `# U& u( W$ u
根据CPU手册第三章描述,可以将PI17-19复用为SPI1,采用PH08作为中断。
~' V: N1 B( w
; c% x8 ?8 ?; x2 |0 P' R |+ Y" V aA40i/T3采用sys_config.fex或者dts 配置引脚复用功能,下面我们采用dts 进行配置。
" w% l4 i- ^+ K; t P% N7 s& @
) g0 Q3 Z, `# [: |/ A9 A01-打开SPI1 修改sys_config.fex,将uart2的配置去掉,打开SPI1的配置。
, r% t0 ~$ ?- q1 P1 m7 r
1 F; G+ R4 P; b& H7 A2 r2 n; _ 2 a; j! i7 } e
同时将PH08注释掉: 8 Y3 e5 H+ f0 f& U
5 U; Q4 X$ ]$ U. R8 N# d
同时修改设备树:
4 T9 f; p) p+ p7 i" k ) s Y; a |% n8 M, }# ?# {
" f, g) `" v2 v8 k* M3 c
8 y7 D( h' p4 G" y9 q R02-修改defconfig 采用通过其他平台验证,且适配设备树的驱动mcp251x.c, : k& h/ @. V; R+ _ ^) X
修改defconfig 配置文件: : }* L9 J& s& c4 y6 u+ Q
Networking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers选中。 . k ~: I% S/ g; N
同时选中SPI配置,默认已支持,此处不再说明。
' Y' \& A8 B( s! o2 M6 F/ F, k+ V* m) e% ]5 F- \: b
03-配置iproute 文件系统: 6 R/ U& b# w0 f1 ?! C; O0 {
buildroot-201611/configs/sun8iw11p1_hf_defconfig ' f( u: X! F4 t! m$ {
需要配置上BR2_PACKAGE_IPROUTE2=y. ) T8 J9 V8 t8 h0 F- x9 `
重新编译,并打包镜像,烧录。 9 \2 ?8 o2 E, A! R; E
8 n e: D7 ]: f% K# x
04-测试can0节点 启动之后,ifconfig 查看出现can0节点。使用以下命令进行测试: ; n; m. q. n L g
ifconfig can0 down
$ B; \% M$ Z: O/ @/ r r ip link set can0 up type can bitrate 125000 triple-sampling on " w& c9 B0 K# Q, ?! K$ e2 l
ifconfig can0 up 5 l/ l% G" X9 T2 [9 ~
cansend can0 123#12345678
* N# [# ?3 [; ?. Y candump can0 5 b' \* V: J# k/ j _, h. K( |
如果有必要请联系飞凌技术服务人员,提供patch文件。 1 J: \+ U; _1 N) J
) N/ R, M) G7 X5 E2 F# H' ]
注意事项 在设备树中,用作中断时,因A40i/T3只能使用PH组的引脚复用为中断,在设备树中设置中断时的如下:
5 t! x( L+ y. f' t/ kinterrupt-parent = <&pio>;
0 t8 ?/ {& U) W8 f% N# \ interrupts = <8 0>; % _9 y: O0 r' J
另外,需要注意驱动中的中断触发方式。 . B) w. s/ Y8 n
6 F z- d* E5 k* `5 F
( ~/ y' Y/ Y7 Q8 B+ C( W+ Q/ C" c% o" i相关产品: / I+ g! [% M6 q
% [$ d! L& k+ s6 P3 h, w+ a
7 G R! G6 \" g |
|