嵌入式爱好者

查看: 12387|回复: 2

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

[复制链接]

48

主题

55

帖子

305

积分

扫一扫,手机访问本帖
发表于 2021-12-10 17:13:44 | 显示全部楼层 |阅读模式
全志A40i或者T3CPU中无CAN控制器,而在实际使用过程中,会用到CAN,通常会采用SPI转CAN的方式。 * Z3 L* g6 [' W, H2 I7 c
( k- R( D. g6 N- {/ Z. h  a3 D3 j5 c7 L
        在OKA40i-C底板上,有一路SPI,但由于电压与mcp2515的电压不匹配,所以会采用串口2的这组复用为SPI外接mcp2515模块。   _9 Z" v8 X% c$ i/ J9 s- n  @$ V
        根据CPU手册第三章描述,可以将PI17-19复用为SPI1,采用PH08作为中断。
' U7 I, f; S% c8 S' _# r/ E
8 [* G3 O( P& V( k4 }! T0 E+ ^A40i/T3采用sys_config.fex或者dts 配置引脚复用功能,下面我们采用dts 进行配置。
  U; X  N. h! s& [) F8 C
$ [9 C9 A) }7 k& L01-打开SPI1 修改sys_config.fex,将uart2的配置去掉,打开SPI1的配置。
2 w; Y) e9 ]8 e7 q
( o/ |3 @& a# P1 e2 p 0 s8 ^' K3 G3 X# D/ r/ x. R
        同时将PH08注释掉: : \3 r- [3 z! o2 I

7 P2 o. F: p" _& _4 c$ N6 }0 _$ t        同时修改设备树: 3 U4 X0 k% m1 L- N

" V/ z7 ^3 n; y) C; U
. P# r4 o: P' W! T
5 g0 n# B* {- S8 {4 V. a8 m( |02-修改defconfig 采用通过其他平台验证,且适配设备树的驱动mcp251x.c,
. l+ @. e; o( Z+ A) r, X        修改defconfig 配置文件:
4 t5 |. ]. ^- lNetworking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers选中。 & \% U6 l; b6 b0 [8 F' E2 ]: V
        同时选中SPI配置,默认已支持,此处不再说明。
# u" C/ }0 _1 P  `2 E
/ b5 _: f' a) E& B) T03-配置iproute 文件系统:
" [8 H5 p3 e- ]% B8 ]) m; Fbuildroot-201611/configs/sun8iw11p1_hf_defconfig 8 r# S" s/ s  [/ \7 h
需要配置上BR2_PACKAGE_IPROUTE2=y. 9 T) R6 |: M% `% b4 o: f+ O6 D
重新编译,并打包镜像,烧录。
( j$ f! z% o& s4 m/ X& @% F- A( O. M
04-测试can0节点         启动之后,ifconfig 查看出现can0节点。使用以下命令进行测试:
( e* K* q. \- A5 N( r3 l% \9 uifconfig can0 down # J$ B  B# V1 d# C# p4 g* T8 K
        ip link set can0 up type can bitrate 125000 triple-sampling on
' b  s" d% z0 ^4 _        ifconfig can0 up
7 K: Q  i0 i, d        cansend can0 123#12345678 ' y( \+ Y% }$ X: `; V
        candump can0
! ?8 U+ b8 o! M/ x如果有必要请联系飞凌技术服务人员,提供patch文件。
* a# ?1 \5 c' ~$ U. s
% p( i/ y2 o2 ~( A9 q! I        注意事项         在设备树中,用作中断时,因A40i/T3只能使用PH组的引脚复用为中断,在设备树中设置中断时的如下: + c: c$ w' O& H1 X2 \1 }& J' K7 p7 {
interrupt-parent = <&pio>;
2 O- n' ~2 d& D) y- G3 P        interrupts = <8 0>;
: u9 z  [: ]5 X- n" @0 V另外,需要注意驱动中的中断触发方式。 4 w/ K% |& H3 F3 w7 }! U" D) U! r
9 ~: a- Q+ H( V
. j# b& \' t  ~# o9 l7 A2 H) g( D
相关产品:                                                   
2 R' w: [) x& k/ o+ W" @* z( J& S8 p# I  b5 o

* k+ M. a6 w& [
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-26 09:04

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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