- 积分
- 296
贡献1418
飞刀565 FD
注册时间2015-12-21
在线时间50 小时

扫一扫,手机访问本帖 
|
全志A40i或者T3的CPU中无CAN控制器,而在实际使用过程中,会用到CAN,通常会采用SPI转CAN的方式。 3 L( ^- y* B) o Y5 t9 x+ B
1 z7 K+ I* k! v3 @! U
在OKA40i-C底板上,有一路SPI,但由于电压与mcp2515的电压不匹配,所以会采用串口2的这组复用为SPI外接mcp2515模块。
* [/ y4 c, w4 m2 {( Z 根据CPU手册第三章描述,可以将PI17-19复用为SPI1,采用PH08作为中断。
1 l# T2 p6 e, q' t( x [ # L- M; X/ v& K- d
A40i/T3采用sys_config.fex或者dts 配置引脚复用功能,下面我们采用dts 进行配置。
9 q4 a2 Z$ j' B# y# i3 P" ?* M# V# V: I, x t- _
01-打开SPI1 修改sys_config.fex,将uart2的配置去掉,打开SPI1的配置。
& K' U+ D! J8 U* { w5 B0 F
& h- H& U7 X& g4 j " ?6 N5 u$ a7 t2 U) a6 X e
同时将PH08注释掉: : Y2 ]/ ]' K/ W- c4 i3 W
, V$ ^! c$ X8 ? n
同时修改设备树: 9 n' G# m& o! ^; p7 `1 b0 }2 M
% b3 d$ g; {( g- B, N/ _. A8 v
' [ t E% |9 I, H, g; ^* ~; I1 F
! u" b) ?& c( k: i9 U02-修改defconfig 采用通过其他平台验证,且适配设备树的驱动mcp251x.c, % z- L. ]( E1 |$ L: c3 r& @) p
修改defconfig 配置文件: p) u4 c L! y* c/ b- ?9 s" p8 Z
Networking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers选中。 9 ~" m( S" z1 ?) O, J/ @3 I
同时选中SPI配置,默认已支持,此处不再说明。
Y+ s9 M& U: \. C3 v% v7 d; v
! |; U* ~9 w1 |8 v03-配置iproute 文件系统:
/ a$ M. B$ W3 _buildroot-201611/configs/sun8iw11p1_hf_defconfig
* A# S1 i1 Y. G' N. g% Q需要配置上BR2_PACKAGE_IPROUTE2=y.
* L' a7 p5 p: L0 w7 C. \重新编译,并打包镜像,烧录。 : u4 I" U+ x# t: W0 E0 n* C, V5 h
) e! {8 s( N( {% A* \& v( M% `
04-测试can0节点 启动之后,ifconfig 查看出现can0节点。使用以下命令进行测试:
' @/ j2 l7 O6 U) ~* _ifconfig can0 down ; S6 V, ^- F5 J3 U9 r
ip link set can0 up type can bitrate 125000 triple-sampling on ' a. ?) V( T0 g# A3 D7 E6 G1 j
ifconfig can0 up
' p ]' @* j( d7 K5 | cansend can0 123#12345678 3 K- I3 r$ ^" K
candump can0 - h, s4 x' H! c$ N& [, S6 B
如果有必要请联系飞凌技术服务人员,提供patch文件。
7 A4 f+ A7 [) R" j# i
7 ?, l4 h; [# P+ T6 M" E 注意事项 在设备树中,用作中断时,因A40i/T3只能使用PH组的引脚复用为中断,在设备树中设置中断时的如下:
% M3 S8 t1 l7 H# y) vinterrupt-parent = <&pio>; 9 i$ e, g& G0 Y& E# f8 `; A3 P1 u) i
interrupts = <8 0>;
g' b' C9 n8 n& x' g% A另外,需要注意驱动中的中断触发方式。 4 b# Q6 a, d# q& F# u5 c
- ]- l% ]: p) ~! F, ?) t
* b8 `# o9 g( x- g; o+ \" Q4 |6 X相关产品:
: i. E$ B+ E5 ~; `
: F' G2 ^. W. S8 h& U* b( n
* p6 x! C; u9 B! o" X) i* }, L |
|