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

扫一扫,手机访问本帖 
|
全志A40i或者T3的CPU中无CAN控制器,而在实际使用过程中,会用到CAN,通常会采用SPI转CAN的方式。 , S* G$ v- o% C5 x. h/ \& r$ [
( j8 y% x: e3 ^& P; U- b) \: @ M
在OKA40i-C底板上,有一路SPI,但由于电压与mcp2515的电压不匹配,所以会采用串口2的这组复用为SPI外接mcp2515模块。 " |: z# z4 i2 A Q1 z
根据CPU手册第三章描述,可以将PI17-19复用为SPI1,采用PH08作为中断。
/ p: ]. O+ ]1 r) z8 s: L 3 ], F: G. p- j: K
A40i/T3采用sys_config.fex或者dts 配置引脚复用功能,下面我们采用dts 进行配置。 ' D6 M. x4 E" D! @7 {7 [. G
2 X" @. Y$ C' i9 p$ v$ V8 A
01-打开SPI1 修改sys_config.fex,将uart2的配置去掉,打开SPI1的配置。 * R7 ~0 A, f0 Z0 v, P
) {# E6 r, t3 a9 Z, {; y# S" F' ~0 h
: }! B) g( l' x8 W# M8 U8 U ^ 同时将PH08注释掉: $ o0 ? h/ }2 C! W5 D8 y
' k! [. _" e. s# ]4 V 同时修改设备树: 3 ?# Y) H& \; P2 W
' F" K& d- _4 V' d3 A; V
1 u x s7 M. d) g- W0 P3 ]8 [7 D6 @
02-修改defconfig 采用通过其他平台验证,且适配设备树的驱动mcp251x.c, ! ~0 m! ^+ p' }2 q, Y& Q
修改defconfig 配置文件:
8 p% x# t. [3 e* ]1 ?$ L5 a: pNetworking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers选中。 2 B6 W! `$ K0 T. C
同时选中SPI配置,默认已支持,此处不再说明。
" b- ^" D/ ]& {
_1 m: `0 n) Y' I: K03-配置iproute 文件系统: 2 b, @9 B6 i7 @( ^
buildroot-201611/configs/sun8iw11p1_hf_defconfig 0 ]4 S! N3 q/ R0 k. |* P
需要配置上BR2_PACKAGE_IPROUTE2=y. 7 Y8 Z6 F0 ~1 V: H+ `4 z
重新编译,并打包镜像,烧录。
1 j& }; R1 i: n3 F7 {. a. i# E3 F. f
04-测试can0节点 启动之后,ifconfig 查看出现can0节点。使用以下命令进行测试:
9 D- p B! E. h7 P {ifconfig can0 down
* V) b; _1 M, W- |2 [ ip link set can0 up type can bitrate 125000 triple-sampling on B4 C' {% R! p/ D
ifconfig can0 up 0 ]: E9 v' q& G$ }) n( E
cansend can0 123#12345678 ; |" z: ~. U* I, W
candump can0 6 O+ Z! t9 A5 I$ _0 @6 f
如果有必要请联系飞凌技术服务人员,提供patch文件。
* ~/ t$ s+ m3 s, c; i; h9 X# k2 t l
- i# I* T6 C3 A" z$ a 注意事项 在设备树中,用作中断时,因A40i/T3只能使用PH组的引脚复用为中断,在设备树中设置中断时的如下: , ~: y- K; v6 p! @# i
interrupt-parent = <&pio>; ( k, N; ?( ?9 J7 b3 t& C, e, ]( B' f
interrupts = <8 0>; 8 j" l, c2 R; n: `* N
另外,需要注意驱动中的中断触发方式。
) C- u* d e4 Y) z+ F8 l1 _. F( _; K% d+ e6 ]( g& t
2 g) F5 O+ S; i% j N相关产品: 2 U3 H! A ]; ^( x+ {/ X+ t/ b& g
9 s# C* E* {- }
4 p! j$ Q6 d& I- i1 H) p/ N: J
|
|