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

扫一扫,手机访问本帖 
|
全志A40i或者T3的CPU中无CAN控制器,而在实际使用过程中,会用到CAN,通常会采用SPI转CAN的方式。
' o8 z" p, g+ F! M3 ?" t% S; z: z! \! B9 u
在OKA40i-C底板上,有一路SPI,但由于电压与mcp2515的电压不匹配,所以会采用串口2的这组复用为SPI外接mcp2515模块。
) e- ~4 K$ u$ e5 r( E 根据CPU手册第三章描述,可以将PI17-19复用为SPI1,采用PH08作为中断。
3 f$ i# x$ ]2 @: ` s 3 ~; a' V, K# X9 M1 q8 l" \( c0 j
A40i/T3采用sys_config.fex或者dts 配置引脚复用功能,下面我们采用dts 进行配置。
# M9 z+ N4 y7 T. z; E2 G7 V: s5 E- T" z( y% ^
01-打开SPI1 修改sys_config.fex,将uart2的配置去掉,打开SPI1的配置。
0 }2 H: z4 R; A / E4 _2 |; F4 z, W2 l
" p+ a: D. l8 y8 g! ~: t5 Q1 P 同时将PH08注释掉: 8 ]. }: R/ z) {+ l8 W
. }; c" {! p2 D4 I- T6 x 同时修改设备树:
- T/ V/ ~5 Y' m
: L, e1 g. ?$ D3 x; x3 H * C2 o: ?0 \6 W, v- S& N& ]6 e& @
}* l, }8 K9 R% v% ?5 a1 M2 H
02-修改defconfig 采用通过其他平台验证,且适配设备树的驱动mcp251x.c, ! C4 h4 h- o$ A. b4 `" B' I
修改defconfig 配置文件:
/ D @- `/ t! \Networking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers选中。
# F6 ~: ^" X9 ]5 |; v+ ? 同时选中SPI配置,默认已支持,此处不再说明。 + X3 v/ l$ Q# P& n+ i0 K1 z$ `
& I/ o/ W6 n* B5 J9 ` ~03-配置iproute 文件系统:
0 j/ d+ V6 P; w: g/ nbuildroot-201611/configs/sun8iw11p1_hf_defconfig
9 W" S' ^" a9 e, n7 @; Y需要配置上BR2_PACKAGE_IPROUTE2=y. 9 h: h8 b/ P3 F0 I8 H& Y
重新编译,并打包镜像,烧录。
1 t; M5 K3 e, q8 w$ o1 d+ K
" c" e$ K6 d" ], X; [" }* K04-测试can0节点 启动之后,ifconfig 查看出现can0节点。使用以下命令进行测试:
: H3 v; p m% Q$ bifconfig can0 down . o0 N/ Q' j' b& n _8 p7 I
ip link set can0 up type can bitrate 125000 triple-sampling on
# R/ y! x' Z+ `7 a ifconfig can0 up
, r6 u2 ~# }0 R, x$ r cansend can0 123#12345678 * {- l& F$ b5 e
candump can0
& d% L8 o7 Y# n: ]( i3 n如果有必要请联系飞凌技术服务人员,提供patch文件。
* g; D3 p% Z9 ]6 K! f* {% e* q6 R' c$ N& R, x) N
注意事项 在设备树中,用作中断时,因A40i/T3只能使用PH组的引脚复用为中断,在设备树中设置中断时的如下: 1 w8 u9 N( I0 c
interrupt-parent = <&pio>;
+ K$ B: U6 e: R6 r) v interrupts = <8 0>; # Z9 B5 s4 x$ e, m) y; ^
另外,需要注意驱动中的中断触发方式。
7 p- ]) D. _9 \: J* w( \/ i& O y
' _# S2 W% z7 {, \ U: e
, H+ U7 j2 r' A/ F5 y相关产品: 8 o5 }, J4 ~ y; s+ I& o" w
0 s9 T+ G4 G9 Q+ K
8 z' J$ h' K* `7 f' x+ z) O4 z
|
|