- 积分
- 295
贡献1408
飞刀561 FD
注册时间2015-12-21
在线时间50 小时

扫一扫,手机访问本帖 
|
全志A40i或者T3的CPU中无CAN控制器,而在实际使用过程中,会用到CAN,通常会采用SPI转CAN的方式。
2 y" Q1 J% B7 N* e: G( `% E
. D3 p+ T$ ]$ V% I4 ^! `& m 在OKA40i-C底板上,有一路SPI,但由于电压与mcp2515的电压不匹配,所以会采用串口2的这组复用为SPI外接mcp2515模块。
) z+ n' I! Z+ b6 \; z2 p 根据CPU手册第三章描述,可以将PI17-19复用为SPI1,采用PH08作为中断。
2 U$ k: c+ @" [& o' E& _ ) f: `1 f. E" \1 ~ X
A40i/T3采用sys_config.fex或者dts 配置引脚复用功能,下面我们采用dts 进行配置。
, C/ @; p1 n- R
2 Y. B; U1 n2 x, k3 B01-打开SPI1 修改sys_config.fex,将uart2的配置去掉,打开SPI1的配置。 : L/ a0 [ e, o. @' t
$ N( V& ^! E( U& Y5 G1 v, v
" x3 A2 ]4 s6 H( ]) r 同时将PH08注释掉:
3 x" Q2 e4 k* \5 s3 y
3 Z# D% z' U, A 同时修改设备树:
& K1 B! _- a1 z( Y6 n . \5 g, f. K( d% x, ^+ B
( {9 ?8 t! Q2 J) k; V+ K
0 k2 _; b* I# ]6 K3 k' b) Z2 N02-修改defconfig 采用通过其他平台验证,且适配设备树的驱动mcp251x.c, * F( _2 \" D: e, I+ t$ g& b C
修改defconfig 配置文件: 7 ?( G2 Y% s: U/ ]4 K b# t* q0 y
Networking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers选中。
' R$ r0 S! S1 H8 N+ i 同时选中SPI配置,默认已支持,此处不再说明。
4 [7 s1 `- e( P% f0 H$ v+ V
. U; m- U( X5 y4 o2 `03-配置iproute 文件系统: 2 U* H2 J& K1 m- S& R+ V+ F
buildroot-201611/configs/sun8iw11p1_hf_defconfig ) H) a. x- Z' M7 Q l! m3 Y
需要配置上BR2_PACKAGE_IPROUTE2=y. % H6 Q) x" j$ y. e1 T6 }# M4 w
重新编译,并打包镜像,烧录。
& C5 \) J$ P/ x/ A5 H' }8 B! J5 L3 [4 I3 ?+ J
04-测试can0节点 启动之后,ifconfig 查看出现can0节点。使用以下命令进行测试: 4 r+ Z8 [: k# C/ H
ifconfig can0 down
, T' G1 X1 s6 ?+ V0 s1 U9 O2 n ip link set can0 up type can bitrate 125000 triple-sampling on 3 L+ w( u9 i) l7 l Y6 W
ifconfig can0 up
+ u6 n; G) G% O2 a cansend can0 123#12345678 * P( |2 x9 l" r
candump can0
% x# k" b5 G* D: M" a. m/ C9 G如果有必要请联系飞凌技术服务人员,提供patch文件。 ' x: s6 ?. _% D: b
0 _! j1 ], q! n/ |6 w, A. k 注意事项 在设备树中,用作中断时,因A40i/T3只能使用PH组的引脚复用为中断,在设备树中设置中断时的如下: y' Q; F# t, O0 C$ }
interrupt-parent = <&pio>; 5 d, B: E8 S- z( E1 M: {# D, X/ R
interrupts = <8 0>; 0 Y/ y+ t' A; G
另外,需要注意驱动中的中断触发方式。
a- O2 E4 J/ p4 q. @8 n
$ S1 E* o! Y! B" v. C& {2 R! r, a' I# E8 v$ R
相关产品:
: g9 S. L' s! U. l1 e L# T) W' G9 B
0 y" g; W1 b8 I
|
|