- 积分
- 295
贡献1408
飞刀561 FD
注册时间2015-12-21
在线时间50 小时
扫一扫,手机访问本帖
|
全志A40i或者T3的CPU中无CAN控制器,而在实际使用过程中,会用到CAN,通常会采用SPI转CAN的方式。
* g0 S! ?, e- K# B, `9 d: |' @3 z9 L$ I( p# E3 ^
在OKA40i-C底板上,有一路SPI,但由于电压与mcp2515的电压不匹配,所以会采用串口2的这组复用为SPI外接mcp2515模块。 / X- _+ e8 E \ r$ [
根据CPU手册第三章描述,可以将PI17-19复用为SPI1,采用PH08作为中断。 / r3 u# [9 b: A X
; s- n! x# F& \1 {
A40i/T3采用sys_config.fex或者dts 配置引脚复用功能,下面我们采用dts 进行配置。 1 @" @8 }" n. z. Q0 g
+ b. h- N) E1 x, j- H01-打开SPI1 修改sys_config.fex,将uart2的配置去掉,打开SPI1的配置。 . p) l% C0 v N4 s
" A; u( @. C& v6 K
# T4 S" |: l" J% T3 [
同时将PH08注释掉: ; |. y. ?3 D5 P
) P" j: `: {1 z n# y
同时修改设备树:
8 j! ]9 w& O' j& V+ Q! e6 y
. D6 Z' i9 w1 ~! Y4 \
# V- [- b1 C& R7 A% q) i
- U4 c! W. R* f& v$ u- T* z02-修改defconfig 采用通过其他平台验证,且适配设备树的驱动mcp251x.c, : l4 |( j& | w' `- G; q
修改defconfig 配置文件: % B, I( p5 y6 I' b" K
Networking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers选中。 & y- ?! K- g! X2 o. f, w
同时选中SPI配置,默认已支持,此处不再说明。 ! D n: y7 H, a6 @
+ i6 z" s9 U, C% a- `$ `03-配置iproute 文件系统:
+ g3 k% e3 d, Wbuildroot-201611/configs/sun8iw11p1_hf_defconfig
8 V. C, {, r# C- k+ F' w需要配置上BR2_PACKAGE_IPROUTE2=y. 3 X& j. b. C: e R
重新编译,并打包镜像,烧录。
/ ^: B i0 l: x7 a6 g" g9 N4 F+ X3 f8 U" B$ t. I% {- j: N$ z
04-测试can0节点 启动之后,ifconfig 查看出现can0节点。使用以下命令进行测试:
" ~" |3 j4 g1 c6 C; P1 ]% @8 \ifconfig can0 down
1 @" @8 G( r o& F$ y( N. p ip link set can0 up type can bitrate 125000 triple-sampling on
. `3 z# U0 L2 k/ u( ]- B ifconfig can0 up 1 c, A+ e* W& j9 g
cansend can0 123#12345678
2 v. _ }2 w5 l" e& K candump can0 $ t7 a$ d0 Q" l% d; f
如果有必要请联系飞凌技术服务人员,提供patch文件。 . N) ^0 s& B' e: E+ ^( ~/ I$ b* Z
) ]$ w& V" n2 W {9 C
注意事项 在设备树中,用作中断时,因A40i/T3只能使用PH组的引脚复用为中断,在设备树中设置中断时的如下: ( d4 F9 Z# B8 a4 d! n' P( m; v4 r) `
interrupt-parent = <&pio>; ) X" x) o! X) x3 J/ q6 P- e
interrupts = <8 0>;
9 s: w3 b+ B6 O% }- |3 c6 C另外,需要注意驱动中的中断触发方式。
# [2 a6 F$ q# {7 N+ M
0 ?, f' h- X m( b: F7 `
, @1 ?- m! b7 v1 S% Q" `/ F' N* r相关产品:
7 U4 b3 R; I* \. o- A# u7 H0 O4 W) |+ @9 _
- l0 o% ^) d# h8 u; s |
|