- 积分
- 295
贡献1408
飞刀561 FD
注册时间2015-12-21
在线时间50 小时
扫一扫,手机访问本帖
|
全志A40i或者T3的CPU中无CAN控制器,而在实际使用过程中,会用到CAN,通常会采用SPI转CAN的方式。
- Y& `5 b1 d2 n" j- o d
/ Z: V- G8 x/ n& f& L 在OKA40i-C底板上,有一路SPI,但由于电压与mcp2515的电压不匹配,所以会采用串口2的这组复用为SPI外接mcp2515模块。
8 [7 k, \$ d; E4 j- {" q% m 根据CPU手册第三章描述,可以将PI17-19复用为SPI1,采用PH08作为中断。
( W6 V, a3 I4 t! ^* C
. U. w; ?) v" m% |2 {+ B2 E* rA40i/T3采用sys_config.fex或者dts 配置引脚复用功能,下面我们采用dts 进行配置。
; L9 y6 J h& B. H! }
; }6 C# x5 o2 J& ]01-打开SPI1 修改sys_config.fex,将uart2的配置去掉,打开SPI1的配置。 0 I$ j2 V4 Z ^& P6 Y; _, {
! v4 y- T& B! c
+ K! N( z. b4 M$ G 同时将PH08注释掉:
( R, W1 R0 t9 @ ( Y& \/ q! W& T' m; |
同时修改设备树: 7 @6 B( F% u3 Z/ I; r6 p2 ~
6 u* P/ i- \# n
) V4 o1 `& t2 ?! J& e2 m
3 m( \# U3 o5 j5 D0 u0 C) M02-修改defconfig 采用通过其他平台验证,且适配设备树的驱动mcp251x.c, % t( K" |7 d! S! P0 [) w
修改defconfig 配置文件:
; {% I% i9 n. p$ L) hNetworking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers选中。
) p$ k; F9 U! `' |; ? 同时选中SPI配置,默认已支持,此处不再说明。 * [# }" T2 A6 |- ^/ J
. `. Z' ?; m3 A
03-配置iproute 文件系统:
2 o! N* w _2 U Dbuildroot-201611/configs/sun8iw11p1_hf_defconfig 1 E. X3 c- V( ^: j, |
需要配置上BR2_PACKAGE_IPROUTE2=y.
, E5 v7 J' @2 f$ d4 N+ |& f重新编译,并打包镜像,烧录。
! S4 g( r8 R, g1 m5 ~" N! t$ n$ j) _2 u( T5 [3 P% c( Q
04-测试can0节点 启动之后,ifconfig 查看出现can0节点。使用以下命令进行测试: 9 B2 d/ i9 H0 j2 J- c
ifconfig can0 down
5 }1 z+ T: W& E* N ip link set can0 up type can bitrate 125000 triple-sampling on : p' N5 F2 c( S+ T7 h" ^
ifconfig can0 up
$ i0 @" v, |3 P3 L" H. O cansend can0 123#12345678 0 m$ ?7 ]2 G" w7 k3 } ]4 ~
candump can0 9 m. I( D1 K* k3 T/ ~! I
如果有必要请联系飞凌技术服务人员,提供patch文件。
' \ c- O9 j% Z6 A* | X% q
% L6 n" A5 Y7 v @& a, _3 V' r. f 注意事项 在设备树中,用作中断时,因A40i/T3只能使用PH组的引脚复用为中断,在设备树中设置中断时的如下:
k0 w8 F/ R5 q: _; w/ H+ U+ ^* @interrupt-parent = <&pio>; ; _9 j+ N ~" t$ |, I
interrupts = <8 0>;
{* B; h; n) `; ~1 F7 w A另外,需要注意驱动中的中断触发方式。 1 Z T8 w3 S2 A" L5 R+ C
! f7 s- m: X( \, ^8 n) \
4 l# W8 M1 x: C& n, i相关产品:
/ `0 y2 ?) \" q( ^. B
0 U o4 a; s/ m; d# D5 a: R& S9 k# g7 ~; F1 a
|
|