嵌入式爱好者

查看: 11635|回复: 2

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

[复制链接]

46

主题

53

帖子

296

积分

扫一扫,手机访问本帖
发表于 2021-12-10 17:13:44 | 显示全部楼层 |阅读模式
全志A40i或者T3CPU中无CAN控制器,而在实际使用过程中,会用到CAN,通常会采用SPI转CAN的方式。 6 D5 s# I$ h, k# h1 I1 K; \
9 W' n+ m, K- _: f$ V9 I
        在OKA40i-C底板上,有一路SPI,但由于电压与mcp2515的电压不匹配,所以会采用串口2的这组复用为SPI外接mcp2515模块。
1 n, W. ^2 c! l; U. }$ j6 m! r        根据CPU手册第三章描述,可以将PI17-19复用为SPI1,采用PH08作为中断。
: L$ M! J' d" b8 O& X 9 `6 i" z' `2 w6 O+ V5 m2 J
A40i/T3采用sys_config.fex或者dts 配置引脚复用功能,下面我们采用dts 进行配置。
1 W* @4 z3 P, r6 M8 g  Z9 R
+ Q, n/ T' H( t; g6 N- s, ?4 X* Z01-打开SPI1 修改sys_config.fex,将uart2的配置去掉,打开SPI1的配置。
8 S( ?7 U! v& K  A5 x # w6 z: y+ [' B% H9 ~
9 T# Y' T7 r9 R; L2 M
        同时将PH08注释掉: $ U. M9 h2 D  H$ {
; U! P9 V7 o6 E4 W: I
        同时修改设备树: ' n5 a- `6 s& |
' H9 m1 x( X; y0 a- e+ _

: y- \, D3 _+ F9 |+ D
; r$ k4 Y/ l; X; x3 g: n! N  L; j02-修改defconfig 采用通过其他平台验证,且适配设备树的驱动mcp251x.c,
+ f1 i5 N4 w" |- c8 V  ^        修改defconfig 配置文件:
% F  o" v. z( _) D& T' U1 ]Networking support ---> CAN bus subsystem support --->CAN Device Drivers --->Microchip MCP251x SPI CAN controllers选中。 6 S1 n& Q: B7 K
        同时选中SPI配置,默认已支持,此处不再说明。
4 P% C" `$ ?$ T& ?) ]+ \% s. H/ h8 n9 n) e( X( T$ Q
03-配置iproute 文件系统:
+ |1 W. s- e8 o: P: I5 mbuildroot-201611/configs/sun8iw11p1_hf_defconfig
8 f& _3 `: h$ K6 i7 W' S需要配置上BR2_PACKAGE_IPROUTE2=y. 1 |* y7 q3 ]$ t& ?: ]
重新编译,并打包镜像,烧录。 ) {5 X1 J( s0 |+ T7 A, [

* M$ y5 W4 D: _4 _# C04-测试can0节点         启动之后,ifconfig 查看出现can0节点。使用以下命令进行测试: 9 e0 U0 y# R4 y/ l/ W; `7 X
ifconfig can0 down
4 G$ Y) |) y- O6 t        ip link set can0 up type can bitrate 125000 triple-sampling on % n& s" d$ r5 P! Y3 ]: ?# b
        ifconfig can0 up
! m8 ?4 |2 i( \, E9 q6 k6 C        cansend can0 123#12345678
; K( k/ g. I) V        candump can0   C6 X9 w9 N# M( h4 l6 w
如果有必要请联系飞凌技术服务人员,提供patch文件。
' I/ V) z- {' a& }. z" H, b1 O- R# ?2 D" [: ^. t
        注意事项         在设备树中,用作中断时,因A40i/T3只能使用PH组的引脚复用为中断,在设备树中设置中断时的如下:
2 F1 a: k. l+ Z+ Q# ]# s4 f( s" binterrupt-parent = <&pio>;
8 ?# J% p) Z0 n1 |7 s. s. v- v        interrupts = <8 0>;
' a3 {" s7 O) H/ S  J( O另外,需要注意驱动中的中断触发方式。
  C7 B( ?6 d) v8 S) }' u" q8 y
+ w6 n: R! @8 b$ l2 i& O) \' x7 o1 {3 {
相关产品:                                                   $ O) v6 c3 r+ s
  R# d! Q4 D2 a# W

6 r! D* D% d3 f8 O
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-15 11:57

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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