嵌入式爱好者

查看: 11042|回复: 2

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

[复制链接]

46

主题

53

帖子

295

积分

扫一扫,手机访问本帖
发表于 2021-12-10 17:13:44 | 显示全部楼层 |阅读模式
全志A40i或者T3CPU中无CAN控制器,而在实际使用过程中,会用到CAN,通常会采用SPI转CAN的方式。 : H+ I. @; `% s& P; i! t5 J9 M

4 F6 Y1 t3 G7 o: G% b# Z5 d  Y1 R$ W        在OKA40i-C底板上,有一路SPI,但由于电压与mcp2515的电压不匹配,所以会采用串口2的这组复用为SPI外接mcp2515模块。 3 a7 R# b  Z  L6 G3 X# b' M
        根据CPU手册第三章描述,可以将PI17-19复用为SPI1,采用PH08作为中断。
& s% S" B( o& [ 0 c) U2 c8 w5 v2 a) F* [
A40i/T3采用sys_config.fex或者dts 配置引脚复用功能,下面我们采用dts 进行配置。 & y4 j9 w6 i' C4 u8 `- P
6 @8 A- Y+ [5 d1 F) E
01-打开SPI1 修改sys_config.fex,将uart2的配置去掉,打开SPI1的配置。 2 |; e4 B0 V8 X$ M% `8 T" D
3 M7 P+ w! S; S8 n

& h% U% k$ s" M3 c* v8 R* U        同时将PH08注释掉:
! V+ V* h6 s" j/ H" i2 g' h4 d3 [ 6 M% r7 Q! ~7 x2 l3 z+ {
        同时修改设备树: " W' ^/ N# L; m! _; C, V
- C" ~3 y  ?5 M# M
, I% L6 M. d! m0 V$ G9 e5 m

5 s" N4 l0 w& {( l4 q( Y+ W02-修改defconfig 采用通过其他平台验证,且适配设备树的驱动mcp251x.c, $ {) @: H) H5 j( C( Y9 Q# k
        修改defconfig 配置文件: 2 G: e9 A: U4 z# [# {" J
Networking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers选中。
6 {7 A; {: H3 T; {+ \        同时选中SPI配置,默认已支持,此处不再说明。
- h( T2 J! P& s: }1 `( b% P: d! W5 s# h; t
03-配置iproute 文件系统: 9 S# E2 W1 _1 @8 ~5 l% p9 ?
buildroot-201611/configs/sun8iw11p1_hf_defconfig ; Z3 |& W" L" W5 |3 `! M8 {$ k
需要配置上BR2_PACKAGE_IPROUTE2=y.
) n+ E" C9 j& Y2 Z! t' X! X' M3 v0 |重新编译,并打包镜像,烧录。 0 h- s% {; m" D) L2 c+ r8 n

; J7 \0 }' `# g' Z04-测试can0节点         启动之后,ifconfig 查看出现can0节点。使用以下命令进行测试: / W. t$ b- ?* `9 J6 [* I
ifconfig can0 down ; i9 w5 ]0 v/ A4 v3 c) K$ z
        ip link set can0 up type can bitrate 125000 triple-sampling on
2 m3 B# C- M% |( n9 M& \        ifconfig can0 up 8 I5 t2 S# e( Q6 J% c0 B
        cansend can0 123#12345678 % x9 r6 l) q2 w: A2 L
        candump can0 ; Q. ~* S0 z" ?8 _
如果有必要请联系飞凌技术服务人员,提供patch文件。
$ f  V5 {) N9 n' q0 m/ l( F9 F" Q! D1 |, z- T7 {. G
        注意事项         在设备树中,用作中断时,因A40i/T3只能使用PH组的引脚复用为中断,在设备树中设置中断时的如下: $ _% e  G0 H7 D7 f" J
interrupt-parent = <&pio>; - l% @$ {. {& u1 ~- h& Y9 v
        interrupts = <8 0>; ! N4 H2 C: ^# K& P+ P& d
另外,需要注意驱动中的中断触发方式。 % z. A, W0 [, x6 e0 s( m6 [2 U

& U' G, m: v9 K# O4 [
  W7 Z& V7 x. @5 G相关产品:                                                   
7 }8 R+ t3 c) f1 e" m( I. @& l0 ~/ b! @' \( r
2 y, l0 V, v3 @: u' O8 c
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-11 19:26

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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