查看: 12951|回复: 2

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

48

主题

6

回帖

282

积分

飞凌-marketing 发表于 2021-12-10 17:13:44 | 显示全部楼层 |阅读模式
全志A40i或者T3的CPU中无CAN控制器,而在实际使用过程中,会用到CAN,通常会采用SPI转CAN的方式。 - L8 [% ]# c: R5 v! {
; G$ ?) j8 I  z! A4 j
        在OKA40i-C底板上,有一路SPI,但由于电压与mcp2515的电压不匹配,所以会采用串口2的这组复用为SPI外接mcp2515模块。
. P# J2 ^- I$ |6 _: R$ m3 W        根据CPU手册第三章描述,可以将PI17-19复用为SPI1,采用PH08作为中断。
8 g; L  Q$ S& r3 x$ F
! _- @' o/ E# u% \$ Q# O5 hA40i/T3采用sys_config.fex或者dts 配置引脚复用功能,下面我们采用dts 进行配置。 ; V4 b/ I7 f" N( g. u/ V" `* a( X

9 b( B! [: V3 N0 S7 t: ]( [01-打开SPI1 修改sys_config.fex,将uart2的配置去掉,打开SPI1的配置。
# {; G' ?$ Z3 T; k* L- t
4 m& {* ], R2 c/ ^# ~ , ~7 U+ [% W$ T
        同时将PH08注释掉: + K& v4 r3 L/ X- H/ U  l
4 M5 c% Y. I. j- Q* r6 I" _
        同时修改设备树:
  K' c) @- v1 [; O0 U* ]) Z/ h/ s' O+ s " P% Z  `  ^4 t* X1 Q
$ |6 q. E% Z4 w6 w
* i" K" M( j- x$ q; I4 m; S; d. c
02-修改defconfig 采用通过其他平台验证,且适配设备树的驱动mcp251x.c, 2 D3 w7 f; [& |, G8 y: S6 r$ I
        修改defconfig 配置文件:
: y: @" @% C0 j1 cNetworking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers选中。
/ \1 ^# a! s' c, ^" [        同时选中SPI配置,默认已支持,此处不再说明。 ) D2 @# W: K. i/ I9 w) V6 h+ V& @1 \

- i6 w" G$ `  g2 }03-配置iproute 文件系统:
/ ?4 l8 |  ?: j, I$ }, rbuildroot-201611/configs/sun8iw11p1_hf_defconfig
9 z2 s0 }* ^+ Q# @( ^; ^需要配置上BR2_PACKAGE_IPROUTE2=y. & t( v! L7 D, y4 k
重新编译,并打包镜像,烧录。
% d: h  q5 [# O* N' z' z
+ U3 E2 }; s0 A) S04-测试can0节点         启动之后,ifconfig 查看出现can0节点。使用以下命令进行测试: * K* p; {6 i8 C# n- m( m+ b& f6 N
ifconfig can0 down
/ K) i. T# ?% x        ip link set can0 up type can bitrate 125000 triple-sampling on . [6 K# z$ q( F( b+ Z7 l: \+ C9 P0 {
        ifconfig can0 up 8 y& y$ R+ c# {; w. t
        cansend can0 123#12345678
' e- Y( g" M: D4 t: K        candump can0 1 s$ f+ Q% c# ]" I( T
如果有必要请联系飞凌技术服务人员,提供patch文件。
$ x% h* G/ {* E) O$ l& I/ N+ }: G, k/ Z2 h8 P8 {* X' t4 @
        注意事项         在设备树中,用作中断时,因A40i/T3只能使用PH组的引脚复用为中断,在设备树中设置中断时的如下:
, m# _2 P5 H2 E6 V) Kinterrupt-parent = <&pio>;
0 J% p% F5 D. y& A! t" S( t: l        interrupts = <8 0>; * r3 ~& P6 M# |; a
另外,需要注意驱动中的中断触发方式。 ( ]- I# Y, Z$ ]  i1 T

/ U5 M! j. C7 Q& y# @, t  A" M7 E- ^  y; P3 j
相关产品:                                                   
7 [( Z5 l6 H% u# b: V/ ^1 Q
- O7 d% j4 t' v
, R* I* v* b3 F3 O- L
回复

使用道具 举报

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

本版积分规则