嵌入式爱好者

查看: 8498|回复: 2

[帮助] 飞凌嵌入式分享丨全志 A40i / T3对CAN的支持

[复制链接]

46

主题

53

帖子

295

积分

扫一扫,手机访问本帖
发表于 2021-12-10 17:13:44 | 显示全部楼层 |阅读模式
全志A40i或者T3CPU中无CAN控制器,而在实际使用过程中,会用到CAN,通常会采用SPI转CAN的方式。 , F' L: g: c- F8 F) l& H2 a

! G/ u# x/ \  v        在OKA40i-C底板上,有一路SPI,但由于电压与mcp2515的电压不匹配,所以会采用串口2的这组复用为SPI外接mcp2515模块。 ) |, V7 e- U- u3 ?: y( }5 |
        根据CPU手册第三章描述,可以将PI17-19复用为SPI1,采用PH08作为中断。 + Y8 s: k) F5 O6 m& ~: g# F
% r* ~' k) M% B; D: b; b1 _; e
A40i/T3采用sys_config.fex或者dts 配置引脚复用功能,下面我们采用dts 进行配置。 ! O9 z- k: u* [5 c! T5 e% k+ Z5 _

) y# t6 n- I4 N4 t0 v2 x( f' m( v01-打开SPI1 修改sys_config.fex,将uart2的配置去掉,打开SPI1的配置。
1 [7 x  k- |1 C4 V ! M: y/ U) Y7 P$ e$ K

3 a  z# e1 R* c$ r7 c# ]        同时将PH08注释掉: + B; _# L2 d( [  ~
7 B* k- [5 K: G0 W0 U/ w, F; e
        同时修改设备树:
4 L0 M: @( T9 f1 u6 Y  M
" l! C% c- l) j' K4 q- \# N6 j) G : s* \/ ~) X" `9 r: Y
4 K3 ^% T( F" j5 U* h0 {
02-修改defconfig 采用通过其他平台验证,且适配设备树的驱动mcp251x.c, : C7 p- l4 X2 _5 s, M
        修改defconfig 配置文件:
, ^* G5 N; M' O/ ^9 c4 tNetworking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers选中。 7 w. I- y/ q- s9 l
        同时选中SPI配置,默认已支持,此处不再说明。
0 {6 y. o; k  x) a( T: Z) n  e/ u7 E. O! w; p' D# `& \
03-配置iproute 文件系统: # M5 H% d2 e+ N8 E0 D& p
buildroot-201611/configs/sun8iw11p1_hf_defconfig 6 a) k2 V5 ?; r# }( t1 }0 Z: w/ d
需要配置上BR2_PACKAGE_IPROUTE2=y. 6 M* N; a9 z6 i/ K' T- P9 M  h# q) u
重新编译,并打包镜像,烧录。
' o8 x; `2 A. K" s! |' v2 n
' {- J' Y: r; B& D04-测试can0节点         启动之后,ifconfig 查看出现can0节点。使用以下命令进行测试: , n% X% T8 m; c, ]) M
ifconfig can0 down 4 x- m' j: ]% R6 Z: s$ X
        ip link set can0 up type can bitrate 125000 triple-sampling on
8 w4 Q1 O$ c' i        ifconfig can0 up
( a$ j* E" s; F; o5 `        cansend can0 123#12345678 0 S: O* Y  t3 d1 s
        candump can0
% r2 ^; E' x  c4 h如果有必要请联系飞凌技术服务人员,提供patch文件。 + N: g! A; J3 z3 l. d

1 d4 q4 [( a6 d" {; n0 u9 _        注意事项         在设备树中,用作中断时,因A40i/T3只能使用PH组的引脚复用为中断,在设备树中设置中断时的如下: - c, B& H3 V& W! }
interrupt-parent = <&pio>;
" ^- |* Z, D! ~5 M; `1 E5 U1 c        interrupts = <8 0>; # u* ~% y+ S: a' A! J
另外,需要注意驱动中的中断触发方式。 6 i3 ~5 E" t) M" n9 N" m

2 R: z* h6 y" y  v+ c+ K6 h0 R
1 h5 j. Z( F1 D1 p相关产品:                                                   % @3 u) L1 _4 \7 y* ^! D! ?
- L  E' k5 f  n* `9 ?# b, q$ |" N* O

. `6 k4 l* J- y
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-9-8 08:40

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表