嵌入式爱好者

查看: 11498|回复: 2

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

[复制链接]

46

主题

53

帖子

296

积分

扫一扫,手机访问本帖
发表于 2021-12-10 17:13:44 | 显示全部楼层 |阅读模式
全志A40i或者T3CPU中无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
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-21 07:09

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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