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

扫一扫,手机访问本帖 
|
全志A40i或者T3的CPU中无CAN控制器,而在实际使用过程中,会用到CAN,通常会采用SPI转CAN的方式。 1 D6 a7 \# K4 L2 r5 h) J& H
; Z, o. r7 m3 L& Y3 c: h* D
在OKA40i-C底板上,有一路SPI,但由于电压与mcp2515的电压不匹配,所以会采用串口2的这组复用为SPI外接mcp2515模块。
% G/ b( I! [; [ 根据CPU手册第三章描述,可以将PI17-19复用为SPI1,采用PH08作为中断。 . O6 n2 V6 h$ Z4 j# a
% e1 p! C$ k0 a4 g3 n
A40i/T3采用sys_config.fex或者dts 配置引脚复用功能,下面我们采用dts 进行配置。 ( f: Y, E! l$ h( ?& w
3 t1 i# H# i: k$ [+ g6 t6 W6 K01-打开SPI1 修改sys_config.fex,将uart2的配置去掉,打开SPI1的配置。 ; O/ Q( E3 j5 f. A: g
5 V6 \2 y/ U' x+ J( S
# h& w1 A; K8 K5 r0 Y 同时将PH08注释掉: / E% Q) f7 ]6 a2 w
" E/ q- V1 x: V2 Q$ z" D
同时修改设备树:
2 g8 T2 i( g- A! Y: A v/ q 8 ~/ b) T, Q- z" g" v0 y2 i- B! Y
7 h* f5 z/ E5 E( j( i
: q' J+ u9 \2 g+ \- v3 a6 I: s02-修改defconfig 采用通过其他平台验证,且适配设备树的驱动mcp251x.c, / F7 O, I2 ~$ [6 F8 z
修改defconfig 配置文件:
9 |- e3 z. F! L( G, K2 QNetworking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers选中。
, G# C F+ E$ _! s 同时选中SPI配置,默认已支持,此处不再说明。 6 D9 }, j' Y C3 P
( e: x9 n' o" j" K/ H8 O4 h. k
03-配置iproute 文件系统: 8 k! Z6 _ n2 b
buildroot-201611/configs/sun8iw11p1_hf_defconfig 1 C& ]5 s. E0 S0 k! O
需要配置上BR2_PACKAGE_IPROUTE2=y.
+ r V5 ^0 i0 m8 O: d0 G重新编译,并打包镜像,烧录。 6 J$ @$ O# b) c0 l2 B1 n
B% m2 @3 K3 ]$ N
04-测试can0节点 启动之后,ifconfig 查看出现can0节点。使用以下命令进行测试:
/ Q7 y, w3 k; T4 Nifconfig can0 down
# r- E% [$ S: B+ [1 D7 L6 k( | ip link set can0 up type can bitrate 125000 triple-sampling on
9 X; ]+ x. r6 [$ q8 z$ W ifconfig can0 up
5 y9 ]! W' k9 p cansend can0 123#12345678
! X. T7 }* g5 ^' }6 c' O, F candump can0 9 H V# k" v4 G% r5 I
如果有必要请联系飞凌技术服务人员,提供patch文件。
, `' i9 Q) v2 T" V$ u) @9 q9 J4 w5 a4 o/ z7 F3 h( S( q' R
注意事项 在设备树中,用作中断时,因A40i/T3只能使用PH组的引脚复用为中断,在设备树中设置中断时的如下: 0 l/ w$ i" y, c
interrupt-parent = <&pio>;
4 W; B; G. w) x! H2 p3 l# t interrupts = <8 0>;
; N2 {: ~1 G" z1 H# P @8 P5 x另外,需要注意驱动中的中断触发方式。 : Q7 k. |+ }$ ]4 c* J3 N- n m4 }
9 \) {4 F( e0 W' ]' x! U
. L) F8 ~$ e( V( j相关产品:
4 O7 x% W/ I! A8 ]
( j# |3 D6 S, N& v T3 G, ~. O- ]8 z3 v: d! I2 c H; y* t3 {
|
|